Neyron tarmoq formulalari: qo‘llanma · Yo‘qotishlar — regressiya

Huber yo‘qotish funksiyasi: MSE va MAE orasidagi ko‘prik

O‘rtada parabola, chetlarda to‘g‘ri chiziqlar. Tutashuvda nega qiymatlar ham, qiyaliklar ham mos kelishini, δ chegara chetga chiquvchilar gradiyentini qanday kesishini, Huber bahosi nega o‘rtacha va mediana orasidagi murosa ekanini, sehrli 1,345σ qayerdan kelishini va bu yo‘qotish bugun qayerda ishlashini — robast regressiyadan Fast R-CNN va DQN’gacha — tahlil qilamiz.

Javharbek Abdulatipov · 35 daq o‘qish
$$L_\delta(r)=\begin{cases}\tfrac12 r^2, & |r|\le\delta\\[1mm] \delta\bigl(|r|-\tfrac12\delta\bigr), & |r|>\delta\end{cases}$$

U nima uchun kerak

Regressiya o‘z xatolaridan $r=y-\hat y$ o‘rganadi. Ikki klassik yo‘qotish «xatoni qanday jazolash» savoliga turlicha javob beradi. MSE kvadrat bilan jazolaydi: u silliq, gradiyenti xatoga proporsional va minimum yaqinida ravon so‘nadi, lekin xatosi 10 bo‘lgan bitta chetga chiquvchi qiymat 1 o‘lchamli yuzta xatoga teng keladi. MAE modul bilan jazolaydi: chetga chiquvchilar unga deyarli ta’sir qilmaydi, ammo nolda sinish bor va gradiyent doim bir xil kattalikda — modelga kichik xatolarni «sayqallash» qiyin.

Piter Huber 1964 yilda ikkalasining eng yaxshisini olishni taklif qildi: kichik xatolar uchun parabola, katta xatolar uchun to‘g‘ri chiziq, $\delta$ chegarada almashinadi. Bu g‘oya bugun qayerda ishlaydi:

  • robast regressiya — scikit-learn’dagi HuberRegressor, statistikadagi M-baholar (M-estimators);
  • obyektlarni aniqlash — Fast R-CNN va uning avlodlarida ramka koordinatalari regressiyasi uchun Smooth L1; bu ko‘paytuvchi aniqligida Huber;
  • mustahkamlab o‘qitish — DQN’da vaqtli farq xatosi (temporal-difference error, TD) $[-1;\,1]$ gacha kesiladi, bu $\delta=1$ dagi Huber yo‘qotishiga teng kuchli;
  • gradiyentli busting — scikit-learn’da loss='huber', LightGBM’da objective='huber', XGBoost’da psevdo-Huber;
  • anomaliyali har qanday ma’lumot — ko‘chmas mulk narxlari, datchik ko‘rsatkichlari, xatoli belgilash.
Bir daqiqada asosiysi

$L_\delta(r)$ $|r|\le\delta$ da $\tfrac12r^2$ ga, undan tashqarida $\delta(|r|-\tfrac12\delta)$ ga teng. $|r|=\delta$ nuqtada qiymatlar ($\tfrac12\delta^2$) ham, qiyaliklar ($\delta$) ham mos tushadi. $\psi(r)=\operatorname{clip}(r,-\delta,\delta)$ hosila chegaralangan: chetga chiquvchi qiymat modelni $\delta$ dan kuchliroq tortmaydi. Kichik $\delta$ — MAE’ga yaqinroq, katta $\delta$ — MSE’ga.

Intuitsiya: to‘g‘ri dumli parabola

Bashoratni javobga tortadigan prujinani tasavvur qiling. Xato kichik ekan, prujina oddiy: qancha cho‘zilsa, shuncha kuchli tortadi — bu $\tfrac12r^2$ parabola. Lekin prujinada saqlagich bor: $\delta$ cho‘zilishdan keyin kuch o‘sishdan to‘xtaydi va $\delta$ ga teng bo‘lib qoladi. Bunday prujinaning energiyasi shundan keyin faqat chiziqli o‘sadi — bular to‘g‘ri dumlar.

Nuqtani grafik bo‘ylab torting va $\delta$ ni o‘zgartiring. Firuza $|r|\le\delta$ yo‘lak ichida ko‘k egri chiziq kulrang parabolada, tashqarida esa $\delta(|r|-\delta/2)$ shtrixli to‘g‘ri chiziqda yotadi. To‘q sariq urinma tutashuvdan sinishsiz o‘tadi.

1-rasm. $L_\delta(r)$ Huber yo‘qotishi va uning hosilalari. Pastda: to‘q sariq $\psi(r)=L'_\delta(r)$ yo‘lak ichida qiya, tashqarida gorizontal; binafsha $L''_\delta$ — zinapoya: ichkarida 1, tashqarida 0. $\delta=1$ va $r=2$ da: $\tfrac12r^2=2$ o‘rniga $L=1{,}5$, qiyalik esa 2 emas, 1.
Nimaga e’tibor berish kerak

