Multinomial Logistic Loss vs (Cross Entropy vs Square Error)


9

ฉันสังเกตเห็นว่า Caffe (กรอบการเรียนรู้ลึก) ใช้Softmax Loss Layer SoftmaxWithLossเป็นเลเยอร์การส่งออกสำหรับตัวอย่างส่วนใหญ่

เท่าที่ผมรู้ว่าชั้น Softmax การสูญเสียคือการรวมกันของพหุโลจิสติกชั้นสูญเสียและSoftmax ชั้น

จาก Caffe พวกเขาบอกว่า

การคำนวณการไล่ระดับสี Softmax Loss Layer นั้นมีความเสถียรทางตัวเลข

แต่คำอธิบายนี้ไม่ได้คำตอบที่ฉันต้องการคำอธิบายเป็นเพียงการเปรียบเทียบการรวมกันของพหุโลจิสติกชั้นสูญเสียและชั้นสูญเสีย Softmaxแทนชั้นโดยชั้น แต่ไม่เปรียบเทียบกับฟังก์ชันการสูญเสียชนิดอื่น

อย่างไรก็ตามฉันต้องการทราบเพิ่มเติมว่าข้อแตกต่าง / ข้อดี / ข้อเสียของฟังก์ชันข้อผิดพลาด 3 ข้อคืออะไรคือMultinomial Logistic Loss , Cross Entropy (CE) และSquare Error (SE) ในมุมมองการเรียนรู้แบบมีผู้ดูแล? มีบทความสนับสนุนอะไรบ้าง?


1
เป็นเพียงคำใบ้: ฉันเดาว่าคุณจะได้รับคำตอบที่เร็วขึ้นหากคุณเพิ่มแท็ก "caffe" ในคำถามของคุณ การโพสต์ลงบน stackoverflow แทน stackexchange อาจให้ความสนใจมากขึ้น)
mcExchange

1
y-tการรวมกันทำให้การไล่ระดับสีง่ายต่อการคำนวณเพียง willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

คำตอบ:


11

ในความคิดของฉันฟังก์ชั่นการสูญเสียเป็นฟังก์ชั่นวัตถุประสงค์ที่เราต้องการให้โครงข่ายใยประสาทเทียมของเราเพิ่มน้ำหนักของมันตามนั้น ดังนั้นจึงเป็นงานเฉพาะและยังประจักษ์อย่างใด เพียงเพื่อให้ชัดเจนการสูญเสียโลจิสติก Multinomialและการสูญเสียข้ามเอนโทรปีเหมือนกัน (โปรดดูที่http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ) ฟังก์ชันต้นทุนของการสูญเสียลอจิสติก Multinomialเป็นเช่นนี้ J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

มันมักจะใช้สำหรับปัญหาการจำแนก The Square Errorมีสมการเช่น 12Ni=1Nxi1xi222.

ดังนั้นจึงมักจะใช้เพื่อลดการใช้ข้อผิดพลาดในการก่อสร้าง

แก้ไข: @MartinThoma สูตรด้านบนของการสูญเสียจิสติกส์หลายมิติสำหรับกรณีไบนารีสำหรับกรณีทั่วไปควรเป็นโดยที่ K คือจำนวนหมวดหมู่J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]


2
ใน Caffe MultinomialLogisticLossคือแล้วใครล่ะที่ผิด? 1Nn=1Nlog(pn,ln)
moi

ไม่ผิดเป็นตัวแปรไบนารี่ในที่สุดก็สามารถลดลงในสูตรของคุณ yi
beahacker

ฉันคิดว่าการสูญเสียโลจิสติกของ Multinomail นั้นไม่มีการเรียกที่สองดังนั้นJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma

1
@MartinThoma สูตรของฉันมีไว้สำหรับตัวพิมพ์ใหญ่และตัวพิมพ์ใหญ่โดยทั่วไปควรเป็นJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker

@ beahacker คุณช่วยบอกฉันหน่อยได้ไหมว่าทำไมการสรุปครั้งที่สองไม่รวมอยู่ในกรณี multinominal ตามที่ระบุโดย Martin Thoma ฉันพยายามที่จะเข้าใจว่าทำไมมันถึงทำแบบนั้น อย่างน้อยคุณก็สามารถชี้ให้ฉันดูทรัพยากรบางอย่างได้
Nandeesh

2

ฉันต้องการทราบเพิ่มเติมความแตกต่าง / ข้อดี / ข้อเสียของฟังก์ชันข้อผิดพลาด 3 ข้อนี้คือ Multinomial Logistic Loss, Cross Entropy (CE) และ Square Error (SE) ในมุมมองการเรียนรู้แบบมีผู้ดูแลอย่างไร

การสูญเสียโลจิสติก multinomial เป็น acturally เช่นเดียวกับเอนโทรปีของการข้าม ดูฟังก์ชันนี้ (ฟังก์ชันต้นทุนในsoftmax ): โดยที่ m คือหมายเลขตัวอย่าง K คือหมายเลขคลาส

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

