Mythen über tiefes Lernen zerstreuen - Wie lernen neuronale Netze?

Am Vorabend des Kursbeginns „Deep Learning. Basic “hat eine Übersetzung von interessantem Material für Sie vorbereitet.








Deep Learning hat immens zu den Fortschritten und dem Anstieg der künstlichen Intelligenz beigetragen, die wir heute auf der ganzen Welt sehen. Aufgaben, die künstliche Intelligenz jetzt erledigt, wie Text- und Bildklassifizierung, Instanzsegmentierung, Beantwortung von Fragen basierend auf Textdaten, Leseverständnis und mehr, waren in der Vergangenheit Science-Fiction, werden aber jetzt nützlicher und zunehmend nachgeahmt. Mensch durch die Verwendung von tiefen neuronalen Netzen.



Wie gehen neuronale Netze mit diesen komplexen Aufgaben um? Was passiert unter den endlosen Schichten mathematischer Operationen, die diese Netzwerke füllen?





Ein einfaches neuronales Netzwerk



Lassen Sie uns etwas tiefer gehen und die Grundlagen tiefer neuronaler Netze konzeptionell verstehen.



Lassen Sie uns zunächst über den Algorithmus sprechen, der von den meisten (wenn nicht allen) neuronalen Netzen zum Lernen aus Trainingsdaten verwendet wird. Trainingsdaten sind nichts anderes als von Menschen kommentierte Daten, dh markierte Bilder bei der Bildklassifizierung oder markierte Gefühle bei der Stimmungsanalyse.



Und es wird der Fehler-Backpropagation-Algorithmus genannt.

Nachfolgend finden Sie eine kurze Übersicht über die Struktur neuronaler Netze:



Neuronale Netze wandeln Eingabedaten auf bestimmte Weise in Ausgabe um. Eingabedaten können Bilder, Textfragmente usw. sein. Die Eingabedaten werden in ihre numerische Darstellung konvertiert: Beispielsweise wird in Bildern jedes Pixel abhängig von seiner Position mit einem numerischen Wert codiert, und im Text ist jedes Wort ein Vektor von Zahlen, der eine Vektordarstellung eines Wortes ist (in einem solchen Vektor ist jede Zahl eine Schätzung eines bestimmten Merkmals eines Wortes). oder ein eindimensionaler Vektor (ein n- dimensionaler Vektor, der aus n-1 Nullen und einer Eins besteht, wobei die Position von Eins auf das ausgewählte Wort zeigt).



Diese numerische Eingabe wird dann durch ein neuronales Netzwerk (unter Verwendung einer als Rückausbreitung eines Fehlers bekannten Technik) geleitet, das unter der Haube mehrere Schritte zum Multiplizieren mit Netzwerkgewichten, Hinzufügen von Offsets und Durchlaufen einer nichtlinearen Aktivierungsfunktion aufweist. Dieser Vorwärtsausbreitungsschritt wird für jede Eingabe in den gekennzeichneten Trainingsdaten ausgeführt, und die Genauigkeit des Netzwerks wird unter Verwendung einer Funktion berechnet, die als Verlustfunktion oder Kostenfunktion bekannt ist. Das Ziel des Netzwerks ist es, die Verlustfunktion zu minimieren, dh ihre Genauigkeit zu maximieren. Zunächst beginnt das Netzwerk mit einem zufälligen Wert der Parameter (Gewichte und Verzerrungen) zu arbeiten, erhöht dann schrittweise seine Genauigkeit und minimiert Verluste, wobei diese Parameter bei jeder Iteration durch direkte Weitergabe an die Trainingsdaten weiter verbessert werden.Das Aktualisieren von Gewichten und Vorspannungen (Größe und positive oder negative Richtung) wird durch den Rückausbreitungsalgorithmus bestimmt. Schauen wir uns den Backpropagation-Algorithmus an und verstehen, wie er neuronalen Netzen hilft, zu „lernen“ und den Verlust von Trainingsdaten zu minimieren.





Vorwärtsausbreitung in einem tiefen neuronalen Netzwerk



Die Essenz der Fehlerrückausbreitung besteht darin, herauszufinden, wie sich jeder Parameter ändern sollte, um die Trainingsdaten besser anzupassen (dh Verluste zu minimieren und die Vorhersagegenauigkeit zu maximieren). Die Methode zur Bestimmung dieser Werte ist recht einfach:





Im obigen Bild ist die Y- Achse eine Verlustfunktion, und die X- Achse ist ein Parameter (Gewicht) im Netzwerk. Der Anfangswert des Gewichts muss reduziert werden, um das lokale Minimum zu erreichen. Aber wie versteht das Netzwerk, dass das Gewicht reduziert werden muss, um dies zu tun? Das Netzwerk ist auf die Steigung der Funktion am Startpunkt angewiesen.



Wie kommt man an die Piste? Wenn Sie Mathematik studiert haben, wissen Sie, dass die Steigung einer Funktion an einem Punkt durch ihre Ableitung gegeben ist. Voila! Jetzt können wir die Steigung und damit die Änderungsrichtung (positiv oder negativ) des Gewichts berechnen. Der Gewichtswert wird iterativ aktualisiert und wir erhalten das Minimum.



Die Schwierigkeit entsteht, wenn die Gewichte nicht direkt mit der Verlustfunktion zusammenhängen, wie dies bei tiefen neuronalen Netzen der Fall ist. Hier kommt die bekannte Kettenregel ins Spiel.





Zum Beispiel zeigt die obige Abbildung, dass das Ergebnis Y nicht direkt vom Eingabewert X abhängt , sondern X vorher durch F und dann durch G geht , um einen Ausgabewert Y zu erhalten . Mit der Kettenregel können Sie die Ableitung von G in Bezug auf X schreiben , wobei die Abhängigkeit von G von F angegeben wird , wobei F von X abhängt... Diese Regel kann für Netzwerke beliebiger Länge mit der resultierenden Ableitung und daher der Steigung für jeden Ausgabewert in Bezug auf die Eingabe angewendet werden, die als Produkt der Ableitungen aller Schritte erhalten wird, durch die der Eingabewert läuft. Dies ist die Essenz der Rückausbreitung des Fehlers, bei der die Ableitung / Steigung des Ausgabewerts in Bezug auf jeden Parameter durch Multiplizieren der Ableitungen während des Rückwärtsdurchlaufs durch das Netzwerk erhalten wird, bis die direkte Ableitung des Parameters gefunden wird, weshalb die Methode als Rückausbreitung bezeichnet wird.



Das ist alles. Um mehr über den Kurs zu erfahren, laden wir Sie ein, sich unter dem folgenden Link für den Tag der offenen Tür anzumelden:






All Articles