ในตัวแยกประเภท softmax ทำไมต้องใช้ฟังก์ชั่น exp เพื่อทำให้เป็นมาตรฐาน?


30

เหตุใดจึงต้องใช้ softmax เมื่อเทียบกับการปรับมาตรฐาน ในพื้นที่แสดงความคิดเห็นของคำตอบยอดนิยมของคำถามนี้ @Kilian Batzner ยกคำถาม 2 ข้อซึ่งทำให้ฉันสับสนมาก ดูเหมือนว่าไม่มีใครให้คำอธิบายยกเว้นผลประโยชน์เชิงตัวเลข

ฉันได้รับเหตุผลในการใช้ Cross-Entropy Loss แต่นั่นเกี่ยวข้องกับ softmax อย่างไร คุณกล่าวว่า "ฟังก์ชั่น softmax สามารถมองเห็นได้ว่าพยายามลดการข้ามเอนโทรปีระหว่างการทำนายและความจริง" สมมติว่าฉันจะใช้การทำให้เป็นมาตรฐาน / เชิงเส้น แต่ยังคงใช้การสูญเสียข้าม จากนั้นฉันก็จะพยายามลด Cross-Entropy ดังนั้น softmax จะเชื่อมโยงกับ Cross-Entropy อย่างไรเพื่อประโยชน์ด้านตัวเลข?

สำหรับมุมมองความน่าจะเป็น: อะไรคือแรงจูงใจในการดูความน่าจะเป็นของบันทึก เหตุผลดูเหมือนจะเป็นแบบ "เราใช้ e ^ x ใน softmax เพราะเราตีความว่า x เป็นความน่าจะเป็นบันทึก" ด้วยเหตุผลเดียวกับที่เราสามารถพูดได้เราใช้ e ^ e ^ e ^ x ใน softmax เพราะเราตีความว่า x เป็นความน่าจะเป็นล็อก - ล็อก - ล็อก (แน่นอนเกินจริงที่นี่) ฉันได้รับประโยชน์เชิงตัวเลขของ softmax แต่แรงจูงใจเชิงทฤษฎีสำหรับการใช้มันคืออะไร


มันเป็นความแตกต่างนำไปสู่ผลลัพธ์ที่ไม่เป็นลบ (เช่นจำเป็นสำหรับความน่าจะเป็นดังนั้นการคำนวณเอนโทรปีสามารถคำนวณได้) และทำหน้าที่เหมือนฟังก์ชันสูงสุดซึ่งเหมาะสมในการจัดหมวดหมู่ ยินดีต้อนรับสู่เว็บไซต์!
Emre

@ ขอบคุณมาก! แต่ "พฤติกรรมเช่นฟังก์ชั่นสูงสุด" หมายความว่าอะไร? นอกจากนี้หากฉันมีฟังก์ชั่นอื่นที่ยังหาอนุพันธ์ได้เพิ่มขึ้นเสียงเดียวและนำไปสู่ผลลัพธ์ที่ไม่เป็นลบฉันสามารถใช้ฟังก์ชันนี้เพื่อแทนที่ฟังก์ชัน exp ในสูตรได้หรือไม่
ฮันส์

เมื่อคุณกลับสู่สภาวะปกติโดยใช้อาร์กิวเมนต์ที่ยิ่งใหญ่ที่สุดจะถูกแมปเป็น 1 ในขณะที่ส่วนที่เหลือถูกแมปเป็นศูนย์เนื่องจากการเติบโตของ fuction แบบเลขชี้กำลัง max
Emre

คำตอบ:


37

มันเป็นมากกว่าตัวเลข การแจ้งเตือนอย่างรวดเร็วของ softmax:

P(y=j|x)=exjk=1Kexk

