"Gradient kuchaytirgichlar"

Yaxshi eski gradientni kuchaytirish

Gradientni kuchaytirish uchun matematikadan og'ir primer

2001 yilda Jerom X. Fridman muhim maqola yozdi — Greedy function approximation: A gradient boosting machine. U Wolpertning jadval dunyosida "Bepul tushlik yo'q" teoremasiga tahdid soladigan usullar sinfiga aylanishini bilmas edi. Gradient Boosting va uning qarindoshlari (XGBoost va LightGBM) jadval ma'lumotlari sohasida tasniflash va regressiya muammolari bilan bir qatorda ajoyib ko'rsatkichlar bilan dunyoni zabt etdilar.

Keling, Fridman tomonidan ilgari surilgan klassik Gradient Boosting metodologiyasini tushunishdan boshlaylik. Bu matematika og'ir bo'lsa ham, unchalik qiyin emas. Va iloji bo'lsa, men nima bo'layotganini sezgi bilan ta'minlashga harakat qildim.

Muammoni sozlash

n namunalar bilan D maʼlumotlar toʻplami boʻlsin. Har bir namunada x vektorida m xususiyatlar toʻplami va haqiqiy baholi maqsad y mavjud. Rasmiy ravishda shunday yoziladi

Endi Gradient Boosting algoritmlari qo'shimcha shaklni oladigan ansambl usulidir. Sezgi shundan iboratki, biz taxmin qilmoqchi bo'lgan murakkab funktsiya kichikroq va soddaroq funktsiyalardan iborat bo'lishi mumkin, ular birgalikda qo'shiladi.

Biz taxmin qilmoqchi bo'lgan funksiyani faraz qilaylik

Biz ushbu funktsiyani quyidagicha buzishimiz mumkin:

Bu biz qo'shimcha ansambl modelini tanlashda qabul qiladigan taxmin va biz odatda Gradient Boosting haqida gapirganda gapiradigan Daraxt ansamblini quyidagicha yozish mumkin:

Bu erda M - asosiy o'rganuvchilar soni va F - regressiya daraxtlari maydoni.

Yo'qotish funktsiyasi

bu yerda l - differensiallanuvchi qavariq yo‘qotish funksiyasi f(x).

Biz f(x) uchun qo‘shimcha funksional shaklni ko‘rib chiqayotganimiz uchun yᵢ ni bilan almashtirishimiz mumkin

Shunday qilib, yo'qotish funktsiyasi quyidagicha bo'ladi:

Algoritm

  1. Yo'qotish funktsiyasini minimallashtirish orqali modelni doimiy qiymat bilan ishga tushiring

  • b₀ - 0-iteratsiyada yo'qotish funksiyasini minimallashtiradigan modelning bashorati
  • Kvadrat xatolik yo'qolishi uchun u barcha o'quv namunalari bo'yicha o'rtacha hisoblanadi
  • Eng kam mutlaq og'ish yo'qolishi uchun u barcha o'quv namunalari bo'yicha mediana bo'lib ishlaydi

2. m=1 dan M gacha:

2.1 Hisoblash

  • rᵢₘ yo'qotish funktsiyasining hosilasidan boshqa narsa emas (rost va oxirgi iteratsiya natijasi o'rtasida) w.r.t. Oxirgi iteratsiyadan F(x)
  • Kvadratlangan xatoning yo'qolishi uchun bu qoldiq bo'ladi(Kuzatilgan — bashorat qilingan)
  • U psevdo qoldiq deb ham ataladi, chunki u qoldiq kabi ishlaydi va u Kvadrat Xatoni yo'qotish funktsiyasi uchun qoldiqdir.
  • Biz barcha n namunalar uchun rᵢₘni hisoblaymiz

2.2 Regressiya daraxtini rᵢₘqiymatlariga Gini Impurity yoki Entropy (odatiy usul) yordamida moslang

  • Daraxtning har bir bargi j = 1 … Jₘ uchun Rⱼₘ bilan belgilanadi, bu erda Jₘ m iteratsiyada hosil qilingan daraxtdagi barglar soni.

2.3 j = 1 … Jₘ uchun hisoblang

  • bⱼₘ - bazis funksiyasi yoki eng kichik kvadratli koeffitsientlar. Bu kvadrat xatolik yo'qolishi uchun har qanday bargdagi barcha namunalar bo'yicha o'rtacha va eng kam mutlaq og'ish yo'qolishi uchun mediana bo'lishi qulay tarzda ishlaydi.
  • rₘ - masshtablash omili yoki barg og'irligi.
  • b ustidagi ichki yig'indiga e'tibor bermaslik mumkin, chunki Regressiya daraxtlari bir-biridan ajralib turadi. Bitta maxsus namuna faqat o'sha barglarning birida bo'ladi. Shunday qilib, tenglama quyidagicha soddalashtiriladi:

  • Shunday qilib, Rⱼₘ barglarning har biri uchun biz r optimal qiymatini hisoblaymiz, oxirgi iteratsiya bashoratiga qo'shilganda bargda joylashgan namunalar uchun yo'qotish minimallashtiriladi.
  • Kvadrat xato yo'qolishi va eng kam mutlaq og'ish yo'qolishi kabi ma'lum yo'qotish funktsiyalari uchun masshtab koeffitsienti 1 ga teng. Va shuning uchun standart GBM ilovasi o'lchov omilini e'tiborsiz qoldiradi.
  • Huber yo'qotish kabi ba'zi yo'qotishlar uchun r minimal yo'qotishni topish uchun chiziqli qidiruv yordamida baholanadi.

