Deep Learning – Part 1


Erste Deep Learning – Schritte

ThinkingDieses kostenlose Ebook klärt grundlegende Fragen rund um Neuronale Netze und Deep Learning. Es besteht aus rund 70 Seiten und versucht sowohl die Grundideen hinter Künstlichen Neuronalen Netzen zu beleuchten, als auch ein bisschen Theorie. Der Schwerpunkt dieses Werkes liegt jedoch auf der Frage: “Wie kann ich Deep Learning für meine Projekte verwenden?”. Zuerst wird in dem Buch kurz der Begriff Machine Learning eingeführt, anschließend beschäftigen wir uns mit Künstlichen Neuronalen Netzen, Convolutional Neural Nets und entwickeln am Ende des Buches eine kleine Software zur Gesichtserkennung. Wir beschränken uns in dem Buch ausschließlich auf Pseudo-Codes, außer es ist nicht anders möglich. Das heißt es ist nicht nötig eine konkrete Programmiersprache zu beherrschen. Die Gesichtserkennung wird mit der Computer Vision Library “OpenCV” und dem Deep Learning Framework “Caffe” umgesetzt. Beide Libraries können sprachunbhängig und OS übergreifend benutzt werden. Wir empfehlen jedoch Python oder C/C++ als Zielsprache für eigene Implementierungen und Linux als Ziel-OS. Für eine konkrete Umsetzung der Gesichtserkennung in C/C++ siehe Projekt – Gesichtslokalisierung.

Downloadlink: Deep Learning – Part 1


Themen

  1. Einführung
  2. Voraussetzung
  3. Mustererkennung und Machine Learning
  4. Neuronale Netze in der Biologie
  5. Künstliche Neuronale Netze
  6. Convolutional Neural Net
  7. Deep Learning und CNNs
  8. Eine Auswahl wichtiger Schichttypen für Neuronale Netze
  9. Neuronale Netze in Caffe
  10. Ein Neuronales Netz zur Gesichtserkennung
  11. Schlusswort

Einleitung

2016 lies Google seine Jahre lang entwickelte künstliche Intelligenz (= KI) auf das Spiel Go los, welches unter KI-Experten als für Computer äußerst schwer spielbar angesehen wurde. Google taufte ihre KI ”AlphaGo” und besiegte mit dieser Software den amptierenden Go-Weltmeister Lee Sedol mit einer Wertung von 4:1. Lee Sedol, der sich vor Beginn der Partien noch siegessicher war, war bereits nach der zweiten verlorenen Runde in Folge beeindruckt: ”AlphaGo spielte fast perfekt.”

Der menschliche Go-Weltmeister war nicht der Einzige, der mit einem so deutlichen Sieg der Maschine niemals gerechnet hatte:
”Global Go fans were shocked, artificial intelligence experts called the moment historic and Google DeepMind CEO Demis Hassabis compared the victory to landing on the moon.”

Dieser Durchbruch basierte im Grunde auf genau zwei Faktoren. Der erste Faktor war natürlich die immense Rechenpower, die Google zur Verfügung steht. In dem Match gegen Lee Sedol nutzte der Großkonzern 1920 CPUs und 280 GPUs zusammengeschlossen in einem Cluster, um den bestmöglichen nächsten Zug zu berechnen. Der zweite Faktor war das Benutzen von dem so genannten ”DeepLearning”, eine Technik basierend auf künstlichen Neuronalen Netzen. So neu und innovativ wie dieses Wort auch klingen mag, die Grundidee der Künstlichen Neuronalen Netze ist schon fast so alt wie der Computer selbst. In den nächsten Kapiteln wollen wir uns daher einmal ansehen was genau Künstliche Neuronale Netze sind, was sie mit DeepLearning zu tun haben und vor allem wie man ein solches Künstliches Neuronales Netz (auch gerne abgekürzt mit ANN – ”Artificial Neural Net” bzw. NN – ”Neural Net”) zur Gesichtserkennung in Bilder verwenden kann.
Wir werden uns sowohl mit den Grundlagen beschäftigen als auch mit aktuellen Forschungsergebnissen und neuen Ideen auf diesem Gebiet.
Dabei werde Ich versuchen nicht zu tief in mathematische Theorie einzusteigen und alles so zu erklären, dass man damit als Software-Entwickler etwas anfangen kann. Wir wollen uns DeepLearning besonders als benutzbares Tool für einen Softwareentwickler ansehen, um Probleme zu lösen und nicht als Theorie der Linearen und Nicht-Linearen Transformationen.

Nachdem wir uns die Theorie angeeignet haben, werden wir eine Gesichtserkennung mit dem DeepLearning-Framework ”Caffe” schreiben.
Die Entscheidung fiel auf Caffe, weil Caffe es erlaubt Neuronale Netze in einer JSON ähnlichen Form zu erstellen und damit losgekoppelt von konkreten Programmiersprachen funktioniert.

Artikel zitieren:
Marcel Rupprecht, "Deep Learning – Part 1", in Neural Ocean, 2016, //neuralocean.de/index.php/de/buecher/deep-learning-part-1/.

BibTex:
@misc{NeuOcDeepLearn2016,
    title="Deep Learning – Part 1",
    url="\url{//neuralocean.de/index.php/de/buecher/deep-learning-part-1/}",
    journal="Neural Ocean",
    author="Marcel Rupprecht",
    year="2016 (accessed März 30, 2020)"
}