Construirea de modele AI robuste cu sac: tehnici, beneficii și aplicații
Publicat: 2025-01-09Bagajul este o tehnică de învățare automată a ansamblului (ML) care îmbunătățește consistența modelelor predictive. Acest ghid descrie modul în care funcționează ambalajul, discută avantajele, provocările și aplicațiile sale și îl compară cu tehnicile conexe, cum ar fi stimularea.
Cuprins
- Ce este bagajul?
- Varianta vs. părtinire
- Ambalare vs. impulsionare
- Cum funcționează ambalarea
- Tipuri de algoritm de ambalare
- Aplicații de ambalare
- Avantajele ambalării
- Provocări și limitări ale ambalajului
Ce este bagajul?
Bagarea (sau, mai formal, bootstrapaggregating) este o tehnică de învățare prin ansamblu care îmbunătățește acuratețea ieșirii prin utilizarea mai multor modele ML similare. În esență, învățarea prin ansamblu combină mai multe modele pentru a obține performanțe mai bune decât orice model individual.
Abordarea implică împărțirea datelor de antrenament în subseturi aleatorii și antrenarea unui model diferit pentru fiecare. Pentru intrări noi, predicțiile de la toate modelele sunt agregate pentru a produce o ieșire finală. Prin utilizarea unor subseturi randomizate, tehnica reduce discrepanțele dintre modele, rezultând predicții mai consistente.
Ambalarea este deosebit de eficientă în îmbunătățirea consistenței prin reducerea la minimum a variației sistemului ML.
Varianta vs. părtinire
Reducerea părtinirii și a varianței sunt obiective fundamentale ale oricărui model sau sistem ML.
Bias descrie erorile pe care le face un sistem ML din cauza ipotezelor sale despre datele pe care le vede. De obicei, se determină calculând cât de greșit este modelul în medie. Varianta măsoară consistența modelului. Este estimată verificând cât de diferite sunt ieșirile modelului pentru intrări similare.
Prejudecata mare
Ca exemplu, să luăm în considerare problema de a prezice prețul de vânzare al unei case din caracteristicile sale (cum ar fi suprafața pătrată și numărul de dormitoare). Un model simplu poate face o mulțime de ipoteze simplificatoare și poate privi doar metru pătrat, determinând-o să aibă o părtinire mare. Va greși în mod constant lucrurile, chiar și în ceea ce privește datele de antrenament, deoarece realitatea este mai complicată decât presupunerile sale. Deci, pur și simplu nu poate să înțeleagă predictorii de preț real (cum ar fi locația, calitatea școlii și numărul de dormitoare).
Varianta mare
Un model mai complex poate preluafiecaretendință din datele de antrenament și poate avea o variație mare. De exemplu, acest model poate găsi o mică corelație între numărul casei (în esență partea numerică a unei adrese de stradă) și preț în datele de antrenament și îl poate folosi, chiar dacă nu este un predictor real. Se va descurca bine cu datele de antrenament, dar slab cu datele din lumea reală.
Compensația varianță-bias
Un model ideal ar avea părtinire scăzută și varianță scăzută, generând ieșirile corecte în mod constant între intrări similare. Prejudecățile ridicate rezultă, de obicei, din cauza faptului că modelul este prea simplu pentru a capta tiparele din datele de antrenament - subadaptare. Varianta mare rezultă de obicei din modelul care captează modele false în datele de antrenament - supraadaptare.
Creșterea gradului de sofisticare a unui model îi poate permite să capteze mai multe modele, ceea ce duce la o părtinire mai mică. Cu toate acestea, acest model mai sofisticat va avea tendința de a supraadapta datele de antrenament, ceea ce duce la o variație mai mare și invers. În practică, un compromis bine echilibrat între prejudecăți și variație este greu de atins.
Bagarea se concentrează pe reducerea variației. Fiecare model din ansamblu poate avea o variație mare, deoarece își supraajustează setul de date. Dar, deoarece fiecare model primește un set de date randomizat, ei vor descoperi diferite modele false. În exemplul prețului casei, un model ar putea supraevalua casele cu numere pare, altul le poate subevalua și majoritatea ar putea ignora complet numerele casei.
Aceste modele arbitrare tind să fie în medie atunci când facem o medie a predicțiilor lor, lăsându-ne cu adevăratele relații de bază. Ansamblul realizează astfel o variație mai mică și o supraadaptare redusă în comparație cu orice model individual.
Ambalare vs. impulsionare
S-ar putea să auzi vorbindu-se despre îmbătrânire în același context ca și boosting. Acestea sunt cele mai comune tehnici de învățare prin ansamblu și stau la baza multor modele ML populare. Boosting-ul este o tehnică în care modelele sunt instruite cu privire la erorile modelelor anterioare. Apoi, acest grup de modele este folosit pentru a răspunde oricăror intrări. Să discutăm în continuare diferențele dintre cele două tehnici.
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 computațională | Mai jos | Superior |
Ambele tehnici sunt comune, deși stimularea este mai populară. Boosting-ul poate reduce atât prejudecățile, cât șivariația, în timp ce înghițirea în pungă afectează de obicei doar variația.
Cum funcționează ambalarea
Să luăm în considerare cum funcționează de fapt ambalarea. Esența este să împărțiți datele de antrenament în mod aleatoriu, să pregătiți modele în paralel pe datele împărțite și să folosiți toate modelele pentru a răspunde la intrări. Ne vom ocupa de fiecare pe rând.
Divizarea datelor
Să presupunem că avem un set de date de antrenament cunpuncte de date și dorim să facem un ansamblu demmodele. Apoi, trebuie să creămmseturi de date (câte unul pentru fiecare model), fiecare cunpuncte. Dacă există mai mult sau mai puțin denpuncte în fiecare set de date, unele modele vor fi supra sau sub-antrenate.
Pentru a crea un singur nou set de date aleatoare, alegem aleatoriunpuncte din setul de date de antrenament original. Important este că readucem punctele la setul de date original după fiecare selecție. Ca rezultat, noul set de date aleatoare va avea mai mult de o copie a unora dintre punctele de date originale, în timp ce nu va avea nicio copie a altora. În medie, acest set de date va consta din 63% puncte de date unice și 37% puncte de date duplicate.
Apoi repetăm acest proces pentru a crea toate celemseturi de date. Variația în reprezentarea punctelor de date ajută la crearea diversității între modelele de ansamblu, care este o cheie pentru reducerea varianței în ansamblu.
Antrenamentul modelului
Cumseturile noastre de date randomizate, pur și simplu antrenămmmodele, câte un model pentru fiecare set de date. Ar trebui să folosim același tip de model pentru a asigura părtiniri similare. Putem antrena modelele în paralel, permițând o iterație mult mai rapidă.
Agregarea modelelor
Acum că avemmmodele antrenate, le putem folosi ca un ansamblu pentru a răspunde la orice intrare. Fiecare punct de date de intrare este alimentat în paralel cu fiecare dintre modele și fiecare model răspunde cu ieșirea sa. Apoi, cumulăm rezultatele modelelor pentru a ajunge la un răspuns final. Dacă este o problemă de clasificare, luăm modul ieșirilor (cea mai comună ieșire). Dacă este o problemă de regresie, luăm media rezultatelor.
Cheia pentru reducerea varianței aici este că fiecare model este mai bun la unele tipuri de intrări și mai rău la altele, din cauza diferențelor în datele de antrenament. Cu toate acestea, în general, erorile oricărui model ar trebui să fie anulate de celelalte modele, ceea ce duce la o variație mai mică.
Tipuri de algoritmi de ambalare
Bagajul ca algoritm poate fi aplicat oricărui tip de model. În practică, există două modele de saci care sunt foarte comune: păduri aleatorii și arbori de decizie în saci. Să le explorăm pe scurt pe ambele.
Păduri aleatorii
O pădure aleatoare este un ansamblu de arbori de decizie, fiecare antrenat pe seturi de date randomizate. Un arbore de decizie este un model care face predicții răspunzând la întrebări da/nu despre datele de intrare până când găsește o etichetă adecvată.
Într-o pădure aleatorie, fiecare arbore de decizie are aceiași hiperparametri - configurații prestabilite, cum ar fi adâncimea maximă a arborelui sau eșantioanele minime pe divizare - dar folosește caracteristici diferite (alese aleatoriu) din setul de date de antrenament. Fără randomizarea caracteristicilor, fiecare arbore de decizie poate converge către răspunsuri similare, în ciuda diferențelor în datele de antrenament. Pădurile aleatorii sunt o alegere extrem de populară pentru ML și sunt adesea un bun punct de plecare pentru rezolvarea sarcinilor ML.
Arbori de decizie împovărați
Arborii de decizie în sac sunt foarte asemănătoare cu pădurile aleatorii, cu excepția faptului că fiecare copac folosește aceleași caracteristici din setul de date de antrenament. Acest lucru reduce diversitatea rezultatelor din copaci, ceea ce are avantaje și dezavantaje. În plus, copacii sunt mai stabili și probabil vor da răspunsuri similare; aceasta poate fi folosită pentru a determina care caracteristici sunt importante. Dezavantajul este că variația nu va fi redusă la fel de mult. Din acest motiv, pădurile aleatorii sunt folosite mult mai mult decât arborii de decizie în saci.
Aplicații de ambalare
Bagajul poate fi folosit în orice problemă ML în care varianța este mai mare decât se dorește. Atâta timp cât există un model ML, acesta poate fi ambalat. Pentru a face acest lucru mai concret, vom trece în revistă câteva exemple.
Clasificare și regresie
Clasificarea și regresia sunt două dintre problemele de bază ML. Un utilizator poate dori să eticheteze subiectul unei imagini ca o pisică sau ca un câine - clasificare. Sau un utilizator poate dori să prezică prețul de vânzare al unei case din caracteristicile sale – regresie. Bagarea în sac poate ajuta la reducerea variației pentru ambele, așa cum am văzut.
În clasificare se utilizează modul modelelor de ansamblu. În regresie se utilizează media.
Selectarea caracteristicilor
Selectarea caracteristicilor se referă la găsirea celor mai importante caracteristici dintr-un set de date - cele care prezic cel mai bine rezultatul corect. Prin eliminarea datelor de caracteristică irelevante, un dezvoltator de modele poate reduce posibilitatea de supraadaptare.
Cunoașterea celor mai importante caracteristici poate face și modelele mai interpretabile. În plus, dezvoltatorii de modele pot folosi aceste cunoștințe pentru a reduce numărul de caracteristici din datele de antrenament, ceea ce duce la un antrenament mai rapid. Arborele de decizie în pungi funcționează bine pentru a descoperi caracteristici importante. Caracteristicile care sunt puternic ponderate în cadrul lor vor fi probabil cele importante.
Ambalarea în comerțul electronic
Introducerea în comerțul electronic este deosebit de valoroasă pentru prezicerea ratei clienților. Modelele ML antrenate pe date de abandon au adesea variații mari din cauza modelelor de comportament complexe și zgomotoase ale clienților; își pot supraadapta setul de date de antrenament. Ei pot deduce, de asemenea, relații false, cum ar fi presupunerea că numărul de vocale din numele unui client afectează probabilitatea acestora de a se retrage.
Setul de date de antrenament poate conține doar câteva exemple care cauzează această supraadaptare. Folosind modele în pungi, ansamblul poate identifica mai bine indicatorii de pierdere autentici, ignorând în același timp corelațiile false, ceea ce duce la predicții de pierdere mai fiabile.
Avantajele ambalării
Ambalarea reduce variația modelului și supraadaptarea și poate ajuta la problemele legate de date. Este, de asemenea, una dintre cele mai paralelizabile și mai eficiente tehnici de ambalare.
Varianta redusa
Varianta modelului indică faptul că un model nu învață modelele adevărate și semnificative în date. În schimb, preia corelații aleatorii care nu înseamnă mare lucru și sunt un simptom al datelor imperfecte de antrenament.
Ambalarea reduce varianța modelelor; ansamblul în ansamblu se concentrează pe relațiile semnificative dintre intrare și ieșire.
Generalizați bine la date noi
Întrucât modelele în sac sunt mai susceptibile de a descoperi relații semnificative, ele se pot generaliza la date noi sau nevăzute. O bună generalizare este scopul final al învățării automate, așa că punerea în sac este adesea o tehnică utilă pentru multe modele.
În aproape fiecare problemă ML, setul de date de antrenament nu este pe deplin reprezentativ pentru datele reale, așa că o bună generalizare este esențială. În alte cazuri, distribuția reală a datelor s-ar putea schimba în timp, așa că este necesar un model adaptabil. Bagarea în pungă ajută la ambele cazuri.
Foarte paralelizabil
Spre deosebire de boosting, crearea de modele în pungi este foarte paralelizabilă. Fiecare model poate fi antrenat independent și simultan, permițând experimentarea rapidă și reglarea mai ușoară a hiperparametrilor (cu condiția, desigur, să aveți suficiente resurse de calcul pentru a vă antrena în paralel).
În plus, deoarece fiecare model este independent de celelalte, acesta poate fi schimbat în interior sau în afara acestuia. De exemplu, un model slab poate fi reantrenat pe un subset aleatoriu diferit pentru a-și îmbunătăți performanța fără a atinge celelalte modele.
Provocări și limitări ale ambalajului
Din păcate, adăugarea mai multor modele adaugă mai multă complexitate. Provocările de complexitate suplimentară înseamnă că modelele în sac necesită mult mai multe resurse de calcul, sunt mai greu de interpretat și înțeles și necesită mai multă reglare a hiperparametrilor.
Sunt necesare mai multe resurse de calcul
Mai multe modele necesită mai multe resurse pentru a le rula și, adesea, ansamblurile în sac au peste 50 de modele. Acest lucru poate funcționa bine pentru modelele mai mici, dar cu cele mai mari, poate deveni insolubil.
Timpii de răspuns pentru ansamblu pot avea, de asemenea, de suferit pe măsură ce crește. Resursele au, de asemenea, un cost de oportunitate: pot fi utilizate mai bine pentru a antrena un model mai mare, mai bun.
Mai greu de interpretat
Modelele ML, în ansamblu, sunt greu de interpretat. Arborele de decizie individuală este puțin mai ușor, deoarece arată pe ce caracteristică se bazează deciziile. Dar când grupați o grămadă de ei împreună, ca într-o pădure aleatorie, răspunsurile contradictorii din fiecare copac pot fi confuze.
Luarea modului sau a mediei predicțiilor nu explică în sine de ce aceasta este predicția corectă. Înțelepciunea mulțimii, deși adesea are dreptate, este greu de înțeles.
Mai multe reglaje hiperparametrice
Cu mai multe modele, efectele hiperparametrilor sunt mărite. O ușoară eroare în hiperparametri poate afecta acum zeci sau sute de modele. Reglarea aceluiași set de hiperparametri necesită mai mult timp, ceea ce poate pune o povară și mai mare asupra resurselor limitate.