Îmbunătățirea învățării automate: ce este, funcții, tipuri și caracteristici

Publicat: 2020-05-29

Îmbunătățirea învățarii automate este un subiect important. Mulți analiști devin confuzi cu privire la sensul acestui termen. De aceea, în acest articol, vom afla ce se înțelege prin stimularea învățării automate și cum funcționează. Boosting ajută modelele ML să își îmbunătățească precizia predicțiilor. Să discutăm acest algoritm în detaliu:

Cuprins

Ce este Boosting în Machine Learning?

Înainte de a discuta „ Îmbunătățirea învățării automate ”, ar trebui să luăm în considerare mai întâi definiția acestui termen. Boosting înseamnă „a încuraja sau a ajuta ceva să se îmbunătățească”. Îmbunătățirea învățării automate face exact același lucru în care împuternicește modelele de învățare automată și le îmbunătățește acuratețea. Din acest motiv, este un algoritm popular în știința datelor.

Boosting în ML se referă la algoritmii care convertesc modelele slabe de învățare în unele puternice. Să presupunem că trebuie să clasificăm e-mailurile în categoriile „Spam” și „Nu este spam”. Putem adopta următoarea abordare pentru a face aceste distincții:

  • Dacă e-mailul are un singur fișier imagine, este spam (deoarece imaginea este de obicei promoțională)
  • Dacă e-mailul conține o expresie similară cu „Ați câștigat la loterie”, este spam.
  • Dacă e-mailul conține doar o mulțime de link-uri, este spam.
  • Dacă e-mailul provine dintr-o sursă care este prezentă în lista noastră de contacte, nu este un spam.

Acum, deși avem reguli de clasificare, credeți că sunt suficient de puternice individual pentru a identifica dacă un e-mail este sau nu spam? Ei nu sunt. În mod individual, aceste reguli sunt slabe și nu sunt suficiente pentru a clasifica un e-mail în „Nu este spam” sau „Spam”. Va trebui să le facem mai puternice și putem face asta folosind o medie ponderată sau luând în considerare predicția votului mai mare.

Deci, în acest caz, avem cinci clasificatori, dintre care trei clasificatori marchează e-mailul ca „Spam”, prin urmare, vom considera un e-mail „Spam” în mod implicit, deoarece această clasă are un vot mai mare decât „Nu este spam”. categorie.

Acest exemplu a fost pentru a vă oferi o idee despre ce sunt algoritmii de stimulare. Sunt mai complexe decât asta.

Aruncă o privire la: 25 de întrebări și răspunsuri la interviu de învățare automată

Cum funcționează?

Exemplul de mai sus ne-a arătat că stimularea combină cursanții slabi pentru a forma reguli stricte. Deci, cum ați identifica aceste reguli slabe? Pentru a găsi o regulă incertă, va trebui să utilizați algoritmi de învățare bazați pe instanțe. Ori de câte ori aplicați un algoritm de învățare de bază, acesta ar produce o regulă de predicție slabă. Veți repeta acest proces pentru mai multe iterații și, cu fiecare iterație, algoritmul de amplificare va combina regulile slabe pentru a forma o regulă puternică.

Algoritmul de amplificare alege distribuția potrivită pentru fiecare iterație prin mai mulți pași. În primul rând, va lua toate alocările diferite și le va atribui o greutate egală. Dacă primul algoritm de învățare de bază face o eroare, va adăuga mai multă greutate acestor observații. După atribuirea greutății, trecem la pasul următor.

În acest pas, vom continua să repetăm ​​procesul până când vom crește acuratețea algoritmului nostru. Vom combina apoi rezultatele cursanților slabi și vom crea unul puternic care să ne împuternicească modelul și să îl ajute să facă predicții mai bune. Un algoritm de stimulare se concentrează mai mult pe ipotezele care provoacă erori mari din cauza regulilor lor slabe.

Aflați mai multe: 5 aplicații revoluționare ale învățării automate

Diferite tipuri de algoritmi de stimulare

Algoritmii de stimulare pot folosi mai multe tipuri de motoare de bază, inclusiv maximizatori de marjă, ștampile de decizie și altele. În primul rând, există trei tipuri de algoritmi de stimulare a învățării automate:

  1. Adaptive Boosting (cunoscut și ca AdaBoosta)
  2. Creșterea gradientului
  3. XGBoost

Vom discuta pe scurt despre primele două, AdaBoost și Gradient Boosting, în acest articol. XGBoost este un subiect mult mai complicat, despre care vom discuta într-un alt articol.

1. Boosting adaptiv

Să presupunem că aveți o cutie care are cinci plusuri și cinci minusuri. Sarcina dvs. este să le clasificați și să le puneți în tabele diferite.

În prima iterație, atribuiți ponderi egale fiecărui punct de date și aplicați un ciot de decizie în casetă. Cu toate acestea, linia separă doar două plusuri din grup și toate celelalte rămân împreună. Motul tău de decizie (care este o linie care trece prin presupusa noastră casetă), nu reușește să prezică corect toate punctele de date și a plasat trei plusuri cu minusurile.

