Beste antwoord
Trainingsfout is de fout die je krijgt als je het getrainde model terugdraait op de trainingsgegevens. Onthoud dat deze gegevens al zijn gebruikt om het model te trainen en dit betekent niet noodzakelijkerwijs dat het eenmaal getrainde model nauwkeurig zal presteren wanneer het weer wordt toegepast op de trainingsgegevens zelf.
Testfout is de fout wanneer u get wanneer u het getrainde model uitvoert op een set gegevens waaraan het nog nooit is blootgesteld. Deze gegevens worden vaak gebruikt om de nauwkeurigheid van het model te meten voordat het naar de productie wordt verzonden.
Antwoord
Het idee is om opzettelijk overfitting te induceren in een neuraal netwerkmodel (NN), we kunnen dat doen door:
- Grote modellen te gebruiken met een zeer groot aantal parameters. Een voldoende groot NN moet voldoende vrijheidsgraden hebben om in de hele ImageNet-dataset te passen.
- We kunnen regularisatie zoals uitval, L\_1, L\_2 of batch-normalisatie voorkomen. Regularisatie kan de trainingsfout iets vergroten, waardoor de kans op nul trainingsfouten groter wordt we moeten elke vorm van regularisatie vermijden, hoewel zelfs een goed geregulariseerd model nul t kan hebben regenfout.
- Gebruik kleine leerpercentages omdat grote leerpercentages in feite kleine regularisatie-eigenschappen hebben. Voor hoge leersnelheden kunnen de modelparameters niet precies in een lokaal minimum worden geregeld, omdat parameterupdates rond en rond het lokale minimum springen. Dat rond en rond springen kan voorkomen dat het model de trainingsset onthoudt, dus door gebruik te maken van kleine leertempo, kan het model zich wat nauwkeuriger vestigen in een lokaal minimum, waardoor de kans groter wordt dat het model de trainingsdataset onthoudt.
- Voorkom vroegtijdig stoppen door het model door een zeer groot aantal trainingsperioden te laten lopen. Vroegtijdig stoppen heeft ook enig regularisatie-effect dat het onthouden van de grote trainingsset zou kunnen verhinderen.
- Train het model met verschillende willekeurige begingewichten, aangezien de begingewichten sterk het lokale minimum bepalen waarin de parameters zich zullen vestigen. Sommige lokale minima maken mogelijk geen nul-trainingsfout voor de hele ImageNet-dataset, dus moeten we opzettelijk zoeken naar zulke lokale minima waar de trainingsfout nul is.
Op sommige relatief eenvoudige datasets zoals MNIST sommige modellen zijn in staat om een trainingsnauwkeurigheid van 100\% te behalen en tegelijkertijd een redelijk goede testnauwkeurigheid van 99\% + te behalen. In dergelijke gevallen toont het aan dat een model zonder trainingsfout “geen overfitting” impliceert.
Maar als je geen trainingsfout krijgt op een zeer grote gecompliceerde dataset zoals ImageNet, kan dit een sterke aanwijzing zijn dat je model te veel past.
Andere modellen kunnen eenvoudig worden gebouwd met een capaciteit die groot genoeg is om de hele ImageNet-gegevensset te onthouden. Zoals het algoritme k naaste buur (kNN) met k = 1 en het zal gemakkelijk een trainingsfout nul hebben. Bij machine learning (ML) het proces van het onthouden van een trainingsset wordt lazy learning genoemd en het is eigenlijk belangrijk in sommige gevallen wanneer er niet veel variatie is tussen training en testgegevenspunten.
In feite werkt kNN heel goed voor zeer kleine patches . Bij patches met een grotere resolutie lijdt kNN echter aan de vloek van dimensionaliteit, omdat kNN geen relevante kenmerken leert, waardoor irrelevante kenmerken de gelijkenismaatstaf kunnen verstoren. de vloek van dimensionaliteit heeft zelfs geen effect op het kNN-algoritme, aangezien we technisch gezien alleen de trainingsdataset aan zichzelf afstemmen.
Hoewel een dergelijk model waarschijnlijk minder goed zal presteren op de testset. Als er een enorme kloof tussen trainingsnauwkeurigheid en testnauwkeurigheid, het model zou de trainingsgegevens overtreffen.
Ik hoop dat dit helpt.