ที่ไหนเป็นเวกเตอร์การป้อนข้อมูลที่มีความยาวเท่ากับจำนวนของการเรียนKฟังก์ชั่น softmax มี 3 คุณสมบัติที่ดีมาก: 1. มันทำให้ข้อมูลของคุณเป็นปกติ (ส่งออกการแจกแจงความน่าจะเป็นที่เหมาะสม), 2. สามารถสร้างความแตกต่างได้และ 3. จะใช้ exp ที่คุณกล่าวถึง ประเด็นสำคัญบางประการ:xK

  1. ฟังก์ชั่นการสูญเสียไม่เกี่ยวข้องโดยตรงกับ softmax คุณสามารถใช้การปรับสภาพมาตรฐานและยังคงใช้การข้ามเอนโทรปีได้

  2. ฟังก์ชั่น "hardmax" (เช่น argmax) ไม่สามารถหาอนุพันธ์ได้ softmax ให้ความน่าจะเป็นอย่างน้อยที่สุดกับองค์ประกอบทั้งหมดในเวกเตอร์เอาต์พุตและมีความแตกต่างกันอย่างมากดังนั้นคำว่า "soft" ใน softmax

  3. ตอนนี้ฉันได้รับคำถามของคุณ ใน softmax เป็นฟังก์ชั่นการชี้แจงธรรมชาติ ก่อนที่เราจะทำให้เป็นมาตรฐานเราแปลงดังกราฟของ :exex

ฟังก์ชันเลขชี้กำลังธรรมชาติ

ถ้าเป็น 0 ดังนั้นถ้าเป็น 1 ดังนั้นและถ้าเป็น 2 ตอนนี้ ! ขั้นตอนใหญ่! นี่คือสิ่งที่เรียกว่าการแปลงแบบไม่เป็นเชิงเส้นของคะแนนบันทึกที่ผิดปกติของเรา คุณสมบัติที่น่าสนใจของฟังก์ชันเลขชี้กำลังรวมกับการปรับสภาพในซอฟต์แม็กซ์คือการที่คะแนนสูงในกลายเป็นความน่าจะเป็นมากกว่าคะแนนต่ำxy=1xy=2.7xy=7x

ตัวอย่าง Sayและคะแนนบันทึกของคุณคือเวกเตอร์1] ฟังก์ชั่นของ argmax ง่าย ๆ :K=4x[2,4,2,1]

[0,1,0,0]

