Käsin kirjoitettujen numeroiden luokittelu tukivektorikoneella ja konvoluutioneuroverkolla
Kuusela, Jarkko (2023)
Kuusela, Jarkko
2023
Tietojenkäsittelyopin maisteriohjelma - Master's Programme in Computer Science
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-06-22
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202306216883
https://urn.fi/URN:NBN:fi:tuni-202306216883
Tiivistelmä
Tässä tutkielmassa päätavoitteena oli selvittää, kuinka hyvin tukivektorikone ja konvoluutioneuroverkko pystyvät luokittelemaan käsin kirjoitettuja numeroita. Muita tutkimuskysymyksiä olivat, millä hyperparametreilla tukivektorikoneen ja konvoluutioneuroverkon tarkkuus saadaan mahdollisimman hyväksi ja onko tukivektorikoneen ja konvoluutioneuroverkon suorituskyvyssä eroja. Tutkimusmenetelmänä käytettiin empiiristä tutkimusta, jossa tarkastellaan tukivektorikoneen ja konvoluutioneuroverkon toimintaa.
Koneoppimisella tarkoitetaan menetelmää, jonka avulla voidaan käytössä olevasta datasta oppia ominaisuuksia. Käsiteltävät koneoppimisalgoritmit olivat lineaariregressio, tukivektorikone, lähin naapuri -menetelmä, Naiivi Bayes -algoritmi, päätöspuut, satunnaismetsä ja k-means-algoritmi. Käytiin lyhyesti läpi ohjattu ja ohjaamaton oppiminen sekä vahvistusoppiminen. Käsiteltiin ylisovittamisen ongelmaa ja tavoitteena on, että koneoppimisalgoritmilla on hyvä yleistämiskyky. Validointijoukkoa käytetään hyperparametrien virittämiseen ja validointi voidaan toistaa useita kertoja ristiinvalidoinnilla. Varsinainen testaus tapahtuu vasta opetuksen jälkeen. Läpikäytävät metriikat olivat tarkkuus, sensitiivisyys, spesifisyys, luotettavuus, F1-arvo, FPR, Matthewsin korrelaatiokerroin, kappa-pisteet ja logaritminen häviö.
Neuroverkot ovat luokittelumenetelmiä, jotka rakentuvat yleensä monista kerroksista. Monikerroksinen perseptroni sisältää useita kerroksia. Kerrokset koostuvat toisiinsa yhdistetyistä neuroneista, jotka käyttävät painotettujen syötteiden summaa aktivointifunktiossa tuloksen saamiseksi. Aktivointifunktioita ovat porrasfunktio, sigmoidifunktio, ramppifunktio, hyperbolinen tangenttifunktio ja lineaarinen funktio. Softmax-kerros muuttaa piilokerroksen arvot todennäköisyysjakaumaksi.
Neuroverkot usein hyödyntävät ohjattua oppimista. Opetuksen aikana neuronien kytkentöjen painoarvoja päivitetään siten, että neuroverkon tuottama tulos vastaa tavoiteltavaa arvoa mahdollisimman tarkkaan. Opetuksessa käytetään apuna häviöfunktiota antamaan palautetta opetuksen edistymisestä.
Konvoluutioneuroverkko on syväoppimisen neuroverkkoarkkitehtuuri, joka koostuu konvoluutiokerroksista. Muun tyyppisiä neuroverkkoja ovat esimerkiksi takaisinkytketty neuroverkko, itseorganisoituva kartta ja pinotut autoenkooderit.
Päätavoite saavutettiin käytännön testauksen avulla. Aineistoksi oli valittu MNIST-tietokannan käsin kirjoitetut numerot. Työvälineenä käytettiin Matlab-ohjelmistoa. Ennen opetusta ja testaamista tehtiin esiprosessointia. Tukivektorikone käytti HOG-ominaisuuksia luokittelijan opettamiseen. Kaikki solujen koot antoivat tarkkoja tuloksia, mutta paras tulos oli melkein täydellinen. Konvoluutioneuroverkkoja opetettiin erilaisilla rakenteilla ja testitulokset olivat erinomaisia. Opetusajat olivat suhteellisen nopeita sekä tukivektorikoneella että konvoluutioneuroverkolla. In this thesis, the main goal was to find out how well the support vector machine (SVM) and the convolutional neural network (CNN) can classify handwritten numbers. The supporting research questions were, about which hyperparameters are to be used to obtain as high as possible accuracy for the SVM and the CNN, and whether there are differences in the performance of the SVM and the CNN. The research method was empirical, which observes the operation of the SVM and the CNN.
Machine learning is a method that can learn characteristics from data. The focus is on the following machine learning algorithms: linear regression, SVM, nearest neighbor classifier, Naive Bayes algorithm, decision trees, random forest, and k-means algorithm. Supervised learning, unsupervised learning and reinforcement learning were briefly covered. Overfitting was also covered, and the machine learning algorithm should recognize classes at the general level. A validation set is used for hyperparameter tuning and validation can be iterated with cross-validation. The covered metrics were accuracy, recall, specificity, precision, F1-score, FPR, Matthews correlation coefficient, kappa score, and logarithmic loss.
Neural networks are classification methods, which are usually multi-layered. Multilayer perceptron includes many layers. Layers include interconnected neurons that use the sum of weighted inputs in an activation function to produce an output. Activation functions are step function, sigmoid function, ramp function, hyperbolic tangent function, and linear function. The softmax layer transforms the values of the hidden layer into a probability distribution.
Neural networks often use supervised learning. In training, the weights of the neurons’ connections are updated so that the result produced by the neural network corresponds to the desired result. In training, the loss function is used as an aid to give feedback on the flow of the training.
A CNN is a deep learning neural network architecture built of convolutional layers. Other types of neural networks are, for example, a recurrent neural network, a self-organizing map, and stacked autoencoders.
The main goal was achieved through practical testing. Handwritten numbers from the MNIST database were chosen as the dataset. The Matlab software was used as a tool in testing. Preliminary preparations for the classification were done before training and testing. SVM used HOG features to train the classifier. All cell sizes gave accurate results, but the best result was almost perfect. CNNs were trained with different structures and the test results were excellent. Training times were fast with both the SVM and the CNN.
Koneoppimisella tarkoitetaan menetelmää, jonka avulla voidaan käytössä olevasta datasta oppia ominaisuuksia. Käsiteltävät koneoppimisalgoritmit olivat lineaariregressio, tukivektorikone, lähin naapuri -menetelmä, Naiivi Bayes -algoritmi, päätöspuut, satunnaismetsä ja k-means-algoritmi. Käytiin lyhyesti läpi ohjattu ja ohjaamaton oppiminen sekä vahvistusoppiminen. Käsiteltiin ylisovittamisen ongelmaa ja tavoitteena on, että koneoppimisalgoritmilla on hyvä yleistämiskyky. Validointijoukkoa käytetään hyperparametrien virittämiseen ja validointi voidaan toistaa useita kertoja ristiinvalidoinnilla. Varsinainen testaus tapahtuu vasta opetuksen jälkeen. Läpikäytävät metriikat olivat tarkkuus, sensitiivisyys, spesifisyys, luotettavuus, F1-arvo, FPR, Matthewsin korrelaatiokerroin, kappa-pisteet ja logaritminen häviö.
Neuroverkot ovat luokittelumenetelmiä, jotka rakentuvat yleensä monista kerroksista. Monikerroksinen perseptroni sisältää useita kerroksia. Kerrokset koostuvat toisiinsa yhdistetyistä neuroneista, jotka käyttävät painotettujen syötteiden summaa aktivointifunktiossa tuloksen saamiseksi. Aktivointifunktioita ovat porrasfunktio, sigmoidifunktio, ramppifunktio, hyperbolinen tangenttifunktio ja lineaarinen funktio. Softmax-kerros muuttaa piilokerroksen arvot todennäköisyysjakaumaksi.
Neuroverkot usein hyödyntävät ohjattua oppimista. Opetuksen aikana neuronien kytkentöjen painoarvoja päivitetään siten, että neuroverkon tuottama tulos vastaa tavoiteltavaa arvoa mahdollisimman tarkkaan. Opetuksessa käytetään apuna häviöfunktiota antamaan palautetta opetuksen edistymisestä.
Konvoluutioneuroverkko on syväoppimisen neuroverkkoarkkitehtuuri, joka koostuu konvoluutiokerroksista. Muun tyyppisiä neuroverkkoja ovat esimerkiksi takaisinkytketty neuroverkko, itseorganisoituva kartta ja pinotut autoenkooderit.
Päätavoite saavutettiin käytännön testauksen avulla. Aineistoksi oli valittu MNIST-tietokannan käsin kirjoitetut numerot. Työvälineenä käytettiin Matlab-ohjelmistoa. Ennen opetusta ja testaamista tehtiin esiprosessointia. Tukivektorikone käytti HOG-ominaisuuksia luokittelijan opettamiseen. Kaikki solujen koot antoivat tarkkoja tuloksia, mutta paras tulos oli melkein täydellinen. Konvoluutioneuroverkkoja opetettiin erilaisilla rakenteilla ja testitulokset olivat erinomaisia. Opetusajat olivat suhteellisen nopeita sekä tukivektorikoneella että konvoluutioneuroverkolla.
Machine learning is a method that can learn characteristics from data. The focus is on the following machine learning algorithms: linear regression, SVM, nearest neighbor classifier, Naive Bayes algorithm, decision trees, random forest, and k-means algorithm. Supervised learning, unsupervised learning and reinforcement learning were briefly covered. Overfitting was also covered, and the machine learning algorithm should recognize classes at the general level. A validation set is used for hyperparameter tuning and validation can be iterated with cross-validation. The covered metrics were accuracy, recall, specificity, precision, F1-score, FPR, Matthews correlation coefficient, kappa score, and logarithmic loss.
Neural networks are classification methods, which are usually multi-layered. Multilayer perceptron includes many layers. Layers include interconnected neurons that use the sum of weighted inputs in an activation function to produce an output. Activation functions are step function, sigmoid function, ramp function, hyperbolic tangent function, and linear function. The softmax layer transforms the values of the hidden layer into a probability distribution.
Neural networks often use supervised learning. In training, the weights of the neurons’ connections are updated so that the result produced by the neural network corresponds to the desired result. In training, the loss function is used as an aid to give feedback on the flow of the training.
A CNN is a deep learning neural network architecture built of convolutional layers. Other types of neural networks are, for example, a recurrent neural network, a self-organizing map, and stacked autoencoders.
The main goal was achieved through practical testing. Handwritten numbers from the MNIST database were chosen as the dataset. The Matlab software was used as a tool in testing. Preliminary preparations for the classification were done before training and testing. SVM used HOG features to train the classifier. All cell sizes gave accurate results, but the best result was almost perfect. CNNs were trained with different structures and the test results were excellent. Training times were fast with both the SVM and the CNN.