راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

softmax، آنتروپی متقاطع و گرادیانش

لایه‌ی خروجی یک طبقه‌بند MM کلاسه، برای هر نمونه MM عدد Z1,…,ZMZ_1, \dots, Z_M می‌دهد. softmax آن‌ها را احتمال می‌کند و آنتروپی متقاطع زیان است:

pm=eZm∑leZlL=−1n∑i=1nlog⁡pi,yip_m = \frac{e^{Z_m}}{\sum_{l}e^{Z_l}} \qquad L = -\frac{1}{n}\sum_{i=1}^{n}\log p_{i, y_i}

گرادیان زیان نسبت به ZZ شکل بسیار ساده‌ای دارد: ∂L∂Zim=1n(pim−I(yi=m))\dfrac{\partial L}{\partial Z_{im}} = \dfrac{1}{n}\big(p_{im} - I(y_i = m)\big).

تابع softmax_xent(Z, y) (با yy شماره‌ی کلاس‌ها از صفر) آرایه‌ای برمی‌گرداند: اول LL، بعد ماتریس گرادیان سطر به سطر و پشت‌سرهم. برای پایداری عددی، پیش از توان بیشینه‌ی هر سطر را از آن کم کنید — جواب عوض نمی‌شود و exp(1000) بی‌نهایت نمی‌شود.

نمونه‌ها

ورودی نمونه ۱
[[[2.0, 1.0, 0.1]], [0]]
خروجی نمونه ۱
[0.417, -0.341, 0.2424, 0.0986]
ورودی نمونه ۲
[[[1.0, 2.0], [3.0, -1.0]], [1, 1]]
خروجی نمونه ۲
[2.1657, 0.1345, -0.1345, 0.491, -0.491]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود