Als Informatiker hört man an jeder Ecke vom Thema Deep Learning. Jetzt ist nicht jeder gleich Data Scientist oder Machine Learning Developer. Aus diesem Grund möchte ich in diesem Artikel kurz mal darauf eingehen, was Deep Learning eigentlich ist.
Was ist Deep Learning?
Als Deep Learning bezeichnet man heutzutage im allgemeinen Lösungen, welche mit Hilfe von mehrschichtigen künstlichen neuronalen Netzen (Neural Networks) implementiert werden. Diese verarbeiten Schrittweise Information die aus einer entsprechenden Eingabequelle extrahiert werden um so als Ausgabe eine Vorhersage oder Klassifizierung zurückzugeben.
Der Ursprung von Deep Learning bzw. von neuronalen Netzen kann auf Warren McCulloch und Walter Pitts zurückgeführt werden.
Dabei orientieren sich die neuronalen Netze, wie die meisten Netzwerktopologien, auf biologische Vorbilder (In diesem Fall das Gehirn). Ich möchte hier im wesentlichen zwei Arten von neuronalen Netzen unterscheiden, die Convolutional Neural Networks und die Recurrent Neural Networks. Vorher schauen wir uns aber noch mal kurz den generellen Aufbau von neuronaler Netzen an.
Genereller Aufbau von Neuronen Netzten
Bei einem Neuronen Netz gibt es im wesentlichen drei verschiedene Schichten:
- Eingabe Schicht (Input Layer)
- verborgene Schicht (Hidden Layer)
- Ausgabe Schicht (Output Layer)
Über die Eingabe Schicht bekommt das Netz wie der Name schon einen Eingabewert bzw. mehrere Werte. Was in der verborgenen Schicht passiert weiß man nicht so genau. Es kann aber mehrere verborgene Schichten geben. Die Ausgabe Schicht liefert das Ergebnis zurück.
Convolutional Neural Network (CNN / ConvNet)
Convolutional Neural Networks, kurz CNN oder ConvNet, dienen primär zur Erkennung von Bildern. ConvNets haben die Sehrinde (Visual Cortex) von Säugetieren als Vorbild. Es gibt verschiedene Arten von Sehzellen. Ein Zelltyp ist zum Beispiel auf das Erkennen von kantenartigen Mustern innerhalb des Sehfeldes spezialisiert. Ein anderer Typ auf das erkennen der Lage eines Objektes im Raum.
Recurrent Neural Network (RNN)
Auch die Recurrent Neural Networks, kurz RNN, haben ein biologisches Vorbild. Anders als die Zellen der Sehrinde werden bei einem RNN zeitliche Informationen verarbeitet. Darum sind die artverwandten Zelle eher im Neocortex zu finden.
Unterschied CNN zu RNN
CNN
- CNN nimmt eine Eingabe mit fester Größe und erzeugt Ausgaben mit fester Größe.
- CNN ist eine Art Feed-Forward künstliches neuronales Netzwerk – sind Variationen von mehrschichtigen Wahrnehmungen, die auf minimale Vorverarbeitung ausgelegt sind.
- Die CNNs verwenden Verbindungsmuster zwischen ihren Neuronen, die von der Organisation des tierischen visuellen Kortex inspiriert sind, dessen einzelne Neuronen so angeordnet sind, dass sie auf überlappende Regionen reagieren, die das Gesichtsfeld kacheln.
- CNNs sind ideal für die Bild- und Videoverarbeitung.
RNN
- RNN kann beliebige Ein-/Ausgangslängen verarbeiten.
- RNN – anders als Feedforward Neuronale Netze – können mit ihrem internen Speicher beliebige Eingangssequenzen verarbeiten.
- RNN verwenden Zeitreiheninformationen. D.h. was ich zuletzt gesprochen habe, wirkt sich auf das aus, was ich als Text sprechen werde.
- RNNs sind ideal für die Text- und Sprachanalyse.
Julian Finkler meint
Guter Beitrag. Eventuell kannst du ja noch schematische Abbildungen der beiden Netztypen nachtragen (z.B. wie beim RNN die Verbindung von Neuronen zu sich selbst oder einem vorherigen Neuron zu erkennen sind)