woensdag 18 maart 2020

Leren met letters 04 (79%) - Tests dropout/double layers/normalisaties

Oke, na het succes van de chars2vec conversie nu eens kijken of we de resultaten nog verder kunnen verbeteren. Huidige score is een test accuracy van bijna 80%. Met een F1 van ook bijna 80: (0.7999). 

De accuracy loopt nog omhoog na 60 epochs maar de test acc lijkt wat af te vlakken. Doortrainen heeft dus vermoedelijk maar beperkt zin. 

Ik test wat zaken achter elkaar:

  • dropout layers om overfitting te voorkomen. Eerst maar eens 20% bij elke layer.
  • dropout 50%
  • dropout 10%
  • dubbele layerset. Ik zie echter te laat dat ik ook de normalisatie layer actief heb gemaakt en de 'input layer' heb gekopieerd.
  • dubbele layerset met correcties (normalisatie + inputlayer weg)
  • verschillende locaties van de normalisatie layer. (na dense, na conv)
  • normalisatie tussen conv en aparte activation layer
Geen enkele aanpassing leidt tot een verbetering tot nu toe. Met name de normalisatie layer geeft (weer) instabiliteit en zorgt ervoor dat de 'early stopping' van 5 pogingen om de 'validation loss' te verminderen, de zaak af laat breken.

Mislukken, zoveel leuker dan nooit proberen :-)


Dit is een voorbeeld van het 'dropout 10%' resultaat:

Door de early stopping op '10' te zetten kan ik een dropout van 30% doortrainen naar 60 epochs met dit resultaat:

Het aardige is dat, hoewel de accuracy minder hard klimt dan oorsponkelijk, de validation accuracy nu 'meegroeid'. Tussen de 40 en 60 komt er ongeveer 3% bij. Dat zou kunnen betekenen dat we met 100 epochs in de buurt van de gezochte 85% validation accuracy kunnen komen. (2x3% minus de afvlakking). Proberen maar!

Ondertussen eens kijken of ik een keras layer van de words2vec zou kunnen maken zodat ik de data niet in zijn geheel van tevoren hoef te converteren en dus ook mogelijk de '300 feature-variant' in mijn computers geheugen past.


      

Geen opmerkingen:

Een reactie posten