Ce este suprasolicitarea în învățarea automată și cum să o evităm?



Acest articol acoperă supradaptarea în învățarea automată cu exemple și câteva tehnici de evitat, detectează supradaptarea într-un model de învățare automată.

Construirea unui model de învățare automată nu înseamnă doar alimentarea datelor, există o mulțime de deficiențe care afectează precizia oricărui model. Suprapunere în este o astfel de deficiență în învățarea automată care împiedică precizia, precum și performanța modelului. Următoarele subiecte sunt tratate în acest articol:

Ce este suprasolicitarea în învățarea automată?

Se spune că un model statistic este supra-echipat atunci când îl hrănim cu mult mai multe date decât este necesar. Pentru a-l face relatabil, imaginați-vă încercând să vă încadrați în îmbrăcăminte supradimensionată.





Când un model se potrivește cu mai multe date decât are nevoie, începe să prindă date zgomotoase și valori inexacte în date. Ca urmare, eficiența și precizia modelului scad. Să aruncăm o privire la câteva exemple de suprasolicitare pentru a înțelege cum se întâmplă de fapt.



Exemple de overfitting

Exemplul 1

Dacă luăm un exemplu de simplu regresie liniara , instruirea datelor se referă la aflarea costului minim dintre cea mai bună linie de potrivire și punctele de date. Trece printr-o serie de iterații pentru a afla cea mai bună potrivire optimă, minimizând costul. Aici intră în imagine supradezionarea.



Linia văzută în imaginea de mai sus poate da un rezultat foarte eficient pentru un nou punct de date. În cazul suprasolicitării, atunci când rulăm algoritmul de antrenament pe setul de date, permitem reducerea costurilor cu fiecare număr de iterații.

Rularea asta pentru prea mult timp va însemna un cost redus, dar se va potrivi și cu datele zgomotoase din setul de date. Rezultatul ar arăta ca în graficul de mai jos.

S-ar putea să pară eficient, dar nu este cu adevărat. Scopul principal al unui algoritm precum regresie liniara este de a găsi o tendință dominantă și de a se potrivi punctelor de date în consecință. Dar, în acest caz, linia se potrivește tuturor punctelor de date, ceea ce este irelevant pentru eficiența modelului în prezicerea rezultatelor optime pentru noile puncte de date de intrare.

Acum, să luăm în considerare un exemplu mai descriptiv cu ajutorul unei afirmații problemă.

Exemplul 2

Declarație problemă: Să considerăm că vrem să prezicem dacă un jucător de fotbal va ateriza un slot într-un club de fotbal de nivelul 1 pe baza performanței sale actuale în liga de nivel 2.

Acum imaginați-vă, antrenăm și potrivim modelul cu 10.000 de astfel de jucători cu rezultate. Când încercăm să prezicem rezultatul pe setul de date original, să spunem că avem o precizie de 99%. Dar precizia unui alt set de date este de aproximativ 50%. Aceasta înseamnă că modelul nu se generalizează bine din datele noastre de instruire și din datele nevăzute.

Așa arată suprasolicitarea. Este o problemă foarte frecventă în învățarea automată și chiar în știința datelor. Acum, să înțelegem semnalul și zgomotul.

Semnal vs Zgomot

În modelarea predictivă, semnalul se referă la adevăratul model de bază care îl ajută pe model să învețe datele. Pe de altă parte, zgomotul este irelevant și datele aleatorii din setul de date. Pentru a înțelege conceptul de zgomot și semnal, să luăm un exemplu real.

Să presupunem că vrem să modelăm vârsta vs alfabetizarea în rândul adulților. Dacă eșantionăm o parte foarte mare a populației, vom găsi o relație clară. Acesta este semnalul, în timp ce zgomotul interferează cu semnalul. Dacă facem același lucru cu o populație locală, relația va deveni noroioasă. Ar fi afectat de valori aberante și aleatorii, de exemplu, un adult mergea la școală devreme sau un adult nu își putea permite educația etc.

Vorbind despre zgomot și semnal în ceea ce privește învățarea automată, un algoritm bun de învățare automată va separa automat semnalele de zgomot. Dacă algoritmul este prea complex sau ineficient, poate învăța și zgomotul. Prin urmare, supraetajarea modelului. Să înțelegem, de asemenea, insuficiența în învățarea automată.

Ce este Underfitting?

