Ik heb een programmaatje gemaakt dat automatisch de getallen in een model omzet naar opeenvolgende variabelen maar daar maak ik nu nog even geen gebruik van. Dus een model maar handmatig aangepast.
Er zitten nu 3 conv layers in en 3 maxpooling layers alvorens naar een dense model over te stappen voor de laatste selectie.
De aanpassingen lopen redelijk voorspoedig maar ik loop al snel tegen een 'ongeldig model fout' aan. Hier loopt het programma op stuk. Het probleem is dat er nul of negatieve waarden in de netwerk grootte gaan voorkomen. Het verraste mij al dat ik nog niet dergelijke fouten in de vorige simulatie was tegen gekomen.
Ik pas het model aan zodat deze foutsituaties worden afgevangen. Het programma gaat dan terug naar de laatste 'beste oplossing' en probeert een nieuwe situatie uit. Dat lijkt aardig te werken.
conv1 . maxp1 conv2 . maxp2 . conv3 . maxp3 . drop1 dense drop2
32.0 3.0 3.0 2.0 2.0 32.0 3.0 3.0 2.0 2.0 64.0 3.0 3.0 2.0 2.0 0.25 128.0 0.5
39.0 4.0 4.0 2.0 2.0 22.0 3.0 4.0 2.0 2.0 271.0 2.0 3.0 2.0 2.0 0.16 153.0 0.81
Score p [0.04993261852805372, 0.9871]
Score pn [0.036428343426994615, 0.9918]
De score is nog niet zo hoog als bij het vorige model
Met een 2e ronde gaat het al veel beter. Ik heb het aantal 1e rondes naar 50 gebracht en de 2e naar 30.
conv1 . maxp1 conv2 . maxp2 conv3 . maxp3 drop1 dense drop2
32.0 3.0 3.0 2.0 2.0 32.0 3.0 3.0 2.0 2.0 64.0 3.0 3.0 2.0 2.0 0.25 128.0 0.5
17.0 3.0 3.0 2.0 2.0 73.0 2.0 2.0 2.0 2.0 60.0 3.0 3.0 2.0 3.0 0.12 139.0 0.28
Score p [0.04696602795526269, 0.9888]
Score pn [0.02224611087347148, 0.9937]
We scoren nu vergelijkbaar met het 1e, kleinere model. Opvallend weer een terugvoer van de conv1 laag terwijl ook de conv3 laag iets is teruggebracht van 153 naar 139. Ook de dropouts zijn omlaag gegaan. Zou het nog beter kunnen?
Vandaag nog een foutje gecorrigeerd in het model. Hij maakte gebruik niet gebruik van de variabele kansen per ronde maar van de default waardes. Nog maar een keer laten draaien.
conv1 . maxp1 conv2 . maxp2 conv3 . maxp3 drop1 dense drop2
32.0 3.0 3.0 2.0 2.0 32.0 3.0 3.0 2.0 2.0 64.0 3.0 3.0 2.0 2.0 0.25 128.0 0.5
34.0 1.0 1.0 2.0 1.0 35.0 4.0 4.0 1.0 1.0 124.0 3.0 3.0 1.0 4.0 0.03 345.0 0.5
Score p [0.04698124591551023, 0.9882]
Score pn [0.03509929760087957, 0.9912]
De score is niet echt beter maar er is wel een andere strategie. Alleen de con3 layer is flink groter en de dense layer. Hij heeft ook de eerste conv layer naar 1x1 gebracht. (Ik had voorheen een beperking op minimaal 2x2). De vraag is nu wel of het algoritme een goede kans heeft om de optimale configuratie te vinden of zou die teveel in toevallige keuzes blijven hangen?
conv1 . maxp1 conv2 . maxp2 conv3 . maxp3 drop1 dense drop2
32.0 3.0 3.0 2.0 2.0 32.0 3.0 3.0 2.0 2.0 64.0 3.0 3.0 2.0 2.0 0.25 128.0 0.5
3.0 1.0 4.0 1.0 1.0 96.0 4.0 2.0 2.0 2.0 39.0 3.0 3.0 1.0 1.0 0.14 152.0 0.34
Score p [0.057666506900917736, 0.986]
Score pn [0.02552617132146238, 0.9932]