Daftarda nima bor
4 varaq: BCE, Categorical CE, Mashq, Javoblar. Sariq kataklar — kirish qiymatlari, ularni o‘zgartirish mumkin: qolgani o‘zi qayta hisoblanadi. Excel, LibreOffice Calc va Google Sheets’da ochiladi (Fayl → Import).
Daftar istalgan klassifikator chiqishi ortida turgan bitta zanjirni o‘rgatadi: tarmoq logit beradi — $-\infty$ dan $+\infty$ gacha istalgan son, «tarjimon» (ikki sinf uchun sigmoid, $K$ sinf uchun softmax) uni ehtimollikka aylantiradi, va faqat ehtimollik yo‘qotish formulasiga tushadi. Har bir varaq bu zanjirni chapdan o‘ngga bosib o‘tadi va o‘rta qadam tashlab ketilsa nima bo‘lishini ko‘rsatadi.
| Varaq | Ichida nima bor | Nimani o‘rgatadi |
|---|---|---|
| BCE | 4 blok: 5 ta obyekt uchun hisob; o‘sha logitlar sigmoid’siz; jarimaning ikki tarmog‘i jadvali va grafigi; sigmoid logitni qanday siqadi | binary cross-entropy, logitlardan NaN, sigmoid’ning roli |
| Categorical CE | 3 blok: 3 ta sinf uchun hisob; softmax’siz logitlar; $-\ln x$ jadvali va grafigi | categorical cross-entropy, tubsiz manfiy loss, softmax’ning roli |
| Mashq | 3 topshiriq: uchta obyekt uchun BCE, softmax’dan keyingi CE, softmax qo‘lda | o‘zingiz hisoblang; javob yonida ✓ yoki ✗ chiqadi (ruxsat etilgan farq ±0,005) |
| Javoblar | barcha topshiriqlarga namunaviy javoblar — formulalar bilan | yechim yo‘lini solishtirish |
Kataklar ranglari hamma joyda bir xil:
- sariq — kirish qiymatlari: $y$ belgilar va $z$ logitlar, ularni o‘zgartirish mumkin
- havorang — sigmoid yoki softmax «tarjimoni»: alohida qadam, yo‘qotish formulasining qismi emas
- qizil — yo‘qotish formulasining o‘zi; qanchalik och bo‘lsa, qavslar ichida shunchalik chuqur
- yashil va qizil zonalar 3-bloklarda — logarifmlar qayerda mavjud, qayerda yo‘q
Bo‘limlar daftar varaqlari va bloklari tartibida. Sahifadagi barcha sonlar fayldagi o‘sha kirish qiymatlaridan hisoblangan va u bilan uchinchi xonagacha mos keladi. Har bir varaq ostida — «Daftar brauzerda»: o‘sha hisob, uni shu yerning o‘zida o‘zgartirish mumkin. Logarifm hamma joyda natural: $\ln$.
BCE varag‘i: hisob qadamma-qadam
Varaqning 1-blokida binary masalaning beshta obyekti bor: $y=1$ («ha») yoki $y=0$ («yo‘q») belgi va tarmoq bergan $z$ logit. Hisob jadval ustunlari kabi uch qadamdan iborat: kirish → sigmoid → BCE formulasi.
- $y_i$
- $i$ obyekt uchun to‘g‘ri javob: 1 yoki 0
- $z_i$
- logit — tarmoqning «xom» chiqishi, istalgan son
- $\hat y_i=\sigma(z_i)$
- «ha» javobining bashorat qilingan ehtimolligi
- $n$
- obyektlar soni, bu yerda $n=5$
| $i$ | $y$ | logit $z$ | $\hat y=\sigma(z)$ | $y\ln\hat y$ | $(1-y)\ln(1-\hat y)$ | ikkalasining yig‘indisi |
|---|---|---|---|---|---|---|
| 1 | 1 | 2,20 | 0,900 | −0,105 | 0,000 | −0,105 |
| 2 | 0 | −1,40 | 0,198 | 0,000 | −0,220 | −0,220 |
| 3 | 1 | 0,40 | 0,599 | −0,513 | 0,000 | −0,513 |
| 4 | 0 | −0,60 | 0,354 | 0,000 | −0,437 | −0,437 |
| 5 | 1 | 1,40 | 0,802 | −0,220 | 0,000 | −0,220 |
| barcha $i$ bo‘yicha Σ | −1,496 | |||||
| $n$ | 5 | |||||
| BCE = −Σ / n | 0,299 |
Har bir qator tahlili
2-qadam (havorang ustun): $\hat y=1/(1+e^{-z})$. 3-qadam (qizil ustunlar): ikki qo‘shiluvchi va ularning yig‘indisi. Har bir qatorda bitta qo‘shiluvchi $y$ yoki $1-y$ ko‘paytuvchi bilan nolga aylanadi.
Qator 1
Qator 2
Qator 3
Qator 4
Qator 5
Barcha qatorlar yig‘indisi $\Sigma = -1{,}496$, obyektlar $n=5$ ta, shuning uchun $\mathrm{BCE}=-\Sigma/n = -(-1{,}496)/5 = 0{,}299$. Varaqning oxirgi kulrang qatori xuddi shuni boshqa yo‘l bilan — ikkala tarmoq bo‘yicha SUMPRODUCT orqali hisoblaydi va u ham $0{,}299$ beradi.
$y=1$ da $\ln\hat y$, $y=0$ da — $\ln(1-\hat y)$ qoladi. Ya’ni qator jarimasi doim $-\ln$(model to‘g‘ri javobga bergan ehtimollik) ga teng. 1-blokda bu ehtimolliklar $0{,}900$, $0{,}802$, $0{,}599$, $0{,}646$ va $0{,}802$. 2- va 5-qatorlarning jarimasi bir xil, $-0{,}220$: $-1{,}4$ va $1{,}4$ logitlar simmetrik, $\sigma(-z)=1-\sigma(z)$ esa.
Sinab ko‘ring (varaq taklif qilganidek)
- 1-qator logiti: $2{,}2 \to 6$. U holda $\hat y_1 = 0{,}998$, qator jarimasi $0{,}002$ — deyarli nol, BCE esa $0{,}299$ dan $0{,}279$ gacha tushadi.
- 1-qator logiti: $y=1$ da $2{,}2 \to -3$. U holda $\hat y_1 = 0{,}047$, qator jarimasi $3{,}049$ — qolgan to‘rtta qatorning birgalikdagi jarimasidan ($1{,}391$) katta. BCE $0{,}888$ gacha o‘sadi: bitta ishonchli xato qolgan hammasidan og‘irroq.
Sigmoid’siz logitlar
2-blok o‘sha belgilar va logitlarni olib, logitlarni BCE formulasiga to‘g‘ridan-to‘g‘ri beradi — go‘yo $z$ allaqachon ehtimollik. BCE ning ikki tarmog‘i bor, $\ln z$ va $\ln(1-z)$, va hisobda ikkalasi ham mavjud bo‘lishi kerak — keyin nolga ko‘paytiriladigani ham.
| $i$ | $y$ | $z$ | $\ln z$ | $\ln(1-z)$ | $y\ln z+(1-y)\ln(1-z)$ |
|---|---|---|---|---|---|
| 1 | 1 | 2,2 | 0,788 | yo‘q | NaN |
| 2 | 0 | −1,4 | yo‘q | 0,875 | NaN |
| 3 | 1 | 0,4 | −0,916 | −0,511 | −0,916 (tasodifan $(0;1)$ da) |
| 4 | 0 | −0,6 | yo‘q | 0,470 | NaN |
| 5 | 1 | 1,4 | 0,336 | yo‘q | NaN |
Qatorlar bo‘yicha nima chiqdi:
- 1-qator, $z=2{,}2$: $\ln 2{,}2 \approx 0{,}788 > 0$ — teskari ishorali «jarima», $\ln(1-2{,}2)=\ln(-1{,}2)$ esa mavjud emas.
- 2- va 4-qatorlar, $z<0$: $\ln z$ mavjud emas; 5-qator, $z=1{,}4$: $\ln(1-z)$ mavjud emas.
- Faqat 3-qator ($z=0{,}4$) «tasodifan» $(0;1)$ ga tushdi va son berdi: $\ln 0{,}4\approx-0{,}916$. Lekin u ham ma’nosiz: $0{,}4$ — logit, ehtimollik emas; bu yerdagi haqiqiy ehtimollik $\sigma(0{,}4)=0{,}599$.
1-qatorda ikkinchi tarmoq $1-y=0$ ga ko‘paytiriladi va uni hisoblamasa ham bo‘ladigandek tuyuladi. Lekin kompyuter avval logarifmni hisoblaydi, keyin ko‘paytiradi: suzuvchi nuqtali sonlarda $\ln(-1{,}2)=\mathrm{NaN}$, $\ln 0 = -\infty$, $0\cdot\mathrm{NaN}=\mathrm{NaN}$ va $0\cdot(-\infty)=\mathrm{NaN}$. Excel’da bu #NUM! xatosi bo‘lib ko‘rinadi, shuning uchun varaq uni IFERROR bilan ushlaydi va «NaN» deb yozadi.
Bitta shunday qator yetarli: NaN li o‘rtacha — NaN, gradiyentlar — NaN, optimizator qadamidan keyin tarmoq vaznlari ham NaN. O‘qitish «yomon» emas, u o‘lik. Blok natijasi: sigmoid’siz BCE — NaN, sigmoid bilan BCE — 0,299.
Sigmoid ikkala muammoni birdan hal qiladi: $\hat y\in(0;1)$ va $1-\hat y\in(0;1)$, shuning uchun ikkala logarifm doim mavjud va ikkalasi $\le 0$ — demak, har bir jarima $\ge 0$.
Daftar brauzerda
Varaqdagi hisobning o‘zi: sariq kataklarni o‘zgartiring — qolgani qayta hisoblanadi.
Ikki tarmoq va ikki devor
3-blok nega shundayligini tushuntiradi: jadval BCE ning ikkala tarmog‘iga turli $x$ larni qo‘yadi — ehtimolliklarni ham, $(0;1)$ dan tashqaridagi «logit» qiymatlarni ham. Varaqdagi sariq $x$ larni o‘zgartirish mumkin, jadval ostidagi grafik (varaq uni $\hat y$ ning $0{,}02$ dan $0{,}98$ gacha qiymatlari uchun chizadi) ikkala tarmoqni to‘liq ko‘rsatadi.
| $x$ | $y=1$ da: $-\ln x$ | $y=0$ da: $-\ln(1-x)$ | zona |
|---|---|---|---|
| −1 | yo‘q | −0,693 | logit |
| 0 | yo‘q | 0,000 | logit |
| 0,01 | 4,605 | 0,010 | ehtimollik |
| 0,1 | 2,303 | 0,105 | ehtimollik |
| 0,5 | 0,693 | 0,693 | ehtimollik |
| 0,9 | 0,105 | 2,303 | ehtimollik |
| 0,99 | 0,010 | 4,605 | ehtimollik |
| 1 | 0,000 | yo‘q | logit |
| 2 | −0,693 | yo‘q | logit |
| 10 | −2,303 | yo‘q | logit |
BCE ning ikki «devori» bor. $y=1$ tarmog‘i — $-\ln x$ jarima — nol yonida cheksizlikka ketadi: to‘g‘ri javob «ha» bo‘lganda ishonchli «yo‘q». $y=0$ tarmog‘i — $-\ln(1-x)$ jarima — bir yonida cheksizlikka ketadi. Devorlar orasida, $x=0{,}5$ nuqtada, ikkala tarmoq bir xil jarima beradi: $\ln 2 \approx 0{,}693$ — to‘liq ishonchsizlik bahosi.
$(0;1)$ dan tashqarida hammasi buziladi: $x\le0$ da $\ln x$ yo‘q, $x\ge1$ da $\ln(1-x)$ yo‘q, $x>1$ da $y=1$ tarmog‘i manfiy jarima beradi ($x=10$ da u $-\ln 10\approx-2{,}303$ ga teng va tubsiz pasayishda davom etadi), $x<0$ da esa xuddi shunday $y=0$ tarmog‘i «buziladi»: $x=-1$ da uning jarimasi $-\ln 2\approx-0{,}693$. Manfiy loss’ga ruxsat berilgan tarmoq shunchaki logitni kattalashtiradi.
Sigmoid logitni qanday siqadi
4-blok «tarjimon»ning o‘zini ko‘rsatadi. Varaq ustunlari $\hat y = 1/(1+e^{-z})$ formulasining oraliq qadamlari: avval $e^{-z}$, keyin $\hat y$, keyin $1-\hat y$.
| $z$ | $e^{-z}$ | $\hat y=\dfrac{1}{1+e^{-z}}$ | $1-\hat y$ |
|---|---|---|---|
| −10 | 22026,4658 | 0,0000 | 1,0000 |
| −3 | 20,0855 | 0,0474 | 0,9526 |
| −1 | 2,7183 | 0,2689 | 0,7311 |
| 0 | 1,0000 | 0,5000 | 0,5000 |
| 1 | 0,3679 | 0,7311 | 0,2689 |
| 3 | 0,0498 | 0,9526 | 0,0474 |
| 10 | 0,0000 | 1,0000 | 0,0000 |
Nega natija doim $(0;1)$ da: istalgan $z$ da $e^{-z}>0$, demak maxraj $1+e^{-z}>1$ va $0<\hat y<1$. $z=0$ da aynan $\hat y=0{,}5$ — to‘liq ishonchsizlik; katta musbat $z$ lar ishonchli «ha», katta manfiylari — ishonchli «yo‘q» beradi. Jadval simmetrik: $\sigma(-z)=1-\sigma(z)$, shuning uchun $z$ va $-z$ qatorlarida $\hat y$ va $1-\hat y$ ustunlari o‘rin almashadi.
Chuqurroq: «−1000 mi, +1000 mi» — matematikada, lekin kompyuterda emas
Varaq istalgan logitda $\hat y$ qat’iy 0 va 1 orasida qoladi deydi. Matematik jihatdan shunday. Lekin suzuvchi nuqtali sonlarda $z \gtrsim 36{,}74$ da (float64; float32 da allaqachon $z \gtrsim 16{,}64$ da) $e^{-z}$ qo‘shiluvchi birning yonida yo‘qoladi, $\hat y$ aynan $1$ gacha, $1-\hat y$ esa aynan $0$ gacha yaxlitlanadi. $y=0$ da $-\ln(1-\hat y)$ jarima $+\infty$ ga aylanadi.
Boshqa tomondan, $z<-709{,}78$ da $e^{-z}$ to‘lib ketadi: varaqning o‘zida $z=-1000$ qo‘yilsa, butun qatorda #NUM! xatosi chiqadi, $z=1000$ esa aynan $\hat y=1$ va $1-\hat y=0$ beradi.
Shuning uchun kutubxonalar sigmoid va logarifmni alohida hisoblamaydi. Ular jarimani darhol logitdan barqaror ko‘rinishda hisoblaydi: $\max(z,0)-yz+\ln\bigl(1+e^{-|z|}\bigr)$ — nn.BCEWithLogitsLoss shunday qiladi. Bu $-[y\ln\sigma(z)+(1-y)\ln(1-\sigma(z))]$ bilan aynan bir xil son, faqat to‘lib ketishlarsiz.
BCE varag‘i xulosasi
- BCE — bu ikki sinf uchun kross-entropiya, bitta $\hat y$ soni orqali yozilgan: «ha» ehtimolligi $\hat y$, «yo‘q» ehtimolligi — $1-\hat y$.
- Formula faqat $\hat y\in(0;1)$ ni biladi. Logitlar butun to‘g‘ri chiziqda yashaydi: to‘g‘ridan-to‘g‘ri berilsa, NaN yoki teskari ishorali jarima beradi.
- Sigmoid istalgan logitni $(0;1)$ ga siqadi. Ikki sinf uchun softmax aynan sigmoid beradi: $\mathrm{softmax}(z_1,z_2)_1=\sigma(z_1-z_2)$ — bu bitta g‘oya.
- $n$ ga bo‘lish faqat loss batch o‘lchamiga bog‘liq bo‘lmasligi uchun kerak; jarima shaklini $-\ln$ belgilaydi.
- Kodda:
nn.BCEWithLogitsLosslogitlarni kutadi (sigmoid’ni o‘zi bajaradi, sonli jihatdan barqarorroq),nn.BCELoss— tayyor ehtimolliklarni.
Pythonimport numpy as np
# BCE varag‘idagi belgilar va logitlar
y = np.array([1, 0, 1, 0, 1])
z = np.array([2.2, -1.4, 0.4, -0.6, 1.4])
# 2-qadam: sigmoid; 3-qadam: BCE formulasi
p = 1 / (1 + np.exp(-z))
bce = -np.mean(y * np.log(p) + (1 - y) * np.log(1 - p))
print(round(bce, 3)) # 0.299
# xuddi shu logitlardan, barqaror (nn.BCEWithLogitsLoss kabi)
s = np.maximum(z, 0) - z * y + np.log1p(np.exp(-np.abs(z)))
print(round(s.mean(), 3)) # 0.299
# PyTorch:
# nn.BCEWithLogitsLoss() logitlarni kutadi
# nn.BCELoss() ehtimolliklarni kutadi
Categorical CE varag‘i: hisob qadamma-qadam
Ikkinchi varaq — $K=3$ sinf uchun o‘sha zanjir. Kirishda belgilar «bitta issiq» vektor ko‘rinishida (one-hot: $y_k=1$ faqat to‘g‘ri sinfda, bu yerda $k=2$) va uchta logit. Tarjimon — softmax: u logitlarni yig‘indisi 1 ga teng ehtimolliklarga aylantiradi.
- $z_k$
- $k$ sinf logiti
- $\hat y_k=\dfrac{e^{z_k}}{\sum_j e^{z_j}}$
- softmax: $k$ sinf ehtimolligi
- $y_k$
- to‘g‘ri sinfda 1, qolganlarida 0
- $K$
- sinflar soni, bu yerda $K=3$
| $k$ | $y$ | logit $z$ | $\hat y=\mathrm{softmax}(z)$ | $\ln\hat y$ | $y\ln\hat y$ |
|---|---|---|---|---|---|
| 1 | 0 | 1 | 0,231 | −1,464 | 0,000 |
| 2 | 1 | 2 | 0,629 | −0,464 | −0,464 |
| 3 | 0 | 0,5 | 0,140 | −1,964 | 0,000 |
| $\Sigma\hat y$ | 1,000 | Σ | −0,464 | ||
| CE = −Σ | 0,464 |
Havorang ustun va $\ln\hat y$ ustuni sonlari qanday hosil bo‘ladi:
1. Logitlarning eksponentalari va ularning yig‘indisi:
2. Har bir eksponentani yig‘indiga bo‘lamiz — bu softmax. Varaqdagi $\Sigma\hat y = 1$ tekshiruvi istalgan logitlarda doim bajariladi:
3. Ehtimolliklar logarifmlari. $\ln\hat y_k = z_k - \ln\sum_j e^{z_j}$ ekanini va $\ln 11{,}756 = 2{,}464$ ni payqash qulay. Demak, uchala logarifm — logitlardan bitta va o‘sha sonni ayirish:
4. $y\ln\hat y$ ustunida bitta qo‘shiluvchi qoladi — $y=1$ bo‘lgani. Demak, CE — to‘g‘ri sinf ehtimolligining $-\ln$ i (varaqning kulrang qatori aynan shuni tekshiradi):
Bundan CE faqat to‘g‘ri sinf logiti qolganlari fonida qanchalik ajralib turishiga bog‘liqligi ko‘rinadi: $\mathrm{CE}=\ln\sum_j e^{z_j}-z_{\text{to‘g‘ri}}$.
Sinab ko‘ring (varaq taklif qilganidek)
- 2-sinf logiti: $2 \to 5$. U holda $\hat y_2=0{,}971$ va $\mathrm{CE}=0{,}029$ — deyarli nol.
- 2-sinf logiti: $2 \to -2$. U holda $\hat y_2=0{,}030$ va $\mathrm{CE}=3{,}505$ — katta jarima. Ikkala holda ham $\hat y$ yig‘indisi 1 ga teng qoladi.
Softmax’siz logitlar
2-blok yana logitlarni to‘g‘ridan-to‘g‘ri beradi — endi $\mathrm{CE}=-\sum_k y_k\ln z_k$ ga. Bu yerda uchala logit musbat bo‘lib chiqdi, shuning uchun logarifmlar mavjud, lekin natija xatodan ham yomon: softmax’siz CE $= -\ln 2 \approx -0{,}693$ — manfiy loss, softmax bilan esa CE $= 0{,}464$.
| $k$ | $y$ | $z$ | $\ln z$ | $y\ln z$ |
|---|---|---|---|---|
| 1 | 0 | 1 | 0,000 | 0,000 |
| 2 | 1 | 2 | 0,693 | 0,693 |
| 3 | 0 | 0,5 | −0,693 | 0,000 |
| softmax’siz CE | −0,693 |
Haqiqiy ehtimollik taqsimotlarining kross-entropiyasi manfiy bo‘lmaydi: $\mathrm{CE}(y,\hat y)=H(y)+\mathrm{KL}(y\,\|\,\hat y)\ge 0$, one-hot belgi uchun esa bu shunchaki 1 dan katta bo‘lmagan ehtimollikning $-\ln$ i. Manfiy son — formulaga ehtimolliklar emas, boshqa narsa tushganining aniq belgisi.
- To‘g‘ri sinf logiti $\to 100$: softmax’siz loss $= -\ln 100 \approx -4{,}605$, $1000$ da — $-6{,}908$, va hokazo, tubi yo‘q. Tarmoq faqat shu logitni kattalashtirishni o‘rganadi. Softmax bilan loss pastdan 0 ga taqaladi.
- To‘g‘ri sinf logiti $\to -1$: softmax’siz — xato, manfiy sonning logarifmi yo‘q. Softmax bilan hammasi hisoblanadi, faqat loss katta.
Daftar brauzerda
Varaqdagi hisobning o‘zi: sariq kataklarni o‘zgartiring — qolgani qayta hisoblanadi.
Nega faqat $(0;\,1]$
Ikkinchi varaqning 3-bloki — BCE dagi o‘sha «xarita», lekin bitta $-\ln x$ tarmog‘i bilan: CE faqat to‘g‘ri sinf ehtimolligini jarimalaydi. Yashil zona — $(0;1]$: nol yonidagi juda katta jarimadan $x=1$ dagi nol jarimagacha. Qizil zonalar — logitlar: $x\le 0$ da logarifm yo‘q, $x>1$ da jarima manfiy va tubsiz pasayadi.
| $x$ | $-\ln x$ | zona |
|---|---|---|
| −1 | yo‘q | logit |
| 0 | yo‘q | logit |
| 0,01 | 4,605 | ehtimollik |
| 0,1 | 2,303 | ehtimollik |
| 0,5 | 0,693 | ehtimollik |
| 0,9 | 0,105 | ehtimollik |
| 1 | 0,000 | ehtimollik |
| 2 | −0,693 | logit |
| 10 | −2,303 | logit |
| 1000 | −6,908 | logit |
Categorical CE varag‘i xulosasi
- CE formulasi faqat ehtimolliklarni biladi: yig‘indisi 1 ga teng, 0 dan 1 gacha sonlar.
- Logitlar — $-\infty$ dan $+\infty$ gacha istalgan sonlar. CE ga to‘g‘ridan-to‘g‘ri berilsa, yo xato, yo tubsiz manfiy loss beradi.
- Softmax — tarjimon: istalgan logitlarni yig‘indisi 1 bo‘lgan $(0;1)$ ga siqadi. Shuning uchun CE va softmax doim juft bo‘lib yuradi.
- Kodda softmax’ni kim bajarishini qarang:
nn.CrossEntropyLosslogitlarni kutadi (softmax ichida),nn.NLLLoss— tayyor log-ehtimolliklarni (log_softmax).
Pythonimport numpy as np
# Categorical CE varag‘idagi logitlar; to‘g‘ri sinf k = 2 (indeks 1)
z = np.array([1.0, 2.0, 0.5])
k = 1
lse = np.log(np.sum(np.exp(z))) # ln Σ e^z
p = np.exp(z - lse) # 2-qadam: softmax
print(np.round(p, 3), round(p.sum(), 3))
# [0.231 0.629 0.14 ] 1.0
print(round(-np.log(p[k]), 3)) # 0.464
print(round(lse - z[k], 3)) # 0.464: CE = ln Σ e^z − z_k
# PyTorch:
# nn.CrossEntropyLoss() logitlarni kutadi (softmax ichida)
# nn.NLLLoss() log-ehtimolliklarni kutadi (log_softmax)
Chuqurroq: nega BCE — ikki sinf uchun CE
$z_1, z_2$ logitli ikki sinfni olaylik. Softmax $\hat y_1=\dfrac{e^{z_1}}{e^{z_1}+e^{z_2}}=\dfrac{1}{1+e^{-(z_1-z_2)}}=\sigma(z_1-z_2)$ va $\hat y_2=1-\hat y_1$ beradi.
$(y,\,1-y)$ one-hot belgili CE $-[y\ln\hat y_1+(1-y)\ln(1-\hat y_1)]$ ga teng — aynan BCE qo‘shiluvchisi. Demak, bitta $z$ logitli binary klassifikator — $(z, 0)$ juftligi bo‘yicha softmax, BCE esa CE ning xususiy holi.
O‘zini tekshiradigan mashq
«Mashq» varag‘ida kalkulyator uchun uchta topshiriq bor: javobni sariq katakka yozing — yonida ✓ yoki ✗ chiqadi. Ruxsat etilgan farq — $\pm 0{,}005$, logarifm natural. Quyida o‘sha topshiriqlar sahifaning o‘zida; sonlarni vergul yoki nuqta bilan yozish mumkin.
Ruxsat etilgan farqga sig‘ish uchun oraliq qiymatlarni verguldan keyin uch xonadan qo‘polroq yaxlitlamang. Qo‘shiluvchi javobi — manfiy son (ehtimollik logarifmi), BCE va CE esa musbat: oxirida minus turadi.
Javoblar va tahlil («Javoblar» varag‘i)
1-topshiriq. Har bir qo‘shiluvchi — to‘g‘ri javob ehtimolligining $\ln$ i: $y=1$ da bu $\ln\hat y$, $y=0$ da — $\ln(1-\hat y)$.
2-topshiriq. Ehtimolliklar allaqachon softmax’dan keyin; faqat to‘g‘ri $k=3$ sinf qo‘shiluvchisi qoladi.
3-topshiriq. $z=(0;\,1;\,2)$ logitlar uchun softmax qo‘lda, to‘g‘ri sinf $k=3$.
Logitlar orqali tekshiruv: $\mathrm{CE}=\ln\sum_j e^{z_j}-z_3=\ln 11{,}107-2=0{,}408$.
Ko‘p uchraydigan xatolar
- Ehtimollik kutayotgan formulaga logitlar. Tarmoqning «xom» chiqishi ustidan
nn.BCELossyokinn.NLLLoss— bu ikkala varaqning 2-bloklari: NaN yoki manfiy loss. - Ikki karra tarjimon.
nn.BCEWithLogitsLossoldidan sigmoid yokinn.CrossEntropyLossoldidan softmax: funksiya uni ikkinchi marta qo‘llaydi. Xato chiqmaydi, lekin ehtimolliklar o‘rtaga siqiladi, loss deyarli o‘zgarmay qoladi va o‘qitish to‘xtab qoladi. - Boshqa logarifm. Formulalarda — natural $\ln$. Kalkulyatorda log tugmasi ko‘pincha $\log_{10}$ ni bildiradi: $\ln 0{,}8\approx-0{,}223$ o‘rniga $\log_{10}0{,}8\approx-0{,}097$.
- Yo‘qolgan minus. Ehtimollik logarifmi manfiy, shuning uchun «ikkalasining yig‘indisi» ustuni manfiy, BCE va CE esa musbat: $\mathrm{BCE}=-\Sigma/n$.
- Adashtirilgan tarmoq. $y=0$ da jarima $-\ln\hat y$ emas, $-\ln(1-\hat y)$: «yo‘q» javobining ehtimolligi jarimalanadi.
- Juda erta yaxlitlash. $e^{z}$ yoki $\hat y$ bir-ikki xonagacha yaxlitlansa, javob $\pm0{,}005$ farqdan chiqib ketadi.
Xulosa
| BCE (2 sinf) | Categorical CE ($K$ sinf) | |
|---|---|---|
| tarmoq chiqishi | bitta $z$ logit | $K$ ta logit $z_1,\dots,z_K$ |
| tarjimon | $\sigma(z)=1/(1+e^{-z})$ | $\mathrm{softmax}(z)_k=e^{z_k}/\sum_j e^{z_j}$ |
| obyekt jarimasi | $-[y\ln\hat y+(1-y)\ln(1-\hat y)]$ | $-\sum_k y_k\ln\hat y_k=-\ln\hat y_{\text{to‘g‘ri}}$ |
| daftardagi misol | $\mathrm{BCE}=0{,}299$ (5 obyekt) | $\mathrm{CE}=0{,}464$ (1 obyekt) |
| tarjimonsiz | NaN | $-\ln 2\approx-0{,}693$ va undan past |
| PyTorch | BCEWithLogitsLoss (logitlar) | CrossEntropyLoss (logitlar) |
- Logit → tarjimon → formula: yo‘qotish formulasi faqat ehtimolliklarni tushunadi.
- Obyekt jarimasi — doim to‘g‘ri javob ehtimolligining $-\ln$ i: ishonchli to‘g‘ri javobda $0$, to‘liq ishonchsizlikda $\ln 2\approx0{,}693$, ishonchli xatoda $+\infty$.
- Funksiyalarning o‘zi haqida batafsil — qo‘llanmada: BCE, kross-entropiya, sigmoid, softmax.