maskinindlæring bruges i sidste ende til at forudsige resultater givet et sæt funktioner. Derfor ses alt, hvad vi kan gøre for at generalisere ydeevnen for vores model, som en nettogevinst. Dropout er en teknik, der bruges til at forhindre, at en model overmonteres. Dropout fungerer ved tilfældigt at indstille de udgående kanter på skjulte enheder (neuroner, der udgør skjulte lag) til 0 ved hver opdatering af træningsfasen. Hvis du kigger på Keras-dokumentationen for dropout-laget, vil du se et link til et hvidt papir skrevet af Geoffrey Hinton og friends, som går ind i teorien bag dropout.
frafald
der er en vis debat om, hvorvidt frafaldet skal placeres før eller efter aktiveringsfunktionen. Som tommelfingerregel skal du placere frafaldet efter aktiveringsfunktionen for alle andre aktiveringsfunktioner end relu. I forbifarten 0,5 er hver skjult enhed (neuron) indstillet til 0 med en sandsynlighed på 0,5. Med andre ord er der en 50% ændring, at udgangen af en given neuron vil blive tvunget til 0.
igen, da vi forsøger at forudsige klasser, bruger vi kategorisk crossentropi som vores tabsfunktion.
Ved at give valideringsdelingsparameteren, vil modellen adskille en brøkdel af træningsdataene og evaluere tabet og eventuelle modelmålinger på disse data i slutningen af hver epoke. Hvis forudsætningen bag frafald holder, skal vi se en bemærkelsesværdig forskel i valideringsnøjagtigheden sammenlignet med den foregående model. Shuffle-parameteren blander træningsdataene før hver epoke.
som du kan se, er valideringstabet betydeligt lavere end det, der opnås ved hjælp af den almindelige model.
som du kan se, konvergerede modellen meget hurtigere og opnåede en nøjagtighed på tæt på 98% på valideringssættet, mens den tidligere model plateaued omkring den tredje epoke.
nøjagtigheden opnået på testsættet er ikke meget anderledes end den, der opnås fra modellen uden frafald. Dette skyldes sandsynligvis det begrænsede antal prøver.
frafald kan hjælpe en model med at generalisere ved tilfældigt at indstille output for en given neuron til 0. Ved indstilling af output til 0, omkostningsfunktionen bliver mere følsom over for nærliggende neuroner, der ændrer den måde, vægtene opdateres under processen med backpropagation.