Bibliographic Metadata

Title
Deep Learning mit Google Tensorflow
Additional Titles
Deep Learning with Google Tensorflow
AuthorMandic, Dario
Thesis advisorGöschka, Karl Michael
Published2018
Date of SubmissionSeptember 2018
LanguageEnglish
Document typeBachelor Thesis
Keywords (DE)Maschinelles Lernen / Künstliche Intelligenz / Künstliche Neurale Netzwerke / Faltende Neurale Netzwerke / Overfitting / Underfitting
Keywords (EN)Machine Learning / Artificial Intelligence / Artificial Neural Networks / Convolutional Neural Networks / Overfitting / Underfitting
Restriction-Information
 _
Classification
Abstract (German)

Mit der Entstehung von Frameworks für das maschinelle Lernen wie Tensorflow, „Deep Learning“ ist sehr populär geworden um herausfordernde Aufgaben in der Computer Vision, Verarbeitung natürlicher Sprache und Daten- Vorhersageanalysen zu bewältigen. Das Feld der Computer Vision wurde revolutioniert mit Faltenden Neuralen Netzwerken, da sie in der Lage sind verschiedene Eigenschaften aus Bildern zu extrahieren, mit nur den bereitgestellten Daten. Modelle in selbstfahrenden Autos welche mit Faltenden Neuralen Netzwerken trainiert sind, sind in der Lage Passanten, Straßenschilder und andere Objekte auf der Straße zu erkennen. Im Feld der medizinischen Bildanalyse, mit Faltenden Neuralen Netzwerken trainierte Modelle erkenne Anomalitäten in Bildern mit Resultaten verglichen mit dem letzten Stand der Technik, was zu einer frühen Diagnose und Behandlung von Patienten führt. Diese Arbeit präsentiert die Basisarchitektur von künstlichen neuralen Netzwerken, und vor allem Faltenden Neuralen Netzwerken. Weiteres wurde diskutiert wie der Trainingsprozess in neuralen Netzwerken funktioniert und warum GPUs mit ihren Parallelisierungsfähigkeiten gut geeignet für das trainieren von „Tiefen Neuralen Netzwerken“ sind. Im praktischen Teil haben wir ein Faltendes Neurales Netzwerk konstruiert mit welchem ein Bildklassifizierungsmodell, mit dem Tensorflow Framework und der Python Programmiersprache trainiert wurde. Durch verschiedene Testszenarien wurden übliche Probleme wie „Underfitting“ und „Overfitting“ gezeigt, welche oft beim Training von Modellen auftauchen. Es wurde sukzessive während der Tests gezeigt wie „Underfitting“ und „Overfitting“ verhindert werden kann, indem die Größe des Netzwerks angepasst wurde und Techniken wie „Data Augmentation“ angewandt wurden. Dies hat sich gleichzeitig in einer höheren Klassifizierungsgenauigkeit des Modelles widergespiegelt. Weiteres wurde jeder Test mit einer CPU und zusätzlich mit einer GPU durchgeführt um die Auswirkung bezüglich auf die Trainingsdauer vom Model zu zeigen, wenn GPUs für das Training mit- verwendet werden. Am Ende wurde eine Genauigkeit von 95,1% am Testdatensatz erreicht, welches aus 1000 Bildern bestand, wobei auch „Overfitting“ komplett eliminiert wurde. Die Tests zeigen auch, dass bei steigender Größe vom neuralen Netzwerk und der Anwendung von „Data Augmentation“ CPUs alleine einfach nicht praktisch sind um „Tiefe Neurale Netzwerke“ zu trainieren. GPUs auf der anderen Seite, reduzieren die Trainingszeit dramatisch.

Abstract (English)

With the emergence of machine learning frameworks like Tensorflow, deep learning has become very popular for solving challenging computer vision, natural language processing and predictive data analytic tasks. The field of computer vision has been revolutionized with Convolutional Neural networks, since they are able to extract different features of images by just learning from provided data. Models in self driving cars, trained with Convolutional Neural Networks are able to detect pedestrians, street signs and other objects on the street. In the field of medical image analysis, models trained with Convolutional Neural Networks detect abnormalities form medical images with state of the art results, which leads to early diagnosis and treatment of the patients. This thesis presents the basic architecture of artificial neural network and especially Convolutional Neural Networks. Furthermore, it is discussed how the training process in artificial neural networks works and why GPUs with its parallelization capabilities are well suited for training deep neural networks. In the practical part, we built a Convolutional Neural network and trained an image classification model with the Tensorflow framework in python. Through several test scenarios, common problems like underfitting and overfitting are shown, which often occur while training a model. It is successively demonstrated during the tests how underfitting and overfitting can be prevented by adapting the size of the network and introducing techniques like data augmentation, which in result increases the model's classification accuracy. In addition, every test run is conducted with a CPU and a GPU as well to show the impact on the training duration of the model. Finally, an accuracy of 95,1\% is achieved on a testing set consisting of 1000 images, while overfitting was eliminated. The tests also show that by increasing the size of a neural network and implementing data augmentation CPUs alone become unpractical for training deep neural networks, while GPUs reduce the training duration dramatically.