argmax คือเป้าหมาย แต่มันไม่แตกต่างกันและเราไม่สามารถฝึกแบบจำลองของเรากับมันได้ :( การทำให้เป็นมาตรฐานแบบธรรมดา

[0.2222,0.4444,0.2222,0.1111]

มันไกลจาก argmax มากจริงๆ! :( โดยที่เอาต์พุต softmax:

[0.1025,0.7573,0.1025,0.0377]

นั่นใกล้กับ argmax มาก! เนื่องจากเราใช้เลขชี้กำลังเป็นธรรมชาติเราจึงเพิ่มความน่าจะเป็นของคะแนนที่ใหญ่ที่สุดและลดความน่าจะเป็นของคะแนนที่ต่ำลงเมื่อเทียบกับการทำให้เป็นมาตรฐานแบบปกติ ดังนั้น "max" ใน softmax


3
ข้อมูลที่ดี อย่างไรก็ตามแทนที่จะใช้eสิ่งที่เกี่ยวกับการใช้ค่าคงที่พูด 3 หรือ 4? ผลลัพธ์จะเหมือนกันหรือไม่
Cheok Yan Cheng

7
@CheokYanCheng ใช่ แต่eมีอนุพันธ์ที่ดีกว่า;)
vega

ฉันได้เห็นแล้วว่าผลลัพธ์ของ softmax มักถูกใช้เป็นความน่าจะเป็นของแต่ละชั้นเรียน หากการเลือก 'e' แทนค่าคงที่อื่นเป็นแบบสุ่มมันไม่สมเหตุสมผลเลยที่จะเห็นมันในแง่ของความน่าจะเป็นใช่มั้ย
javierdvalle

@vega ขออภัย แต่ฉันยังคงไม่เห็นวิธีการที่ตอบคำถาม: ทำไมไม่ใช้ e ^ e ^ e ^ e ^ e ^ e ^ x ด้วยเหตุผลเดียวกันมาก? โปรดอธิบาย
Gulzar

@ jalle มันไม่eได้แปลว่าน่าจะเป็นความจริงมันเป็นความจริงที่องค์ประกอบของเอาต์พุต softmax แต่ละอันถูก จำกัด ขอบเขตใน [0,1] และผลรวมทั้งหมดเป็น 1
vega

2

นอกจากคำอธิบายของ vega แล้ว

ให้นิยาม softmax ทั่วไป: โดยที่เป็นค่าคงที่> = 1

P(y=j|x)=ψxjk=1Kψxk
ψ

ถ้าว่าคุณอยู่ไกลจาก argmax ที่ @vega พูดถึงψ=1

ทีนี้สมมติว่าตอนนี้คุณค่อนข้างใกล้กับ argmax แล้ว แต่คุณก็มีจำนวนน้อยมากสำหรับค่าลบและตัวเลขขนาดใหญ่สำหรับผลบวก ตัวเลขนี้ล้นจุดลอยขีด จำกัด ทางคณิตศาสตร์ได้อย่างง่ายดาย (ตัวอย่างเช่นขีด จำกัด สูงสุดของ float64 numpy เป็น ) นอกจากนั้นแม้ว่าการเลือกคือซึ่งน้อยกว่ากรอบการทำงานควรใช้ softmax เวอร์ชันที่เสถียรยิ่งขึ้น (คูณทั้งตัวเศษและตัวหารด้วยค่าคงที่ ) เนื่องจากผลลัพธ์กลายเป็นเล็กเพื่อให้สามารถแสดงได้ ด้วยความแม่นยำดังกล่าวψ=10010308ψ=e100C

ดังนั้นคุณต้องการเลือกค่าคงที่ขนาดใหญ่พอที่จะประมาณค่าอาร์กแมกซ์ได้ดีและยังมีขนาดเล็กพอที่จะแสดงตัวเลขขนาดใหญ่และขนาดเล็กเหล่านี้ในการคำนวณ

และแน่นอนว่าก็มีอนุพันธ์ที่ดีงามเช่นกันe


2

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

ฉันจะอธิบายสิ่งนี้โดยใช้ตัวอย่างกับรูปภาพรูปซึ่งประกอบด้วยรูปภาพจากคลาส ,รูปภาพจากคลาส , ... และภาพจากชั้นเรียน\จากนั้นเราคิดว่าเครือข่ายประสาทของเราสามารถนำการแปลงแบบไม่เชิงเส้นมาใช้กับภาพของเราได้เช่นเราสามารถกำหนด 'ระดับพลังงาน'ให้กับทุกชั้นเรียน เราคิดว่าพลังงานนี้อยู่ในระดับไม่เชิงเส้นซึ่งทำให้เราสามารถแยกภาพเป็นเส้นตรงได้Nn1C1n2C2nKCKEk

ค่าเฉลี่ยพลังงานเกี่ยวข้องกับพลังงานอื่น ๆโดยความสัมพันธ์ต่อไปนี้ E¯Ek

NE¯=k=1KnkEk.()

ในเวลาเดียวกันเราจะเห็นว่าจำนวนภาพทั้งหมดสามารถคำนวณได้ดังต่อไปนี้

N=k=1Knk.()

แนวคิดหลักของหลักการเอนโทรปีสูงสุดคือจำนวนภาพในคลาสที่สอดคล้องกันมีการกระจายในลักษณะที่ว่าจำนวนชุดค่าผสมที่เป็นไปได้ของการกระจายพลังงานที่กำหนดจะถูกขยายให้ใหญ่สุด เพื่อให้มันง่ายขึ้นระบบจะไม่เข้าสู่สถานะที่เรามีคลาสเท่านั้น แต่จะไม่เข้าสู่สถานะที่เรามีจำนวนภาพเท่ากันในแต่ละชั้น แต่ทำไมถึงเป็นเช่นนั้น? หากภาพทั้งหมดอยู่ในชั้นเดียวระบบจะมีเอนโทรปีต่ำมาก กรณีที่สองก็จะเป็นสถานการณ์ที่ผิดธรรมชาติมาก มีโอกาสมากที่เราจะมีภาพมากขึ้นด้วยพลังงานปานกลางและภาพน้อยลงด้วยพลังงานสูงและต่ำมากn1

เอนโทรปีเพิ่มขึ้นตามจำนวนชุดค่าผสมที่เราสามารถแบ่งภาพเป็นคลาสภาพ , , ... ,ด้วยพลังงานที่สอดคล้องกัน จำนวนชุดค่าผสมนี้ได้รับจากค่าสัมประสิทธิ์พหุนามNn1n2nK

(N!n1!,n2!,,nK!)=N!k=1Knk!.

เราจะพยายามที่จะเพิ่มจำนวนนี้สมมติว่าเรามีภาพมากอนันต์\ แต่การขยายให้ใหญ่สุดของเขาก็มีข้อ จำกัด ด้านความเท่าเทียมกันและด้วย การเพิ่มประสิทธิภาพประเภทนี้เรียกว่าการเพิ่มประสิทธิภาพแบบ จำกัด เราสามารถแก้ปัญหานี้เชิงวิเคราะห์ได้โดยใช้วิธีการคูณลากรองจ์ เราแนะนำตัวคูณ Lagrangeและสำหรับข้อ จำกัด ของความเสมอภาคและเราแนะนำ Lagrange Funktionขวา)N()()βαL(n1,n2,,nk;α,β)

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

