Na op Coursera de beroemde (in deeplearning kringen dan toch) cursus van Andrew Ng gevolgd te hebben (met certificaat !!!!) nu weer eens even lekker zelf experimenteren.
'Eenvoudig' weer beginnen met een klein convolutional netwerk op de MNIST getallen dataset. Zo'n 60K aan geclassificeerde, handgeschreven getallen. Mijn eerste doel is om beter de resultaten van een DL experiment te kunnen beoordelen. Ik neem daarom een Keras voorbeeld en draai de volgende grafieken (ik heb voor het gemak ook maar de maximale gevonden waardes erbij gezet). Het lijkt vreemd dat de test set hoger uitkomt dan de train set. Op de Keras site lees ik al snel waarom. Bij de de test set worden de 'Dropout layers', die dienen om overfitting tegen te gaan en dus meer generalisatie op moeten leveren, uitgezet. Leuk om dat eens te testen. Tevens kijk ik wel effect een kleinere trainset met zich meebrengt (10.000 ipv 60.000):
Conclusie is idd dat als de dropout layers eruit worden gehaald de accuracy van de test set idd lager is. Tevens is er een veel grilliger verloop, vermoedelijk door overfitting. De verkleining van de trainset geeft een versnelling van 11 naar 2 seconden per Epoch en toch een behoorlijk verklarend resultaat. D.w.z. dat het erop lijkt dat er eerst met een kleinere set getest kan worden om de modellen en parameters optimaal te krijgen en vervolgens de uitgebreidere training gedaan kan worden.
Ik meende dat sigmoid ook gebruikt kon worden als activatie in plaats van relu maar niet dus:
Geen opmerkingen:
Een reactie posten