Machine Learning. Je nachdem wie tief man in die Materie einsteigen will, muss man sich vorher mit Formen der Merkmalsextraktion sowie mit künstlichen neuronalen Netzen beschäftigen. Deep Learning bedeutet nämlich im Grunde folgendes:

  • Ein mehrschichtiges künstliches neuronales Netz (multi layer)
  • Jede Schicht (Layer) hat eine bestimmte Funktion & führt verschiedene Operationen aus
  • Man entwirft verschiedene Architekturen dieser Netze – verschiedene Verschaltungen von Layern
Diese Layer haben verschiedene Funktionen. Die meistbenutzten Konzepte werden nachfolgend dargestellt:
  • INPUT [32x32x3] Funktioniert im Grunde ähnlich wie eine Retina. Die Matrix in diesem Layer besteht aus den RGB-Bildpunkten (3) und entspricht der Größe des Bildes in diesem Beispiel: 32×32 Pixel. [caption id="attachment_4849" align="alignright" width="300"]Quelle: Wikipedia Quelle: Wikipedia[/caption]
  • CONV (Convolutional Layer) Dieser Layer berechnet Features für lokale Regionen im Input. Die meistgenutzte Funktion hier ist ein Skalarprodukt der Werte in den verschiedenen Regionen berechnet. Setzt man 12 verschiedene Filter ein, erhält man 12 Ergebnismatrizen. Dieser Dieser Layer produziert also eine Matrix mit den Dimensionen: [32x32x12].
  • RELU (Rectified Linear Unit) In diesem Layer werden relativ simple Funktionen angewendet, ähnlich wie max(x, 0). Werte werden hier nicht verändert, dafür aber eventuell auf einen Threshold-Wert gesetzt. Wir erhalten also wieder eine Matrix mit den Dimensionen [32x32x12].
  • POOL (Pooling) wird genutzt, um ein Downsampling auszuführen. Für POOL gibt es verschiedene Operationen, eine davon ist Max-Pooling- Dabei wird aus einer n x n Matrix der größte Wert gewählt. Beispielsweise mit dem Output [16x16x12]. Das entspricht einem Faktor von 0.5.
  • FC (fully connected) In diesem Layer sind alle Neuronen einer Schicht miteinander verbunden. Hier passiert auch der meiste Lernaufwand. Für den Fall, dass ein Netz zwischen 10 Klassen entscheiden muss, wären die Dimensionen hier [1x1x10].
Eine Beispiel-Architektur wäre eine serielle Verschaltung folgender Layer:  [INPUT – CONV – RELU – POOL – FC]. Hier werden zuerst verschiedene gefaltete Features aus dem Bild extrahiert. Danach wird ein bestimmtes Muster aus den extrahierten Features herausgeschnitten (entschieden nach Thresholds). Mit diesen Features wird nur ein Downsampling durchgeführt. Nach dem Downsampling der gefilterten und gefalteten Features wird nun der Layer angesprochen, der aus den Repräsentationen die verschiedenen Klassen entscheidet. Im Vergleich zu einem Ein-Layer-Netzwerk (auch shallow genannt) wird hier viel mehr Aufwand betrieben, um Features zu extrahieren. Mehr über die Vergangenheit von Deep Learning und der Schönheit von lernenden Maschinen, erfährt man in Ben Vigoras Talk mit dem Titel „When Machines Have Ideas“. Er redet darüber, was lernen wirklich bedeutet und was das Interessante an lernenden Maschinen ist. Hugo Larochelle redet in „The Deep End of Deep Learning“ über den langen Weg, den Deep Learning gehen musste, bis es zum Buzzword wurde. Sehr interessant ist dabei auch, dass es diverse Ansätze zum Thema Deep Learning schon viel eher gab. Um die 2 vorherigen Videos abzurunden, sollte man sich diesen Talk von Andrej Karpathy ansehen. Er ist Teil des Labs der Stanford University und war maßgeblich an der Weiterentwicklung des initialen Begriffs Deep Learning beteiligt. https://www.youtube.com/watch?v=u6aEYuemt0M Nach diesen Ausführungen zum Thema Deep Learning hat man eine Intuition für das aktuell am meisten gehypte Thema der KI-Forschung bekommen. Falls ihr euch fragt, wie es nun weiter geht oder gar Lust habt, ein Projekt mit Deep Learning Frameworks umzusetzen, dann werdet ihr hier fündig: ]]>