$|r|=\delta$ tutashuvda egri chiziq paraboladan to‘g‘ri chiziqqa ravon o‘tadi: $\delta(|r|-\delta/2)$ to‘g‘ri chiziq $r=\pm\delta$ nuqtada parabolaga urinma. Sakrash faqat ikkinchi hosilada bor: egrilik 1 dan 0 ga tushadi.

Formula mayda detallarigacha

$$L_\delta(r)=\begin{cases}\tfrac12 r^2, & |r|\le\delta,\\[1mm] \delta\bigl(|r|-\tfrac12\delta\bigr), & |r|>\delta,\end{cases}\qquad r=y-\hat y$$
$r=y-\hat y$
qoldiq (residual): $y$ javob $\hat y$ bashoratdan qanchalik yuqori; yo‘qotish faqat $|r|$ ga bog‘liq, ishora ahamiyatsiz;
$\delta>0$
chegara: $\delta$ dan kichik xatolar «oddiy shovqin», kattalari shubhali hisoblanadi; $y$ birliklarida o‘lchanadi;
$\tfrac12 r^2$
kvadratik tarmoq — MSE’dagi kabi xato kvadratining aynan yarmi; $\tfrac12$ ko‘paytuvchi hosilani $r$ ga teng qiladi;
$\delta|r|$
chiziqli tarmoq — MAE’dagi kabi $\delta$ vaznli xato moduli;
$-\tfrac12\delta^2$
tarmoqlarni tikadigan pastga siljish: usiz $\delta|r|$ to‘g‘ri chiziq $|r|=\delta$ da $\delta^2$ berardi, parabola esa $\tfrac12\delta^2$ beradi.

Tikishni tekshiramiz. $|r|=\delta$ da kvadratik tarmoq $\tfrac12\delta^2$, chiziqlisi $\delta(\delta-\tfrac12\delta)=\tfrac12\delta^2$ beradi: qiymatlar teng. Hosilalar: parabolada $r=\delta$, to‘g‘ri chiziqda $\delta\operatorname{sign}r=\delta$ — qiyaliklar ham teng. $-\tfrac12\delta^2$ o‘zgarmas aynan to‘g‘ri chiziq parabolaga urinma bo‘lishi uchun tanlangan.

$r$$\tfrac12r^2$$|r|$$L_1(r)$$\psi_1(r)$
00000
0,50,1250,50,1250,5
10,510,51
2221,51
34,532,51
512,554,51
1050109,51

$\delta=1$ uchun jadval asosiy narsani ko‘rsatadi: 10 xatoda kvadrat 50 beradi, Huber esa — 9,5; hosila (oxirgi ustun) esa hech qachon 1 dan oshmaydi.

Umumiy misol

Qo‘llanmadagi misolni olamiz: $y=(3;\,5;\,8)$, $\hat y=(2{,}5;\,5;\,10)$, xatolar $r=(0{,}5;\,0;\,-2)$. $\delta=1$ da birinchi xato parabolaga tushadi: $\tfrac12\cdot0{,}5^2=0{,}125$; ikkinchisi — nol; uchinchisi, $|r|=2>1$, — to‘g‘ri chiziqqa: $1\cdot(2-0{,}5)=1{,}5$. O‘rtacha $(0{,}125+0+1{,}5)/3\approx0{,}542$.

Gradiyentlar qiziqroq. MSE yarmida ular xatolarning o‘ziga teng: $(0{,}5;\,0;\,-2)$ — chetga chiquvchi birinchi nuqtadan to‘rt marta kuchliroq tortadi. Huber’da $\psi=(0{,}5;\,0;\,-1)$ — faqat ikki marta: katta xato qolganlarini bosib keta olmaydi.

Masshtab: barcha δ uchun bitta egri chiziq

Agar xatoni chegara birliklarida o‘lchasak, barcha Huber yo‘qotishlari bitta egri chiziqdir:

$$L_\delta(r)=\delta^2\,L_1\!\left(\frac{r}{\delta}\right)$$

Shuning uchun $\delta$ ni «umuman» tanlab bo‘lmaydi: u $y$ birliklariga bog‘liq. 1 so‘mlik va 1 million so‘mlik xato — turli narsalar. Odatda $\delta$ shovqinning tipik tarqoqligi $\sigma$ ulushlarida beriladi ($\delta$ tanlovi bo‘limiga qarang).