Pentru a evita suprasolicitarea, am putea opri antrenamentul într-o etapă anterioară. Dar s-ar putea duce, de asemenea, la faptul că modelul nu poate învăța suficient din datele de instruire, încât ar putea fi dificil să surprindă tendința dominantă. Acest lucru este cunoscut sub numele de underfitting. Rezultatul este același cu suprasolicitarea, ineficiența în prezicerea rezultatelor.

cum se inversează un număr în java

Acum, că am înțeles ce este cu adevărat sub-dotarea și supra-dotarea în Machine Learning, să încercăm să înțelegem cum putem detecta supra-dotarea în Machine Learning.

Cum să detectezi supraadaptarea?

Principala provocare cu suprasolicitarea este de a estima acuratețea performanței modelului nostru cu date noi. Nu vom putea estima acuratețea până nu o vom testa efectiv.

Pentru a rezolva această problemă, putem împărți setul de date inițiale în seturi de date de antrenament și teste separate. Cu această tehnică, putem aproxima de fapt cât de bine va funcționa modelul nostru cu noile date.

Să înțelegem acest lucru cu un exemplu, imaginați-vă că obținem o precizie de peste 90% la setul de antrenament și o precizie de 50% la setul de testare. Apoi, automat ar fi un steag roșu pentru model.

O altă modalitate de a detecta suprasolicitarea este de a începe cu un model simplist care va servi drept reper.

Cu această abordare, dacă încercați algoritmi mai complexi, veți putea înțelege dacă complexitatea suplimentară merită sau nu modelul. Este, de asemenea, cunoscut sub numele de Testul aparatului de ras al lui Occam , alege practic modelul simplist în cazul performanței comparabile în cazul a două modele. Deși detectarea supra-dotării este o bună practică,dar există mai multe tehnici pentru a preveni și supraadaptarea. Să aruncăm o privire asupra modului în care putem preveni supraîncadrarea în învățarea automată.

Cum să evitați supraîncadrarea în învățarea automată?

Există mai multe tehnici pentru a evita supradaptarea în învățarea automată, complet enumerate mai jos.

  1. Validare încrucișată

  2. Instruire cu mai multe date

  3. Eliminarea caracteristicilor

  4. Oprire timpurie

  5. Regularizare

  6. Ansamblu

1. Validare încrucișată

Una dintre cele mai puternice caracteristici pentru a evita / preveni supraadaptarea este validarea încrucișată. Ideea din spatele acestui lucru este de a utiliza datele inițiale de antrenament pentru a genera mini-tren-test-split-uri, și apoi utilizați aceste split-uri pentru a vă regla modelul.

Într-o validare standard k-fold, datele sunt partiționate în k-subseturi cunoscute și sub numele de folds. După aceasta, algoritmul este instruit iterativ pe pliurile k-1 în timp ce folosește pliurile rămase ca set de testare, cunoscut și sub denumirea de pliuri de rezistență.

Validarea încrucișată ne ajută să reglăm hiperparametrele doar cu setul de antrenament original. Practic păstrează setul de test separat ca un set de date nevăzut adevărat pentru selectarea modelului final. Prin urmare, evitarea completă a dotării excesive.

2. Instruire cu mai multe date

Este posibil ca această tehnică să nu funcționeze de fiecare dată, așa cum am discutat și în exemplul de mai sus, unde instruirea cu o cantitate semnificativă de populație ajută modelul. Practic, ajută modelul să identifice mai bine semnalul.

Dar, în unele cazuri, creșterea datelor poate însemna, de asemenea, alimentarea cu mai mult zgomot a modelului. Când pregătim modelul cu mai multe date, trebuie să ne asigurăm că datele sunt curate și lipsite de aleatoriu și inconsecvențe.

3. Eliminarea caracteristicilor

Deși unii algoritmi au o selecție automată de caracteristici. Pentru un număr semnificativ dintre cei care nu au o selecție de caracteristici încorporată, putem elimina manual câteva caracteristici irelevante din caracteristicile de intrare pentru a îmbunătăți generalizarea.

O modalitate de a face acest lucru este obținerea unei concluzii cu privire la modul în care o caracteristică se potrivește în model. Este destul de similar cu depanarea codului linie cu linie.

În cazul în care o caracteristică nu este în măsură să explice relevanța în model, putem identifica aceste caracteristici. Putem folosi chiar și câteva euristici de selecție a caracteristicilor pentru un bun punct de plecare.

4. Oprirea timpurie

