U nima uchun kerak
Neyron tarmoq, logistik regressiya, gradiyentli busting — barchasining ichida oddiy son hosil bo‘ladi: $3{,}7$, $-12$, $0{,}2$. Lekin savol ko‘pincha boshqacha: xat spam ekanligi, mijoz kreditni qaytarishi, kadrda odam borligi qanday ehtimollik bilan? Ehtimollik 0 va 1 orasida bo‘lishi shart. Sigmoida — «istalgan son»dan «ehtimollik»ka eng tabiiy ko‘prik.
U qayerda uchraydi:
- binar klassifikator chiqishi — logistik regressiya, tarmoqning oxirgi neyroni, $p=\sigma(z)$;
- LSTM va GRU’dagi ventillar (gates) — 0 dan 1 gacha son axborotning qancha qismini o‘tkazish, qanchasini unutishni hal qiladi;
- klassifikatsiya uchun gradiyentli busting — XGBoost, LightGBM va CatBoost daraxtlarni «xom» hisobga qo‘shadi, sigmoida esa uni ehtimollikka aylantiradi;
- zamonaviy aktivatsiyalar — SiLU (Swish) — bu $x\cdot\sigma(x)$; LLaMA va Qwen’dagi SwiGLU bloki shunga asoslangan;
- statistika — logistik taqsimot funksiyasi va ehtimollikning imkoniyatlar logarifmi (logit) bilan bog‘lanishi.
$\sigma$ butun son o‘qini $(0;\,1)$ oralig‘iga siqadi, $(0;\,0{,}5)$ nuqtadan o‘tadi va simmetrik: $\sigma(-x)=1-\sigma(x)$. Uning hosilasi $\sigma'=\sigma(1-\sigma)$ $0{,}25$ dan oshmaydi — qulaylik (arzon backprop) ham, muammo (gradiyent so‘nishi) ham shundan.
Intuitsiya: cheksizlikni siqish
$y=0$ dagi pol va $y=1$ dagi shift orasidagi yo‘lni tasavvur qiling. Chapda yo‘l deyarli polda yotadi, o‘ngda deyarli shiftga tegadi, o‘rtada esa silliq ko‘tariladi. Chapga yoki o‘ngga qancha yursangiz ham, pol va shiftga yetib bo‘lmaydi — ular asimptotalar.
Grafikdagi nuqtani torting. To‘q sariq chiziq — urinma: uning qiyaligi $\sigma'(x)$ hosilaning o‘zi. Markazda ko‘tarilish eng tik, chekkalarda yo‘l deyarli gorizontal — u yerda hosila nolga yaqin.
$x=4$ da sigmoida allaqachon $0{,}982$, hosila esa atigi $0{,}018$ — markazdagidan 14 marta kichik. Bu to‘yinish (saturation): kirish o‘sishda davom etadi, chiqish esa deyarli o‘zgarmaydi.
Formula mayda detallarigacha
Sigmoidani uchta oddiy amaldan yig‘amiz va har biri $x$ son bilan nima qilishini kuzatamiz.
- $e^{-x}$
- eksponenta doim musbat: $x\to+\infty$ da u 0 ga, $x\to-\infty$ da cheksizlikka intiladi;
- $1+e^{-x}$
- maxraj doim 1 dan katta — shuning uchun kasr doim 1 dan kichik;
- $\frac{1}{1+e^{-x}}$
- 1 dan katta musbat sonning teskarisi qat’iy 0 va 1 orasida yotadi.
Shu funksiyani boshqa yozuvlarda ham tanib olish foydali:
Ikkinchi shakl surat va maxrajni $e^x$ ga ko‘paytirishdan olinadi; u manfiy $x$ uchun qulay (kod bo‘limiga qarang). Uchinchisi sigmoidani giperbolik tangens bilan bog‘laydi: $\tanh x=2\sigma(2x)-1$ — gorizontal bo‘yicha ikki marta siqilgan, balandligi ikki marta cho‘zilgan va 1 ga pastga surilgan o‘sha S-egri chiziq.
| $x$ | $\sigma(x)$ | $\sigma'(x)$ |
|---|---|---|
| −6 | 0,0025 | 0,0025 |
| −4 | 0,0180 | 0,0177 |
| −2 | 0,1192 | 0,1050 |
| −1 | 0,2689 | 0,1966 |
| 0 | 0,5000 | 0,2500 |
| 1 | 0,7311 | 0,1966 |
| 2 | 0,8808 | 0,1050 |
| 4 | 0,9820 | 0,0177 |
| 6 | 0,9975 | 0,0025 |
Jadval ikki simmetriyani ko‘rsatadi: $\pm x$ dagi sigmoida qiymatlari bir-birini birgacha to‘ldiradi, hosila esa juft funksiya.
Xossalar va shakl
- Aniqlanish sohasi — barcha haqiqiy sonlar; qiymatlar sohasi — ochiq $(0;\,1)$ oraliq.
- Monotonlik: qat’iy o‘suvchi, chunki istalgan $x$ da $\sigma'(x)>0$.
- Asimptotalar: $\lim_{x\to-\infty}\sigma(x)=0$ va $\lim_{x\to+\infty}\sigma(x)=1$.
- $(0;\,0{,}5)$ nuqtaga nisbatan markaziy simmetriya: $\sigma(-x)=1-\sigma(x)$.
- Burilish nuqtasi — yagona, $x=0$: chapda funksiya pastga qavariq, o‘ngda — yuqoriga.
- Lipshits sharti: $|\sigma(a)-\sigma(b)|\le\tfrac14|a-b|$ — chiqish kirish o‘zgarishining choragidan tez o‘zgarmaydi.
Nega σ(−x) = 1 − σ(x)
Oxiridan oldingi qadamda surat va maxraj $e^{x}$ ga ko‘paytirilgan.
Vazn va siljish: neyron sigmoidani qanday o‘zgartiradi
Neyronda sigmoida $x$ ni emas, $z=wx+b$ ni oladi. $w$ vazn egri chiziqni gorizontal cho‘zadi, $b$ siljish uni suradi. Chiqish $0{,}5$ ga teng bo‘lgan markaz $x_0=-b/w$ nuqtaga tushadi, markazdagi qiyalik esa $w/4$ ga teng.
$w\to+\infty$ da $\sigma(w x)$ Xevisayd zinasiga intiladi: noldan chapda 0, o‘ngda 1 ($x=0$ nuqtaning o‘zida qiymat doim $0{,}5$). Sigmoida neyron tarmoqlarga tarixan aynan shunday kirgan — Makkallok — Pitts chegaraviy neyronining silliq, differensiallanuvchi o‘rinbosari sifatida.
Hosila: σ′ = σ(1 − σ)
Bu sahifaning asosiy formulasi. Uni ikki usulda keltirib chiqaramiz — to‘g‘ridan-to‘g‘ri va nafis usulda.
1-usul. Zanjir qoidasi (qadamma-qadam)
$\sigma(x)=(1+e^{-x})^{-1}$ deb yozamiz va murakkab funksiya hosilasi qoidasini qo‘llaymiz:
Kasrni ikki ko‘paytuvchiga ajratamiz:
Ikkinchi ko‘paytuvchi — $1-\sigma(x)$, buni xossalar bo‘limida isbotladik.
2-usul. Logarifm orqali
Logarifm olamiz: $\ln\sigma(x)=-\ln(1+e^{-x})$. Ikkala tomonni differensiallaymiz:
Amalda nega muhim: to‘g‘ri o‘tishda tarmoq $s=\sigma(z)$ ni allaqachon hisoblagan. Teskari o‘tishda hosila bitta ko‘paytirish $s(1-s)$ ga tushadi — yangi eksponentasiz.
Hosila maksimumi va ikkinchi hosila
$s\in(0;1)$ da $s(1-s)$ ko‘paytma — uchi $s=\tfrac12$ da bo‘lgan ag‘darilgan parabola. Demak, $\max\sigma'=\tfrac12\cdot\tfrac12=\tfrac14$, u $x=0$ da erishiladi. Yana bir marta differensiallaymiz:
Ikkinchi hosila $\sigma=\tfrac12$ da, ya’ni $x=0$ burilish nuqtasida nolga aylanadi. Uning ekstremumlari $x=\pm\ln(2+\sqrt3)\approx\pm1{,}317$ nuqtalarda, u yerda sigmoida qiyaligi eng tez o‘zgaradi; qiymati $\mp\sqrt3/18\approx\mp0{,}096$.
Nol atrofidagi Teylor qatori
tanh bilan bog‘lanishdan yoyilmani olamiz:
Nol atrofida sigmoida deyarli chiziqli: $\sigma(x)\approx\tfrac12+\tfrac{x}{4}$. Shuning uchun kichik vaznlarda sigmoidali tarmoq deyarli chiziqli model kabi ishlaydi. Qator faqat $|x|<\pi$ da yaqinlashadi: funksiyaning kompleks tekislikda $x=\pm i\pi$ maxsus nuqtalari bor.
Ehtimollik ma’nosi: imkoniyatlar va logit
Nega sigmoida chiqishini ehtimollik deb o‘qish o‘rinli? $p$ — hodisa ehtimolligi bo‘lsin. $p/(1-p)$ nisbat imkoniyatlar (odds) deyiladi: $p=0{,}8$ da imkoniyatlar $4:1$. Imkoniyatlar logarifmi — logit:
Logit va sigmoida — o‘zaro teskari funksiyalar. Logit ehtimollikni $(0;1)$ dan butun son o‘qiga o‘tkazadi, u yerda belgilar hissalarini qo‘shish qulay. Logistik regressiya aynan shuni faraz qiladi: imkoniyatlar logarifmi belgilarga chiziqli bog‘liq, $\ln\frac{p}{1-p}=w^\top x+b$. Chiqishdagi sigmoida shundan.
Sigmoida — logistik taqsimot funksiyasi: agar $\varepsilon$ shovqin logistik taqsimotga ega bo‘lsa, $P(\varepsilon\le x)=\sigma(x)$. Normal shovqinli o‘xshash model, $\Phi(x)$, probit-regressiya deyiladi; uning egri chizig‘i $\sigma(1{,}7x)$ bilan deyarli ustma-ust tushadi.
Ko‘p o‘lchovli fazodagi sigmoida
Neyronning kirishlari ko‘p: $z=w_1x_1+w_2x_2+\dots+b$. Bunday chiziqli funksiyadan olingan sigmoida — $w^\top x+b=0$ chegara bo‘ylab ko‘ndalang 0 dan 1 gacha ko‘tariladigan va chegara bo‘ylab o‘zgarmaydigan «burma». $w$ vaznlar vektori eng tik ko‘tarilish yo‘nalishini ko‘rsatadi, uning uzunligi esa burmaning tikligini belgilaydi.
O‘qitish o‘sha hosiladan foydalanadi. BCE yo‘qotishi uchun logit bo‘yicha gradiyent $\sigma(z)-y$ ga teng (keltirib chiqarilishi — BCE sahifasida), shuning uchun vaznlar bo‘yicha gradiyent tushish qadami:
Agar sinflarni to‘g‘ri chiziq bilan mukammal ajratish mumkin bo‘lsa, $\|w\|$ o‘sishi bilan BCE kamayishda davom etadi: burma tobora tiklashadi va zinaga intiladi, vaznlar cheksizlikka ketadi. Amalda bu regulyarizatsiya ($L_2$) yoki erta to‘xtatish bilan davolanadi.
O‘qitishdagi sigmoida: to‘yinish va gradiyent so‘nishi
Agar neyronning $z$ kirishlari modul bo‘yicha katta bo‘lsa, sigmoida $\sigma'(z)\approx0$ bo‘lgan yassi chekkalarda ishlaydi. Bunday neyron orqali gradiyent deyarli o‘tmaydi — neyron to‘yingan. $\sigma'<0{,}01$ to‘yinish $|z|>4{,}6$ da boshlanadi.
Initsializatsiya qoidasi shundan kelib chiqadi: vaznlar $z$ dispersiyasi birga yaqin bo‘ladigan qilib tanlanadi (LeKun initsializatsiyasi, $\operatorname{Var}w=1/n_{\text{in}}$, yoki Gloro (Xavier) initsializatsiyasi, $\operatorname{Var}w=2/(n_{\text{in}}+n_{\text{out}})$), ma’lumotlar esa normallashtiriladi.
Chuqur tarmoqda gradiyent so‘nishi
$h_k=\sigma(z_k)$, $z_k=W_kh_{k-1}$ bo‘lsin. Zanjir qoidasiga ko‘ra $\mathcal L$ yo‘qotishning $l$ qatlam chiqishi bo‘yicha gradiyenti — yuqoridagi barcha qatlamlar yakobianlarining ko‘paytmasi, ularning har birida $\operatorname{diag}\bigl(\sigma'(z_k)\bigr)$ bor:
Sigmoidada har bir $\sigma'\le\tfrac14$, shuning uchun 10 qatlamdan keyin faqat hosilalardan kelgan ko‘paytuvchi $0{,}25^{10}\approx9{,}5\cdot10^{-7}$ dan oshmaydi. Gloro initsializatsiyasida $W_k$ vaznlar buni qoplamaydi: ular signal normasini taxminan bir darajasida saqlaydi.
2010-yilgacha sigmoidali chuqur tarmoqlar, qatlamma-qatlam oldindan o‘qitishsiz (Xinton va boshq., 2006), yomon o‘qitilardi. Gloro va Benjio (2010) to‘yinish rolini ko‘rsatib, initsializatsiya taklif qildi, ReLU (Nair va Xinton, 2010; Gloro va boshq., 2011) esa muammoni deyarli bartaraf etdi. Bugun sigmoida aynan 0 dan 1 gacha ulush kerak bo‘lgan joyda yashaydi: binar klassifikator chiqishida va ventillarda.
Kodda: barqaror va kutilmagan holatlarsiz
Sodda $1/(1+e^{-x})$ formula $x=-1000$ da $e^{1000}$ ni hisoblaydi — to‘lib ketish. Natija baribir 0 chiqadi, lekin ogohlantirish bilan, $\log\sigma(x)$ da esa $-\infty$ paydo bo‘ladi. Ikkinchi muammo — aniqlik yo‘qolishi: float64 da $1-\sigma(40)$ aynan 0 ga teng, haqiqiy qiymat esa $\sigma(-40)\approx4{,}25\cdot10^{-18}$.
pythonimport numpy as np
def sigmoid(x):
"""Barqaror sigmoida: exp hech qachon katta musbat argument olmaydi."""
x = np.asarray(x, dtype=float)
out = np.empty_like(x)
pos = x >= 0
out[pos] = 1.0 / (1.0 + np.exp(-x[pos]))
ex = np.exp(x[~pos])
out[~pos] = ex / (1.0 + ex)
return out
def sigmoid_grad(x):
s = sigmoid(x)
return s * (1.0 - s)
def log_sigmoid(x):
# log σ(x) = −softplus(−x) = −log(1 + e^(−x)), log(0) siz
return -np.logaddexp(0.0, -x)
print(sigmoid([-40.0, 0.0, 40.0])) # [4.24835426e-18 5.00000000e-01 1.00000000e+00]
print(1 - sigmoid(40.0), sigmoid(-40.0)) # 0.0 4.248354255291589e-18 — ayirma hammasini «yeb qo‘ydi»
print(log_sigmoid(-1000.0)) # -1000.0 (sodda np.log(sigmoid) -inf berardi)
pythonimport torch
import torch.nn as nn
z = torch.tensor([-2.0, 0.0, 2.0], requires_grad=True)
p = torch.sigmoid(z) # tensor([0.1192, 0.5000, 0.8808])
p.sum().backward()
print(z.grad) # tensor([0.1050, 0.2500, 0.1050]) = σ(1 − σ)
# Klassifikatsiyada yo‘qotishga σ(z) emas, logitlarni bering:
loss_fn = nn.BCEWithLogitsLoss() # ichida — barqaror log σ(z)
loss = loss_fn(z, torch.tensor([0.0, 1.0, 1.0]))
Agar keyin logarifm kelsa, $\sigma$ ni alohida hisoblamang. $\log\sigma(x)=-\operatorname{softplus}(-x)$ yoki logitlardagi tayyor yo‘qotishlardan foydalaning: PyTorch’da BCEWithLogitsLoss, Keras’da from_logits=True.
Ko‘p uchraydigan xatolar
- Chuqur tarmoqning yashirin qatlamlarida sigmoida — gradiyent so‘nishi va siljigan (markazlashmagan) aktivatsiyalar. ReLU, GELU, SiLU oling; sigmoidani faqat chiqishda yoki ventillarda qoldiring.
- O‘zaro istisno sinflar uchun softmax o‘rniga sigmoidalar. $K>2$ ta o‘zaro istisno sinf uchun softmax kerak; har bir chiqishdagi sigmoida — sinflar mustaqil bo‘lgan multi-label.
- Ikki karra sigmoida: model allaqachon ehtimollik qaytaradi, yo‘qotish esa σ ni yana qo‘llaydi (masalan,
sigmoidustidanBCEWithLogitsLoss). O‘qitish ketadi, lekin «ehtimolliklar» $(0{,}5;\,0{,}73)$ ga siqiladi, yo‘qotish kichik bo‘la olmaydi va gradiyentlar buziladi. - «Standart» 0,5 chegara. Kalibrlangan ehtimolliklar uchun u xatolar ulushini minimallashtiradi, lekin faqat ikkala xato narxi teng bo‘lsa. Xato narxlari har xil bo‘lsa, shuningdek sinflar nomutanosib bo‘lganda F1 yoki to‘liqlik (recall) uchun eng yaxshi chegara boshqacha — u validatsiyada metrika bo‘yicha tanlanadi.
- Kalibrlashsiz «σ(z) = 0,9, demak model 90% ishonchli» xulosasi. Sigmoida $(0;1)$ dagi son beradi, kalibrlanganlik esa o‘qitish xossasi (BCE unga yordam beradi, qayta o‘qitish buzadi).
Boshqa formulalar bilan bog‘lanishlar
- tanh: $\tanh x=2\sigma(2x)-1$ — maksimal qiyaligi 1 bo‘lgan markazlashgan sigmoida.
- Softmax: ikki sinf uchun $\operatorname{softmax}(z_1,z_2)_1=\sigma(z_1-z_2)$.
- BCE: sigmoida bilan juftlikda logit bo‘yicha $\hat y-y$ gradiyent beradi — $\sigma'$ ko‘paytuvchisiz, demak model xato qilganda to‘yinishsiz.
- SiLU / Swish: $x\,\sigma(x)$ — kirishning o‘zi uchun «yumshoq ventil» sifatidagi sigmoida.
- Focal Loss: odatda to‘g‘ri sinf ehtimolligi $p_t$ dan hisoblanadi: $y=1$ da $\sigma(z)$, $y=0$ da $1-\sigma(z)=\sigma(-z)$.
Xulosa
1) $\sigma(x)=1/(1+e^{-x})$ $\mathbb R$ ni $(0;1)$ ga o‘tkazadi, $(0;\,0{,}5)$ dan o‘tadi va simmetrik: $\sigma(-x)=1-\sigma(x)$. 2) $\sigma'=\sigma(1-\sigma)\le\tfrac14$: backprop arzon, lekin chekkalarda gradiyent so‘nadi. 3) Sigmoida logitga teskari: logistik regressiya imkoniyatlar logarifmini chiziqli funksiya bilan modellashtiradi. 4) Ko‘p o‘lchovli holatda bu $w^\top x+b=0$ gipertekislik bo‘ylab burma. 5) Kodda — barqaror shakllar va logitlardagi yo‘qotishlar.