Xossalar

  • Manfiy emas va juft: $L_\delta(r)\ge0$, $L_\delta(-r)=L_\delta(r)$, $0$ minimum faqat $r=0$ da.
  • Qavariq: parabola va uning urinmasi «chuqurliksiz» yopishtirilgan; demak, Huber yo‘qotishli chiziqli regressiyada soxta lokal minimumlar yo‘q.
  • $C^1$ silliqlik, lekin $C^2$ emas: birinchi hosila uzluksiz, ikkinchisi $|r|=\delta$ da 1 dan 0 ga sakraydi.
  • Parabola va to‘g‘ri chiziq orasida qisilgan: $\delta|r|-\tfrac12\delta^2\le L_\delta(r)\le\tfrac12r^2$; egri chiziq ulardan biri bilan mos kelmagan joyda farq $\tfrac12(|r|-\delta)^2$ ga teng.
  • Chegaralangan hosila: $|L'_\delta(r)|\le\delta$ — robastlik uchun asosiy xossa.
  • Limitlar: $\delta\to\infty$ da $L_\delta(r)\to\tfrac12r^2$ (MSE), $\delta\to0$ da $L_\delta(r)/\delta\to|r|$ (MAE).
Nega egri chiziq qisilgan va limitlar qayerdan

$|r|>\delta$ da: $\tfrac12r^2-\bigl(\delta|r|-\tfrac12\delta^2\bigr)=\tfrac12(|r|-\delta)^2\ge0$, ya’ni to‘g‘ri chiziq paraboladan pastda yotadi. $|r|\le\delta$ da xuddi shu ifoda parabola to‘g‘ri chiziqdan yuqorida ekanini ko‘rsatadi. Demak, $L_\delta$ doim ular orasida va har biri bilan o‘z qismida mos keladi.

Limitlar: agar $\delta\ge|r|$ bo‘lsa, $L_\delta(r)=\tfrac12r^2$ aynan — yetarlicha katta chegara kifoya. Agar $\delta<|r|$ bo‘lsa, $\delta\to0$ da $L_\delta(r)/\delta=|r|-\tfrac12\delta\to|r|$.

Huber «yumshatilgan modul» sifatida (Moro qobig‘i)

Nafis ekvivalent yozuv bor: agar xatoning $z$ qismini modul narxida «hisobdan chiqarish» mumkin bo‘lsa, Huber yo‘qotishi eng yaxshi murosadir:

$$L_\delta(r)=\min_{z\in\mathbb R}\Bigl(\tfrac12(r-z)^2+\delta|z|\Bigr)$$

Minimumga $z^*=\operatorname{sign}(r)\max(|r|-\delta,\,0)$ yumshoq chegarada erishiladi. Agar $|r|\le\delta$ bo‘lsa, $z^*=0$ va $\tfrac12r^2$ qoladi. Aks holda $z^*=r-\delta\operatorname{sign}r$, va $\tfrac12\delta^2+\delta(|r|-\delta)=\delta|r|-\tfrac12\delta^2$ hosil bo‘ladi. Qavariq tahlilda bu $\delta|\cdot|$ funksiyaning Moro qobig‘i (Moreau envelope) deyiladi: u silliq bo‘lmagan modulni cheksizlikdagi xulqi o‘sha bo‘lgan silliq funksiyaga aylantiradi.

Modelli talqin: $y=\hat y+\text{shovqin}+z$, bu yerda $z$ — kamdan-kam «anomaliya». Huber yo‘qotishi xatoning qaysi qismini anomaliya, qaysi qismini gauss shovqini bilan tushuntirishni o‘zi hal qiladi.

Hosila: kesilgan qoldiq

Statistikada qoldiq bo‘yicha hosila $\psi$ bilan belgilanadi va bahoning ψ-funksiyasi deyiladi; ta’sir funksiyasi (influence function) unga proporsional: $\mathrm{IF}(x)=\psi(x-\mu)/\mathbb E\,\psi'$. Ikkalasi ham bitta nuqta bahoni qanday kuch bilan tortishini ko‘rsatadi.

$$\psi_\delta(r)=L'_\delta(r)=\begin{cases}r, & |r|\le\delta,\\ \delta\operatorname{sign}r, & |r|>\delta\end{cases}=\operatorname{clip}(r,\,-\delta,\,\delta)$$
Qadam-baqadam keltirib chiqarish

Yo‘lak ichida $(\tfrac12r^2)'=r$. Tashqarida $|r|$ ning hosilasi $\operatorname{sign}r$, shuning uchun $\bigl(\delta|r|-\tfrac12\delta^2\bigr)'=\delta\operatorname{sign}r$. $r=\pm\delta$ nuqtalarda chap va o‘ng hosilalar mos keladi ($\pm\delta$), demak, hosila mavjud va uzluksiz.

Bashorat bo‘yicha — zanjir qoidasi: $\dfrac{\partial L_\delta}{\partial\hat y}=\psi_\delta(r)\cdot\dfrac{\partial r}{\partial\hat y}=-\psi_\delta(y-\hat y)$.

Ikkinchi hosila: $|r|<\delta$ da $L''_\delta(r)=1$, $|r|>\delta$ da $0$; $\pm\delta$ nuqtalarda u yo‘q — chap va o‘ng hosilalar mos kelmaydi.

$$\frac{\partial L_\delta}{\partial\hat y}=-\operatorname{clip}\bigl(y-\hat y,\,-\delta,\,\delta\bigr)$$

