Grunderna i AI
Vad är Overfitting?
Vad är Overfitting?
När du tränar ett neuronnätverk måste du undvika överanpassning. Överanpassning är ett problem inom maskinlärning och statistik där en modell lär sig mönstren i en träningsdataset alltför väl, och förklarar träningsdatamängden perfekt, men misslyckas med att generalisera sin prediktiva kraft till andra datamängder.
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äningsdatamängden, men låg noggrannhet på data som samlas in och körs genom modellen i framtiden. Det är en snabb definition av överanpassning, men låt oss gå igenom begreppet överanpassning i mer detalj. Låt oss ta en titt på hur överanpassning uppstår och hur den kan undvikas.
Förstå “Fit” och Underfitting
Det är hjälpsamt att ta en titt på begreppet underfitting och “fit” i allmänhet när vi diskuterar överanpassning. När vi tränar en modell försöker vi utveckla en ram som kan förutsäga naturen eller klassen hos objekt i en datamängd, baserat på de funktioner som beskriver dessa objekt. En modell bör kunna förklara ett mönster i en datamängd och förutsäga klasserna för framtida datapunkter baserat på detta mönster. Ju bättre modellen förklarar sambandet mellan funktionerna i träningsmängden, desto “bättre passar” vår modell.

Blå linjen representerar förutsägelser från en modell som underanpassar, medan den gröna linjen representerar en bättre passande modell. 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äningsdata och därmed misslyckas med att korrekt klassificera framtida dataexempel, underanpassar träningsdata. Om du skulle grafiskt framställa den förutsagda relationen för en underanpassad modell mot de faktiska värdena för träningsdata, skulle förutsägelserna avvika från målet. Om vi hade en graf med de faktiska värdena för en träningsmängd, skulle en kraftigt underanpassad modell missa de flesta datapunkterna. En modell med bättre passning kunde skära genom mitten av datapunkterna, med enskilda datapunkter som bara avviker lite från de förutsagda värdena.
Underanpassning 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 utforma en linjär modell med icke-linjära data. Mer träningsdata eller fler funktioner kan ofta hjälpa till att minska underanpassning.
Varför skulle vi inte skapa en modell som förklarar varje punkt i träningsdatamängden perfekt? Säkert är perfekt noggrannhet önskvärd? Att skapa en modell som har lärt sig mönstren i träningsdatamängden alltför väl, är vad som orsakar överanpassning. Träningsdatamängden och andra, framtida datamängder som du kör genom modellen, kommer inte att vara exakt likadana. De kommer sannolikt att vara mycket lika på många sätt, men de kommer också att skilja sig på viktiga sätt. Därför innebär att utforma en modell som förklarar träningsdatamängden perfekt, att du får en teori om sambandet mellan funktioner som inte generaliserar bra till andra datamängder.
Förstå Överanpassning
Överanpassning uppstår när en modell lär sig detaljerna i träningsdatamängden alltför väl, vilket orsakar att modellen lider när förutsägelser görs på externa data. Detta kan uppstå när modellen inte bara lär sig funktionerna i datamängden, utan också lär sig slumpmässiga fluktuationer eller brus inom datamängden, och ger vikt åt dessa slumpmässiga/oviktiga händelser.
Överanpassning är mer sannolik att uppstå när icke-linjära modeller används, eftersom de är mer flexibla när de lär sig datafunktioner. Icke-parametriska maskinlärningsalgoritmer har ofta olika parametrar och tekniker som kan tillämpas för att begränsa modellens känslighet för data och därmed minska överanpassning. Till exempel är besluts-trädsmodeller mycket känsliga för överanpassning, men en teknik som kallas beskärning kan användas för att slumpmässigt ta bort några av de detaljer som modellen har lärt sig.
Om du skulle grafiskt framställa modellens förutsägelser på X- och Y-axlarna, skulle du ha en förutsägelselinje som zigzagar fram och tillbaka, vilket visar att modellen har försökt för hårt att passa alla punkter i datamängden till sin förklaring.
Kontrollera Överanpassning
När vi tränar en modell vill vi idealiskt att modellen inte ska göra några fel. När modellens prestation konvergerar mot att göra korrekta förutsägelser på alla datapunkter i träningsdatamängden, blir passningen bättre. En modell med bra passning kan förklara nästan hela träningsdatamängden utan att överanpassa.
När en modell tränas förbättras dess prestation över tid. Modellens felrate minskar när tränningstiden passerar, men den minskar bara till en viss punkt. Punkten där modellens prestation på testmängden börjar öka igen är vanligtvis den punkt där överanpassning uppstår. För att få den bästa passningen för en modell vill vi stoppa träningsprocessen vid den punkt där förlusten på träningsmängden är som lägst, innan felet börjar öka igen. Den optimala stopppunkten kan fastställas genom att grafiskt framställa modellens prestation under tränningstiden och stoppa träningsprocessen när förlusten är som lägst. Men en risk med denna metod för att kontrollera överanpassning är att specificera slutpunkten för träningsprocessen baserat på testprestation, vilket innebär att testdatat blir något inkluderat i träningsprocessen och förlorar sin status som “oren” data.
Det finns ett par olika sätt att bekämpa överanpassning. En metod för att minska överanpassning är att använda en omprovningstaktik, som fungerar genom att uppskatta modellens noggrannhet. Du kan också använda en valideringsmängd utöver testmängden och grafiskt framställa träningsnoggrannheten mot valideringsmängden i stället för testdatamängden. Detta håller testdatamängden osedd. En populär omprovningsteknik är K-falds-korsvalidering. Denna teknik möjliggör att dela upp dina data i undermängder som modellen tränas på, och sedan analyseras modellens prestation på undermängderna för att uppskatta hur modellen kommer att prestera på externa data.
Användning av korsvalidering är ett av de bästa sätten att uppskatta en modells noggrannhet på osedd data, och när den kombineras med en valideringsmängd kan överanpassning ofta minskas till ett minimum.