Când modelul se antrenează, puteți măsura efectiv performanța modelului pe baza fiecărei iterații. Putem face acest lucru până la un moment în care iterațiile îmbunătățesc performanțele modelului. După aceasta, modelul se potrivește cu datele de antrenament, deoarece generalizarea slăbește după fiecare iterație.

Deci, practic, oprirea timpurie înseamnă oprirea procesului de antrenament înainte ca modelul să treacă de punctul în care modelul începe să se potrivească cu datele de antrenament. Această tehnică este folosită mai ales în invatare profunda .

5. Regularizare

Practic înseamnă, forțând artificial modelul să fie mai simplu, utilizând o gamă mai largă de tehnici. Depinde în totalitate de tipul de cursant pe care îl folosim. De exemplu, putem tăia o , utilizați o abandonare pe un Retea neurala sau adăugați un parametru de penalizare la funcția de cost în regresie.

Destul de des, regularizarea este și un hiperparametru. Înseamnă că poate fi reglat și prin validare încrucișată.

obțineți data din șir java

6. Ansamblu

Această tehnică combină practic predicțiile din diferite modele de învățare automată. Două dintre cele mai comune metode de asamblare sunt enumerate mai jos:

  • Sacurile încearcă să reducă șansa de a se potrivi prea mult modelelor

  • Stimularea încercărilor de a îmbunătăți flexibilitatea predictivă a modelelor mai simple

Chiar dacă ambele sunt metode de ansamblu, abordarea începe total din direcții opuse. Împachetarea folosește modele de bază complexe și încearcă să le netezească predicțiile, în timp ce amplificarea folosește modele de bază simple și încearcă să-i sporească complexitatea agregată.

Ce este Goodness Of Fit?

În modelarea statistică, bunătatea potrivirii se referă la cât de mult se potrivesc rezultatele sau valorile prezise cu valorile observate sau adevărate.Un model care a învățat zgomot în loc de semnal este supradaptat, deoarece se va potrivi setului de date de antrenament, dar va avea o eficiență mai slabă cu noul set de date.

Compensarea dintre părtinire și variație

Atât varianța, cât și părtinirea sunt forme de eroare de predicție în . Compensarea dintre varianță ridicată și prejudecată ridicată este un concept foarte important în statistici și învățare automată. Acesta este un concept care afectează toți algoritmii de învățare automată supravegheați.

Compensarea diferenței de părtinire are un impact foarte semnificativ asupra determinării complexității, subfitting și overfitting pentru orice model de învățare automată.

Părtinire

Nu este altceva decât diferența dintre valorile prezise și valorile reale sau reale din model. Nu este întotdeauna ușor pentru model să învețe din semnale destul de complexe.

Să ne imaginăm potrivirea unui regresie liniara la un model cu date neliniare. Oricât de eficient ar învăța modelul observațiile, acesta nu va modela curbele în mod eficient. Este cunoscut sub denumirea de sub-amenajare.

Varianța

Se referă la sensibilitatea modelului la seturi specifice din datele de instruire. Un algoritm de varianță ridicată va produce un model bizar care este drastic diferit de setul de antrenament.

Imaginați-vă un algoritm care se potrivește modelului necontrolat și super-flexibil, va învăța, de asemenea, din zgomotul din setul de antrenament cauzând supra-montare.

Compensarea diferenței de prejudecată

Un algoritm de învățare automată nu poate fi perceput ca o metodă unică de instruire a modelului, în schimb, este un proces repetitiv.

Algoritmii de varianță scăzută-polarizare ridicată sunt mai puțin complexi, cu o structură simplă și rigidă.

  • Vor instrui modelele care sunt consistente, dar inexacte în medie.

  • Acestea includ algoritmi liniari sau parametrici, cum ar fi regresia, , etc.

Algoritmii de varianță ridicată-polarizare scăzută tind să fie mai complexi, cu o structură flexibilă.

  • Vor instrui modelele care sunt inconsistente, dar precise în medie.

  • Acestea includ algoritmi neliniari sau non-parametrici, cum ar fi , , etc.

Acest lucru ne duce la sfârșitul acestui articol, unde am învățat suprasolicitarea în învățarea automată și despre diverse tehnici pentru a o evita. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Suprapunerea în învățarea automată”, consultați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un . Cursul este conceput pentru a vă oferi un început avansat în programarea Python și vă va instrui atât pentru conceptele Python de bază, cât și pentru cele avansate, împreună cu diverse ca , , etc.

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Suprapunerea în învățarea automată” și echipa noastră va fi bucuroasă să vă răspundă.