Uch yo‘qotishni taqqoslang. MSE’da ($\tfrac12r^2$) $\psi=r$ tortish chegarasiz o‘sadi. MAE’da tortish o‘zgarmas. Huber’da u nuqta «o‘zimizniki» ekan o‘sadi va nuqta shubhali bo‘lganda $\delta$ darajasida to‘xtaydi. Ikkinchi foydali rasm — nuqtaning vazni $w(r)=\psi(r)/r$: nuqta oddiy eng kichik kvadratlar usuliga (EKKU) nisbatan «ovoz»ning qancha ulushini oladi.

2-rasm. Chapda — $\psi(r)$ tortish, o‘ngda — $w(r)=\psi(r)/r$ vazn. $\delta=1$ da $r=4$ xatoli nuqta MSE’da 4 kuch bilan, Huber’da 1 kuch bilan tortadi, ya’ni $0{,}25$ vazn oladi. $|r|\le\delta$ yo‘lak ichida vazn 1 ga teng: Huber oddiy nuqtalarga tegmaydi.
Nega ψ yo‘qotishning o‘zidan muhimroq

Model optimumi yo‘qotish qiymati bilan emas, $\sum_i\psi(r_i)\,\partial\hat y_i/\partial\theta=0$ tenglama bilan aniqlanadi. Shuning uchun robastlik — $\psi$ ning xossasi: $\psi$ chegaralangan bo‘lsa, $y$ dagi hech bir yolg‘iz chetga chiquvchi yechimni istalgancha uzoqqa sura olmaydi (belgilardagi chetga chiquvchilar — boshqa masala, «Keng tarqalgan xatolar»ga qarang). MSE’da $\psi$ chegaralanmagan va bitta chetga chiquvchi o‘rtachani istalgan joyga suradi.

L(r, δ) sirti 3D’da

Yo‘qotishni ikki o‘zgaruvchi — $r$ xato va $\delta$ chegara funksiyasi sifatida ko‘raylik. Bu butun egri chiziqlar oilasini birdaniga va chegara shaklni qanday o‘zgartirishini ko‘rishga yordam beradi.

3-rasm. Chapda — $L_\delta(r)$ sirti (uni aylantirish mumkin), to‘q sariq chiziqlar — $|r|=\delta$ tutashuv, ko‘k — tanlangan $\delta$ dagi kesim. O‘ngda — sath chiziqlari bilan yuqoridan ko‘rinish. $|r|\le\delta$ «pona» ichida chiziqlar vertikal, tashqarida egiladi. Psevdo-Huber’ga o‘tkazing: tutashuv yo‘qoladi, sirt hamma joyda silliq.

Ikki narsa darhol ko‘rinadi. Birinchidan, $|r|\le\delta$ «pona» ichida sirt $\delta$ ga bog‘liq emas: u yerda doim $\tfrac12r^2$, va $L=c$ sath chiziqlari — $r=\pm\sqrt{2c}$ vertikal kesmalar ($\delta\ge\sqrt{2c}$ da). Ikkinchidan, tashqarida $L=c$ sath chizig‘i — $|r|=c/\delta+\delta/2$: chegara qancha kichik bo‘lsa, o‘sha yo‘qotishni yig‘ish uchun shuncha uzoqqa borish kerak.

Ko‘p o‘lchovli holat

Javob vektor bo‘lganda (masalan, aniqlashda ramkaning to‘rtta koordinatasi), Huber yo‘qotishi odatda har bir koordinata bo‘yicha hisoblanib qo‘shiladi: $\sum_jL_\delta(r_j)$. Bunday yig‘indining $(r_1,r_2)$ tekislikdagi sath chiziqlari — burchaklari yumaloqlangan kvadratlar, gradiyent esa har bir koordinata bo‘yicha alohida kesiladi. Bu butun xato vektorining uzunligi kesiladigan $L_\delta(\|r\|)$ bilan bir xil emas.

Huber bahosi va δ tanlovi

Huber o‘z funksiyasini statistikaning eng oddiy masalasi — $x_1,\dots,x_n$ tanlanma markazini baholash uchun o‘ylab topgan. $\sum(x_i-\mu)^2$ ni minimallashtirsak, o‘rtacha; $\sum|x_i-\mu|$ ni — mediana chiqadi. Huber bahosi $\hat\mu$ $\sum L_\delta(x_i-\mu)$ ni minimallashtiradi, ya’ni quyidagi tenglamani yechadi

$$\sum_{i=1}^{n}\psi_\delta(x_i-\hat\mu)=0$$

$|x_i-\hat\mu|\le\delta$ zona ichidagi nuqtalar o‘rtachadagi kabi qatnashadi, uzoqdagilari esa medianadagi kabi faqat ishorasi bilan, $\delta$ kuch bilan.