În următoarea iterație, atribuim mai multă pondere celor trei plusuri pe care le-am ratat anterior; dar de data aceasta, ciotul de decizie separă doar două minute de grup. Vom atribui mai multă greutate minusurilor pe care le-am ratat în această iterație și vom repeta procesul. După una sau două repetări, putem combina câteva dintre aceste rezultate pentru a produce o regulă strictă de predicție.

AdaBoost funcționează exact așa. Mai întâi prezice folosind datele originale și atribuie o greutate egală fiecărui punct. Apoi acordă o importanță mai mare observațiilor pe care primul cursant nu le prezice corect. Se repetă procesul până când atinge o limită de precizie a modelului.

Puteți utiliza ștampile de decizie, precum și alți algoritmi de învățare automată cu Adaboost.

Iată un exemplu de AdaBoost în Python:

din sklearn.ensemble import AdaBoostClassifier

din sklearn.datasets import make_classification

X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,

n_redundant=0, n_repeated=0, random_state=102)

clf = AdaBoostClassifier(n_estimators=4, random_state=0, algorithm='SAMME')

clf.fit(X, Y)

2. Creșterea gradientului

Gradient Boosting folosește metoda de coborâre a gradientului pentru a reduce funcția de pierdere a întregii operațiuni. Coborârea gradientului este un algoritm de optimizare de ordinul întâi care găsește minimul local al unei funcții (funcție diferențiabilă). Amplificarea gradientului antrenează secvențial mai multe modele și se poate potrivi cu modele noi pentru a obține o estimare mai bună a răspunsului.

Construiește noi cursanți de bază care se pot corela cu gradientul negativ al funcției de pierdere și care sunt conectați la întregul sistem. În Python, va trebui să utilizați Gradient Tree Boosting (cunoscut și ca GBRT). Îl puteți folosi atât pentru clasificare, cât și pentru probleme de regresie.

Iată un exemplu de creștere a arborelui gradient în Python:

din sklearn.ensemble import GradientBoostingRegressor

model = GradientBoostingRegressor(n_estimators=3,learning_rate=1)

model.fit(X,Y)

# pentru clasificare

din sklearn.ensemble import GradientBoostingClassifier

model = GradientBoostingClassifier()

model.fit(X,Y)

Caracteristici de Boosting în Machine Learning

Boostingul oferă multe avantaje și, ca orice alt algoritm, are și limitările sale:

  • Interpretarea predicțiilor de boosting este destul de firească, deoarece este un model de ansamblu.
  • Selectează implicit caracteristicile, ceea ce este un alt avantaj al acestui algoritm.
  • Puterea de predicție a algoritmilor de stimulare este mai fiabilă decât arborii de decizie și bagajul.
  • Creșterea acesteia este oarecum dificilă, deoarece fiecare estimator în creștere se bazează pe estimatorii precedenți.

Citește și: Idei de proiecte de învățare automată pentru începători

Unde să mergi de aici?

Sperăm că ați găsit util acest articol despre stimulare. În primul rând, am discutat despre ce este acest algoritm și cum rezolvă problemele de învățare automată. Apoi ne-am uitat la funcționarea sa și la modul în care funcționează.

Am discutat și despre diferitele sale tipuri. Am aflat despre AdaBoost și Gradient Boosting în timp ce le-am împărtășit exemplele. Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de pregătire riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Cum pot defini stimularea în învățarea automată în termeni simpli?

Amplificarea în mașini constă în referirea la algoritmi care ajută la transformarea modelelor slabe de învățare în modele puternice. Dacă luăm exemplul clasificării e-mailurilor ca spam și nu ca spam, există anumite distincții care pot fi folosite pentru a le face mai ușor de înțeles. Aceste distincții pot fi abordate atunci când un e-mail are un singur fișier, conține o expresie similară precum Ai câștigat la loterie, conține o grămadă de link-uri și provine dintr-o listă de contacte.

Cum funcționează un algoritm de amplificare?

Regulile slabe sunt identificate prin utilizarea algoritmilor de învățare bazați pe instanțe. Odată ce un algoritm de învățare de bază este aplicat în mai multe iterații, în cele din urmă combină regulile slabe într-o singură regulă puternică. Algoritmul de amplificare face alegerile potrivite pentru distribuirea fiecărei iterații prin mai mulți pași. După ce a luat alocări, acesta atribuie o pondere egală până când se face o eroare, după care se atribuie mai multă pondere. Acest proces se repetă până când se obține o precizie mai bună. După aceea, toate rezultatele slabe sunt combinate pentru a face una puternică.

Care sunt diferitele tipuri de algoritmi de stimulare și caracteristicile acestora?

Diferitele tipuri sunt amplificarea adaptivă, creșterea gradientului și XGBoost. Boostingul are caracteristici cum ar fi selectarea implicită a caracteristicilor. Arborele de decizie sunt mai puțin fiabili decât puterile de predicție. De asemenea, scalarea este mai dură, deoarece estimatorii se bazează pe cei precedenti. Și interpretarea predicțiilor de boost este naturală, deoarece este un model de ansamblu.