Geschätzte Lesezeit: 8 Minuten
Inhaltsverzeichnis
Was sind künstliche neuronale Netze?
Neuronale Netze sind Systeme, die sich aus verschiedenen Schichten zusammensetzen. Die Eingabeschicht ist nicht zählend, da hier keine Berechnungen stattfinden. Die Ausgabeschicht wird gebildet, wenn verschiedene Gewichte auf die Eingangsknoten angewendet werden. Die Neuronen geben der Ausgabeschicht gemeinsam die Informationen, die sie benötigt, um ein Ausgangssignal zu berechnen. Dieses System ist die einfachste Form eines neuronalen Netzes. Es handelt sich um eine vielseitige und leistungsstarke Technologie des maschinellen Lernens. Für viele Anwendungen ist diese Technologie unverzichtbar geworden.
Ein Deep Belief Network (DBN) ist eine typische Netzwerkarchitektur, die einen neuartigen Trainingsalgorithmus und viele versteckte Schichten enthält. Jede Schicht repräsentiert ein sensorisches Eingangssignal. Die verborgenen Schichten lernen abstrakte Darstellungen der Eingabe. Die letzte Ausgabeschicht implementiert eine Netzklassifizierung. DBNs werden in zwei Schritten trainiert: einer Vor-Trainings-Phase und einer überwachten Feinabstimmung. Es gibt zwei Haupttypen von DBNs: feed-forward und fully connected.
Tiefe Netze haben gerichtete Zyklen innerhalb des Verbindungsgraphen. Sie sind schwierig zu trainieren, aber realistischer in dem Sinne, dass sie aus realen Daten lernen können. Dennoch sind sie nicht für alle Anwendungen ideal. Dies sollten Sie berücksichtigen, bevor Sie sich für einen bestimmten Typ von neuronalem Netz entscheiden. Es gibt viele Variationen beider Architekturen, daher ist es wichtig zu verstehen, welche für Ihre spezielle Situation geeignet ist. Schauen wir uns also beide im Detail an.
Das Perceptron
Ein neuronales Netz wird mit einer Perceptron-Architektur aufgebaut, die aus vier Komponenten besteht. Die Eingabeschicht besteht aus künstlichen Eingabeneuronen, die die Ausgangsdaten in das System einspeisen. Die anderen drei Schichten haben jeweils ein unterschiedliches „Gewicht“, d. h. eine Möglichkeit, darzustellen, wie viel Einfluss jedes Neuron auf das System hat. Das Gewicht eines Neurons bestimmt, ob es feuert. Die Gewichte eines Neurons werden mit den Merkmalen multipliziert, aus denen die Eingabe besteht.
Perceptrons sind einfacher als andere neuronale Netzarchitekturen. Sie enthalten Eingaben und Gewichte für jede Eingabe und wenden dann eine Aktivierungsfunktion auf sie an. Das Perceptron kann nur binäre Werte akzeptieren und ist nur für die binäre Klassifizierung und linear trennbare Objekte geeignet. Da es sich jedoch um die grundlegendste Form der Architektur neuronaler Netze handelt, kann das Verständnis des Perceptrons bei der Untersuchung tiefer neuronaler Netze von Vorteil sein.
Die Entscheidungsfläche eines Ein-Vektor-Perceptrons ist eine Funktion der Summe seines Eingangsvektors, wobei jede Komponente um ein Gewicht erhöht wird. Dieser Ausgabewert wird dann in die Aktivierungsfunktion eingegeben. Die Gewichte werden anfangs auf zufällige Werte am Trainingsanfang gesetzt. Mit Hilfe einer mathematischen Funktion wird der Fehler für jedes Element des Trainingssatzes geschätzt und jedes Gewicht entsprechend angepasst. Dies wird so lange wiederholt, bis der Fehler in der gesamten Trainingsmenge kleiner ist als der vorgegebene Grenzwert.
Feed-Forward-Netzwerke
In einem neuronalen Netz verwenden Feed-Forward- und rekurrente Netze unterschiedliche Architekturen. Erstere sind als Convolutional Neural Networks bekannt und werden hauptsächlich zur Erkennung von Objekten oder Bildern eingesetzt. Beide Architekturen nutzen das Vorwissen über zweidimensionale Formen. Die Feed-Forward-Netzwerkarchitektur verwendet einen Lernalgorithmus, der der Einheit, die Eingaben erhält, beibringt, diese zu interpretieren. Die Architektur des rekurrenten Netzes verwendet denselben Lernalgorithmus, arbeitet aber in umgekehrter Richtung.
Der Hauptunterschied zwischen diesen beiden Netzarchitekturen liegt in den Optimierungsalgorithmen, die auf sie angewendet werden. Die wichtigste Optimierungstechnik ist der Gradientenabstieg. Der Begriff „Gradient“ bedeutet eine Veränderung der Menge und der aktualisierten Gewichte. Er ist auch eine Steigung: je steiler der Gradient, desto höher die Lernrate. Wenn Sie zwischen zwei Feedforward-Netzarchitekturen wählen, sollten Sie unbedingt die Lernrate berücksichtigen.
Feed-forward-Netzwerke sind eine Alternative zum Deep Learning. Die Deep-Learning-Technologie ist aus mobilen Anwendungen und Suchmaschinen nicht mehr wegzudenken und hat das menschliche Gehirn erfolgreich nachgeahmt. Damit können Maschinen nun eigenständig denken. Feed-forward-Netzwerke sind eine vereinfachte Form neuronaler Netzwerkarchitekturen mit einigen nützlichen Vorteilen. Die Architektur kann größere synthetische Ausgaben verarbeiten und kann zur Klassifizierung von Punkten in einer beliebigen Dimension verwendet werden.
Rekurrente neuronale Netze (Recurrent Neural Networks, RNNs)
Rekurrente neuronale Netzarchitekturen werden verwendet, um einen Computer bei der Modellierung einer Situation zu unterstützen. Sie können zur Lösung von Problemen eingesetzt werden und sind in der Regel mit einem Sprachmodell verbunden. Ein RNN, das zum Beispiel mit Shakespeare-Werken trainiert wurde, erzeugt Prosa wie Shakespeare selbst. RNNs sind eine Form der Computerkreativität und simulieren die menschliche Fähigkeit, Ideen durch Sprache auszudrücken. Möglich wird dies durch das Verständnis der KI für Semantik und Grammatik.
RNNs leiden jedoch unter zwei Hauptproblemen. Das eine besteht darin, dass sie nur Informationen aus einer kleinen Anzahl vorheriger Schritte verwenden können. Dies ist als das Problem der langfristigen Abhängigkeiten bekannt. Dieses Problem kann überwunden werden, indem die Anzahl der versteckten Schichten im RNN-Modell verringert wird. Der andere große Nachteil von RNNs ist, dass sie für die Erkennung von Redewendungen ineffizient sein können, da jedes Wort in einer bestimmten Reihenfolge angeordnet werden muss.
Ein rekurrentes neuronales Netz besteht aus mehreren versteckten Schichten, die jeweils ihre eigenen Verzerrungen und Aktivierungsfunktionen haben. Diese Schichten sind durch ein Ausgangsgatter miteinander verbunden, das sinnvolle Informationen aus dem Zellzustand extrahiert. Diese versteckten Schichten haben nur 1 % Konnektivität. Jedes Mal, wenn das Netz lernt, wird der aktuelle Zustand geändert. Dann wird die endgültige Ausgabe berechnet. Wenn die Ausgabe nicht dem beabsichtigten Ergebnis entspricht, wird ein Fehler erzeugt. Aus diesem Grund bevorzugen viele Menschen die Architektur rekurrenter neuronaler Netze.
Neuronale Faltungsnetzwerke (Convolutional Neural Networks, CNNs)
CNNs verwenden einen Prozess namens Faltung, um die Eigenschaften von Neuronen und Schichten zu lernen. Diese Parameter werden als Hyperparameter bezeichnet. CNNs können Flecken und Kanten einer bestimmten Farbe und Ausrichtung erkennen. CNNs können auch Kombinationen von Merkmalen aus vorherigen Schichten erkennen. Jede Schicht kann ihre eigenen Hyperparameter haben.
CNNs sind vielseitig einsetzbar und wurden mit einer großen Anzahl von Molekularstrukturdaten trainiert. Eine ihrer populärsten Anwendungen ist die Bilderkennung, aber sie wurden auch schon eingesetzt, um Go-Spiele zu gewinnen und neue Medikamente zu entdecken. Sie sind unglaublich leistungsfähig und werden heute in allen Teilen der Welt eingesetzt. Sie sind eine Schlüsselkomponente der Computer Vision.
Die CNN-Methode wird in vielen realen Anwendungen eingesetzt, z. B. bei der Erfassung von Bildunterschriften und der Beantwortung visueller Fragen. CNNs verwenden ein Bild als Eingabe und erzeugen eine natürlichsprachliche Antwort auf der Grundlage des Bildinhalts. Sie können mehrere Bilder auf einmal verarbeiten und sogar Sätze auf der Grundlage des Gesehenen generieren. CNNs sind äußerst flexibel und werden derzeit für die Analyse vieler verschiedener Arten von Bildern eingesetzt. Diese Netzwerke werden auch zur Identifizierung von Gesichtern eingesetzt, wie z. B. im automatischen Tagging-Algorithmus von Facebook.
Zusammenfassung und Ausblick
Die verschiedenen Arten von neuronalen Netzen basieren auf einem ähnlichen mathematischen Modell, das als künstliches neuronales Netz (ANN) oder rekurrentes neuronales Netz (RNN) bezeichnet wird. ANNs verwenden Millionen von Parametern, die anhand von Tonnen von Daten trainiert werden, um das biologische Verhalten von Gehirnneuronen darzustellen. Kurz gesagt, ein neuronales Netz ist ein System aus mehreren Schichten oder Knoten, die jeweils Eingangssignale parallel verarbeiten. Wenn die Eingabe erkannt wird, werden die Knoten je nach Stärke der Eingabe ein- oder ausgeschaltet.
Bis vor einigen Jahren steckten neuronale Netze noch in den Kinderschuhen, und nur wenige Menschen nahmen ihre zunehmende Leistungsfähigkeit wirklich zur Kenntnis. Das lag an vielen Faktoren. Daten wurden leicht verfügbar, insbesondere von Mobiltelefonen und billigen Digitalkameras. Auch die Verarbeitungsleistung verbesserte sich, und die Grafikprozessoren wurden zu einem universell einsetzbaren Rechenwerkzeug. Und schließlich wuchs mit dem Anstieg der Bilddatenverarbeitung auch die Menge der für neuronale Netze verfügbaren Daten. Durch das Zusammenwirken dieser Faktoren wurde die Aufgabe des neuronalen Netzes immer anspruchsvoller, und die Leistung der ANNs nahm zu.
Das neuronale Netz hat viele Anwendungen. Es wird beispielsweise in der Bildverarbeitung eingesetzt, um Objekte auf Bildern zu erkennen. Um die nächste Aufgabe zu erfüllen, sind möglicherweise einige Änderungen in den letzten Schichten erforderlich, während die Parameter des vorherigen Netzes wiederverwendet werden. Neuronale Netze sind auch für die Datenübertragung nützlich, da sie sowohl Rechenressourcen als auch Daten übertragen. Auf diese Weise werden sie häufig in der Bildverarbeitung eingesetzt. Dieser Artikel fasst die wichtigsten Arten von ANNs zusammen und erörtert ihr Potenzial.