Understanding, building and analyzing basic convolutional neural networks
Mäkelä, Mikko (2019)
Mäkelä, Mikko
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019052913096
https://urn.fi/URN:NBN:fi:amk-2019052913096
Tiivistelmä
Insinöörityön tarkoitus oli laatia opas tekoälyn ja tarkemmin konvolutionaalisten neuroverkkojen maailmaan asiasta kiinnostuneelle aloittelijalle ilman turhaa ammattikielistä terminologiaa, joka voi vaikeuttaa asiaan perehtymistä. Asioihin pyrittiin paneutumaan tarpeellisen syvällisesti pysymällä turvallisen lähellä pintaa, mutta silti menemällä tarpeeksi syvälle, jotta oppiminen ja materiaali olisi kiinnostavaa.
Laadittuun oppaaseen kuuluu teoriaosuus, jossa käydään läpi lyhyesti tekoälyn historia ja tarkemmin neuroverkkojen teoriaa. Seuraavaksi syvennytään konvolutionaalisiin neuroverkkoihin ja niiden käyttöön kuvantunnistuksessa. Jokainen työssä käytetty termi avataan termille sopivalla tasolla.
Insinöörityön osana rakennettiin kuvantunnistukseen käytettävä konvolutionaalinen neuroverkko. Mallin rakentamiseen käytettiin Python-kieltä, ja se yhdistettiin Tensorflow’n ja Kerasin tehokkaisiin tekoälyyn erikoistuneisiin ohjelmakirjastoihin. Ohjelmointiosuus käydään läpi askel askeleelta, jotta lukija ei vain pystyisi tekemään saman itse perusohjelmointitaidoilla, vaan myös kykenisi haluessaan parantamaan mallia.
Kun malli oli valmis ja koulutettu Zalandon Fashion-MNIST-koulutusmateriaalilla, sen toimivuus ja tehokkuus testattiin ja tulokset analysoitiin. Työssä saatiin onnistuneesti rakennettua neuroverkko, joka oppi luokittelemaan vaatekappaleita oppimateriaalin avuin. Neuroverkon tehokkuutta analysoitiin testimateriaalin avulla, josta paljastui verkon heikkous: tuntemattoman datan luokittelu. Parannusehdotuksia olivat ylisovittamisen vähentäminen ja verkon rakenteen parantaminen. The purpose of this thesis was to go through the basics of a convolutional neural network and Artificial Intelligence in general and build a guide for them. The theory is explained in a way that a beginner who is interested in AI but does not know the details can jump in and learn about neural networks, how to build and analyze them without technical jargon.
First, the study covers a brief history of artificial intelligence. Second, in-depth theory of neural networks is studied. Third, the theory is put into the test by building a convolutional neu-ral network using Zalando’s Fashion-MNIST training material to train the network for image recognition. Python is used to configure the network together with the power and ease of use of Tensorflow and Keras. Finally, the model building process is introduced step by step with clear instructions to demonstrate how not only to build a convolutional network, but also how to improve it.
As a result of this study a convolutional neural network was successfully trained to classify pieces of clothing. The network was tested against the test data, which revealed a flaw in the design of the network. Further analysis revealed that the network was performing worse against test data. The phenomenon is known as overfitting and is one of the main improvement points discussed. Building the network in a more efficient way is also proposed as a potential future improvement idea.
Laadittuun oppaaseen kuuluu teoriaosuus, jossa käydään läpi lyhyesti tekoälyn historia ja tarkemmin neuroverkkojen teoriaa. Seuraavaksi syvennytään konvolutionaalisiin neuroverkkoihin ja niiden käyttöön kuvantunnistuksessa. Jokainen työssä käytetty termi avataan termille sopivalla tasolla.
Insinöörityön osana rakennettiin kuvantunnistukseen käytettävä konvolutionaalinen neuroverkko. Mallin rakentamiseen käytettiin Python-kieltä, ja se yhdistettiin Tensorflow’n ja Kerasin tehokkaisiin tekoälyyn erikoistuneisiin ohjelmakirjastoihin. Ohjelmointiosuus käydään läpi askel askeleelta, jotta lukija ei vain pystyisi tekemään saman itse perusohjelmointitaidoilla, vaan myös kykenisi haluessaan parantamaan mallia.
Kun malli oli valmis ja koulutettu Zalandon Fashion-MNIST-koulutusmateriaalilla, sen toimivuus ja tehokkuus testattiin ja tulokset analysoitiin. Työssä saatiin onnistuneesti rakennettua neuroverkko, joka oppi luokittelemaan vaatekappaleita oppimateriaalin avuin. Neuroverkon tehokkuutta analysoitiin testimateriaalin avulla, josta paljastui verkon heikkous: tuntemattoman datan luokittelu. Parannusehdotuksia olivat ylisovittamisen vähentäminen ja verkon rakenteen parantaminen.
First, the study covers a brief history of artificial intelligence. Second, in-depth theory of neural networks is studied. Third, the theory is put into the test by building a convolutional neu-ral network using Zalando’s Fashion-MNIST training material to train the network for image recognition. Python is used to configure the network together with the power and ease of use of Tensorflow and Keras. Finally, the model building process is introduced step by step with clear instructions to demonstrate how not only to build a convolutional network, but also how to improve it.
As a result of this study a convolutional neural network was successfully trained to classify pieces of clothing. The network was tested against the test data, which revealed a flaw in the design of the network. Further analysis revealed that the network was performing worse against test data. The phenomenon is known as overfitting and is one of the main improvement points discussed. Building the network in a more efficient way is also proposed as a potential future improvement idea.