Fundamentele AI

Ce este Gradient Boosting?

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Un tip comun de model de ÃŪnvățare automată, care s-a dovedit a fi extrem de util ÃŪn competițiile de știință a datelor, este un model de gradient boosting. Gradient boosting este, ÃŪn esență, procesul de conversie a modelelor de ÃŪnvățare slabe ÃŪn modele de ÃŪnvățare puternice. Dar cum se realizează exact acest lucru? Să aruncăm o privire mai atentă asupra algoritmilor de gradient boosting și să ÃŪnțelegem mai bine cum un model de gradient boosting transformă ÃŪnvățătorii slabi ÃŪn ÃŪnvățători puternici.

Definirea Gradient Boosting

Acest articol ÃŪși propune să vă ofere o bună intuiție despre ce este gradient boosting, fără prea multe detalii despre matematica care stă la baza algoritmilor. Odată ce veți avea o apreciere pentru modul ÃŪn care funcționează gradient boosting la nivel ÃŪnalt, vă ÃŪncurajăm să mergeți mai departe și să explorați matematica care face posibilă această tehnologie.

Să ÃŪncepem prin a defini ce ÃŪnseamnă “a ÃŪmbunătăți” un ÃŪnvățător. Învățătorii slabi sunt transformați ÃŪn ÃŪnvățători puternici prin ajustarea proprietăților modelului de ÃŪnvățare. Dar care este algoritmul de ÃŪnvățare care este ÃŪmbunătățit?

Modelele de ÃŪmbunătățire funcționează prin ÃŪmbunătățirea unui alt model de ÃŪnvățare automată comun, un arbore de decizie.

Un model de arbore de decizie funcționează prin ÃŪmpărțirea unui set de date ÃŪn porțiuni mai mici și mai mici, și odată ce subseturile nu pot fi ÃŪmpărțite mai departe, rezultatul este un arbore cu noduri și frunze. Nodurile dintr-un arbore de decizie sunt locurile ÃŪn care se iau decizii despre punctele de date utilizÃĒnd diferite criterii de filtrare. Frunzele dintr-un arbore de decizie sunt punctele de date care au fost clasificate. Algoritmii de arbori de decizie pot gestiona atÃĒt date numerice, cÃĒt și categorice, și ÃŪmpărțirile ÃŪn arbore se bazează pe variabile/caracteristici specifice.

Ilustrarea modului ÃŪn care se antrenează modelele de ÃŪmbunătățire.
Foto: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Un tip de algoritm de ÃŪmbunătățire este algoritmul AdaBoost. Algoritmii AdaBoost ÃŪncep prin antrenarea unui model de arbore de decizie și atribuirea unui punctaj egal pentru fiecare observație. După ce primul arbore a fost evaluat pentru acuratețe, punctajele pentru diferitele observații sunt ajustate. Observațiile care au fost ușor de clasificat au punctajele lor reduse, ÃŪn timp ce observațiile care au fost greu de clasificat au punctajele lor crescute. Un al doilea arbore este creat utilizÃĒnd aceste punctaje ajustate, cu scopul de a face ca predicțiile celui de-al doilea arbore să fie mai precise decÃĒt cele ale primului arbore.

Modelul acum constă din predicțiile pentru arborele original și noul arbore (sau Arborele 1 + Arborele 2). Acuratețea clasificării este evaluată din nou pe baza noului model. Un al treilea arbore este creat pe baza erorii calculate pentru model, și punctajele sunt ajustate din nou. Acest proces continuă pentru un număr dat de iterații, și modelul final este un model de ansamblu care utilizează suma ponderată a predicțiilor făcute de toți arborii construiți anterior.

Procesul descris mai sus utilizează arbori de decizie și predictorii de bază, dar o abordare de ÃŪmbunătățire poate fi realizată cu o gamă largă de modele, cum ar fi multe modele standard de clasificare și regresie. Conceptele cheie de ÃŪnțeles sunt că predictorii ulterioari ÃŪnvață din greșelile făcute de cei anteriori și că predictorii sunt creați secvențial.

Principalul avantaj al algoritmilor de ÃŪmbunătățire este că acestea necesită mai puțin timp pentru a găsi predicțiile actuale ÃŪn comparație cu alte modele de ÃŪnvățare automată. Cu toate acestea, trebuie să se acorde atenție atunci cÃĒnd se utilizează algoritmii de ÃŪmbunătățire, deoarece acestea sunt predispuse la suprainvățare.

Gradient Boosting

Acum vom examina unul dintre cele mai comune algoritme de ÃŪmbunătățire. Modelele de Gradient Boosting (GBM) sunt cunoscute pentru acuratețea lor ridicată și extind principiile generale utilizate ÃŪn AdaBoost.