ฟังก์ชั่นตัวบ่งชี้ ( ) กำหนดว่าตะโกนเป็น 0 หรือ 1 ในคำนิยามของเอนโทรปีของการไขว้ซึ่งถูกระบุว่าเป็นหนึ่งร้อนในข้อมูลการฝึกอบรมและคือความเป็นไปได้ตามเงื่อนไขของ softmax (q (x) ดังที่แสดงด้านล่าง) 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

และ MSE ส่วนใหญ่สำหรับสถานการณ์ที่ฟังก์ชันลิงก์เป็นฟังก์ชันเอกภาพ (การแจกแจงการตอบสนองตามการแจกแจงปกติ), การถดถอยเชิงเส้นมาตรฐานในขณะที่เอนโทรปีข้ามเป็นปกติสำหรับที่ฟังก์ชันลิงก์เป็นฟังก์ชัน logit นี่คือการเปรียบเทียบที่ยอดเยี่ยมที่คุณสามารถอ้างอิงได้

มีบทความสนับสนุนอะไรบ้าง?

ยกเว้นที่อยู่ในลิงก์แนะนำให้คุณอธิบายสิ่งนี้: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md


1
MSE ที่ใช้กับตัวจําแนก (ไบนารี) เรียกว่าคะแนน Brier
เดฟ

0

คำตอบสั้น ๆ ตามคำตอบอื่น ๆ การสูญเสียโลจิสติก Multinomial และการสูญเสียข้ามเอนโทรปีเหมือนกัน

Cross Entropy Loss เป็นฟังก์ชั่นค่าใช้จ่ายทางเลือกสำหรับ NN พร้อมฟังก์ชั่นการเปิดใช้งาน sigmoids ที่นำมาใช้เพื่อกำจัดการพึ่งพาในสมการการปรับปรุง บางครั้งเทอมนี้จะทำให้กระบวนการเรียนรู้ช้าลง วิธีการอื่นเป็นฟังก์ชั่นค่าใช้จ่ายปกติσ

ในเครือข่ายประเภทนี้อาจต้องการความน่าจะเป็นเป็นผลลัพธ์ แต่สิ่งนี้ไม่ได้เกิดขึ้นกับ sigmoids ในเครือข่าย multinomial ฟังก์ชั่น softmax normalizes เอาท์พุทและบังคับให้พวกเขาในช่วง[0,1]สิ่งนี้มีประโยชน์เช่นในการจำแนกประเภทของ MNIST[0,1]

คำตอบที่ยาวพร้อมกับข้อมูลเชิงลึกบางอย่าง

คำตอบนั้นค่อนข้างยาว แต่ฉันจะพยายามสรุป

เซลล์ประสาทเทียมที่ทันสมัยแห่งแรกที่ถูกใช้คือ sigmoids ซึ่งมีหน้าที่คือ:

σ(x)=11+ex
ซึ่งมีรูปร่างดังต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

เส้นโค้งเป็นสิ่งที่ดีเพราะมันรับประกันการส่งออกอยู่ในช่วง[0,1][0,1]

เกี่ยวกับทางเลือกของฟังก์ชั่นค่าใช้จ่ายตัวเลือกโดยธรรมชาติคือฟังก์ชันค่าใช้จ่ายกำลังสองซึ่งรับประกันว่าจะมีอนุพันธ์อยู่และเรารู้ว่ามันมีค่าน้อยที่สุด

ทีนี้ลองพิจารณา NN ด้วย sigmoids ที่ฝึกด้วยฟังก์ชั่นค่าใช้จ่ายกำลังสองกับเลเยอร์L

เรากำหนดฟังก์ชันต้นทุนเป็นผลรวมของข้อผิดพลาดกำลังสองในเลเยอร์ผลลัพธ์สำหรับชุดของอินพุต :X

C=12NxNj=1K(yj(x)ajL(x))2

โดยเป็นเซลล์ประสาท j-th ในเลเยอร์เอาต์พุต ,เอาต์พุตที่ต้องการและคือจำนวนตัวอย่างการฝึกอบรมajLLyjN

เพื่อความง่ายลองพิจารณาข้อผิดพลาดสำหรับอินพุตเดี่ยว:

C=j=1K(yj(x)ajL(x))2

ตอนนี้เอาต์พุตการเปิดใช้งานของสำหรับเซลล์ประสาทในชั้น ,คือ:jaj

aj=kwjkaj1+bj=wjaj1+bj

เวลาส่วนใหญ่ (ถ้าไม่เสมอไป) NN ได้รับการฝึกฝนด้วยเทคนิคการไล่ระดับสีแบบหนึ่งซึ่งโดยทั่วไปประกอบด้วยการปรับปรุงน้ำหนักและอคติโดยการก้าวเล็ก ๆ ไปสู่ทิศทางของการย่อเล็กสุด เป้าหมายคือการใช้การเปลี่ยนแปลงเล็กน้อยในน้ำหนักและอคติต่อทิศทางที่ลดฟังก์ชั่นค่าใช้จ่ายwb

สำหรับขั้นตอนเล็ก ๆ การเก็บต่อไปนี้:

ΔCCviΔvi

