Al heel lan g niets meer met de AI dataset der datasets gedaan: De Mnist geschreven nummerset met afbeeldingen van 0 t/m 9 in een 28x28 formaat.
Zoals deze:
De reden hiervoor is een artikeltje over het leren zoals mensen dat doen op SingularityHub.
Er wordt vaak aangegeven dat de huidige NN's zo ontzettend veel voorbeelden moeten hebben om een beetje kennis op te doen. Dit in schijnbare tegenstelling tot mensen die aantal voorbeelden al genoeg lijken te hebben. Vaak wordt echter denk ik vergeten dat mensen als baby en kind (en volwassene) eerst een heleboel voorbeelden waarnemen voordat ze hiertoe in staat zijn. Dagelijks neemt men elke seconde nieuwe beelden op die als ervaring gebruikt kunnen worden.
Babies beginnen, meen ik met vage, en dus vereenvoudigede, beelden omdat ze simpleweg nog niet de goede lenzen hebben. Maar ze leggen wel al langzamerhand verbanden, Geleidelijk wordt het zicht beter en daarmee de complexiteit van de afbeeldingen groter. Het leek mij wel leuk om dat ook eens met een NN te proberen en welke is dan beter dan mnist!
Eerst draai ik een oud, ongewijzigd model om een 'baseline' te krijgen:
Een test accuracy van 0.9947 %. Aardig om mee te beginnen.![]() |
Blurred (5, 5) |
![]() |
Blurred (7, 7) |
Ik kan mij een beetje voorstellen dat een baby een dergelijk beeld 'van de wereld' zou kunnen hebben.
Ik weet nog niet waar ik tijdens de 'blur-training' de waarde op uit wil laten komen. (Babies zullen ook niet direct weten wat ze met een cijfer 3 aanmoeten ;-) Dus dit lijkt wel even een aardige manier om mee te beginnen.
Oke, niet een verbetering maar ook niet slecht met een testaccuracy van 0.9942. Bij pretraining met dubbel blurring (7,7) gaan we terug naar 0.9930.
Ik probeer eens om zowel een (7,7) als een (5,5) blurring achter elkaar als pretraining uit te voeren. Ik kom dan terug op onze benchmark 0.9947.
Het helpt blijkbaar een beetje om y_train ook te blurren want zonder dat zaken we naar 0.9942.
Bij 'halfsize double blurring' (5,5) en (3,3) ga ik voor het eerst iets (1/100%) omhoog t.o.v. de benchmark: 0.9948
Ik probeer of het toevoegen van wat noise kan helpen. We duiken weer omlaag naar 0.9935
Gezien het 'succes' van de 'halfsize blurring' probeer ik ook eens of ik blurring in meerdere stappen kan laten trainen. [(9,9), (7,7), (5,5), (3,3)] Helaas is dat geen goed idee : 0.9925
Goed, terug naar 'halfsize double blurring' en eens kijken of ik hier iets met de y_train waarden kan doen. Daar veel noise toevoegen is geen goed idee (0.9904)
Dat gaat al veel beter bij een kleine noisefactor van 0.01. Ik ben weer terug bij 0.9948
Misschien is het beter om te starten met waarden rond de 0,5 ipv 0,0? Nee: 0.9939
Zou ik ze gewoon vast naar 0 moeten laten trainen? --> Nee, helaas (0,9944)
Misschien pretrainen met niet geblurde afbeeldingen? (Dat haalt wel mijn feitelijke uitgangspunt met de slecht ziende babies een beetje onderuit) Wow, niet verwacht: 0,9914! Dat is wel heel erg omlaag. Het lijkt erop dat pre-trainen op bovengenoemde manieren nog niet veel oplevert.
😒