เพียงแค่เพิ่มคำอธิบายนี้เพื่อให้ทุกคนที่เลื่อนลงมาอย่างน้อยสามารถทำให้ถูกต้องได้เนื่องจากมีคำตอบที่ผิดจำนวนมากขึ้น
Diansheng ของคำตอบและ JakeJ ของคำตอบที่ได้รับมันขวา
คำตอบใหม่โพสต์โดย Shital Shah เป็นคำตอบที่ดียิ่งขึ้นและสมบูรณ์ยิ่งขึ้น
ใช่logit
เป็นฟังก์ชันทางคณิตศาสตร์ในสถิติแต่การlogit
ใช้ในบริบทของเครือข่ายประสาทเทียมนั้นแตกต่างกัน สถิติlogit
ไม่ได้ทำให้รู้สึกใด ๆ ที่นี่
ฉันไม่สามารถหาคำจำกัดความที่เป็นทางการได้ทุกที่ แต่logit
โดยทั่วไปหมายถึง:
การคาดการณ์แบบดิบซึ่งออกมาจากชั้นสุดท้ายของโครงข่ายประสาท
1. นี่คือเมตริกซ์ที่คุณใช้argmax
ฟังก์ชั่นเพื่อรับคลาสที่ทำนายไว้
2. นี่คือเมตริกซ์ที่คุณป้อนเข้าไปในsoftmax
ฟังก์ชันเพื่อรับความน่าจะเป็นสำหรับคลาสที่ทำนายไว้
นอกจากนี้จากการสอนเกี่ยวกับเว็บไซต์อย่างเป็นทางการของ tensorflow:
Logits Layer
เลเยอร์สุดท้ายในเครือข่ายประสาทของเราคือเลเยอร์การบันทึกซึ่งจะคืนค่าดิบสำหรับการคาดการณ์ของเรา เราสร้างเลเยอร์หนาแน่นที่มี 10 เซลล์ประสาท (หนึ่งสำหรับแต่ละชั้นเป้าหมาย 0–9) ด้วยการเปิดใช้งานเชิงเส้น (เริ่มต้น):
logits = tf.layers.dense(inputs=dropout, units=10)
หากคุณยังสับสนสถานการณ์จะเป็นดังนี้:
raw_predictions = neural_net(input_layer)
predicted_class_index_by_raw = argmax(raw_predictions)
probabilities = softmax(raw_predictions)
predicted_class_index_by_prob = argmax(probabilities)
ที่ไหนpredicted_class_index_by_raw
และpredicted_class_index_by_prob
จะเท่ากัน
ชื่ออีกraw_predictions
logit
ในรหัสข้างต้นนี้
สำหรับเหตุผลที่ logit
... ฉันไม่มีความคิด ขอโทษ
[แก้ไข: ดูคำตอบสำหรับแรงจูงใจทางประวัติศาสตร์ที่อยู่เบื้องหลังคำนี้]
เรื่องไม่สำคัญ
แม้ว่าถ้าคุณต้องการคุณสามารถใช้สถิติlogit
กับฟังก์ชั่นที่probabilities
ออกมาsoftmax
ถ้าน่าจะเป็นของชั้นหนึ่งคือp
,
จากนั้นเข้าสู่ระบบอัตราต่อรองL = logit(p)
ของการเรียนที่เป็น
นอกจากนี้ความน่าจะเป็นของคลาสนั้นสามารถกู้คืนได้p = sigmoid(L)
โดยใช้sigmoid
ฟังก์ชัน
ไม่มีประโยชน์อย่างมากในการคำนวณอัตราต่อรองแม้ว่า