ฉันรู้สึกไม่ดีเล็กน้อยเกี่ยวกับการให้คำตอบของตัวเองสำหรับเรื่องนี้เพราะมันค่อนข้างดีที่จับโดยอะมีบาและ Juampa ยกเว้นบางทีสัญชาตญาณสุดท้ายเกี่ยวกับวิธีที่Jacobian สามารถลดกลับไปเป็นเวกเตอร์
คุณได้รับการไล่ระดับสีในแนวทแยงของเมทริกซ์จาโคเบียนอย่างถูกต้องซึ่งคุณต้องบอกว่า
∂hi∂zj=hi(1−hj):i=j
และตามที่อะมีบากล่าวไว้คุณต้องได้รับการบันทึกในแนวทแยงของยาโคเบียนซึ่งเป็นผล
∂hi∂zj=−hihj:i≠j
คำจำกัดความของแนวคิดทั้งสองนี้สามารถรวมกันได้อย่างสะดวกโดยใช้โครงสร้างที่เรียกว่าKronecker Deltaดังนั้นคำจำกัดความของการไล่ระดับสีจะกลายเป็น
∂hi∂zj=hi(δij−hj)
ดังนั้น Jacobian จึงเป็นเมทริกซ์[J]ij=hi(δij−hj)
ข้อมูลทั้งหมดจนถึงจุดนี้ได้รับการคุ้มครองโดยอะมีบาและ juampa แล้ว แน่นอนว่าปัญหาคือเราต้องได้รับข้อผิดพลาดในการป้อนข้อมูลจากข้อผิดพลาดของผลลัพธ์ที่คำนวณแล้ว เนื่องจากการไล่ระดับสีของข้อผิดพลาดเอาท์พุทขึ้นอยู่กับอินพุตทั้งหมดดังนั้นการไล่ระดับสีของอินพุตจึงเป็น∇hixi
[∇x]k=∑i=1∇hi,k
เมื่อพิจารณาจากเมทริกซ์จาโคเบียนที่กำหนดไว้ด้านบนสิ่งนี้จะถูกนำมาใช้เล็กน้อยเป็นผลคูณของเมทริกซ์และเวกเตอร์ข้อผิดพลาดเอาต์พุต:
σl→=Jσl+1→
หากเลเยอร์ softmax เป็นเลเยอร์เอาท์พุทของคุณให้รวมเข้ากับโมเดล Cross-Entropy Cost ทำให้การคำนวณง่ายขึ้น
σl→=h⃗ −t⃗
โดยที่เป็นเวกเตอร์ของฉลากและเป็นเอาต์พุตจากฟังก์ชัน softmax ไม่เพียง แต่เป็นรูปแบบที่ทำให้สะดวกเท่านั้น แต่ยังมีประโยชน์อย่างมากจากจุดยืนความมั่นคงเชิงตัวเลขt⃗ h⃗