4-rasm. 5 atrofidagi 13 qiymat va ikkita chetga chiquvchi (qizil; o‘ngdagisini tortish mumkin). Ustun balandligi — nuqtaning bahodagi vazni. $\delta=1$ da: o‘rtacha $6{,}079$, mediana $5{,}557$, Huber bahosi $5{,}369$ — haqiqiy markaz 5 ga hammadan yaqin. O‘ngda — $\hat\mu(\delta)$ yo‘li: $\delta\to0$ da baho medianaga intiladi, $\delta\ge7{,}421$ da esa o‘rtacha bilan mos tushadi.

O‘ng grafikka e’tibor bering: $\hat\mu(\delta)$ yo‘li mediana va o‘rtacha orasida yotishi shart emas — $\delta=1$ da baho ikkalasidan ham past. Limit qiymatlar aniq: $\delta\to0$ da mediana chiqadi, $\delta$ o‘rtachadan eng uzoq nuqtagacha masofadan oshishi bilan (bu yerda $13{,}5-6{,}079\approx7{,}421$) barcha nuqtalar kvadratik zonada va $\hat\mu$ o‘rtachaga teng.

Robastlik narxi: 1,345σ qoidasi

Agar ma’lumotlar haqiqatan normal va chetga chiquvchilarsiz bo‘lsa, eng yaxshi baho — o‘rtacha. Huber qanchalik yomonroq? Buni asimptotik samaradorlik (asymptotic efficiency) o‘lchaydi: o‘rtacha dispersiyasining baho dispersiyasiga nisbati. $k$ chegarali ($\sigma$ birliklarida) $\psi$ uchun standart normal $X$ da:

