U nima uchun kerak
ReLU — chuqur o‘qitishdagi eng mashhur aktivatsiya: $\max(0,x)$ bir zumda hisoblanadi, noldan o‘ngda esa gradiyent so‘nmaydi. Lekin uning zaif joyi bor. Noldan chapda ReLU signalni susaytirmaydi, balki uni nolga aylantiradi — u bilan birga gradiyentni ham. Kirishi barcha misollarda manfiy bo‘lgan neyron 0 chiqaradi, nol gradiyent oladi va boshqa hech qachon o‘rganmaydi. Bu «o‘layotgan ReLU» (dying ReLU).
Leaky ReLU — eng kichik tuzatish: noldan chapda grafik gorizontal emas, biroz qiya — kichik $\alpha$ bilan $\alpha x$ (odatda $0{,}01$ dan $0{,}3$ gacha). Signal yopiq eshikdan «sizib o‘tadi» — nomi shundan (leaky — «oqadigan»).
U qayerda uchraydi:
- GAN diskriminatorlari — DCGAN’da (Radford va boshq., 2015) diskriminatorning barcha qatlamlari $\alpha=0{,}2$ li Leaky ReLU’dan foydalanadi;
- YOLO detektorlari — YOLOv2 va YOLOv3 dagi Darknet tarmog‘i $\alpha=0{,}1$ li Leaky ReLU asosida qurilgan;
- graf tarmoqlari — GAT’dagi e’tibor koeffitsiyentlari $\alpha=0{,}2$ li Leaky ReLU orqali hisoblanadi;
- PReLU’li konvolyutsion tarmoqlar — o‘rganiladigan $\alpha$ li variant (He va boshq., 2015) ImageNet’da top-5 xatoni ilk bor insonning taxminiy xatosidan pastga tushirishga yordam berdi;
- ReLU «o‘ladigan» istalgan tarmoq — almashtirish bitta qator va deyarli hech narsaga tushmaydi.
$x>0$ da $\operatorname{LReLU}(x)=x$, $x\le0$ da $\alpha x$. Hosila — zina: o‘ngda $1$, chapda $\alpha$, shuning uchun gradiyent hech qachon butunlay nolga aylanmaydi. Funksiya bo‘lak-chiziqli, monoton va deyarli ReLU kabi arzon bo‘lib qoladi. $\alpha=0$ da bu ReLU, $\alpha=1$ da ayniy funksiya, o‘rganiladigan $\alpha$ da — PReLU.
Intuitsiya: oxirigacha yopilmaydigan eshik
ReLU eshikka o‘xshaydi: musbat signal to‘liq o‘tadi, manfiysi yopiq tabaqaga uriladi. Leaky ReLU tirqish qoldiradi — manfiy signal o‘tadi, lekin $1/\alpha$ marta susaygan holda. $\alpha=0{,}1$ da $-2$ kirish $-0{,}2$ ga aylanadi.
Nuqtani grafik bo‘ylab torting. To‘q sariq «qiyalik uchburchagi» hosilani ko‘rsatadi: $x$ o‘qi bo‘ylab 1 ga qadam qiymatni noldan chapda $\alpha$ ga, o‘ngda 1 ga o‘zgartiradi. Pastda — hosilaning o‘zi: nolda uzilishga ega ikki gorizontal zina. $\alpha$ surgichini suring: ReLU’dan ($\alpha=0$) «oqadigan» variant orqali $y=x$ to‘g‘ri chiziqqacha ($\alpha=1$).
Chapda grafik yassi emas, lekin juda yotiq: $\alpha=0{,}01$ da $-100$ kirish atigi $-1$ beradi. Leaky ReLU’ning butun nochiziqliligi bitta nuqtada — qiyalik $\alpha$ dan 1 ga o‘zgaradigan noldagi sinishda jamlangan. Bunday neyronlardan iborat tarmoqning ifodalash kuchi aynan shu sinishlardan keladi.
Formula mayda detallarigacha
Bitta funksiyani uch xil yozishni bilish foydali — har biri o‘z joyida kerak bo‘ladi.
1. Hollar bo‘yicha
- $x$
- neyron kirishi — odatda $z=w^\top h+b$ pre-aktivatsiya;
- $\alpha$
- manfiy qismning qiyaligi, giperparametr; odatda $0<\alpha<1$;
- $\alpha x$
- «sizish»: manfiy kirish nolga aylanmaydi, $1/\alpha$ marta siqiladi.
$x=0$ nuqtada ikkala tarmoq ham nol beradi, shuning uchun nolni qaysi tarmoqqa qo‘shish muhim emas: funksiya uzluksiz.
2. Maksimum orqali
$x>0$ va $\alpha\le1$ da $x\ge\alpha x$, $x<0$ da esa aksincha, $\alpha x\ge x$. Demak, maksimum kerakli tarmoqni o‘zi tanlaydi. Lekin faqat $\alpha\le1$ da: $\alpha=2$ da o‘ngda $2x$ yutadi va boshqa funksiya hosil bo‘ladi. Bu yozuv kodda qulay (np.maximum(alpha * x, x)), lekin shartni unutish oson.
3. Chiziqli qism plyus modul
Tekshiruv: $x>0$ da $\frac{1+\alpha}{2}x+\frac{1-\alpha}{2}x=x$, $x<0$ da — $\frac{1+\alpha}{2}x-\frac{1-\alpha}{2}x=\alpha x$. Bu shakl istalgan $\alpha$ da to‘g‘ri va asosiysini tushuntiradi: Leaky ReLU — chiziqli funksiya plyus «ozgina modul». Butun nochiziqlilik ikkinchi qo‘shiluvchida, uning ulushi $\frac{1-\alpha}{2}$ esa $\alpha$ o‘sishi bilan kamayadi. $\alpha=1$ da nochiziqlilik butunlay yo‘qoladi.
| $x$ | $\alpha=0{,}01$ | $\alpha=0{,}2$ | $\operatorname{LReLU}'(x)$ |
|---|---|---|---|
| −5 | −0,05 | −1 | $\alpha$ |
| −2 | −0,02 | −0,4 | $\alpha$ |
| −0,5 | −0,005 | −0,1 | $\alpha$ |
| 0,5 | 0,5 | 0,5 | $1$ |
| 2 | 2 | 2 | $1$ |
| 5 | 5 | 5 | $1$ |
Noldan o‘ngda barcha variantlar ReLU bilan ustma-ust tushadi; ular faqat qancha manfiy signal «sizib o‘tishi» bilan farqlanadi.
Xossalar
- Aniqlanish va qiymatlar sohasi — butun son o‘qi $\mathbb R$ ($\alpha>0$ da). ReLU’ning qiymatlari faqat $[0;\,+\infty)$.
- Uzluksizlik va bo‘lak-chiziqlilik: nolda yopishtirilgan ikki to‘g‘ri chiziq. Funksiya $x=0$ dan boshqa hamma joyda differensiallanuvchi.
- Qat’iy monotonlik $\alpha>0$ da: katta kirish katta chiqish beradi. Shuning uchun funksiya teskarilanuvchi: $y>0$ da $\operatorname{LReLU}_\alpha^{-1}(y)=y$, $y\le0$ da $y/\alpha$, ya’ni $\operatorname{LReLU}_{1/\alpha}$. ReLU’ning teskarisi yo‘q: barcha manfiy kirishlar nolga yopishtirilgan.
- Musbat bir jinslilik: $c\ge0$ da $\operatorname{LReLU}(cx)=c\,\operatorname{LReLU}(x)$. Kirish masshtabi shunchaki chiqishga o‘tadi — initsializatsiyaning sodda formulalari shundan.
- Lipshits sharti $\max(1,|\alpha|)$ konstanta bilan, ya’ni $\alpha\le1$ da 1: $|\operatorname{LReLU}(a)-\operatorname{LReLU}(b)|\le|a-b|$.
- Chegaralanmaganlik yuqoridan ham, pastdan ham, lekin pastga funksiya $1/\alpha$ marta sekinroq o‘sadi.
- Xususiy hollar: $\alpha=0$ — ReLU, $\alpha=1$ — ayniy funksiya, $\alpha=-1$ — $|x|$ modul (endi monoton emas).
Chiqishning o‘rtachasi va tarqoqligi
Neyron kirishi $z\sim N(0,1)$ bo‘lsin. U holda
$\alpha=0{,}01$ da o‘rtacha $0{,}395$ ga teng (ReLU’da — $0{,}399$), $\alpha=0{,}2$ da — $0{,}319$. $\alpha$ qancha katta bo‘lsa, chiqishlar nol o‘rtachaga shuncha yaqin; bu keyingi qatlamni o‘qitishni biroz yengillashtiradi. $\frac{1+\alpha^2}{2}$ ikkinchi moment initsializatsiya bo‘limida kerak bo‘ladi.
Bu formulalar qayerdan keladi
$z\sim N(0,1)$ uchun $\mathbb E[z\,\mathbf 1_{z>0}]=\varphi(0)=1/\sqrt{2\pi}$ ekani ma’lum, simmetriya bo‘yicha esa $\mathbb E[z\,\mathbf 1_{z<0}]=-1/\sqrt{2\pi}$. Shuning uchun
Xuddi shunday $\mathbb E[z^2\mathbf 1_{z>0}]=\mathbb E[z^2\mathbf 1_{z<0}]=\tfrac12$, bundan $\mathbb E[\operatorname{LReLU}(z)^2]=\tfrac12+\tfrac{\alpha^2}{2}$. Ikkinchi formula birlik dispersiyali istalgan simmetrik taqsimot uchun to‘g‘ri, birinchisi — faqat normal taqsimot uchun.
Hosila: jarlik o‘rniga zina
Har bir tarmoqda funksiya chiziqli, shuning uchun hosila — shunchaki tarmoq qiyaligi:
Ta’rif bo‘yicha keltirib chiqarish
$x>0$ da yetarlicha kichik $h$ uchun $x+h$ nuqta ham musbat, va $\frac{\operatorname{LReLU}(x+h)-\operatorname{LReLU}(x)}{h}=\frac{(x+h)-x}{h}=1$. $x<0$ da xuddi shunday $\frac{\alpha(x+h)-\alpha x}{h}=\alpha$ ni olamiz.
Nolda bir tomonlama limitlar har xil:
$\alpha\ne1$ da ular mos kelmaydi, shuning uchun nolda hosila yo‘q — bu sinish nuqtasi.
Amalda nol bilan nima qilish kerak? Sinish nuqtasida subgradiyent (subgradient) bor: $0\le\alpha\le1$ da istalgan $g\in[\alpha;\,1]$ son grafikdan yuqorida yotmaydigan $y=gx$ to‘g‘ri chiziqni beradi. Kutubxonalar kelishuv bo‘yicha bitta qiymatni tanlaydi — PyTorch’da $x=0$ da $\alpha$ olinadi. Kirish aynan nolga kamdan-kam tushadi, shuning uchun tanlov deyarli hech narsaga ta’sir qilmaydi.
Nega zina jarlikdan yaxshi
Zanjir qoidasiga ko‘ra $a=\operatorname{LReLU}(z)$, $z=\sum_j w_jx_j+b$ neyronning $w_j$ vazni bo‘yicha gradiyent
ReLU’da $z<0$ da o‘rta ko‘paytuvchi 0 ga teng, Leaky ReLU’da — $\alpha$ ga. Chapda gradiyent $1/\alpha$ marta kuchsizroq, lekin nolga teng emas: manfiy zonada «qolib ketgan» neyron xato haqidagi signalni olishda davom etadi.
α bo‘yicha hosila: PReLU sari qadam
Agar $\alpha$ ni o‘rganiladigan parametrga aylantirsak, u bo‘yicha hosila kerak bo‘ladi. U ham sodda:
$\alpha$ qiyalik faqat chap tarmoqqa tushgan misollardan o‘rganadi — PReLU shunday tuzilgan (9-bo‘lim). $x$ bo‘yicha ikkinchi hosila noldan boshqa hamma joyda nolga teng: butun egrilik sinishda jamlangan, umumlashgan funksiyalar ma’nosida $\operatorname{LReLU}''(x)=(1-\alpha)\,\delta(x)$.
O‘layotgan ReLU va Leaky uni qanday davolaydi
Neyron qanday o‘ladi. Muvaffaqiyatsiz katta qadamdan keyin (juda katta o‘qitish tezligi, ma’lumotlardagi chetga chiqish, yomon initsializatsiya) neyronning $b$ siljishi kuchli manfiy bo‘lib qolgan bo‘lsin. U holda barcha misollarda $z=w^\top x+b<0$, ReLU 0 chiqaradi, $\operatorname{ReLU}'(z)=0$ — va $w$, $b$ hamda chiqish vazni $v$ bo‘yicha gradiyentlar birdaniga nolga aylanadi. Gradiyent tushish bu neyronni boshqa siljitmaydi: u o‘lik (oddiy SGD’da birinchi qatlam neyroni uchun — qat’iy umrbod; chuqurroq qatlamlarda neyron kirishi oldingi qatlamlar bilan birga o‘zgaradi va neyronlar ba’zan jonlanadi). CS231n kursi konspektlarida o‘qitish tezligi juda katta bo‘lsa, tarmoqning 40% gachasi o‘lik bo‘lib qolishi mumkinligi qayd etilgan.
Quyida eng toza tajriba. Bitta $f(x)=v\cdot\operatorname{act}(wx+b)$ neyron $[-3;\,3]$ kesmadagi 41 nuqta bo‘yicha $y=1{,}5\max(0,\,x-1)$ «sharnir»ni o‘rganishi kerak. Start: $w=1$, $b=-4$, $v=1$ — sinish $x=4$ nuqtada, ma’lumotlardan tashqarida, shuning uchun barcha misollarda $z<0$. O‘qitish — $0{,}1$ qadamli MSE bo‘yicha gradiyent tushish.
Murosaga e’tibor bering. Katta $\alpha$ neyronni tez hayotga qaytaradi, lekin chap tarmoq qiya bo‘lib qoladi: $\alpha=0{,}1$ da yakuniy model chapda nol o‘rniga $\alpha v w\approx0{,}116$ qiyalikka ega, qoldiq xato shundan. Kichik $\alpha$ funksiya shaklini deyarli buzmaydi, lekin sekinroq jonlantiradi.
Nol bo‘lmagan gradiyent neyron albatta qaytadi degani emas: u chap tarmoqda $\alpha(w^\top x+b)$ chiziqli funksiya sifatida ishlab qolishi mumkin. Leaky ReLU boshqa narsani kafolatlaydi — neyron hech qachon butunlay muzlamaydi va o‘rganishda davom etadi. O‘limning o‘z sababiga qarshi mo‘tadil o‘qitish tezligi, qizdirish (warmup), normallashtirish va to‘g‘ri initsializatsiya yordam beradi.
Leaky ReLU’lardan iborat tarmoq: bo‘lak-chiziqli relyef
Ikki kirishli tarmoqda har bir $\operatorname{LReLU}(w_k^\top x+b_k)$ neyron tekislikni $w_k^\top x+b_k=0$ to‘g‘ri chiziq bo‘ylab «bukadi»: uning bir tomonida neyron hissasining qiyaligi ikkinchisidagidan $1/\alpha$ marta kichik. $f(x)=\sum_k v_k\operatorname{LReLU}(w_k^\top x+b_k)$ neyronlar yig‘indisi — ko‘p yoqli sirt: faol neyronlar to‘plami o‘zgarmaydigan har bir soha ichida u tekis, sinish chiziqlarida esa qiyaligini o‘zgartiradi.
Sohalar soni $\alpha$ ga bog‘liq emas ($\alpha\ne1$ ekan): uni faqat sinish chiziqlari belgilaydi. Lekin barcha neyronlar o‘chgan joyda nima bo‘lishi $\alpha$ ga bog‘liq. ReLU’da u yerda nol gradiyentli plato bo‘ladi va unga tushgan misollar tarmoqqa hech narsa bildirmaydi. Leaky ReLU’da plato qiya va u yerda gradiyent, odatda, nolga teng emas.
Umumiy vaziyatdagi $n$ ta to‘g‘ri chiziq tekislikni ko‘pi bilan $1+n+\binom n2$ qismga bo‘ladi: $n=6$ uchun bu 22. Rasmdagi kvadratda ulardan 19 tasi ko‘rinadi. Chuqur tarmoqlarda chiziqli sohalar soni chuqurlik bilan eksponensial o‘sishi mumkin — bu ularning ifodalash kuchining tushuntirishlaridan biri.
Chuqur tarmoqlar: Leaky ReLU uchun He initsializatsiyasi
Chuqur tarmoqda signal o‘nlab $z_{l+1}=W_{l+1}\operatorname{LReLU}(z_l)$ qatlamlardan o‘tadi. Agar har bir qatlamda dispersiya 1 dan ozgina bo‘lsa ham farq qiladigan songa ko‘paytirilsa, 50 qatlamdan keyin bu signalning portlashi yoki yo‘qolishiga aylanadi. Shu ko‘paytuvchini hisoblaymiz.
Ko‘paytuvchini keltirib chiqarish
$W_{ij}$ vaznlar mustaqil, $\mathbb E W_{ij}=0$, $\operatorname{Var}W_{ij}=s^2$, $z_l$ kirishlar esa nolga nisbatan simmetrik bo‘lsin. $h_j=\operatorname{LReLU}(z_{l,j})$ bo‘lgan bitta $z_{l+1,i}=\sum_{j=1}^{n}W_{ij}h_j$ chiqish uchun:
Oxirgi tenglik — xossalar bo‘limidagi ikkinchi moment: $z_l^2$ ning yarmi musbat tarmoqdan to‘liq keladi, yarmi — manfiy tarmoqdan $\alpha^2$ ga ko‘paytirilgan holda. Dispersiya saqlanishi uchun ko‘paytuvchi 1 ga teng bo‘lishi kerak:
Teskari o‘tishda gradiyent $W^\top$ ga va $\operatorname{LReLU}'(z)$ ga ko‘paytiriladi, $\mathbb E[\operatorname{LReLU}'(z)^2]=\frac{1+\alpha^2}{2}$ esa — o‘sha ko‘paytuvchi. Shuning uchun bitta initsializatsiya ham to‘g‘ri signalni, ham gradiyentlarni saqlaydi.
$\alpha=0$ da ReLU uchun mashhur He (Kaiming) initsializatsiyasining $g=\sqrt2$ qiymati chiqadi. Leaky ReLU uchun koeffitsiyent biroz kichikroq: $\alpha=0{,}01$ da $1{,}414$, $\alpha=0{,}2$ da $1{,}387$, $\alpha=0{,}3$ da $1{,}355$.
Aynan shuni nn.init.kaiming_normal_(w, a=alpha, nonlinearity='leaky_relu') bajaradi: standart chetlanish $\sqrt{2/((1+a^2)\,n_{\text{in}})}$. U yerda standart qiymat a=0, ya’ni oddiy ReLU uchun initsializatsiya — Leaky ReLU uchun a parametrini aniq berish kerak.
PReLU, RReLU va butun oila
$\alpha$ ni qanday tanlash kerak? Uchta javob bor.
- Qat’iy $\alpha$ — klassik Leaky ReLU (Maas, Hannun, Ng, 2013, $\alpha=0{,}01$). Bugun ko‘pincha $0{,}1$–$0{,}3$ olinadi: Xu va boshq. (2015) taqqoslashida $\alpha=1/5{,}5\approx0{,}18$ li «kuchli oqadigan» variant $0{,}01$ dan yaxshiroq ishlagan.
- O‘rganiladigan $\alpha$ — PReLU (Parametric ReLU, He va boshq., 2015). $\alpha$ parametrga aylanadi — qatlamga bitta yoki har kanalga bittadan — va vaznlar bilan birga gradiyent tushish orqali o‘rganiladi. PyTorch’da boshlang‘ich qiymat — $0{,}25$.
- Tasodifiy $\alpha$ — RReLU (Randomized ReLU): o‘qitishda $\alpha$ kirishning har bir elementi uchun qaytadan $U(1/8;\,1/3)$ tekis taqsimotdan olinadi (PyTorch’dagi standart chegaralar), xulosa chiqarishda — o‘rtacha $\frac{1/8+1/3}{2}=\frac{11}{48}\approx0{,}229$. Shovqin regulyarizatsiya vazifasini bajaradi.
PReLU’da $\alpha$ bo‘yicha gradiyent — hosila bo‘limidagi $\min(0,\,z)$: qiyalik faqat manfiy kirishlardan o‘rganadi. Gradiyent tushish vaznni ham, qiyalikni ham birdaniga qanday topishini ko‘raylik.
PReLU har bir kanalga atigi bitta parametr qo‘shadi, lekin He va boshqalarning ishida yangi initsializatsiya bilan birga u juda chuqur konvolyutsion tarmoqlarni o‘qitish va ImageNet’da $4{,}94\%$ top-5 xatoga erishish imkonini berdi — bu insonning taxminiy $5{,}1\%$ xatosidan past. Mualliflar $\alpha$ ga vaznlar so‘nishini (weight decay) qo‘llamaslikni ta’kidlaydi: u $\alpha$ ni nolga, ya’ni ReLU’ga qaytaradi.
Silliq qarindoshlar
Noldagi sinishni silliqlash mumkin. ELU chap to‘g‘ri chiziqni $-\alpha$ darajasida to‘yinadigan $\alpha(e^x-1)$ eksponenta bilan almashtiradi (bu yerda $\alpha$ — ELU’ning o‘z parametri, odatda 1). SELU masshtab qo‘shadi: $\lambda\approx1{,}0507$ va $\alpha\approx1{,}6733$ LeCun initsializatsiyali to‘liq bog‘langan tarmoqda aktivatsiyalar nol o‘rtacha va birlik dispersiyani o‘zi saqlaydigan qilib tanlangan. GELU va SiLU — bugungi transformerlarda turadigan silliq va hatto nomonoton funksiyalar.
| Funksiya | $x\le0$ da | Chapdagi hosila | Xususiyati |
|---|---|---|---|
| ReLU | $0$ | $0$ | nol gradiyent, «o‘lik» neyronlar |
| Leaky ReLU | $\alpha x$ | $\alpha$ | qat’iy qiyalik, odatda $0{,}01$–$0{,}3$ |
| PReLU | $\alpha x$, $\alpha$ o‘rganiladi | $\alpha$ | qatlam yoki kanalga +1 parametr |
| RReLU | $\alpha x$, $\alpha\sim U(\tfrac18;\,\tfrac13)$ | $\alpha$ | regulyarizatsiya sifatida shovqin |
| ELU | $\alpha(e^{x}-1)$ | $\alpha e^{x}$ | $\alpha=1$ da hosila uzluksiz, $-\alpha$ da to‘yinadi |
| SELU | $\lambda\alpha(e^{x}-1)$ | $\lambda\alpha e^{x}$ | o‘z-o‘zini normallashtirish, $\lambda\approx1{,}0507$ |
Kodda
NumPy’da Leaky ReLU — bitta qator. np.maximum(alpha * x, x) dan ko‘ra np.where yozish ishonchliroq: ikkinchi yozuv $\alpha>1$ da jimgina buziladi.
pythonimport numpy as np
def leaky_relu(x, alpha=0.01):
# maximum(alpha * x, x) emas, where: bu yozuv istalgan alpha da to‘g‘ri
return np.where(x > 0, x, alpha * x)
def leaky_relu_grad(x, alpha=0.01):
return np.where(x > 0, 1.0, alpha) # nolda alpha olinadi, PyTorch’dagidek
def he_std(n_in, alpha=0.01):
# Leaky ReLU uchun He initsializatsiyasi: Var w = 2 / ((1 + alpha²) · n_in)
return np.sqrt(2.0 / ((1.0 + alpha**2) * n_in))
x = np.array([-3.0, -0.5, 0.0, 2.0])
print(leaky_relu(x)) # [-0.03 -0.005 0. 2. ]
print(leaky_relu_grad(x)) # [0.01 0.01 0.01 1. ]
print(he_std(256, 0.2)) # 0.08667190566019205
pythonimport torch
import torch.nn as nn
act = nn.LeakyReLU(negative_slope=0.01) # 0.01 — standart qiymat
x = torch.tensor([-3.0, 0.0, 2.0], requires_grad=True)
act(x).sum().backward()
print(x.grad) # tensor([0.0100, 0.0100, 1.0000]) — nolda α
prelu = nn.PReLU(num_parameters=1, init=0.25) # α — o‘rganiladigan parametr
print(prelu(torch.tensor([-2.0, 3.0])).detach()) # tensor([-0.5000, 3.0000])
lin = nn.Linear(256, 256)
# std = √(2 / ((1 + a²) · 256)); standart a=0, ya’ni «ReLU uchun»
nn.init.kaiming_normal_(lin.weight, a=0.2, nonlinearity="leaky_relu")
print(nn.init.calculate_gain("leaky_relu", 0.2)) # 1.3867504905630728
PyTorch nn.LeakyReLU: negative_slope=0.01. TensorFlow tf.nn.leaky_relu: alpha=0.2. Keras layers.LeakyReLU: $0{,}3$. Uchta freymvorkdagi bitta «Leaky ReLU» — uchta har xil funksiya. Modelni ko‘chirishda $\alpha$ ni aniq ko‘rsating.
Hisoblash nuqtai nazaridan Leaky ReLU xavfsiz: eksponenta ham, bo‘lish ham, to‘lib ketish ham yo‘q. Yagona nozik joy — PyTorch’dagi inplace=True: u xotirani tejaydi, lekin grafning boshqa amallariga kerak bo‘lishi mumkin bo‘lgan kirishni qayta yozadi.
Ko‘p uchraydigan xatolar
- $\alpha>1$ da
max(alpha * x, x)yozuvi. Formula faqat $\alpha\le1$ da to‘g‘ri; katta $\alpha$ larda boshqa funksiya chiqadi. Xavfsiz yozuv —where(x > 0, x, alpha * x). - Juda katta $\alpha$. $\alpha\to1$ da nochiziqlilik ulushi $\frac{1-\alpha}{2}$ nolga intiladi, funksiya deyarli chiziqli bo‘lib qoladi va chuqur tarmoq ifodalash kuchini yo‘qotadi. Oqilona oraliq — $0{,}01$ dan $0{,}3$ gacha.
- $\alpha$ ga tuzatishsiz «ReLU uchun» initsializatsiya. Har qatlamda dispersiya ko‘paytuvchisi $1+\alpha^2$: $\alpha=0{,}3$ da signal RMS i 1-qatlamdan 50-qatlamgacha taxminan $1{,}09^{24{,}5}\approx8{,}3$ marta o‘sadi (5-rasm). $\alpha$ ni
kaiming_normal_(..., a=alpha)ga bering. - Leaky ReLU beqaror o‘qitishni o‘zi davolaydi degan umid. U nol gradiyentni yo‘qotadi, lekin sababini emas: juda katta o‘qitish tezligi baribir xavfli.
- PReLU’ning $\alpha$ siga vaznlar so‘nishi. U $\alpha$ ni nolga tortadi va PReLU ReLU’ga aylanadi. $\alpha$ ni weight decay qo‘llanadigan parametrlar guruhidan chiqaring.
- Har xil standart qiymatlar PyTorch ($0{,}01$), TensorFlow ($0{,}2$) va Keras’da ($0{,}3$): modelni freymvorklar o‘rtasida ko‘chirganda natija jimgina o‘zgaradi.
Boshqa formulalar bilan bog‘lanishlar
- ReLU: $\alpha=0$ xususiy hol; «o‘layotgan ReLU» haqida batafsil — o‘sha yerda.
- SiLU / Swish va GELU: chapda ham kichik manfiy signalni o‘tkazadigan, lekin keyin uni so‘ndiradigan silliq aktivatsiyalar.
- Sigmoida va tanh: to‘yinadigan aktivatsiyalar; Leaky ReLU’da to‘yinish umuman yo‘q, demak, to‘yinish tufayli gradiyent so‘nishi ham yo‘q.
- MSE: 3 va 6-rasmlardagi tajribalarning yo‘qotish funksiyasi.
- SGD va Adam: optimizatorning juda katta qadami — ReLU neyronlari o‘limining asosiy sababi.
Xulosa
1) $x>0$ da $\operatorname{LReLU}_\alpha(x)=x$, $x\le0$ da $\alpha x$; bu $\alpha\le1$ da $\max(\alpha x,x)$ ga va istalgan $\alpha$ da $\frac{1+\alpha}{2}x+\frac{1-\alpha}{2}|x|$ ga teng. 2) Hosila — $\alpha$ va $1$ dan iborat zina: gradiyent nolga aylanmaydi, neyron muzlamaydi. 3) Murosa: katta $\alpha$ neyronlarni tezroq jonlantiradi, lekin funksiyani chiziqliga yaqinlashtiradi. 4) Leaky ReLU tarmog‘i — tekis «o‘lik» platolarsiz bo‘lak-chiziqli funksiya. 5) Initsializatsiya: $\operatorname{Var}w=\frac{2}{(1+\alpha^2)\,n_{\text{in}}}$. 6) PReLU $\alpha$ ni $\min(0,z)$ gradiyent orqali o‘rganadi.