stub Vad är Overfitting? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är Overfitting?

mm
Uppdaterad on

Vad är Overfitting?

När du tränar ett neuralt nätverk måste du undvika överanpassning. Överanpassning är ett problem inom maskininlärning och statistik där en modell lär sig mönstren för en träningsdatauppsättning för väl, perfekt förklarar träningsdatauppsättningen men misslyckas med att generalisera dess prediktiva kraft till andra uppsättningar data.

För att uttrycka det på ett annat sätt, i fallet med en överanpassad modell kommer den ofta att visa extremt hög noggrannhet på träningsdatauppsättningen men låg noggrannhet på data som samlas in och körs igenom modellen i framtiden. Det är en snabb definition av överanpassning, men låt oss gå igenom begreppet överanpassning mer i detalj. Låt oss ta en titt på hur överanpassning uppstår och hur det kan undvikas.

Förstå "Fit" och Underfitting

Det är bra att ta en titt på begreppet underfitting och "passa” i allmänhet när man diskuterar överanpassning. När vi tränar en modell försöker vi utveckla ett ramverk som kan förutsäga arten, eller klassen, av objekt inom en datauppsättning, baserat på funktionerna som beskriver dessa objekt. En modell bör kunna förklara ett mönster i en datauppsättning och förutsäga klasserna av framtida datapunkter baserat på detta mönster. Ju bättre modellen förklarar förhållandet mellan funktionerna i träningssetet, desto mer "passad" är vår modell.

Blå linje representerar förutsägelser av en modell som inte passar, medan den gröna linjen representerar en modell som passar bättre. Foto: Pep Roca via Wikimedia Commons, CC BY SA 3.0, (https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)

En modell som dåligt förklarar sambandet mellan funktionerna i träningsdatan och därmed misslyckas med att korrekt klassificera framtida dataexempel är undermontering träningsdata. Om du skulle rita det förutsagda förhållandet för en underpassande modell mot den faktiska skärningspunkten mellan funktionerna och etiketterna, skulle förutsägelserna avvika från målet. Om vi ​​hade en graf med de faktiska värdena för en träningsuppsättning märkta, skulle en kraftigt underanpassad modell drastiskt missa de flesta datapunkterna. En modell med bättre passform kan skära en bana genom mitten av datapunkterna, med individuella datapunkter som bara ligger lite utanför de förutsagda värdena.

Underpassning kan ofta uppstå när det inte finns tillräckligt med data för att skapa en korrekt modell, eller när man försöker designa en linjär modell med icke-linjär data. Mer träningsdata eller fler funktioner hjälper ofta till att minska underfitting.

Så varför skulle vi inte bara skapa en modell som förklarar varje punkt i träningsdatan perfekt? Visst är perfekt noggrannhet önskvärd? Att skapa en modell som har lärt sig mönstren för träningsdata för väl är det som orsakar överanpassning. Träningsdatauppsättningen och andra framtida datamängder du kör genom modellen kommer inte att vara exakt desamma. De kommer sannolikt att vara väldigt lika i många avseenden, men de kommer också att skilja sig åt på viktiga sätt. Att utforma en modell som förklarar träningsdatauppsättningen perfekt innebär därför att du slutar med en teori om förhållandet mellan funktioner som inte generaliserar bra till andra datauppsättningar.

Förstå Overfitting

Överanpassning uppstår när en modell lär sig detaljerna i träningsdatauppsättningen för väl, vilket gör att modellen lider när förutsägelser görs på externa data. Detta kan inträffa när modellen inte bara lär sig funktionerna i datamängden, den lär sig också slumpmässiga fluktuationer eller brus inom datamängden och lägger vikt vid dessa slumpmässiga/oviktiga händelser.

Överanpassning är mer sannolikt att inträffa när icke-linjära modeller används, eftersom de är mer flexibla när man lär sig datafunktioner. Icke-parametriska maskininlärningsalgoritmer har ofta olika parametrar och tekniker som kan tillämpas för att begränsa modellens känslighet för data och därigenom minska överanpassning. Som ett exempel, beslutsträdsmodeller är mycket känsliga för övermontering, men en teknik som kallas beskärning kan användas för att slumpmässigt ta bort en del av de detaljer som modellen har lärt sig.

Om du skulle rita ut modellens förutsägelser på X- och Y-axlarna, skulle du ha en förutsägelselinje som sicksackar fram och tillbaka, vilket återspeglar det faktum att modellen har försökt för mycket att passa in alla punkter i datamängden dess förklaring.

Kontroll av övermontering

När vi tränar en modell vill vi helst att modellen inte gör några fel. När modellens prestanda konvergerar mot att göra korrekta förutsägelser på alla datapunkter i träningsdatauppsättningen blir passformen bättre. En modell med bra passform kan förklara nästan hela träningsdataset utan att överanpassas.

När en modell tränar förbättras dess prestanda med tiden. Modellens felfrekvens kommer att minska när träningstiden går, men den minskar bara till en viss punkt. Den punkt där modellens prestanda på testsetet börjar stiga igen är vanligtvis den punkt där överanpassning sker. För att få den bästa passformen för en modell vill vi sluta träna modellen vid punkten med lägsta förlust på träningssetet, innan felet börjar öka igen. Den optimala stopppunkten kan fastställas genom att grafera modellens prestanda under träningstiden och avbryta träningen när förlusten är som lägst. En risk med denna metod för att kontrollera för överanpassning är dock att specificering av endpoint för träningen baserat på testprestanda innebär att testdatan blir något inkluderad i träningsproceduren, och den förlorar sin status som rent ”orörd” data.

Det finns ett par olika sätt att bekämpa överfitting. En metod för att minska överanpassning är att använda en omsamplingstaktik, som fungerar genom att uppskatta modellens noggrannhet. Du kan också använda en godkännande datauppsättning utöver testuppsättningen och plotta träningsnoggrannheten mot valideringsuppsättningen istället för testdatauppsättningen. Detta håller din testdatauppsättning osynlig. En populär omsamplingsmetod är K-veck-korsvalidering. Den här tekniken gör att du kan dela upp dina data i delmängder som modellen tränas på, och sedan analyseras modellens prestanda på delmängderna för att uppskatta hur modellen kommer att prestera på extern data.

Att använda sig av korsvalidering är ett av de bästa sätten att uppskatta en modells noggrannhet på osynliga data, och i kombination med en valideringsdatauppsättning kan överanpassning ofta hållas till ett minimum.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.