dinsdag 13 december 2016

02 Fish - Bouwen op bestaande NN's kennis

Bij het vorige algoritme, waar ik voor het eerst met Keras ImageDataGenerator heb gewerkt op basis van deze blog, staat ook een mooi voorbeeld van he gebruik van een al eerder getraind NN.  In dit geval een 'VGG16 architecture, pre-trained on the ImageNet dataset'.  ImageNet bestaat uit een geclassificeerde dataset van miljoenen afbeeldingen. Daardoor heeft het model al de features in zich van foto's van allerlei dieren en objecten. Daar bovenop is dan alleen nog maar een relatief eenvoudig model nodig om de vissoorten te herkennen uit al die features.


Voorbeelden uit ImagNet
 Het lukt al vrij snel om het voorbeeld model om te bouwen voor de visjes. Hier zijn de resultaten:


Op zich ziet het er netjes uit behalve dat de test data erg 'springerig' is. Ik weet niet zeker wat de oorzaak zou kunnen zijn. De testset is in principe een random subset van het totaal. In deze competitie speelt wel het probleem dat er dus veel vergelijkbare afbeeldingen kunnen zijn en dat een deel van de 'kennis' wellicht afgeleid wordt van de boot informatie ipv de werkelijke vis. Daarnaast bevatten sommige afbeeldingen meerdere vissen.    

In deze 'oplossing' is nog niet gebruik gemaakt van 'data augmentation' (draaien / flippen / schuiven / zoomen) zoals in het vorige blogbericht. Dit zou zijn omdat de VGG16 anders veel te veel processingtijd zou nemen. 
Ik ga eens proberen of we dat met Keras 'trainable=False' parameter kunnen ondervangen.  








Geen opmerkingen:

Een reactie posten