Vad är ”Overfitting” och ”Underfitting” inom maskininlärning?

– S1E14

Din huvuduppgift är att välja en inlärningsalgoritm och träna den på vissa data, är de två saker som kan gå fel ”dålig algoritm” och ”dåliga data”

Detta är exempel på en dålig algoritm-

Overfitting-

Overfitting är ett modelleringsfel som inträffar när en funktion passar för väl in i en begränsad uppsättning av datapunkter. Det innebär att modellen fungerar bra på träningsdata, men att den inte generaliseras väl.

Ex- Säg att du besöker ett främmande land och att taxichauffören lurar dig. Du kan frestas att säga att alla taxichaufförer i det landet är tjuvar

Overfittning av träningsdata

Komplexa modeller, till exempel djupa neurala nätverk, kan upptäcka subtila mönster i data, Men om träningsuppsättningen är bullrig, eller om den är för liten (vilket ger provtagningsbrus), är det troligt att modellen upptäcker mönster i själva bruset.

Till exempel – säg att du lägger till attributet landsnamn till din modell för livstillfredsställelse-

I det fallet kan en komplex modell upptäcka mönster som det faktum att alla länder i träningsdatan som har ett ”w” i sitt namn har en livstillfredsställelse som är större än 7: Nya Zeeland (7.3), Norge (7,4), Sverige (7,2) och Schweiz (7,5).

Men denna regel om w-tillfredsställelse generaliseras inte till Rwanda, Zimbabwe osv.

Oppenbarligen uppstod detta mönster i träningsdata av en ren slump, men modellen har inget sätt att avgöra om ett mönster är äkta eller om det helt enkelt är resultatet av brus i data.

Overfitting sker när modellen är för komplex i förhållande till mängden och bruset i träningsdata.

Här är de möjliga lösningarna:

  • Förenkla modellen genom att välja en modell med färre parametrar (t.ex, en linjär modell i stället för en polynommodell med hög grad av polynom),
  • genom att minska antalet attribut i träningsdata eller genom att begränsa* modellen.
  • Samla in fler träningsdata.
  • Reducera bruset i träningsdata (t.ex, åtgärda datafel och ta bort outliers).

Att begränsa en modell för att göra den enklare och minska risken för överanpassning kallas reglering.

Den linjära modellen som vi definierade tidigare har till exempel två parametrar, θ0 och θ1 .

Detta ger inlärningsalgoritmen två frihetsgrader för att anpassa modellen till träningsdata: den kan justera både linjens höjd (θ0 ) och lutning (θ1 ).

Om vi tvingade θ1 = 0 skulle algoritmen bara ha en frihetsgrad och skulle ha mycket svårare att anpassa data korrekt: allt den kan göra är att flytta linjen uppåt eller nedåt för att komma så nära träningsinstanserna som möjligt, så att den skulle hamna runt medelvärdet.

Om vi tillåter algoritmen att ändra θ1, men tvingar den att hålla den liten, kommer inlärningsalgoritmen i praktiken att ha någonstans mellan en och två frihetsgrader.

Du vill hitta den rätta balansen mellan att passa träningsdata perfekt och att hålla modellen tillräckligt enkel för att säkerställa att den generaliseras väl.

Regularisering minskar risken för överanpassning
  • Punkterad linje- tränas endast på cirklar,
  • Das är en modell som tränats på både cirklar och fyrkanter
  • Solid linje- är en modell som tränats på enbart cirklar

Du kan se att regulariseringen tvingade modellen att ha en mindre lutning: Denna modell passar inte lika bra till träningsdata (cirklar) som den första modellen, men den generaliserar faktiskt bättre till nya exempel som den inte såg under träningen (fyrkanter).

Mängden reglering som ska tillämpas under inlärningen kan styras av en hyperparameter.

En hyperparameter är en parameter för en inlärningsalgoritm (inte för modellen). Den måste ställas in före träningen och förblir konstant under träningen.

Om du ställer in hyperparametern för regularisering till-

  • ett mycket stort värde- kommer du att få en nästan platt modell (en lutning nära noll), inlärningsalgoritmen kommer med största sannolikhet inte att överanpassa träningsdatan, men det kommer att vara mindre sannolikt att den hittar en bra lösning.

Avstämning av hyperparametrar är en viktig del av uppbyggnaden av ett system för maskininlärning (du kommer att se ett detaljerat exempel i ytterligare avsnitt).

Underanpassning uppstår när din modell är för enkel för att lära sig den underliggande strukturen i data.

En linjär modell av livstillfredsställelse är benägen att underanpassas, verkligheten är helt enkelt mer komplex än modellen, så dess förutsägelser kommer garanterat att bli felaktiga.

Här är de viktigaste alternativen för att åtgärda detta problem-

  • Välj en kraftfullare modell, med fler parametrar.
  • Förse inlärningsalgoritmen med bättre egenskaper (feature engineering).
  • Reducera begränsningarna på modellen (t.ex, minska hyperparametern för reglering).

Läs nästa – Testning och validering av en tränad modell

Lämna ett svar

Din e-postadress kommer inte publiceras.