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’daobjective='huber', XGBoost’da psevdo-Huber; - anomaliyali har qanday ma’lumot — ko‘chmas mulk narxlari, datchik ko‘rsatkichlari, xatoli belgilash.
$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.
$|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
- $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)$ |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0,5 | 0,125 | 0,5 | 0,125 | 0,5 |
| 1 | 0,5 | 1 | 0,5 | 1 |
| 2 | 2 | 2 | 1,5 | 1 |
| 3 | 4,5 | 3 | 2,5 | 1 |
| 5 | 12,5 | 5 | 4,5 | 1 |
| 10 | 50 | 10 | 9,5 | 1 |
$\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:
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:
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.
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.
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.
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.
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.
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
$|x_i-\hat\mu|\le\delta$ zona ichidagi nuqtalar o‘rtachadagi kabi qatnashadi, uzoqdagilari esa medianadagi kabi faqat ishorasi bilan, $\delta$ kuch bilan.
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:
«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\%$.
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$.
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$.
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.
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:
«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.
- 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$) parametrliobjective='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
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
- 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.
- 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.
- $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.
- 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).
- Nyuton usulli bustingda Huber tekshiruvsiz: chetga chiquvchilarning nol ikkinchi hosilalari barg qadamlarini beqaror qiladi. Psevdo-Huber’dan yoki buni hisobga oladigan realizatsiyadan foydalaning.
- 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.
Boshqa formulalar bilan bog‘liqlik
- 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.