เหตุใดฟังก์ชัน softmax จึงถูกใช้เพื่อคำนวณความน่าจะเป็นแม้ว่าเราจะสามารถหารแต่ละค่าด้วยผลรวมของเวกเตอร์ได้


20

การใช้ฟังก์ชั่น softmax บนเวกเตอร์จะผลิต "ความน่าจะเป็น" และค่าระหว่างและ1 01

แต่เรายังสามารถแบ่งแต่ละค่าโดยรวมของเวกเตอร์และที่จะผลิตความน่าจะเป็นและค่าระหว่างและ101

ฉันอ่านคำตอบที่นี่แต่มันบอกว่าเหตุผลก็เพราะมันแตกต่างกันถึงแม้ว่าทั้งสองฟังก์ชั่นจะแตกต่างกัน


1
ฉันคิดว่ามันจะดีกว่าถ้าคุณดูการถดถอยโลจิสติกเป็นครั้งแรก 'เป้าหมาย' ของคุณคือเปลี่ยนแบบ monotonicallyเป็น (0,1) นี่คือสิ่งที่ฟังก์ชั่นการขนส่ง โปรดทราบว่าฟังก์ชั่นการแจกแจงสะสม (ความน่าจะเป็น) ใด ๆ ในบรรทัดจริงสามารถใช้งานได้ - ดูการถดถอยแบบโปรบิตซึ่งใช้ฟังก์ชันการแจกแจงแบบปกติ (,)
seanv507

คำตอบ:


36

ฟังก์ชั่นที่คุณเสนอมีความแปลกประหลาดเมื่อผลรวมขององค์ประกอบเป็นศูนย์

สมมติว่าเวกเตอร์ของคุณคือ{3}] เวกเตอร์นี้มีผลรวมเป็น 0 ดังนั้นจึงไม่มีการหาร ฟังก์ชั่นไม่แตกต่างที่นี่[1,13,23]

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

สมมติว่าเวกเตอร์ของคุณคือ2] นี่มีผลรวมเป็น 1 ดังนั้นการใช้ผลการทำงานของคุณในซึ่งไม่ใช่เวกเตอร์ความน่าจะเป็นเพราะมันมีองค์ประกอบเชิงลบและองค์ประกอบที่เกิน 1[1,0,2][1,0,2]

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

การทำสิ่งต่าง ๆ เช่นการรับค่าสัมบูรณ์หรือกำลังสองตามที่แนะนำในความคิดเห็นหมายความว่าและมีความน่าจะเป็นที่คาดการณ์เช่นเดียวกัน วิธีการแบบนี้จะไม่ได้ระบุ โดยคมชัดเป็นบวกต่อเนื่องและสำหรับจริงทั้งหมดดังนั้นผล softmax คือ (1) เวกเตอร์น่าจะเป็นและ (2) รูปแบบโลจิสติกพหุนามมีการระบุxxexp ( x ) xexp(x)x


ขอบคุณมาก. เราสามารถแก้ปัญหาทั้งสองได้โดยหารด้วยผลรวมของค่าสัมบูรณ์ใช่ไหม
ลอยด์

2
ไม่เกิดอะไรขึ้นถ้าคุณรวมค่าสัมบูรณ์ของทั้งสองตัวอย่างแล้วหารด้วยผลรวมนั้น
Sycorax พูดว่า Reinstate Monica

ขอบคุณจริงๆ. ฉันเข้าใจแล้ว. แต่เราสามารถแก้ปัญหานี้ได้โดยใช้ค่าสัมบูรณ์ของตัวเศษหรืออาจคำนวณสำหรับแต่ละค่าในเวกเตอร์ ฉันไม่ได้พยายามที่จะดื้อรั้นฉันแค่พบว่ามันแปลกที่ผู้คนคิดค้นฟังก์ชั่นที่ซับซ้อนแม้ว่าจะมีคนที่ง่ายกว่าในการคำนวณความน่าจะเป็น ฉันไม่รู้คณิตศาสตร์จำนวนมากดังนั้นอาจมีคุณสมบัติทางคณิตศาสตร์อื่น ๆxi2/sum(X2)
ลอยด์

8
ข้อเสนอของคุณยังคงล้มเหลวสำหรับ[0,0,0]เหตุผลเพิ่มเติมสำหรับฟังก์ชั่น softmax เกี่ยวข้องกับคุณสมบัติของมันเป็นลักษณะทั่วไปของการถดถอยโลจิสติกไบนารีกับกรณีของผลลัพธ์ที่หลากหลาย เรามีหัวข้อมากมายเกี่ยวกับเรื่องนี้เช่นstats.stackexchange.com/questions/349418/…[0,0,0]
Sycorax พูดว่า Reinstate Monica

8
นอกจากประเด็นของ Sycorax แล้วให้ใช้หรือไม่มีคุณสมบัติที่ต้องการซึ่งการลดองค์ประกอบเวกเตอร์จะลดการมีส่วนร่วมของความน่าจะเป็น การลดองค์ประกอบด้านลบจะเพิ่มการมีส่วนร่วม มีคุณสมบัติที่ดีที่เอาต์พุตของมันเป็นค่าบวกสำหรับอินพุตจริงทั้งหมดและเป็นโมโนโพนิกของทั้งบรรทัดจริง xi2/jxj2exp ( x )|xi|/j|xj|exp(x)
Bridgeburners

4

Softmax มีสององค์ประกอบ:

  1. เปลี่ยนส่วนประกอบเป็น e ^ x สิ่งนี้ทำให้เครือข่ายประสาททำงานกับความน่าจะเป็นลอการิทึมแทนความน่าจะเป็นแบบปกติ สิ่งนี้เปลี่ยนการดำเนินการทั่วไปของการคูณความน่าจะเป็นเป็นการเพิ่มเติมซึ่งเป็นธรรมชาติมากขึ้นสำหรับโครงสร้างเชิงพีชคณิตเชิงเส้นของโครงข่ายประสาทเทียม

  2. ทำให้ผลรวมปกติเป็น 1 เนื่องจากเป็นความน่าจะเป็นทั้งหมดที่เราต้องการ

ผลที่สำคัญอย่างหนึ่งของเรื่องนี้ก็คือทฤษฎีบทของเบย์นั้นเป็นธรรมชาติมากสำหรับเครือข่ายดังกล่าว

กรณีเล็ก ๆ น้อย ๆ ของเครือข่ายชั้นเดียวที่มีการเปิดใช้งาน softmax เทียบเท่ากับการถดถอยโลจิสติก

กรณีพิเศษของ softmax สององค์ประกอบเทียบเท่ากับการเปิดใช้งาน sigmoid ซึ่งเป็นที่นิยมเมื่อมีเพียงสองคลาส ในซอฟต์แม็กซ์การจำแนกประเภทแบบหลายคลาสจะใช้หากคลาสนั้นไม่ได้เกิดร่วมกันและใช้ sigmoid แบบชาญฉลาดของส่วนประกอบถ้ามันเป็นอิสระ

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