2.4 Yangilash

  • Endi biz oldingi iteratsiya natijasiga eng so'nggi, optimallashtirilgan daraxtni qo'shamiz.
  • ē - qisqarish yoki o'rganish tezligi
  • Tenglamadagi yig'indi faqat ma'lum bir namuna bir nechta tugunlarda tugashi mumkin bo'lmagan hollarda foydali bo'ladi. Aks holda, bu faqat optimallashtirilgan regressiya daraxti reytingi b.

Muntazamlashtirish

Standart amalga oshirishda (Sci-kit Learn) maqsad funktsiyasidagi tartibga solish atamasi amalga oshirilmaydi. U erda amalga oshiriladigan yagona tartibga solish quyidagilardir:

  • Kichiklanish orqali tartibga solish — Qo'shimcha formulada har bir yangi zaif o'quvchi ē omili bilan "qisqartirilgan". Ushbu qisqarish ba'zi amalga oshirishda o'rganish tezligi deb ham ataladi, chunki u neyron tarmoqlardagi o'rganish tezligiga o'xshaydi.
  • Qator quyi namuna olish— Ansambldagi nomzod daraxtlarning har biri namunalar kichik to'plamidan foydalanadi. Bu tartibga soluvchi ta'sirga ega.
  • Ustunning quyi namunasi— Ansambldagi nomzod daraxtlarning har biri bir qator xususiyatlardan foydalanadi. Bu ham tartibga soluvchi ta'sirga ega va odatda samaraliroq. Bu ham parallellashtirishga yordam beradi.

Gradientni kuchaytirish va gradientni pasaytirish

O'xshashlik

Biz bilamizki, Gradient Boosting qo'shimcha model bo'lib, uni quyida ko'rsatish mumkin:

Bu yerda F - ansambl modeli, f - zaif o'quvchi, ķ - o'rganish tezligi va X kiritish vektori.

F ni y ^ bilan almashtirsak, biz tanish tenglamani olamiz,

Endi fₘ(X)har bir iteratsiyada birinchi va ikkinchi tartibli gradientlar (hosilalar) funksiyasi boʻlgan yoʻqotish funksiyasini minimallashtirish yoʻli bilan olinganligi sababli, biz buni intuitiv ravishda yoʻnalishli vektor sifatida oʻylashimiz mumkin. eng keskin pasayish. Bu yo‘nalish vektorini rₘ₋₁ deb ataymiz. Pastki belgisi m-1, chunki vektor iteratsiyaning m-1 bosqichida o'qitilgan. Yoki intuitiv ravishda qoldiq

.Demak, tenglama endi shunday bo'ladi:

Belgilarni aylantirib, biz quyidagilarni olamiz:

Endi standart Gradient Descent tenglamasini ko'rib chiqamiz:

Biz o'xshashlikni aniq ko'rishimiz mumkin. Va bu natija har qanday differentsial yo'qotish funktsiyasidan foydalanishga imkon beradi.

Farqi

Biz neyron tarmoqni Gradient Descent yordamida o'rgatganimizda, u yo'qotish funksiyasini minimallashtiradigan optimal parametrlarni (og'irliklar va egilishlar),wni topishga harakat qiladi. Va bu parametrlarga nisbatan yo'qotish gradientlari yordamida amalga oshiriladi.

Ammo Gradient Boostingda gradient faqat asosiy o'quvchi parametrlarini emas, balki ansamblni yaratish usulini sozlaydi.

Neyron tarmoqda gradient to'g'ridan-to'g'ri yo'qotish funktsiyasining yo'nalish vektorini beradi, Boostingda biz faqat zaif o'rganuvchidan ushbu yo'nalish vektorining taxminiyligini olamiz. Shunday qilib, GBMning yo'qolishi faqat monoton tarzda kamayishi mumkin. Iteratsiyalar davom etar ekan, yo'qotish biroz sakrashi mumkin.

Amalga oshirish

Sci-kit Learn-dagi GradientBoostingClassifier va GradientBoostingRegressor python ekotizimidagi eng dastlabki ilovalardan biridir. Bu asl qog'ozga sodiq qolgan to'g'ridan-to'g'ri amalga oshirishdir. Men hozirgacha bo'lgan munozarani deyarli kuzatib boraman. Va u turli xil yo'qotish funktsiyalari uchun amalga oshirildi, ular uchun Ochko'zlik funktsiyasining yaqinlashuvi: Fridman tomonidan yaratilgan gradient kuchaytiruvchi mashina[1] algoritmlari olingan.

Regressiya yo'qotishlari

  • ‘ls’ → Eng kichik kvadratlar
  • ‘o‘g‘il’ → Eng kam mutlaq og‘ish
  • 'huber' → Huber Loss
  • ‘kvantil’ → Quantil yo‘qotish

Tasniflash yo'qotishlar

  • "Deviance" → Logistik regressiya yo'qolishi
  • "eksponensial" → Eksponensial yo'qotish

Ma'lumotnomalar

  1. Fridman, Jerom H. Greedy funktsiyasining yaqinlashuvi: Gradientni kuchaytiruvchi mashina. Ann. Statist. 29 (2001), №. 5, 1189–1232.

Dastlab 2020-yil 2-fevralda “http://deep-and-shallow.com” saytida chop etilgan.