Evolving Deep Neural Networks using Genetic Algorithms
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2777843Utgivelsesdato
2020Metadata
Vis full innførselSamlinger
Sammendrag
I denne masteroppgaven har nevroevolusjon blitt brukt for å automatisk utvikle de fleste av hyperparametrene for nevrale nett, som ellers må settes manuelt av bruker. Den foreslåtte metodologien skiller seg fra de fleste tidligere arbeider innenfor nevroevolusjon ved å utvikle disse hyperparametrene direkte og samtidig. Mangfold i populasjonen og inkrementell kompleksifisering er to apsekter innenfor nevroevolusjon som har blitt viet et spesielt fokus under denne oppgaven.
Tre forskjellige systemer har blitt implementert for å utføre tester. To av disse utvikler tette nevrale nettverk, mens det siste utvikler konvolusjonelle nevrale nettverk. Systemene har blitt testet med fem forskjellige datasett for å undersøke om de fungerer godt generelt. Dette er tre bildedatasett (MNIST, EMNIST og fashion-MNIST), et sjakksluttspillsdatasett, og et gjærdatasett.
Mange tester har blitt kjørt på systemene, og viser at metodologien er kapabel til å utvikle nevrale nett som gir gode resultater. Spesielt topologien, læringsraten, læringsratens reduksjonsrate og "dropout"-raten til de nevrale nettene viser seg å være verdifulle å utvikle, fremfor å sette manuelt. I tillegg viser resultatene at det å bruke et mangfoldsmål som del av evalueringsfunksjonen til den genetiske algoritmen, og å bruke inkrementell kompleksifisering, ikke hjelper systemene å utvikle bedre nevrale nett. In this master's thesis, neuroevolution has been used to automatically evolve the hyperparameters of neural networks, which usually must be set manually by the user. The proposed methodology differs from most previous work within neuroevolution by evolving these hyperparameters directly and simultaneously. Population diversity and incremental complexification are two aspects of neuroevolution which have been given a particular focus in this thesis.
Three different systems have been implemented to conduct tests, two of which produce dense neural networks, and one which produce convolutional neural networks. The systems have been tested on five different datasets to investigate their general performance. These datasets are three image datasets (MNIST, EMNIST and fashion-MNIST), a chess endgame dataset, and a yeast dataset.
Many different tests have been run on the systems, showing that the methodology is capable of evolving well-performing neural nets. They indicate that the topology, learning rate, learning rate decay and dropout probability are especially valuable to evolve instead of setting manually. Also, it turns out that the use of a diversity measure as part of the fitness function, and incremental complexification, is not really necessary to make the systems perform well.