$$\operatorname{Var}\hat\mu\approx\frac{\sigma^2}{n}\cdot\frac{\mathbb E\,\psi_k(X)^2}{\bigl(\mathbb E\,\psi'_k(X)\bigr)^2},\qquad \mathbb E\,\psi'_k=2\Phi(k)-1,\quad \mathbb E\,\psi_k^2=2\Phi(k)-1-2k\varphi(k)+2k^2\bigl(1-\Phi(k)\bigr)$$

«Samaradorlik $=95\%$» ni yechsak, $k\approx1{,}345$ chiqadi. Klassik $\delta=1{,}345\,\sigma$ tanlovi shundan: chetga chiquvchilardan himoya evaziga toza ma’lumotlarda atigi 5% yo‘qotish. Mediananing samaradorligi $2/\pi\approx64\%$.

5-rasm. $(1-\varepsilon)N(0,1)+\varepsilon N(0,10^2)$ aralashma uchun markaz bahosi dispersiyasi ($\sigma^2/n$ birliklarida). $k=1{,}345$ da toza ma’lumotlardagi samaradorlik — $95{,}0\%$. $\varepsilon=0{,}05$ da o‘rtacha dispersiyasi $5{,}95$, mediananiki $1{,}722$, $k=1{,}345$ li Huber’niki $1{,}229$; bu aralashma uchun eng yaxshi chegara $k\approx1{,}48$ (bo‘sh doiracha).
Huber minimaksi

1964 yilgi maqolada Huber ko‘proq narsani isbotladi: agar qanday chetga chiquvchilar uchrashi noma’lum bo‘lib, faqat ularning $\varepsilon$ ulushi ma’lum bo‘lsa, M-baholar orasida $\psi_k$ li baho barcha simmetrik $(1-\varepsilon)N(0,1)+\varepsilon H$ ifloslanishlar bo‘yicha eng yomon holdagi asimptotik dispersiyani minimallashtiradi. Chegara ulush bilan $2\varphi(k)/k-2\Phi(-k)=\varepsilon/(1-\varepsilon)$ tenglama orqali bog‘langan: $\varepsilon=0{,}05$ uchun bu $k\approx1{,}40$, $\varepsilon=0{,}01$ uchun $k\approx1{,}95$.

σ ni ham robast baholash kerak

Agar $\sigma$ oddiy standart chetlanish bilan hisoblansa, $\delta=1{,}345\sigma$ qoidasi foydasiz: chetga chiquvchilar uni shishiradi. Median absolyut chetlanishdan foydalaning: $\hat\sigma=\operatorname{MAD}/0{,}6745\approx1{,}4826\cdot\operatorname{median}|r_i-\operatorname{median}(r)|$. HuberRegressor’da masshtab koeffitsiyentlar bilan birga baholanadi, standart epsilon=1.35 esa aynan $k$.

O‘qitishda Huber

To‘g‘ri chiziqni gradiyent tushish bilan ikki usulda — MSE yarmida va Huber yo‘qotishida — bir xil ma’lumotlarda o‘qitamiz: $\sigma=0{,}5$ shovqinli $y=1+0{,}5x$ atrofidagi 30 nuqta va pastki o‘ngda uchta chetga chiquvchi. Chegara $\delta=0{,}7\approx1{,}345\cdot0{,}5$.

6-rasm. «Boshlash»ni bosing. Ikkala model $y=0$ to‘g‘ri chiziqdan boshlaydi va bir xil qadamlar qiladi ($\eta=0{,}15$). MSE tezda $0{,}363$ qiyalikka yaqinlashadi — chetga chiquvchilar to‘g‘ri chiziqni ag‘daradi. Huber avvaliga sekinroq yuradi (barcha xatolar katta va har biri $\delta$ dan kuchli tortmaydi), lekin haqiqiy $0{,}5$ ga qarshi $0{,}511$ qiyalikka keladi. Chetdagi chetga chiquvchini torting — o‘qitish paytida yoki undan oldin.

Tushish qadami mexanizmni ko‘rsatadi: har bir nuqta parametrlarni $\psi(r_i)$ ga proporsional tortadi. To‘g‘ri chiziq barcha nuqtalardan uzoq ekan, Huber’da barcha tortishlar $\pm\delta$ ga teng — u MAE kabi o‘zgarmas tezlikda harakatlanadi. To‘g‘ri chiziq nuqtalarning asosiy qismiga yaqinlashganda ularning xatolari kvadratik zonaga tushadi va tushish oddiy EKKU’ga aylanadi — endi $\delta$ «arqonida» qolgan chetga chiquvchilarsiz.

$$\theta\leftarrow\theta+\eta\,\frac1n\sum_{i=1}^{n}\psi_\delta\bigl(y_i-\hat y_i\bigr)\,\frac{\partial\hat y_i}{\partial\theta}$$
IRLS: Huber vaznli EKKU sifatida

$\hat y_i=x_i^\top\beta$ chiziqli model uchun $\sum_i\psi(r_i)x_i=0$ optimallik shartini $w_i=\psi(r_i)/r_i=\min(1,\delta/|r_i|)$ vaznlar bilan $\sum_iw_ir_ix_i=0$ ko‘rinishida qayta yozish mumkin. Vaznlar muzlatilsa, bu vaznli EKKU’ning oshkor yechiladigan normal tenglamalari:

$$\beta^{(t+1)}=\bigl(X^\top W^{(t)}X\bigr)^{-1}X^\top W^{(t)}y,\qquad W^{(t)}=\operatorname{diag}\bigl(w_i(\beta^{(t)})\bigr)$$

«Qoldiqlarni hisoblash → vaznlarni yangilash → EKKU’ni yechish» iteratsiyalari (iteratively reweighted least squares) o‘nga yaqin qadamda Huber bahosiga yaqinlashadi. Vaznlar 2-rasmning o‘ng qismidagilarning o‘zi.

Huber o‘qitish ichida yana qayerda ishlaydi

  • Gradiyentli busting. Har bir yangi daraxt yo‘qotishning antigradiyentini o‘rganadi. Huber uchun bu $\psi(r_i)$ — kesilgan qoldiqlar, shuning uchun bitta anomal qiymat daraxtni chetga chiquvchiga barg sarflashga majburlamaydi. scikit-learn’da $\delta$ chegara har iteratsiyada $|r_i|$ ning $\alpha$-kvantili sifatida olinadi (standart $\alpha=0{,}9$).
  • DQN. DeepMind maqolasida (2015) vaqtli farq xatosi $[-1;\,1]$ gacha kesilgan. Kesilgan gradiyent — aynan $\psi_1$, ya’ni $\delta=1$ dagi Huber yo‘qotishida o‘qitish: bitta ulkan TD xatosi (masalan, maqsad tarmog‘i keskin almashganda) portlovchi qadamga olib kelmaydi va o‘qitish barqarorroq bo‘ladi.
  • Fast R-CNN. Ramka koordinatalari regressiyasi uchun Girshik (2015) Smooth L1 ni oldi: u «chetga chiquvchilarga L2 dan kamroq sezgir» va gradiyent portlashidan qochish uchun o‘qitish tezligini sinchiklab sozlashni talab qilmaydi.

Silliq qarindoshlar: psevdo-Huber, log-cosh, Smooth L1

Ikkinchi hosiladagi sakrash gradiyent tushishga xalaqit bermaydi, lekin ikkinchi tartibli usullarga xalaqit beradi. XGBoost va LightGBM Nyuton qadamini qiladi: barg $-\sum g_i/\sum h_i$ qiymat oladi, bu yerda $h_i$ — ikkinchi hosilalar. Huber’ning haqiqiy ikkinchi hosilasi barcha chetga chiquvchilar uchun nolga teng, va bargga faqat ular tushsa, maxraj nolga aylanadi (XGBoost’da undan faqat $\lambda$ regulyarizator qoladi). Shuning uchun realizatsiyalar uni yo o‘zgarmas bilan almashtiradi (LightGBM objective='huber' da shunday qiladi), yoki silliq variantni oladi.

$$\text{psevdo-Huber: }\;\delta^2\Bigl(\sqrt{1+(r/\delta)^2}-1\Bigr),\qquad \text{log-cosh: }\;\delta^2\ln\cosh\frac{r}{\delta},\qquad \text{Smooth L1: }\;\frac{L_\beta(r)}{\beta}$$
7-rasm. Bir xil $\delta$ da Huber va uning qarindoshlari. Psevdo-Huber va log-cosh ham nol atrofida $\tfrac12r^2$ kabi, dumlarda $\delta|r|$ kabi o‘zini tutadi, lekin o‘tish ravon, ikkinchi hosila (pastdagi belgi) esa uzluksiz. $\delta=1$, $r=3$ da: Huber $2{,}5$, psevdo-Huber $2{,}162$, log-cosh $2{,}309$.
  • Psevdo-Huber (kompyuter ko‘rishida $\delta$ ko‘paytuvchi aniqligida — Sharbonye yo‘qotishi $\sqrt{r^2+\delta^2}-\delta$): $r/\sqrt{1+(r/\delta)^2}$ hosila $\pm\delta$ ga sekin intiladi; $(1+(r/\delta)^2)^{-3/2}$ ikkinchi hosila hamma joyda musbat. XGBoost’da — huber_slope ($=\delta$) parametrli objective='reg:pseudohubererror'.
  • log-cosh: $\delta\tanh(r/\delta)$ hosila — silliq «kesish»; dumlarda $\delta^2\ln\cosh(r/\delta)\approx\delta|r|-\delta^2\ln2$.
  • Smooth L1 — $\beta$ ga bo‘lingan Huber: $|r|<\beta$ da $\tfrac{0{,}5r^2}{\beta}$ va undan tashqarida $|r|-\tfrac12\beta$. $\beta\to0$ da u $|r|$ ga intiladi (Huber esa nolga). PyTorch’da: HuberLoss(delta=δ) = δ · SmoothL1Loss(beta=δ).

Kodda

Formulaning o‘zi — np.where bilan bitta qator. Gradiyent — np.clip. Quyida — realizatsiya, umumiy misolda tekshirish va IRLS orqali Huber regressiyasi.

pythonimport numpy as np

def huber(r, delta=1.0):
    """r = y − ŷ qoldiqlar uchun Huber yo‘qotishi (elementma-element)."""
    a = np.abs(r)
    return np.where(a <= delta, 0.5 * r**2, delta * (a - 0.5 * delta))

def huber_grad(r, delta=1.0):
    """ψ(r) = dL/dr — [−δ, δ] gacha kesilgan qoldiq. ŷ bo‘yicha — minus ishora bilan."""
    return np.clip(r, -delta, delta)

def pseudo_huber(r, delta=1.0):
    return delta**2 * (np.sqrt(1.0 + (r / delta)**2) - 1.0)

y     = np.array([3.0, 5.0, 8.0])
y_hat = np.array([2.5, 5.0, 10.0])
r = y - y_hat               # [ 0.5  0.  -2. ]
print(huber(r))             # [0.125 0.    1.5  ]
print(huber(r).mean())      # 0.5416666666666666
print(huber_grad(r))        # [ 0.5  0.  -1. ]
pythondef huber_regression(X, y, delta=1.345, iters=50):
    """IRLS usulidagi Huber regressiyasi: w_i = min(1, δ·s/|r_i|) vaznli EKKU."""
    X1 = np.column_stack([np.ones(len(X)), X])
    beta = np.linalg.lstsq(X1, y, rcond=None)[0]           # boshlanish — oddiy EKKU
    for _ in range(iters):
        r = y - X1 @ beta
        s = np.median(np.abs(r - np.median(r))) / 0.6745   # robast masshtab (MAD)
        w = np.minimum(1.0, delta * s / np.maximum(np.abs(r), 1e-12))
        sw = np.sqrt(w)
        beta = np.linalg.lstsq(X1 * sw[:, None], y * sw, rcond=None)[0]
    return beta

rng = np.random.default_rng(0)
x = np.linspace(0, 10, 30)
y = 1 + 0.5 * x + rng.normal(0, 0.5, 30)
y[-3:] -= 6                                                # uchta chetga chiquvchi
X1 = np.column_stack([np.ones(30), x])
print(np.linalg.lstsq(X1, y, rcond=None)[0].round(3))      # [1.931 0.182] — EKKU
print(huber_regression(x, y).round(3))                     # [1.134 0.442] — Huber
pythonimport torch
import torch.nn as nn

y_hat = torch.tensor([2.5, 5.0, 10.0], requires_grad=True)
y = torch.tensor([3.0, 5.0, 8.0])

loss = nn.HuberLoss(delta=1.0)(y_hat, y)   # o‘rtacha: 0.5417
loss.backward()
print(y_hat.grad)       # tensor([-0.1667,  0.0000,  0.3333]) = ψ(ŷ − y) / n

# Fast R-CNN’dagi Smooth L1 — β ga bo‘lingan Huber (β = δ):
huber2 = nn.HuberLoss(delta=2.0)(y_hat, y)        # 0.7083
sl1_2 = nn.SmoothL1Loss(beta=2.0)(y_hat, y)       # 0.3542 = 0.7083 / 2
Tayyor realizatsiyalar

PyTorch: nn.HuberLoss(delta), nn.SmoothL1Loss(beta). Keras: keras.losses.Huber(delta). scikit-learn: HuberRegressor(epsilon=1.35), GradientBoostingRegressor (loss='huber', alpha=0.9). LightGBM: objective='huber' (chegara — alpha parametri). XGBoost: objective='reg:pseudohubererror'.

Keng tarqalgan xatolar

  1. Masshtabni hisobga olmagan δ. Dollardagi narxlar va milliondagi narxlar uchun $\delta=1$ — butunlay turli yo‘qotishlar. Maqsadli o‘zgaruvchini normallang yoki $\delta$ ni robast tarqoqlik birliklarida bering.
  2. Huber va Smooth L1 ni chalkashtirish. Bir xil chegarada ular ko‘paytuvchiga farq qiladi: Smooth L1 $=$ Huber$/\beta$, shuning uchun $\beta>1$ da uning yo‘qotishi va gradiyenti kichikroq, $\beta<1$ da esa kattaroq ($\beta=1/9$ da, Faster R-CNN RPN’dagidek, — 9 marta). Birini boshqasiga almashtirganda o‘qitish tezligini qayta sozlang.
  3. $1{,}345\sigma$ qoidasi uchun σ ni oddiy std bilan baholash — chetga chiquvchilar std ni shishiradi, chegara juda katta bo‘lib qoladi va himoya yo‘qoladi. MAD dan foydalaning.
  4. Huber belgilardagi chetga chiquvchilardan qutqaradi deb kutish. U katta $r$ qoldiqning ta’sirini cheklaydi, lekin ekstremal $x$ li nuqta (yuqori richag, leverage) baribir to‘g‘ri chiziqni burib yuborishi mumkin. Buning uchun boshqa usullar kerak (masalan, $x$ bo‘yicha vaznlar).
  5. Nyuton usulli bustingda Huber tekshiruvsiz: chetga chiquvchilarning nol ikkinchi hosilalari barg qadamlarini beqaror qiladi. Psevdo-Huber’dan yoki buni hisobga oladigan realizatsiyadan foydalaning.
  6. Turli δ dagi yo‘qotish qiymatlarini taqqoslash. Boshqa shartlar teng bo‘lsa, $L_\delta$ qiymati $\delta$ bilan o‘sadi; modellarni yo‘qotishning o‘zi bilan emas, tashqi metrika (validatsiyadagi MAE, RMSE) bilan taqqoslang.
  • MSE: $\delta\ge\max|r_i|$ da Huber yo‘qotishi xato kvadratining yarmiga teng; agar EKKU yechimining hech bir qoldig‘i $\delta$ dan oshmasa, Huber bahosi EKKU bilan mos tushadi.
  • MAE: $\delta\to0$ da $L_\delta/\delta\to|r|$; markaz bahosi medianaga intiladi.
  • RMSE: chetga chiquvchilar eng oson buzadigan metrika; Huber barqaror o‘qitish va toza ma’lumotlarda RMSE bo‘yicha hisobot berish imkonini beradi.
  • ReLU va kesish: $\psi_\delta(r)=\operatorname{clip}(r,-\delta,\delta)$ — ReLU6 va gradient clipping’dagi «chegaragacha chiziqli» g‘oyaning o‘zi.
  • Focal Loss — qarama-qarshi falsafa: Huber eng katta xatolarni susaytiradi (ularni chetga chiquvchi deb hisoblab), focal loss esa qiyin misollar vaznini oson misollarga nisbatan oshiradi.

Xulosa

1) $L_\delta(r)$ — $|r|\le\delta$ da $\tfrac12r^2$ parabola va undan tashqarida unga urinma $\delta(|r|-\tfrac12\delta)$ to‘g‘ri chiziq; funksiya qavariq va $C^1$, lekin $C^2$ emas. 2) $\psi=\operatorname{clip}(r,-\delta,\delta)$ hosila chegaralangan — chetga chiquvchi $\delta$ dan kuchli tortmaydi; nuqta vazni $\min(1,\delta/|r|)$. 3) $\delta\to\infty$ — MSE va o‘rtacha, $\delta\to0$ — MAE va mediana. 4) $\delta=1{,}345\sigma$ (σ MAD bo‘yicha) normal ma’lumotlarda 95% samaradorlik beradi. 5) Silliq versiyalar — psevdo-Huber va log-cosh — ikkinchi tartibli usullarga kerak; Smooth L1 — β ga bo‘lingan o‘sha Huber.

O‘zingizni tekshiring

1. $L_1(3)$ — $\delta=1$ li Huber yo‘qotishi 3 xatoda nimaga teng?
2. $|\partial L_\delta/\partial\hat y|$ eng katta qanday qiymat qabul qilishi mumkin?
3. $|r|=\delta$ nuqtada nima bo‘ladi?
4. $\delta\to0$ da va juda katta $\delta$ da Huber markaz bahosi nimaga intiladi?
5. Nega chegara ko‘pincha $1{,}345\sigma$ ga teng olinadi?