www.wikidata.de-de.nina.az
Als rekurrente bzw ruckgekoppelte neuronale Netze bezeichnet man neuronale Netze die sich im Gegensatz zu den Feedforward Netzen durch Verbindungen von Neuronen einer Schicht zu Neuronen derselben oder einer vorangegangenen Schicht auszeichnen Im Gehirn ist dies die bevorzugte Verschaltungsweise neuronaler Netze insbesondere im Neocortex In kunstlichen neuronalen Netzen wird die rekurrente Verschaltung von Modellneuronen benutzt um zeitlich codierte Informationen in den Daten zu entdecken 1 2 Beispiele fur solche rekurrenten neuronalen Netze sind das Elman Netz das Jordan Netz das Hopfield Netz sowie das vollstandig verschaltete neuronale Netz Verschiedene Arten von Ruckkopplungen Die blaue Kante w d displaystyle w d ist eine direkte die grune w i displaystyle w i eine indirekte und die rote w l displaystyle w l eine seitliche Ruckkopplung Inhaltsverzeichnis 1 Eigenschaften 2 Typen von rekurrenten neuronalen Netzen 2 1 Elman Netz 2 2 Jordan Netz 3 Pseudocode 4 Trainieren von rekurrenten neuronalen Netzen 5 Aktivierungsfunktion 6 Verlustfunktion 7 GloVe Modell 8 Literatur 9 Weblinks 10 EinzelnachweiseEigenschaften BearbeitenEin rekurrentes neuronales Netz hat ein Gedachtnis weil es Informationen aus fruheren Eingaben verwendet um die aktuelle Eingabe und Ausgabe zu beeinflussen Wahrend traditionelle tiefe neuronale Netze davon ausgehen dass Eingaben und Ausgaben voneinander unabhangig sind hangt die Ausgabe rekurrenter neuronaler Netze von den vorherigen Elementen innerhalb der Sequenz ab Wahrend zukunftige Ereignisse auch bei der Bestimmung der Ausgabe einer bestimmten Sequenz hilfreich waren konnen unidirektionale rekurrente neuronale Netze diese Ereignisse nicht in ihren Vorhersagen berucksichtigen Ein weiteres Merkmal von rekurrenten Netzen besteht darin dass sie Parameter uber alle Schichten des Netzes hinweg gemeinsam nutzen Wahrend Feedforward Netze uber jeden Knoten unterschiedliche Gewichtungen haben teilen sich rekurrente neuronale Netze innerhalb jeder Schicht denselben Gewichtungsparameter Allerdings werden diese Gewichtungen immer noch durch die Prozesse der Backpropagation und des Gradientenabstiegs angepasst um das bestarkende Lernen zu erleichtern 3 Typen von rekurrenten neuronalen Netzen BearbeitenRekurrente Netze lassen sich folgendermassen unterteilen Bei einer direkten Ruckkopplung englisch direct feedback wird der eigene Ausgang eines Neurons als weiterer Eingang genutzt Die indirekte Ruckkopplung englisch indirect feedback verbindet den Ausgang eines Neurons mit einem Neuron der vorhergehenden Schichten Die seitliche Ruckkopplung englisch lateral feedback verbindet den Ausgang eines Neurons mit einem anderen Neuron derselben Schicht Bei einer vollstandigen Verbindung hat jeder Neuronenausgang eine Verbindung zu jedem anderen Neuron Praktische Anwendung finden rekurrente neuronale Netze bei Problemstellungen die das Verarbeiten von Sequenzen erfordern Beispiele dafur sind Handschrifterkennung Spracherkennung und Maschinenubersetzung Die hierbei vorherrschende Art der rekurrenten neuronalen Netze sind LSTMs beziehungsweise ahnliche Varianten die auf einer direkten Ruckkopplung basieren Die Implementierung von Rekurrenten neuronalen Netzen kann in gangigen Programmbibliotheken wie PyTorch bequem in Python erfolgen und dann mit Just in time Kompilierung in effizienten Code ubersetzt werden Elman Netz Bearbeiten Ein Elman Netz ist ein einfaches rekurrentes kunstliches neuronales Netz das durch vorhandene Ruckkopplungen von Kanten zwischen den kunstlichen Neuronen in der Lage ist zeitliche Abhangigkeiten von Eingaben implizit zu verarbeiten Benannt ist diese Netz Architektur nach Jeffrey L Elman der diese Struktur 1990 vorschlug Ein Elman Netzwerk ist ein dreischichtiges neuronales Netz dem man eine Menge von Kontexteinheiten hinzufugen kann Die mittlere verborgene Schicht ist mit diesen Kontexteinheiten fest mit einer Gewichtung von 1 verbunden Bei jedem Zeitschritt wird die Eingabe weitergeleitet und eine Lernregel angewendet Die festen Ruckverbindungen speichern eine Kopie der vorherigen Werte der versteckten Einheiten in den Kontexteinheiten weil sie sich uber die Verbindungen ausbreiten bevor die Lernregel angewendet wird Somit kann das Netzwerk eine Art Zustand aufrechterhalten der es ihm ermoglicht Aufgaben wie die Sequenzvorhersage auszufuhren die uber die Leistungsfahigkeit eines standardmassigen mehrlagiges Perzeptron hinausgehen Das System hat eine Eingangsschicht eine verborgene Schicht und eine Ausgangsschicht die alle in einer Feedforward Weise verbunden sind Die verborgene Schicht ist jedoch nicht nur mit der Ausgangsschicht verbunden sondern in einer einfachen 1 1 Verbindung auch mit einer weiteren Schicht der so genannten Kontextschicht Um wiederkehrende Verbindungen zu bilden wird die Ausgabe dieser Kontextschicht auch in die verborgene Schicht eingegeben Mit Ausnahme dieser 1 1 Verbindungen von der verborgenen zur Kontextschicht deren Gewichte auf 1 festgelegt sind konnen alle anderen Schichten vollstandig verbunden und alle Gewichte modifizierbar sein Die wiederkehrenden Verbindungen der Kontextschicht stellen dem System ein Kurzzeitgedachtnis zur Verfugung Die versteckten Einheiten beobachten nicht nur die eigentliche Eingabe sondern erhalten uber die Kontextschicht auch Informationen uber ihren eigenen Zustand im letzten Zeitschritt Da zu einem bestimmten Zeitschritt verborgene Einheiten bereits durch Eingaben in fruheren Zeitschritten beeinflusst wurden umfasst diese Wiederholung eine Erinnerung die von fruheren Zustanden abhangt obwohl ihr Einfluss mit der Zeit abnimmt Wahrend des Betriebs wird der Eingang des Elman Netzes mit einer zeitlichen Folge von Eingangsvektoren versehen Um die Gewichte zu andern kann die Ausgabe mit einem gewunschten Ausgabevektor verglichen werden und zum Beispiel kann die verallgemeinerte Delta Regel angewendet werden um die Gewichte zu andern Dadurch lernt das System eine Ausgabe nicht nur direkt der Eingabe zuzuordnen sondern auch der zeitlichen Abfolge mehrerer aufeinanderfolgender Eingabevektoren 4 Jordan Netz Bearbeiten Jordan Netze ahneln Elman Netze Die Kontexteinheiten werden von der Ausgangsschicht anstatt von der verborgenen Schicht gespeist Die Kontexteinheiten in einem Jordan Netz werden auch als Zustandsschicht bezeichnet Sie haben eine wiederkehrende Verbindung zu sich selbst Elman Netze und Jordan Netze sind auch als einfache rekurrente Netze bekannt Pseudocode BearbeitenGegeben sei eine Zeitreihe x der Lange sequence length Im rekurrenten neuronalen Netz gibt es eine Schleife welche nacheinander alle Eintrage der Zeitreihe x durch die Schichten neural network verarbeitet Diese haben als Ruckgabewert in jedem Zeitschritt i sowohl die Vorhersage y pred i als auch einen aktualisierten verdeckten Zustand hidden welcher die Lange hidden size hat Als Resultat nach der Schleife wird die Sammlung aller Vorhersagen y pred zuruckgegeben Der folgende Pseudocode angelehnt an die Programmiersprache Python illustriert die Funktionsweise eines rekurrenten neuronalen Netzes 5 def RNN forward x sequence length neural network hidden size hidden zeros size hidden size initialize with zeros for each independent time series separately y pred zeros size sequence length for i in range sequence length y pred i hidden neural network x i hidden update hidden state return y pred dd Moderne Bibliotheken liefern laufzeitoptimierte Implementierungen der obigen Funktionalitat oder erlauben die langsame Schleife durch Just in time Kompilierung stark zu beschleunigen Trainieren von rekurrenten neuronalen Netzen BearbeitenDas Trainieren eines typischen rekurrenten neuronalen Netzes umfasst folgende Schritte Ein Beispiel aus einem Datensatz wird eingegeben Das Netz nimmt dieses Beispiel auf und wendet einige komplexe Berechnungen mit zufallig initialisierten Variablen an Ein vorhergesagtes Ergebnis wird produziert Der Vergleich dieses Ergebnis mit dem erwarteten Wert ergibt einen Fehler Wenn sich der Fehler durch denselben Pfad wieder ausbreitet werden die Variablen angepasst Die Schritte werden wiederholt bis die Variablen gut definiert sind Der Unterschied zu einem Feedforward Netz ergibt sich aus der Tatsache dass vor der Bewertung des Ergebnisses auch die vorherigen Eingaben bekannt sind Rekurrente neuronale Netze konnen daher als mehrere neuronale Feedforward Netze betrachtet werden und Informationen von einem zum anderen Netz weitergeben werden 6 Rekurrente kunstliche neuronale Netze sind schwierig durch Methoden des maschinellen Lernens zu trainieren 7 Ein popularer Ansatz ist es daher nicht das Netz sondern das Auslesen des Netzes zu trainieren Das rekurrente neuronale Netz wird im Rahmen von Reservoir Computing als sogenanntes Reservoir betrachtet Im Falle von LSTMs werden die Netze durch Backpropagation Through Time siehe Backpropagation wahrend des Trainingsvorgangs in ein Feedforward Netz entsprechend der Sequenzlange umgewandelt 8 Damit wird die Komplexitat des Lernverhaltens ahnlich dem der herkommlichen Feedforward Netze Ausgangspunkt fur die Backpropagation Through Time ist dass die totale Verlustfunktion der Zeitreihe welche aus T displaystyle T nbsp Zeitschritten besteht wie folgt dargestellt werden kann L t 1 T l y t o t 8 displaystyle L sum t 1 T l y t o t theta nbsp wobei l displaystyle l nbsp eine Funktion ist welche die Ausgabe Output des Netzwerkens o t displaystyle o t nbsp zum Zeitpunkt t displaystyle t nbsp mit dem Ziel y t displaystyle y t nbsp vergleicht und wobei 8 displaystyle theta nbsp der zeitinvariante Parametervektor des rekurrenten neuronalen Netzes ist Backpropagation Through Time erlaubt durch Anwenden der Kettenregel die Berechnung der komponentenweisen totalen Ableitung d L d 8 i displaystyle frac dL d theta i nbsp Da der Output o t h t 1 8 displaystyle o t h t 1 theta nbsp selbst von Werten h t 1 displaystyle h t 1 nbsp des vorherigen Zeitschrittes t 1 displaystyle t 1 nbsp abhangt und diese von 8 displaystyle theta nbsp mussen diese vorherigen Zeitschritte in die Ableitung mit einbezogen werden Probleme beim Training von rekurrenten neuronalen Netzen konnen aufgrund von verschwindenden oder explodierenden Gradienten auftreten Um diese Probleme zu umgehen kann Teacher Forcing angewendet werden wobei man jedoch den Bias Exposure tradeoff eingeht 9 Aktivierungsfunktion BearbeitenDie am haufigsten verwendeten Aktivierungsfunktionen fur rekurrente neuronale Netze sind 10 11 Sigmoidfunktion g z 1 1 e z displaystyle g z frac 1 1 e z nbsp Tangens hyperbolicus g z e z e z e z e z displaystyle g z frac mathrm e z mathrm e z mathrm e z mathrm e z nbsp Rectifier g z max 0 z displaystyle g z max 0 z nbsp Verlustfunktion BearbeitenUm ein rekurrente neuronales Netz zu trainieren braucht man eine Moglichkeit die Fehler zu messen die es macht Dafur kann man eine sogenannte Verlustfunktion definieren Ziel ist es die Parameter zu finden die die Verlustfunktion fur die Trainingsdaten minimieren Eine ubliche Verlustfunktion ist die Kreuzentropie Ist n displaystyle n nbsp die Anzahl der Trainingsbeispiele dann ist die Verlustfunktion in Bezug auf die Vorhersagen o n displaystyle o n nbsp und die wahren Labels y n displaystyle y n nbsp gegeben durch 12 L y o 1 n i 1 n y i log o i displaystyle L y o frac 1 n sum i 1 n y i log o i nbsp GloVe Modell BearbeitenDas GloVe Modell ist eine Worteinbettungstechnik die eine Co Occurence Matrix X displaystyle X nbsp verwendet wobei jedes X i j displaystyle X i j nbsp die Anzahl der Male bezeichnet in denen ein Ziel i displaystyle i nbsp mit einem Kontext j displaystyle j nbsp aufgetreten ist Die Kostenfunktion J displaystyle J nbsp fur dieses Modell lautet J 8 1 2 i j 1 V f X i j 8 i T e j b i b j log X i j 2 displaystyle J theta frac 1 2 sum i j 1 V f X i j theta i T e j b i b j log X i j 2 nbsp wobei f displaystyle f nbsp eine Gewichtungsfunktion ist sodass f X i j 0 displaystyle f X i j 0 nbsp fur alle X i j 0 displaystyle X i j 0 nbsp ist 10 Literatur BearbeitenRajesh Arumugam u a Hands On Natural Language Processing with Python A practical guide to applying deep learning architectures to your NLP applications O O Packt 2018 ISBN 9 781 78913949 5Andreas Zell Simulation neuronaler Netze R Oldenbourg Verlag Munchen 1997 ISBN 3 486 24350 0 Weblinks BearbeitenJeffrey L Elman Finding Structure in Time Hrsg Wiley Online Library Marz 1990 doi 10 1207 s15516709cog1402 1 Michael I Jordan Chapter 25 Serial Order A Parallel Distributed Processing Approach Hrsg ScienceDirect Band 121 S 471 495 doi 10 1016 S0166 4115 97 80111 2 Einzelnachweise Bearbeiten Rudolf Kruse et al Neuronale Netze Computational Intelligence In Computational Intelligence Eine methodische Einfuhrung in Kunstliche Neuronale Netze Evolutionare Algorithmen Fuzzy Systeme und Bayes Netze Zweite Auflage Springer Vieweg Wiesbaden 2015 abgerufen am 5 April 2017 Rudolf Kruse et al Computational Intelligence Eine methodische Einfuhrung in Kunstliche Neuronale Netze Evolutionare Algorithmen Fuzzy Systeme und Bayes Netze Zweite Auflage Springer Vieweg Wiesbaden 2015 ISBN 978 3 658 10903 5 S 515 IBM What are recurrent neural networks Holk Cruse Neural Networks as Cybernetic Systems Deep Learning with R Second Edition Autoren Francois Chollet Tomasz Kalinowski J J Allaire Verlag Simon and Schuster 2022 ISBN 1638350787 Seite 451 https books google de books id 5l56EAAAQBAJ amp pg PT451 Towards Data Science How Recurrent Neural Networks work Reservoir Computing Reservoir Lab Ghent 30 Mai 2008 archiviert vom Original am 5 April 2010 abgerufen am 2 April 2010 Chris Nicholson Adam Gibson A Beginner s Guide to Recurrent Networks and LSTMs Deeplearning4j Open source distributed deep learning for the JVM In deeplearning4j org Archiviert vom Original am 16 Juli 2016 abgerufen am 16 Juli 2016 Quantifying Exposure Bias for Open ended Language Generation https arxiv org abs 1905 10617 a b Stanford University Recurrent Neural Networks cheatsheet Nico Frisch Wenhao Peng Tim Vieth Mattes Westdorp Universitat zu Koln Deep Feedforward Netze und Rekurrente Neuronale Netze Denny s Blog Recurrent Neural Networks TutorialNormdaten Sachbegriff GND 4379549 3 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Rekurrentes neuronales Netz amp oldid 237407323