U nima uchun kerak
Aktivatsiya funksiyasi — har bir chiziqli qatlamdan keyin turadigan nochiziqlilik. Usiz istalgancha qatlam bitta matritsaga ko‘paytirishga aylanib qoladi. Uzoq vaqt standart ReLU edi: $\max(0,x)$ — musbatni o‘tkazish, manfiyni nolga aylantirish. GELU (Gaussian Error Linear Unit, Xendriks va Gimpel, 2016) xuddi shu vazifani yumshoqroq hal qiladi: kirish shunchaki o‘tkazilmaydi yoki kesilmaydi, balki uni o‘tkazish kerakligi ehtimolligiga ko‘paytiriladi.
U qayerda uchraydi:
- BERT, RoBERTa, GPT, GPT-2, GPT-3 — transformerning har bir to‘g‘ri tarqalish (feed-forward, FFN) blokida: $\operatorname{FFN}(h)=W_2\,\operatorname{GELU}(W_1h+b_1)+b_2$;
- Vision Transformer (ViT) va undan keyingi ko‘plab kompyuter ko‘rishi modellarida;
- GeGLU — ventilli variant $\operatorname{GELU}(xW)\odot(xV)$, masalan Gemma’da; uning qarindoshi — SiLU’li SwiGLU — LLaMA va Qwen’da;
- silliqlik muhim bo‘lgan har joyda: GELU’ning barcha tartibdagi hosilalari bor, nolda sinish yo‘q va ReLU’dagidek gradiyenti nol bo‘lgan «o‘lik» zona yo‘q.
$\operatorname{GELU}(x)=x\,\Phi(x)$, bunda $\Phi$ — standart normal taqsimot funksiyasi. Katta musbat $x$ deyarli to‘liq o‘tadi, katta manfiylari deyarli nolga aylanadi, nol atrofida esa silliq o‘tish ishlaydi. Funksiyaning $x\approx-0{,}752$ nuqtada $\approx-0{,}170$ minimumi bor, $\Phi(x)+x\varphi(x)$ hosila $-0{,}129$ dan $1{,}129$ gacha oraliqda yotadi, amalda esa uni ko‘pincha xatosi $4{,}7\cdot10^{-4}$ dan oshmaydigan tanh yaqinlashishi orqali hisoblashadi.
Intuitsiya: ehtimollikka ko‘paytirilgan kirish
$x$ signalning qancha ulushini o‘tkazishni hal qiladigan ventilni tasavvur qiling. ReLU’da ventil qattiq: $x>0$ da to‘liq ochiq, $x<0$ da yopiq. GELU’da ventil $\Phi(x)$ ga ochiq — 0 dan 1 gacha bo‘lgan, $x$ bilan birga silliq o‘sadigan ulushga. Katta musbat signal deyarli to‘liq o‘tadi, katta manfiysi deyarli so‘nadi, nol atrofida esa signalning yarmi o‘tadi: $\Phi(0)=0{,}5$.
Nuqtani torting. Kulrang polosa — butun $x$ kirish, ko‘k polosa — uning o‘tgan qismi: uzunligi $x\cdot\Phi(x)$ ga teng. Firuza punktir — $\Phi(x)$ ulushning o‘zi.
Manfiy $x$ uchun chiqish nolga teng emas: u manfiy va kichik. $x$ noldan kamayganda chiqish avval kamayadi (kirish moduli ulush kamayishidan tezroq o‘sadi), taxminan $x=-0{,}75$ dan boshlab esa yana nolga ko‘tariladi: $\Phi(x)$ ulush $|x|$ o‘sishidan tezroq so‘nadi. Shundan sayoz «chuqurcha» paydo bo‘ladi — GELU va ReLU shakllari orasidagi asosiy farq.
Formula mayda detallarigacha
GELU’ning butun murakkabligi $\Phi$ ichida yashiringan. Uni qismlarga ajratamiz.
- $\varphi(t)$
- standart normal taqsimot $N(0,1)$ zichligi — nolda $1/\sqrt{2\pi}\approx0{,}399$ maksimumli Gauss qo‘ng‘irog‘i;
- $\Phi(x)$
- taqsimot funksiyasi: qo‘ng‘iroq ostidagi $x$ nuqtadan chapdagi yuza, ya’ni $\varepsilon\sim N(0,1)$ uchun $P(\varepsilon\le x)$ ehtimollik; 0 dan 1 gacha o‘sadi, $\Phi(0)=\tfrac12$;
- $x\cdot\Phi(x)$
- shu ehtimollikka ko‘paytirilgan kirish.
Gaussiana integrali elementar funksiyalar orqali ifodalanmaydi, shuning uchun uning maxsus nomi bor — xatolar funksiyasi (error function), «Gaussian Error Linear Unit» nomi shundan:
$1/\sqrt2$ ko‘paytuvchi zichligi $e^{-t^2/2}$ bo‘lgan standart normal miqdorni erf aniqlangan $e^{-t^2}$ yadroga o‘tkazadi. erf’ning o‘zi toq, $-1$ dan $1$ gacha o‘zgaradi, shuning uchun $\tfrac12(1+\operatorname{erf})$ 0 dan 1 gacha o‘zgaradi.
| $x$ | $\Phi(x)$ | $\operatorname{GELU}(x)$ | $\operatorname{GELU}'(x)$ | $\operatorname{ReLU}(x)$ |
|---|---|---|---|---|
| −3 | 0,0013 | −0,0040 | −0,0119 | 0 |
| −2 | 0,0228 | −0,0455 | −0,0852 | 0 |
| −1 | 0,1587 | −0,1587 | −0,0833 | 0 |
| −0,5 | 0,3085 | −0,1543 | 0,1325 | 0 |
| 0 | 0,5000 | 0,0000 | 0,5000 | 0 |
| 0,5 | 0,6915 | 0,3457 | 0,8675 | 0,5 |
| 1 | 0,8413 | 0,8413 | 1,0833 | 1 |
| 2 | 0,9772 | 1,9545 | 1,0852 | 2 |
| 3 | 0,9987 | 2,9960 | 1,0119 | 3 |
Jadval uch narsani ko‘rsatadi. O‘ngda GELU ReLU’ga tez yetib oladi: $x=3$ da farq atigi $0{,}004$. Chapda chiqish manfiy, lekin kichik: jadvaldagi eng chuqur qiymat — $x=-1$ da $-0{,}159$. Nolda hosila $0{,}5$ ga teng, $x>0{,}752$ da (jadvalda — $x=1$ dan boshlab) esa birdan katta: funksiya $y=x$ to‘g‘ri chiziqqa yetib olish uchun undan biroz tezroq o‘sadi.
U qayerdan kelgan: o‘rtacha shovqinli niqob
GELU mualliflari ikki g‘oyani birlashtirdi. ReLU kirishni deterministik niqobga ko‘paytiradi: $x\cdot\mathbb 1[x>0]$. Dropout kirishni undan bog‘liq bo‘lmagan tasodifiy niqobga ko‘paytiradi. Agar niqob tasodifiy bo‘lsa-yu, lekin kirishga bog‘liq bo‘lsa-chi: $x$ qancha katta bo‘lsa, uni o‘tkazish ehtimoli shuncha yuqori?
Bunday niqobni olish oson: $\varepsilon\sim N(0,1)$ shovqin oling va $\varepsilon\le x$ bo‘lsa, $m=1$ deb oling. U holda taqsimot funksiyasi ta’rifiga ko‘ra $P(m=1)=\Phi(x)$. Nega normal qonun? Mualliflar tanlovni shunday asoslaydi: neyron kirishlari, ayniqsa normallashtirishdan (BatchNorm, LayerNorm) keyin, taxminan normal taqsimlangan, $\Phi(x)$ esa tabiiy savolga javob beradi: odatiy kirishlarning qancha ulushi berilgan $x$ dan kichik.
Shovqinli niqob faqat shaklni tushuntiradi. Tarmoqda deterministik o‘rtacha $x\Phi(x)$ turadi: o‘qitishda ham, xulosa chiqarishda ham tasodif yo‘q (shovqin kerak bo‘lsa, alohida dropout qo‘shiladi).
Xossalar va shakl
- Qiymatlar sohasi — $[-0{,}170;\,+\infty)$: pastdan chegaralangan, yuqoridan yo‘q.
- Silliqlik: GELU cheksiz differensiallanuvchi; $\operatorname{GELU}(0)=0$, $\operatorname{GELU}'(0)=\tfrac12$.
- Monoton emaslik: funksiya $(-\infty;\,-0{,}752)$ da kamayadi, o‘ngda o‘sadi; minimum $\approx-0{,}170$.
- Asimptotalar: $x\to+\infty$ da $\operatorname{GELU}(x)-x\to0$, $x\to-\infty$ da $\operatorname{GELU}(x)\to0$, chap dum esa gaussiana kabi so‘nadi: $x\Phi(x)\approx-\varphi(x)$, allaqachon $\operatorname{GELU}(-4)\approx-1{,}3\cdot10^{-4}$.
- Ayniyat: $\operatorname{GELU}(x)-\operatorname{GELU}(-x)=x$, chunki $\Phi(x)+\Phi(-x)=1$.
- Qavariqlik: faqat $(-\sqrt2;\,\sqrt2)$ oraliqda; undan tashqarida funksiya botiq (ikkinchi hosila ishorasi — keyingi bo‘limda).
GELU = ReLU minus juft «chuqurcha»
Ayniyatdan qulay yozuv kelib chiqadi. $x>0$ uchun: $x\Phi(x)=x-x\Phi(-x)$; $x<0$ uchun: $x\Phi(x)=-|x|\Phi(-|x|)$. Ikkala holda ham
$|x|\Phi(-|x|)$ tuzatma juft: noldan chapda ham, o‘ngda ham bir xil, $|x|=0{,}752$ da $0{,}170$ maksimumga erishadi va tez so‘nadi. SiLU $x\,\sigma(x)$ ham shu xossaga ega, faqat uning «chuqurchasi» kengroq va chuqurroq: $|x|=1{,}278$ da $0{,}278$.
Normal va logistik qonunlarning taqsimot funksiyalari juda o‘xshash: $\Phi(x)\approx\sigma(1{,}702\,x)$, xato $0{,}0095$ dan oshmaydi. Shuning uchun GELU $x\,\sigma(1{,}702x)$ bilan deyarli ustma-ust tushadi — bu tikroq sigmoidali SiLU. $\sigma$ ning o‘zi haqida — sigmoida sahifasida.
Hosila: Φ(x) + x·φ(x)
Hosila xatoni teskari tarqatishda kerak. Uni keltirib chiqaramiz va funksiya minimumini topamiz.
Birinchi va ikkinchi hosilani keltirib chiqarish
Asosiy fakt: taqsimot funksiyasining hosilasi — zichlik, $\Phi'(x)=\varphi(x)$ (yuqori chegarasi o‘zgaruvchi bo‘lgan integral uchun analizning asosiy teoremasi). Ko‘paytma hosilasi qoidasiga ko‘ra:
Gaussiana uchun $\varphi'(x)=-x\,\varphi(x)$. Yana bir marta differensiallaymiz:
$\operatorname{GELU}''$ ishorasi $2-x^2$ ishorasi bilan bir xil: funksiya $(-\sqrt2;\,\sqrt2)$ da qavariq va undan tashqarida botiq, $\operatorname{GELU}'$ hosilaning ekstremumlari esa $x=\pm\sqrt2$ nuqtalarda.
Hosila ikki qo‘shiluvchidan iborat. Birinchisi — $\Phi(x)$ ulushning o‘zi: ventil $x$ ga bog‘liq bo‘lmaganida hosila shunday bo‘lardi. Ikkinchisi — $x$ o‘sganda ventil ochilishidan keladigan tuzatma; u noldan o‘ngda musbat, chapda manfiy. Hosilasi 0/1 zinapoya bo‘lgan ReLU bilan solishtiring.
Minimum qayerda
Minimum $\operatorname{GELU}'(x)=0$ bo‘lgan joyda, ya’ni $\Phi(x)=-x\,\varphi(x)$. Bu tenglama elementar funksiyalarda yechilmaydi; $x_0=-1$ dan boshlangan Nyuton usuli $x_{k+1}=x_k-\operatorname{GELU}'(x_k)/\operatorname{GELU}''(x_k)$ $-0{,}6557$, $-0{,}7448$, $-0{,}75175$, $-0{,}751792$ ni beradi — har bir iteratsiya to‘g‘ri raqamlar sonini taxminan ikki barobar oshiradi.
Ikkinchi tenglik $\Phi(x^*)=-x^*\varphi(x^*)$ minimum shartidan kelib chiqadi. Minimumda $\Phi(x^*)\approx0{,}226$ ulush o‘tadi.
$x<-0{,}752$ da hosila manfiy: kirish oshirilsa, chiqish kamayadi. ReLU bu zonada aynan nol beradi, GELU esa kichik, lekin noldan farqli signal beradi ($-0{,}129$ dan kichik emas). U gaussiana kabi so‘nadi: $\operatorname{GELU}'(-3)\approx-0{,}012$, $\operatorname{GELU}'(-4)\approx-0{,}0005$.
Tez yaqinlashishlar: tanh va sigmoida
erf’ni hisoblash elementar funksiyalarga qaraganda qimmatroq, shuning uchun mualliflar tezlik aniqlikdan muhimroq bo‘lgan holatlar uchun ikki yaqinlashishni taklif qildi. Birinchisi tanh’dan foydalanadi:
BERT va GPT-2 ning asl kodida aynan shu formula yozilgan (Hugging Face kutubxonasida u gelu_new, PyTorch’da — approximate="tanh" deb ataladi). Eng katta xato — $|x|\approx2{,}70$ da $4{,}7\cdot10^{-4}$. Ikkinchi yaqinlashish sigmoida orqali:
U qo‘polroq: $|x|\approx2{,}27$ da xato $0{,}020$ gacha yetadi. Ikkala xato ham juft funksiyalar, chunki uchala formula ham $f(x)-f(-x)=x$ ayniyatini qanoatlantiradi.
√(2/π) va 0,044715 qayerdan keladi
$\operatorname{erf}(z)$ ni $\tanh(u)$ funksiya bilan yaqinlashtirish kerak. Ikkalasini nol atrofida yoyamiz: $\operatorname{erf}(z)=\frac{2}{\sqrt\pi}\bigl(z-\frac{z^3}{3}+\dots\bigr)$ va $\tanh u=u-\frac{u^3}{3}+\dots$. $u=\frac{2}{\sqrt\pi}(z+cz^3)$ ni olamiz va koeffitsiyentlarni tenglashtiramiz.
$z=x/\sqrt2$ ni qo‘yib, $c'=c/2=\frac{2}{3\pi}-\frac16\approx0{,}0455$ bilan $\sqrt{2/\pi}\,(x+c'x^3)$ ni olamiz. Qatorlarning mos kelishi faqat nol atrofida aniqlik beradi, shuning uchun formulada butun o‘q bo‘yicha sonli tanlangan koeffitsiyent turadi: $0{,}044715$. Tekshiruv ko‘rsatadiki, bu $\Phi$ ning o‘zi uchun minimaks koeffitsiyent: unda $\Phi(x)\approx\tfrac12\bigl(1+\tanh[\sqrt{2/\pi}(x+c'x^3)]\bigr)$ yaqinlashishning eng katta xatosi minimal va $1{,}8\cdot10^{-4}$ ga teng. GELU’ning o‘zi uchun optimum biroz boshqacha ($c'\approx0{,}04438$, xato $3{,}9\cdot10^{-4}$), lekin farq kichik. Teylor qiymati $0{,}0455$ bilan maksimal xato $7{,}5\cdot10^{-4}$, $0{,}044715$ bilan — $4{,}7\cdot10^{-4}$, kub hadsiz ($c'=0$) esa — $0{,}034$.
tanh yaqinlashishi bilan o‘qitilgan model xulosa chiqarishda ham aynan undan foydalanishi kerak. Farq har bir neyronda $4{,}7\cdot10^{-4}$ dan oshmaydi, lekin yuzlab qatlam va minglab neyronlarda vaznlarni konvertatsiya qilishda logitlarning sezilarli farqini beradi va bitma-bit testlarni buzadi.
3D’da x·Φ(x/s) oilasi: ReLU’dan to‘g‘ri chiziqqacha
Niqobdagi shovqin birlik bo‘lishi shart emas. Agar $\varepsilon\sim N(0,s^2)$ bo‘lsa, $P(\varepsilon\le x)=\Phi(x/s)$ bo‘ladi va $s$ «harorat»li butun funksiyalar oilasi hosil bo‘ladi:
- $s\to0$: shovqin yo‘q, $\Phi(x/s)$ zinapoyaga aylanadi va $f\to\operatorname{ReLU}(x)$;
- $s=1$: oddiy GELU;
- $s\to\infty$: shovqin kirishni bosib ketadi, $\Phi(x/s)\to\tfrac12$ va $f\to x/2$ — to‘g‘ri chiziq, nochiziqlilik yo‘qoladi.
Ikkinchi tenglik oilaning barcha a’zolari o‘xshash ekanini ko‘rsatadi: minimum $x=-0{,}752\,s$ nuqtada va $-0{,}170\,s$ ga teng. Sirtda bu «jarlik» tubi bo‘ylab o‘tgan to‘g‘ri firuza chiziq.
Tarmoqda GELU vektorga elementma-element qo‘llaniladi: $h=\operatorname{GELU}(W_1x+b_1)$. Har bir koordinata — $w_j^\top x+b_j=0$ giperteksislik bo‘ylab o‘z «burmasi», lekin ReLU’dan farqli ravishda burma silliq, ReLU nol beradigan tomonda esa kichik manfiy botiq bor.
O‘qitishda va transformerda GELU
Bitta yashirin qatlamli tarmoq javobni $w_{2j}\,f(w_{1j}x+b_{1j})$ «g‘ishtlar» yig‘indisi sifatida quradi. ReLU’da har bir g‘isht — bitta sinishli siniq chiziq, yig‘indi ham siniq chiziq. GELU’da g‘ishtlar silliq, shuning uchun silliq bog‘lanishni ularning kamroq soni bilan tasvirlash mumkin.
O‘qitish o‘sha hosiladan foydalanadi: neyronga kelgan gradiyent $\operatorname{GELU}'(z)=\Phi(z)+z\varphi(z)$ ga ko‘paytiriladi. ReLU’dan farqli ravishda manfiy $z$ li neyron signal olishda davom etadi, shuning uchun GELU’li tarmoqlar «o‘lik» neyronlardan kamroq aziyat chekadi.
Transformerning to‘g‘ri tarqalish bloki
BERT va GPT’da har bir diqqat (attention) qatlamidan keyin har bir tokenni alohida qayta ishlaydigan ikki qatlamli perseptron turadi:
BERT-base’da $d=768$, ya’ni 12 qatlamning har birida har bir tokenga $4d=3072$ ta GELU hisoblash to‘g‘ri keladi — 512 tokenli ketma-ketlik uchun bu bir o‘tishda qariyb 19 million hisoblash. Shuning uchun aktivatsiyaning o‘z tezligi muhim va aniq erf o‘rniga ko‘pincha tanh yaqinlashishi olinadi. FFN oldida LayerNorm turadi, shuning uchun o‘qitish boshida $W_1h+b_1$ kirishlar birlik tartibida — GELU’da ham «chuqurcha», ham silliq o‘tish bo‘lgan, ya’ni u ReLU’dan sezilarli farq qiladigan aynan o‘sha soha.
Xendriks va Gimpel GELU’ni 2016 yilda taklif qildi va ko‘rish, nutq hamda matn vazifalarida u ReLU va ELU’dan yomon emasligini ko‘rsatdi. Unga keng shuhrat GPT (2018) va BERT (2018), keyin GPT-2, GPT-3 va Vision Transformer (2020) olib keldi. 2020 yilda Shazir GeGLU va SwiGLU ventilli variantlari yanada yaxshi ekanini ko‘rsatdi va yangi LLM’lar ko‘pincha ulardan foydalanadi.
Kodda: aniq, tez va barqaror
NumPy’da erf funksiyasi yo‘q, shuning uchun uni SciPy’dan olishadi. Katta manfiy $x$ da aniqlikni yo‘qotmaslik uchun taqsimot funksiyasini qo‘shimcha xatolar funksiyasi orqali hisoblash qulay: $\Phi(x)=\tfrac12\operatorname{erfc}(-x/\sqrt2)$. $\tfrac12(1+\operatorname{erf})$ formulasi $x=-10$ da deyarli teng sonlarni ayiradi va aynan 0 beradi, holbuki haqiqiy qiymat $\operatorname{GELU}(-10)\approx-7{,}6\cdot10^{-23}$; aktivatsiyaning o‘zi uchun bu muhim emas, lekin o‘sha $\Phi$ boshqa formulalarda ham tez-tez kerak bo‘ladi.
pythonimport numpy as np
from scipy.special import erfc # NumPy’ning o‘zida erf funksiyasi yo‘q
SQRT2 = np.sqrt(2.0)
def gelu(x):
"""Aniq GELU: x·Φ(x), bunda Φ(x) = ½·erfc(−x/√2) — yaqin sonlarni ayirmasdan."""
x = np.asarray(x, dtype=float)
return x * 0.5 * erfc(-x / SQRT2)
def gelu_grad(x):
"""Hosila: Φ(x) + x·φ(x)."""
x = np.asarray(x, dtype=float)
cdf = 0.5 * erfc(-x / SQRT2)
pdf = np.exp(-0.5 * x * x) / np.sqrt(2.0 * np.pi)
return cdf + x * pdf
def gelu_tanh(x):
# BERT va GPT-2 ning asl kodidagi yaqinlashish
return 0.5 * x * (1.0 + np.tanh(np.sqrt(2.0 / np.pi) * (x + 0.044715 * x**3)))
np.set_printoptions(precision=5, suppress=True)
x = np.array([-3.0, -1.0, 0.0, 1.0, 3.0])
print(gelu(x)) # [-0.00405 -0.15866 0. 0.84134 2.99595]
print(gelu_grad(x)) # [-0.01195 -0.08332 0.5 1.08332 1.01195]
print(np.abs(gelu_tanh(x) - gelu(x)).max()) # ≈ 4.1e-04 (x = ±3 nuqtalarda)
pythonimport torch
import torch.nn as nn
import torch.nn.functional as F
x = torch.tensor([-1.0, 0.0, 1.0], requires_grad=True)
y = F.gelu(x) # −0.1587, 0.0000, 0.8413
y.sum().backward()
print(x.grad) # −0.0833, 0.5000, 1.0833 = Φ(x) + x·φ(x)
print(F.gelu(x, approximate="tanh")) # −0.1588, 0.0000, 0.8412
# Transformerning FFN bloki (BERT va GPT’dagi kabi): d → 4d → d
class FeedForward(nn.Module):
def __init__(self, d_model=768, mult=4, p_drop=0.1):
super().__init__()
self.fc1 = nn.Linear(d_model, mult * d_model)
self.act = nn.GELU() # GPT-2 vaznlari uchun: nn.GELU(approximate="tanh")
self.fc2 = nn.Linear(mult * d_model, d_model)
self.drop = nn.Dropout(p_drop)
def forward(self, h):
return self.drop(self.fc2(self.act(self.fc1(h))))
GELU variantini vaznlar o‘qitilgandagidek tanlang: nn.GELU() — aniq, nn.GELU(approximate="tanh") — taqribiy. Yangi model uchun sifatda deyarli farq yo‘q; tanh varianti eski uskunada tezroq bo‘lishi mumkin.
Ko‘p uchraydigan xatolar
- GELU chiqishini ReLU’dagidek manfiy emas deb hisoblash. U $-0{,}170$ gacha tushishi mumkin; keyin logarifm, ildiz yoki bo‘lish kelsa, buni hisobga olish kerak.
- O‘qitish va xulosa chiqarish orasida yoki modelni konvertatsiya qilishda (ONNX, TensorRT, boshqa freymvork) aniq GELU va tanh yaqinlashishini aralashtirish. Xato kichik, lekin qatlamlar bo‘yicha to‘planadi.
- $x\,\sigma(1{,}702x)$ ni GELU bilan adashtirish. Bu xatosi $0{,}02$ gacha bo‘lgan tez yaqinlashish, aslida $\beta=1{,}702$ parametrli SiLU.
- GELU gradiyent so‘nishidan to‘liq xalos qiladi deb o‘ylash. $x\to-\infty$ da hosila gaussiana kabi so‘nadi: allaqachon $\operatorname{GELU}'(-4)\approx-0{,}0005$. Kirishlarni normallashtirish baribir kerak.
- $\Phi$ ni $\sqrt2$ ga bo‘lishni unutib, $\tfrac12(1+\operatorname{erf}(x))$ deb yozish. Bu $N(0,\tfrac12)$ taqsimot funksiyasi bo‘ladi, ya’ni $x\Phi(\sqrt2x)$ — boshqa egri chiziq.
Boshqa formulalar bilan bog‘lanish
- ReLU: $s\to0$ da $x\,\Phi(x/s)$ ning limiti va GELU’ning «skeleti»: $\operatorname{GELU}=\operatorname{ReLU}-|x|\Phi(-|x|)$.
- SiLU / Swish: «kirish × yumshoq ventil» sxemasi, faqat $\Phi$ o‘rnida sigmoida; $x\,\sigma(1{,}702x)\approx\operatorname{GELU}(x)$.
- Sigmoida: $\sigma(1{,}702x)$ $\Phi(x)$ ni $0{,}0095$ dan oshmaydigan xato bilan yaqinlashtiradi — logit va probit modellari bog‘lanishi.
- tanh: GELU’ning eng mashhur yaqinlashishi asosi.
- Leaky ReLU: $x<0$ da signalni o‘tkazishning boshqa usuli — silliq «chuqurcha» o‘rniga doimiy kichik qiyalik.
- Adam va MSE: 7-rasmdagi simulyatsiyaning optimizatori va yo‘qotishi.
Xulosa
1) $\operatorname{GELU}(x)=x\,\Phi(x)$: $\varepsilon\sim N(0,1)$ uchun $P(\varepsilon\le x)$ ehtimollikka ko‘paytirilgan kirish; bu kirishga bog‘liq tasodifiy niqobning o‘rtachasi. 2) $\operatorname{GELU}=\operatorname{ReLU}-|x|\Phi(-|x|)$: $x=-0{,}752$ da $-0{,}170$ minimumli silliq ReLU. 3) $\operatorname{GELU}'=\Phi+x\varphi\in[-0{,}129;\,1{,}129]$, $\operatorname{GELU}''=\varphi\,(2-x^2)$. 4) $0{,}044715$ koeffitsiyentli tanh yaqinlashishi ko‘pi bilan $4{,}7\cdot10^{-4}$ ga xato qiladi, lekin bu boshqa funksiya. 5) $x\,\Phi(x/s)$ ReLU ($s\to0$) va $x/2$ ($s\to\infty$) ni bog‘laydi. 6) BERT, GPT va ViT’ning FFN bloklarida turadi.