Îmbunătățirea tehnicilor în învățarea automată: îmbunătățirea preciziei și reducerea erorilor
Publicat: 2025-01-16Boostingul este o tehnică puternică de învățare prin ansamblu în învățarea automată (ML) care îmbunătățește acuratețea modelului prin reducerea erorilor. Prin antrenarea modelelor secvențiale pentru a aborda deficiențele anterioare, amplificarea creează sisteme predictive robuste. Acest ghid acoperă modul în care funcționează stimularea; avantajele, provocările și aplicațiile sale; și cum se compară cu ambalarea.
Cuprins
- Ce este amplificarea?
- Prejudecăți față de varianță
- Boosting vs. baging
- Cum funcționează stimularea
- Tipuri de algoritmi de amplificare
- Aplicații de amplificare
- Avantajele stimulării
- Provocări și limitări ale stimulării
Ce este amplificarea?
Boostingul este o tehnică de învățare a ansamblului care antrenează modele noi, secvențiale, pentru a corecta erorile modelelor anterioare din ansamblu. Tehnicile de învățare prin ansamblu sunt modalități de utilizare a mai multor modele similare pentru a îmbunătăți performanța și acuratețea. În boosting, noile modele sunt antrenate exclusiv pe erorile anterioare ale ansamblului. Apoi noile modele se alătură ansamblului pentru a-l ajuta să ofere predicții mai precise. Orice intrare nouă este trecută prin modele și agregată pentru a reduce erorile pe toate modelele.
Precizia este un concept larg. Îmbunătățirea crește în mod specific performanța modelului prin reducerea părtinirii modelului (și, într-o măsură mai mică, a variației). Varianta și părtinirea sunt două concepte ML importante pe care le vom acoperi în secțiunea următoare.
Prejudecăți față de varianță
Prejudecățile și varianța sunt două proprietăți fundamentale ale învățării automate în ansamblu. Scopul oricărui algoritm ML este de a reduce varianța și părtinirea modelelor. Având în vedere importanța lor, vom explica mai multe despre fiecare și de ce sunt de obicei în dezacord unul cu celălalt.
Pentru a explica fiecare concept, să luăm exemplul de predicție a prețului de vânzare al caselor, având în vedere date despre caracteristicile acestora (de exemplu, metru pătrat, numărul de dormitoare etc.).
Părtinire
Prejudecata este o măsură a cât de greșit este un model în medie. Dacă o casă s-a vândut efectiv cu 400.000 USD și modelul a prezis 300.000 USD, prejudecata pentru acel punct de date este de -100.000 USD. Faceți o medie a distorsiunii pe întregul set de date de antrenament și aveți prejudecățile unui model.
Prejudecățile rezultă de obicei din faptul că modelele sunt prea simple pentru a înțelege relațiile complexe dintre caracteristici și rezultate. Un model prea simplu poate învăța să se uite doar la metru pătrat și va greși în mod constant, chiar și pe datele de antrenament. În limbajul ML, acest lucru se numește underfitting.
Varianta
Varianta măsoară cât de mult diferă rezultatele unui model având în vedere intrări similare. În cele mai multe cazuri, casele din cartiere similare și cu metru pătrat similar, numărul de dormitoare și numărul de băi ar trebui să aibă prețuri similare. Dar un model cu variație mare poate oferi prețuri extrem de diferite. De ce?
Este posibil ca modelul să fi învățat relații false din datele de instruire (de exemplu, gândirea că numerele casei afectează prețul). Aceste relații false pot apoi îneca relațiile utile din date. În general, modelele complexe preiau aceste relații irelevante, ceea ce se numește supraadaptare.
Compensație părtinire-varianță
În mod ideal, doriți un model ML cu prejudecăți reduse, cu variație redusă, care va prelua adevăratele relații din date, dar nu mai mult. Cu toate acestea, acest lucru este greu de realizat în practică.
Creșterea gradului de sofisticare sau complexitate a unui model poate reduce părtinirea acestuia, oferindu-i puterea de a găsi modele mai profunde în date. Cu toate acestea, aceeași putere o poate ajuta, de asemenea, să găsească modele irelevante și invers, făcând acest compromis între prejudecăți și variație greu de rezolvat.
Boostingul îmbunătățește părtinirea și varianța
Boosting-ul este o tehnică de învățare de ansamblu foarte populară, deoarece poate reduce atât părtinirea, cât și varianța (deși reducerea variației nu este la fel de comună).
Prin corectarea erorilor anterioare, amplificarea reduce rata medie de eroare și dimensiunea ansamblului de modele, reducând părtinirea.
Prin utilizarea mai multor modele, erorile modelelor individuale pot fi anulate, ceea ce poate duce la o variație mai mică.
Boosting vs. baging
În învățarea prin ansamblu, cele mai comune două tehnici sunt boosting și bagging. Bagging preia setul de date de antrenament, face subseturi aleatorii ale acestuia și antrenează un model diferit pentru fiecare subset. Apoi modelele sunt folosite împreună pentru a face predicții. Acest lucru duce la destul de multe diferențe între ambalare și boosting, pe care le detaliem mai jos.
Bagare | Amplificare | |
Antrenamentul modelului | Modelele sunt antrenate în paralel pe diferite subseturi de date. | Modelele sunt antrenate secvenţial, fiecare model concentrându-se pe erorile modelului anterior. |
Focalizare pentru reducerea erorilor | Reduce varianța | Reduce părtinirea |
Algoritmi comuni | Pădure aleatoare, copaci de decizie în saci | AdaBoost, creșterea gradientului, XGBoost |
Risc de supraadaptare | Risc mai mic de supraadaptare datorită prelevării aleatorii | Risc mai mare de supraadaptare |
Complexitatea calculului | Mai jos | Superior |
Ambele tehnici sunt comune, dar stimularea este alegerea mai populară, deoarece poate reduce părtinirea și varianța.
Cum funcționează stimularea
Să vedem cum funcționează stimularea. În esență, amplificarea constă în antrenarea fiecărui model nou pe punctele de date pe care modelele anterioare le-au greșit. Sunt trei părți:
- Ponderea datelor de antrenament prin erori
- Antrenarea unui nou model pe acest set de date de eroare ponderată
- Adăugarea noului model la ansamblu
Pentru început, să presupunem că am antrenat modelul inițial (un ansamblu de unul).
Ponderea datelor de antrenament prin erori
Rulem datele de antrenament prin ansamblul existent și notăm pentru ce intrări ansamblul a dat predicții incorecte. Apoi creăm o versiune modificată a setului de date de antrenament în care acele intrări supărătoare sunt mai reprezentate sau mai importante.
Antrenamentul noului model
Folosim setul de date modificat pe care l-am creat pentru a antrena un nou model, care este de același tip cu celelalte modele din ansamblu. Cu toate acestea, acest nou model se concentrează mai mult pe exemplele dificile din datele de antrenament, așa că probabil va funcționa mai bine pe ele. Această îmbunătățire a performanței erorilor este o parte importantă a reducerii părtinirii.
Încorporarea noului model
Modelul nou antrenat este adăugat la ansamblu, iar predicțiile sale sunt ponderate în funcție de acuratețea lor. În paralel, o nouă intrare este transmisă fiecărui model din ansamblu, iar ieșirile finale ale fiecărui model sunt ponderate pentru a obține rezultatul ansamblului.
Pentru sarcinile de clasificare (de obicei, alegerea între două etichete în problemele de stimulare), clasa cu cea mai mare sumă de voturi ponderate pentru aceasta este aleasă ca predicție a ansamblului.
Pentru sarcinile de regresie, predicția ansamblului este media ponderată a predicției fiecărui model.
În acest moment, procesul se poate repeta dacă părtinirea este încă prea mare.
Tipuri de algoritmi de amplificare
Există mai multe variante de algoritmi de amplificare, cu unele diferențe mari între ei. Cele mai populare sunt stimularea adaptivă (AdaBoost), creșterea gradientului, creșterea gradului extrem (XGBoost) și creșterea pisicii. Vom acoperi fiecare pe rând.
AdaBoost
AdaBoost este foarte asemănător cu algoritmul de stimulare pe care l-am prezentat mai devreme: datele de antrenament care pun probleme pentru ansamblurile anterioare sunt ponderate mai mult atunci când antrenați următorul model. AdaBoost a fost unul dintre algoritmii originali de stimulare și este cunoscut pentru simplitatea sa.
AdaBoost este mai puțin predispus la supraadaptare decât alți algoritmi de stimulare, deoarece modelele noi văd diferite variații (cu punctele de date dure fiind mai frecvente) ale setului de date de antrenament. Dar, în comparație cu alte tehnici de stimulare, este mai sensibil la datele aberante și nu reduce la fel de mult părtinirea.
Creșterea gradientului
Amplificarea gradientului este o abordare unică a creșterii. Spre deosebire de amplificarea adaptivă, modelele noi nu primesc o versiune ponderată în funcție de erori a setului de date de antrenament. Ei primesc setul de date original. Cu toate acestea, în loc să încerce să prezică ieșirile pentru intrările din setul de date, ei încearcă să prezică gradientul negativ al ansamblului anterior pe fiecare intrare.
Gradientul negativ este în esență direcția în care ponderile și predicțiile modelului ansamblului ar trebui să se deplaseze pentru a reduce eroarea — pentru a se apropia de răspunsul corect. Gradienții negativi sunt adăugați (cu un factor de ponderare aplicat) la predicția de ieșire a ansamblului anterior pentru a-l împinge mai aproape de a fi corect.
Amplificarea gradientului este mult mai performantă decât AdaBoosting, în special în cazul datelor complexe. Există, de asemenea, mai mulți hiperparametri de reglat, ceea ce oferă oamenilor mai mult control, dar crește și nevoia de experimentare.
XGBoost
XGBoost (sau creșterea gradului extrem) este o versiune foarte optimizată a creșterii gradientului. XGBoost face ca antrenamentul de creștere a gradientului și inferența să fie mult mai paralele. XGBoost adaugă, de asemenea, regularizare (adică, penalizări pentru complexitate) pentru a preveni supraadaptarea și gestionează mult mai bine datele lipsă. În cele din urmă, XGBoost este mult mai scalabil pentru seturi mari de date sau încărcături de lucru.
XGBoost este chiar mai performant decât creșterea gradientului și a fost unul dintre cei mai populari algoritmi ML în anii 2010. Dar este, de asemenea, mai greu de interpretat și mult mai costisitor din punct de vedere computațional de rulat.
CatBoost
CatBoost este o formă de creștere a gradientului care este concepută pentru a funcționa pe date categorice. Datele categorice sunt date în care valorile pot fi în câteva grupuri limitate. Iată câteva exemple:
- Da – fără date (de exemplu, casa are garaj?)
- Categorii de culori (de exemplu, roșu, albastru, verde)
- Categorii de produse (de exemplu, electronice, îmbrăcăminte, mobilier)
Modelele de creștere a gradientului nu funcționează în general bine cu date categorice, în timp ce CatBoost o face. CatBoost poate gestiona și date continue, ceea ce îl face o altă alegere populară de stimulare. Ca și în cazul altor modele de creștere a gradientului, CatBoost suferă de complexitate computațională și supraadaptare.
Aplicații de amplificare
Boostingul poate fi aplicat la aproape orice problemă ML, deoarece erorile și părtinirea sunt adesea mai mari decât ne-am dori. Clasificarea și regresia sunt două dintre marile subdiviziuni ale ML, iar amplificarea se aplică ambelor. Recomandările de conținut și detectarea fraudei sunt două exemple de probleme de ML cu care se confruntă companiile cu care stimularea le poate ajuta.
Clasificare și regresie
Clasificarea și regresia sunt două dintre sarcinile de bază ML. Un utilizator poate dori să prezică dacă o imagine conține un câine sau o pisică (clasificare) sau poate dori să prezică prețul de vânzare al unei case (regresie). Boosting-ul funcționează bine pentru ambele sarcini, mai ales atunci când modelele de bază sunt slabe sau nu sunt complexe.
Recomandări de conținut
Boosting îmbunătățește recomandările de conținut (de exemplu, filme sugerate de Netflix pentru dvs.) prin îmbunătățirea iterativă a preciziei predicțiilor pentru preferințele utilizatorilor. Atunci când un model de recomandare nu reușește să capteze anumite modele de vizionare (cum ar fi preferințele sezoniere sau opțiunile dependente de context), amplificarea creează modele suplimentare care se concentrează în mod special pe aceste modele omise. Fiecare model nou din secvență acordă o greutate suplimentară preferințelor utilizatorului previzionate anterior, ceea ce duce la erori mai mici.
Detectarea fraudei
În detectarea fraudelor, un caz de utilizare comun pentru companiile financiare, stimularea excelelor prin învățarea progresivă din tranzacțiile clasificate greșit. Dacă modelele inițiale ratează modele sofisticate de fraudă, modelele mai noi îmbunătățite vizează în mod specific aceste cazuri supărătoare. Tehnica se adaptează deosebit de bine la schimbarea tacticilor de fraudă, acordând ponderi mai mari clasificărilor greșite recente, permițând sistemului să mențină rate ridicate de detectare.
Avantajele stimulării
Boosting-ul este excelent la reducerea părtinirii modelului și, într-o măsură mai mică, a variației. În comparație cu alte tehnici de ansamblu, necesită mai puține date și oferă oamenilor mai mult control asupra supraajustării.
Prejudecăți și varianță reduse
Prejudecata mare înseamnă că modelele sunt adesea greșite. Boosting-ul este o tehnică excelentă pentru reducerea părtinirii modelelor. Deoarece fiecare model se concentrează pe corectarea erorilor modelelor anterioare, ansamblul în ansamblu își reduce rata de eroare.
Varianta redusă are, de asemenea, un efect secundar: modelele mai noi pot avea diferite combinații de date de antrenament, permițând erorilor din diferite modele să se anuleze reciproc.
Are nevoie de mai puține date
Spre deosebire de alte tehnici de ansamblu, amplificarea nu are nevoie de un set de date uriaș pentru a funcționa bine. Deoarece fiecare model nou se concentrează în primul rând pe erorile celor mai vechi, are un scop îngust și nu are nevoie de o mulțime de date. Noul model poate folosi datele de antrenament existente și poate antrena în mod repetat erorile.
Mai mult control asupra supraajustării
Boostingul are câțiva hiperparametri care controlează cât de mult contribuie fiecare model nou la predicția ansamblului. Prin modificarea acestor hiperparametri, utilizatorii pot reduce influența noilor modele. Acest lucru ar crește părtinirea, dar ar putea scădea variația, oferind utilizatorilor controlul asupra punctului în care vor să aterizeze în raportul părtinire-varianță.
Provocări și limitări ale stimulării
Boosting are totuși avertismentele sale. Necesită mai mult timp pentru antrenament și utilizare, este sensibil la datele aberante și necesită mai multă reglare a hiperparametrilor.
Timp de antrenament mai lung
În boosting, fiecare model nou depinde de erorile ansamblului anterior. Aceasta înseamnă că modelele trebuie antrenate pe rând, ceea ce duce la timpi de antrenament lungi. Un alt dezavantaj este că antrenamentul secvenţial înseamnă că este posibil să nu ştii dacă stimularea va fi eficientă până când nu antrenezi o duzină de modele.
Sensibilitate anormală
În amplificare, modelele mai noi se concentrează exclusiv pe erorile modelelor anterioare. Unele date aberante din setul de antrenament care ar trebui ignorate pot deveni, în schimb, singurul obiectiv al modelelor ulterioare. Acest lucru poate degrada performanța generală a ansamblului și poate pierde timpul de antrenament. Poate fi necesară o prelucrare atentă a datelor pentru a contracara efectele valorii aberante.
Mai multe reglaje hiperparametrice
Avantajul de a oferi utilizatorilor mai mult control asupra supraajustării înseamnă, de asemenea, că utilizatorii trebuie să ajusteze mai mulți hiperparametri pentru a găsi un echilibru bun între părtinire și variație. Sunt adesea necesare mai multe experimente de stimulare, ceea ce face antrenamentul secvențial și mai obositor. Boostingul necesită o mulțime de resurse de calcul.