Principala diferență ÃŪntre un model de Gradient Boosting și AdaBoost este că GBM utilizează o metodă diferită de calculare a ÃŪnvățătorilor care identifică greșit punctele de date. AdaBoost calculează unde un model este subperformant prin examinarea punctelor de date care au un punctaj ridicat. În timp ce GBM utilizează gradientul pentru a determina acuratețea ÃŪnvățătorilor, aplicÃĒnd o funcție de pierdere la un model. Funcțiile de pierdere sunt o modalitate de a măsura acuratețea unei ajustări a modelului la setul de date, calculÃĒnd o eroare și optimizÃĒnd modelul pentru a reduce acea eroare. GBM permite utilizatorului să optimizeze o funcție de pierdere specificată ÃŪn funcție de obiectivul dorit.

LuÃĒnd ca exemplu cea mai comună funcție de pierdere – Eroarea Medie Pătratică (MSE) – coborÃĒrea gradientului este utilizată pentru a actualiza predicțiile pe baza unei rate de ÃŪnvățare predefinite, scopul fiind de a găsi valorile ÃŪn care pierderea este minimă.

Pentru a fi mai clar:

Noile predicții ale modelului = variabile de ieșire – vechile predicții imperfecte.

Într-un sens mai statistic, GBM ÃŪși propun să găsească modele relevante ÃŪn reziduurile unui model, ajustÃĒnd modelul pentru a se potrivi modelului și a aduce reziduurile cÃĒt mai aproape de zero posibil. Dacă ați efectua o regresie pe predicțiile modelului, reziduurile ar fi distribuite ÃŪn jurul valorii 0 (potrivire perfectă), și GBM găsesc modele ÃŪn reziduuri și actualizează modelul ÃŪn jurul acestor modele.

În alte cuvinte, predicțiile sunt actualizate astfel ÃŪncÃĒt suma tuturor reziduurilor să fie cÃĒt mai aproape de 0 posibil, ceea ce ÃŪnseamnă că valorile prezise vor fi foarte aproape de valorile reale.

Notați că o varietate largă de alte funcții de pierdere (cum ar fi pierderea logaritmică) pot fi utilizate de un GBM. MSE a fost selectat mai sus pentru scopul de a simplifica explicația.

Variante ale Modelelor de Gradient Boosting

Modelele de Gradient Boosting sunt algoritmi lacomi care sunt predispuse la suprainvățare pe un set de date. Acest lucru poate fi prevenit cu mai multe metode diferite care pot ÃŪmbunătăți performanța unui GBM.

GBM pot fi reglementate cu patru metode diferite: Shrinkage, ConstrÃĒngeri de Arbore, Gradient Boosting Stochastic și Învățare Penalizată.

Shrinkage

După cum s-a menționat anterior, ÃŪn GBM, predicțiile sunt adunate ÃŪmpreună ÃŪn mod secvențial. În “Shrinkage”, adăugările fiecărui arbore la suma generală sunt ajustate. Se aplică greutăți care ÃŪncetinesc rata de ÃŪnvățare a algoritmului, necesitÃĒnd ca mai multe arbori să fie adăugați la model, ceea ce de obicei ÃŪmbunătățește robustețea și performanța modelului. Compromisul este că modelul necesită mai mult timp pentru a fi antrenat.

ConstrÃĒngeri de Arbore

ConstrÃĒngerea arborelui cu diverse ajustări, cum ar fi adăugarea de adÃĒncime la arbore sau creșterea numărului de noduri sau frunze din arbore, poate face ca modelul să fie mai greu de suprainvățat. Impunerea unei constrÃĒngeri asupra numărului minim de observații pe divizare are un efect similar. Din nou, compromisul este că modelul necesită mai mult timp pentru a fi antrenat.

Exemplu Aleator

Învățătorii individuali pot fi creați printr-un proces stocastic, pe baza unor sub-șantioane aleatorii ale setului de date de antrenare. Acest lucru are efectul de a reduce corelațiile dintre arbori, ceea ce protejează ÃŪmpotriva suprainvățării. Setul de date poate fi sub-șantionat ÃŪnainte de a crea arborii sau ÃŪnainte de a considera o divizare ÃŪn arbore.

Învățare Penalizată

Beyond constrÃĒngerea modelului prin limitarea structurii arborelui, este posibil să se utilizeze un arbore de regresie. Arborii de regresie au valori numerice atașate de fiecare frunză, și acestea funcționează ca greutăți și pot fi ajustate cu funcții de regularizare comune, cum ar fi L1 și L2 regularizare.

Blogger și programator cu specializări ÃŪn Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.