ของเราคือน้ำหนักและอคติ เป็นฟังก์ชั่นมันมีค่าใช้จ่ายที่เราต้องการที่จะลดคือหาค่าที่เหมาะสมv_i สมมติว่าเราเลือกแล้ว: viΔvi

Δvi=ηCvi
ΔCη(Cvi)

ซึ่งหมายถึงการเปลี่ยนแปลงในพารามิเตอร์ลดลงฟังก์ชั่นค่าใช้จ่ายโดยCΔviΔC

พิจารณาเซลล์ประสาทเอาท์พุท -th:j

C=12(y(x)ajL(x)2
ajL=σ=11+e(wjaj1+bj)

สมมติว่าเราต้องการอัปเดตน้ำหนักซึ่งเป็นน้ำหนักจากเซลล์ประสาทในชั้นเป็นเซลล์ประสาท -th ในชั้น \ ell จากนั้นเรามี:wjkk1j

wjkwjkηCwjk
bjbjηCbj

การใช้อนุพันธ์โดยใช้กฎลูกโซ่:

Cwjk=(ajL(x)y(x))σak1
Cbj=(ajL(x)y(x))σ

คุณจะเห็นการพึ่งพาอนุพันธ์ของ sigmoid ที่ (ในแรก wrtในครั้งที่สอง WRTจริง แต่มันไม่ได้เปลี่ยนแปลงมากตั้งแต่ทั้งสองเป็นเลขยกกำลัง)wb

ตอนนี้อนุพันธ์สำหรับตัวแปรเดี่ยวทั่วไป sigmoidคือ: z

dσ(z)dz=σ(z)(1σ(z))

ทีนี้ลองพิจารณาเอาท์พุทนิวรอนออกมาและสมมติว่านิวรอนควรเอาท์พุทแทนมันจะให้ค่าใกล้เคียงกับ : คุณจะเห็นทั้งสองจากกราฟที่ซิกกอยด์สำหรับค่าใกล้เคียงคือแบนนั่นคืออนุพันธ์ของมันใกล้คือการปรับปรุงของพารามิเตอร์ช้ามาก (ตั้งแต่สมการปรับปรุงขึ้นอยู่กับซิก'0110σ

แรงจูงใจของฟังก์ชั่นข้ามเอนโทรปี

หากต้องการดูว่าการข้ามเอนโทรปีได้รับมาอย่างไรสมมติว่ามีใครเพิ่งค้นพบว่าคำว่ากำลังทำให้กระบวนการเรียนรู้ช้าลง เราอาจสงสัยว่าเป็นไปได้หรือไม่ที่จะเลือกฟังก์ชั่นต้นทุนเพื่อทำให้คำว่า หายไป โดยทั่วไปอาจต้องการ:σσ

Cw=x(ay)Cb=(ay)
จาก chain-rule เรามี: เปรียบเทียบสมการที่ต้องการกับหนึ่งในกฎลูกโซ่หนึ่งได้รับ ใช้วิธีการปกปิด:
Cb=Caab=Caσ(z)=Caσ(1σ)
Ca=aya(1a)
Ca=[ylna+(1y)ln(1a)]+const
เพื่อให้ได้ฟังก์ชั่นราคาเต็มเราจะต้องเฉลี่ยตัวอย่างการฝึกอบรม โดยที่ค่าคงที่นี่คือค่าเฉลี่ยของค่าคงที่แต่ละค่าสำหรับแต่ละตัวอย่างการฝึกอบรม
Ca=1nx[ylna+(1y)ln(1a)]+const

มีวิธีมาตรฐานในการตีความเอนโทรปีที่มาจากสาขาทฤษฎีข้อมูล โดยคร่าวๆความคิดก็คือการข้ามเอนโทรปีเป็นสิ่งที่น่าประหลาดใจ เราได้รับความประหลาดใจต่ำถ้าผลลัพธ์คือสิ่งที่เราคาดหวัง ( ) และความประหลาดใจสูงถ้าผลลัพธ์ไม่คาดคิดay

Softmax

สำหรับการจำแนกเลขฐานสองข้ามเอนโทรปีมีลักษณะคล้ายกับนิยามในทฤษฎีข้อมูลและค่ายังสามารถตีความได้ว่าเป็นความน่าจะเป็น

ด้วยการจำแนกพหุนามนี้ไม่ถือเป็นจริงอีกต่อไป: เอาท์พุททำผลรวมทราบถึง11

หากคุณต้องการให้พวกเขาที่จะสรุปถึงคุณใช้ฟังก์ชัน softmax ซึ่งปกติเอาท์พุทเพื่อให้รวมเป็น111

นอกจากนี้หากเลเยอร์เอาท์พุทประกอบด้วยฟังก์ชั่น softmax คำที่ชะลอตัวลงจะไม่ปรากฏ หากคุณใช้ฟังก์ชั่นบันทึกค่าความน่าจะเป็นกับชั้นเอาต์พุต softmax ผลลัพธ์ที่คุณจะได้รับรูปแบบของอนุพันธ์บางส่วนและจากสมการการปรับปรุงคล้ายกับที่พบสำหรับฟังก์ชั่นข้ามเอนโทรปีกับเซลล์ประสาท sigmoid

อย่างไรก็ตาม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.