Machine learning encompasses models and algorithms for computer systems that are used to perform tasks without explicit instructions. Deep learning is a subfield of machine learning which uses artificial neurons assembled in layered structures to form complex networks. Interest in deep learning research and application continues to grow as the availability of computational power improves.
Among the most critical design aspect of an artificial neural network is the architecture, which comprises the choice of layers types, layer parameters, nonlinear activation functions, and network topology. A major challenge in the design of neural architectures is lack of reliable methods to generate an optimal architecture for a particular task. Neural architecture search techniques attempt to alleviate this issue by employing an automated means to find competent architectures for various tasks.
This thesis developed a genetic algorithm to evolve candidate neural architectures for a given regression or multiclass classification task. The search space consisted of a chain-structured template network allowing combinations of fully-connected and convolutional layers. In addition to the architecture, the genetic algorithm evolved the choice of the training optimizer algorithm along with the learning rate and training batch size. Mutations and crossovers were implemented to create random variations and combinations of candidate solutions respectively.
The implemented genetic algorithm was tested on several regression problems and a multiclass classification task. Regression problems were tested by evolving solutions that approximate predefined target functions, while the classification problem evolved models that would classify real-world image samples of written numerical digits in the MNIST database. For the purpose of selection, the fitness of each solution was evaluated by training and measuring the prediction error on a validation set.
Experiments showed that the genetic algorithm was successful in improving the models in all cases where a practical solution was known to exist within the search space. Furthermore, the algorithm was successful in favoring convolutional neural networks when inherently suited for a particular task, such as the MNIST classification problem. While the implemented algorithm is not versatile enough to generate state-of-the-art solutions for benchmark tests such as ImageNet and CIFAR-10, the approach nevertheless provides a novel means to constrict the complexity of solutions and is able to generate practical solutions with relatively low costs.
Koneoppimisessa hyödynnetään tietokonejärjestelmille tarkoitettuja malleja ja algoritmeja, joilla voidaan suorittaa tehtäviä ilman eksplisiittistä ohjelmointia. Syväoppiminen on koneoppimisen osa-alue, jossa käytetään keinotekoisista neuroneista koostuvia kerrosrakenteisia neuroverkkoja. Viime vuosien harppaukset tietokoneiden suorituskyvyssä on myötävaikuttanut syväoppimisen tutkimukseen ja sovellusmahdollisuuksiin.
Neuroverkon yksi tärkeimmistä suunnittelukriteereistä on itse verkon rakenne, joka määrittelee sen sisältämät kerrokset ja niiden ominaisuudet, käytetyt aktivaatiofunktiot sekä itse verkkotopologian. Suuri haaste syväoppimisessa on löytää tehtävälle sopiva rakenne, mikä on tyypillisesti ratkaistu kokemusperäisellä hakuammunnalla. Tästä syystä aktiivinen tutkimusalue on NAS-menetelmät (Neural Architecture Search), joilla pyritään automatisoimaan kilpailukykyisten rakenteiden haku.
Tässä työssä kehitettiin geneettinen algoritmi, joka etsi neuroverkkorakenteita yksinkertaisille regressio- ja luokittelutehtäville. Ratkaisut koostuivat yksihaaraisista verkoista, jotka sisälsivät sekä lineaarisia kerroksia että konvoluutiokerroksia. Rakenteen lisäksi geneettinen algoritmi pyrki optimoimaan verkkojen oppimisessa käytettäviä hyperparametreja. Rakenteista muodostettiin uusia muunnelmia mutaatioiden ja rekombinaatioiden avulla.
Kehitetyn algoritmin toimivuus testattiin erilaisissa regressio- ja luokittelutehtävissä. Regressiotehtävissä rakenteista muodostetut mallit yrittivät oppia approksimoimaan erikseen määriteltyjä funktiota, ja luokittelutehtävässä pyrittiin etsimään malleja, jotka kykenivät tarkasti luokittelemaan MNIST-tietokannan sisältämiä kuvia käsin kirjoitetuista numeroista. Ratkaisun soveltuvuus arvioitiin hyvyysfunktiolla, joka mittasi oppineen neuroverkon approksimointitarkkuutta validointinäytteillä.
Kokeet osoittivat, että algoritmi kykeni jalostamaan rakenteita parantaen niiden keskimääräistä tarkkuutta, kun oli perusteltua olettaa, että käytännöllisiä ratkaisuja oli olemassa. Algoritmi myös kykeni suosimaan konvoluutiokerroksia, kun tehtävät luonnollisesti hyötyivät konvoluutiorakenteista. Vaikka tässä työssä kehitetty NAS-menetelmä ei kykene tuottamaan huippuluokan neuroverkkorakenteita, algoritmi kykenee tuottamaan käytännöllisiä ja suppeita verkkorakenteita suhteellisen matalalla laskentakustannuksilla.