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

آنتروپی متقاطع از لوجیت‌ها

nn.CrossEntropyLoss (یا F.cross_entropy) خروجی خام شبکه — لوجیت‌ها، نه احتمال — را می‌گیرد و softmax را خودش، به شکل پایدار، حساب می‌کند. تابع cross_entropy(Z, target, eps) همان را می‌سازد: Z ماتریس n×Cn \times C لوجیت‌ها، target برچسب هر نمونه (عددهای 00 تا C−1C - 1، که به‌صورت اعشاری می‌رسند) و eps ضریب هموارسازی برچسب (label_smoothing).

لگاریتم softmax را با کم کردن بیشینه‌ی هر ردیف حساب کنید تا لوجیت‌های بزرگ (مثل ۱۰۰۰) سرریز نکنند:

log⁡pik=zik−mi−log⁡∑jezij−mimi=max⁡jzij\log p_{ik} = z_{ik} - m_i - \log\sum_{j}e^{z_{ij} - m_i} \qquad m_i = \max_j z_{ij}

با هموارسازی، هدف دیگر یک‌داغ نیست: 1−ϵ1 - \epsilon از وزن روی کلاس درست است و ϵ\epsilon به‌طور مساوی بین همه‌ی CC کلاس پخش می‌شود:

ℓi=−(1−ϵ)log⁡pi,yi−ϵC∑k=1Clog⁡pikL=1n∑iℓi\ell_i = -(1 - \epsilon)\log p_{i,y_i} - \frac{\epsilon}{C}\sum_{k=1}^{C}\log p_{ik} \qquad L = \frac{1}{n}\sum_i \ell_i

خروجی: عدد LL.

نمونه‌ها

ورودی نمونه ۱
[[[0.69, 1.64, 0.66], [-2.61, 1.81, 0.89], [-1.07, 1.16, 0.73]], [0.0, 0.0, 2.0], 0.0]
خروجی نمونه ۱
2.4249

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

ورود