เมื่อเราสันนิษฐานว่าเราสามารถสมมติและใช้การประมาณค่าสเตอร์ลิงสำหรับแฟคทอเรียลNnk

lnn!=nlnnn+O(lnn).

โปรดทราบว่าการประมาณนี้ (สองคำแรก) เป็นเพียงแบบไม่แสดงให้เห็นว่าไม่ได้หมายความว่าการประมาณนี้จะมาบรรจบกันที่สำหรับ\lnn!n

อนุพันธ์บางส่วนของฟังก์ชัน Lagrange ที่มีความเคารพจะส่งผลให้nk~

Lnk~=lnnk~1α+βEk~.

ถ้าเราตั้งอนุพันธ์ย่อยบางส่วนนี้เป็นศูนย์เราสามารถหาได้

nk~=exp(βEk~)exp(1+α).()

หากเราใส่กลับเข้าไปในเราจะได้รับ()

exp(1+α)=1Nk=1Kexp(βEk).

หากเราใส่กลับเข้าไปในเราจะได้สิ่งที่ควรเตือนเราเกี่ยวกับฟังก์ชั่น softmax()

nk~=exp(βEk~)1Nk=1Kexp(βEk).

ถ้าเรานิยามเป็นความน่าจะเป็นของคลาสโดยเราจะได้อะไรที่คล้ายกับฟังก์ชัน softmax จริงๆnk~/NCk~pk~

pk~=exp(βEk~)k=1Kexp(βEk).

ดังนั้นสิ่งนี้แสดงให้เราเห็นว่าฟังก์ชั่น softmax เป็นฟังก์ชั่นที่เพิ่มเอนโทรปีในการกระจายภาพ จากจุดนี้มันเหมาะสมที่จะใช้สิ่งนี้เป็นการกระจายของภาพ หากเราตั้งค่าเราจะได้คำจำกัดความของฟังก์ชั่น softmax สำหรับเอาต์พุตβEk~=wkTxkth

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