<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Rekurrentes_neuronales_Netz</id>
	<title>Rekurrentes neuronales Netz - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Rekurrentes_neuronales_Netz"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rekurrentes_neuronales_Netz&amp;action=history"/>
	<updated>2026-06-05T14:05:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Rekurrentes_neuronales_Netz&amp;diff=616406&amp;oldid=prev</id>
		<title>imported&gt;Rosa Olmos: /* Pseudocode */ def -&gt; function</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rekurrentes_neuronales_Netz&amp;diff=616406&amp;oldid=prev"/>
		<updated>2025-07-05T12:46:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pseudocode: &lt;/span&gt; def -&amp;gt; function&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Als &amp;#039;&amp;#039;&amp;#039;rekurrente&amp;#039;&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;&amp;#039;rückgekoppelte neuronale Netze&amp;#039;&amp;#039;&amp;#039; bezeichnet man [[Neuronales Netz|neuronale Netze]], die sich im Gegensatz zu den [[Künstliches Neuron|Feedforward-Netzen]] durch Verbindungen von [[Nervenzelle|Neuronen]] einer Schicht zu Neuronen derselben oder einer vorangegangenen Schicht auszeichnen. Im [[Gehirn]] ist dies die bevorzugte Verschaltungsweise neuronaler Netze, insbesondere im [[Neocortex]]. In [[künstliches neuronales Netz|künstlichen neuronalen Netzen]] wird die rekurrente Verschaltung von [[künstliches Neuron|Modellneuronen]] benutzt, um zeitlich codierte Informationen in den Daten zu entdecken.&amp;lt;ref name=&amp;quot;kruse-online&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;kruse-print&amp;quot; /&amp;gt; Beispiele für solche rekurrenten neuronalen Netze sind das [[Elman-Netz]], das [[Jordan-Netz]], das [[Hopfield-Netz]] sowie das vollständig verbundene neuronale Netz.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Neuronal-Networks-Feedback.png|mini|Verschiedene Arten von Rückkopplungen: Die blaue Kante (&amp;lt;math&amp;gt;w_d&amp;lt;/math&amp;gt;) ist eine direkte, die grüne (&amp;lt;math&amp;gt;w_i&amp;lt;/math&amp;gt;) eine indirekte und die rote (&amp;lt;math&amp;gt;w_l&amp;lt;/math&amp;gt;) eine seitliche Rückkopplung.]]&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
Ein rekurrentes neuronales Netz hat ein Gedächtnis, weil es Informationen aus früheren Eingaben verwendet, um die aktuelle Eingabe und Ausgabe zu beeinflussen. Während traditionelle tiefe neuronale Netze davon ausgehen, dass Eingaben und Ausgaben voneinander unabhängig sind, hängt die Ausgabe rekurrenter neuronaler Netze von den vorherigen Elementen innerhalb der Sequenz ab. Während zukünftige Ereignisse auch bei der Bestimmung der Ausgabe einer bestimmten Sequenz hilfreich wären, können unidirektionale rekurrente neuronale Netze diese Ereignisse nicht in ihren Vorhersagen berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Merkmal von rekurrenten Netzen besteht darin, dass sie Parameter über alle Schichten des Netzes hinweg gemeinsam nutzen. Während Feedforward-Netze über 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 [[Gradientenabstiegsverfahren|Gradientenabstiegs]] angepasst, um das [[Bestärkendes Lernen|bestärkende Lernen]] zu erleichtern.&amp;lt;ref&amp;gt;IBM: [https://www.ibm.com/topics/recurrent-neural-networks What are recurrent neural networks?]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Typen von rekurrenten neuronalen Netzen ==&lt;br /&gt;
Rekurrente Netze lassen sich folgendermaßen unterteilen:&lt;br /&gt;
* Bei einer direkten Rückkopplung ({{enS|direct feedback}}) wird der eigene Ausgang eines Neurons als weiterer Eingang genutzt.&lt;br /&gt;
* Die indirekte Rückkopplung ({{enS|indirect feedback}}) verbindet den Ausgang eines Neurons mit einem Neuron der vorhergehenden Schichten.&lt;br /&gt;
* Die seitliche Rückkopplung ({{enS|lateral feedback}}) verbindet den Ausgang eines Neurons mit einem anderen Neuron derselben Schicht.&lt;br /&gt;
* Bei einer vollständigen Verbindung hat jeder Neuronenausgang eine Verbindung zu jedem anderen Neuron.&lt;br /&gt;
Praktische Anwendung finden rekurrente neuronale Netze bei Problemstellungen, die das Verarbeiten von Sequenzen erfordern. Beispiele dafür sind [[Handschrifterkennung]], [[Spracherkennung]] und [[Maschinenübersetzung]]. Die hierbei vorherrschende Art der rekurrenten neuronalen Netze sind [[Long short-term memory|LSTMs]] beziehungsweise ähnliche Varianten, die auf einer direkten Rückkopplung basieren.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung von Rekurrenten neuronalen Netzen kann in gängigen Programmbibliotheken wie [[PyTorch]] bequem in Python erfolgen und dann mit [[Just-in-time-Kompilierung]] in effizienten Code übersetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Elman-Netz ===&lt;br /&gt;
Ein [[Elman-Netz]] ist ein einfaches rekurrentes [[künstliches neuronales Netz]], das durch vorhandene [[Rückkopplung]]en von [[Kante (Graphentheorie)|Kanten]] zwischen den [[Künstliches Neuron|künstlichen Neuronen]] in der Lage ist, zeitliche Abhängigkeiten von Eingaben implizit zu verarbeiten. Benannt ist diese Netz-Architektur nach [[Jeffrey L. Elman]], der diese Struktur [[1990]] vorschlug.&lt;br /&gt;
&lt;br /&gt;
Ein Elman-Netzwerk ist ein dreischichtiges neuronales Netz, dem man eine Menge von Kontexteinheiten hinzufügen 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 Rückverbindungen speichern eine Kopie der vorherigen Werte der versteckten Einheiten in den Kontexteinheiten, weil sie sich über die Verbindungen ausbreiten, bevor die Lernregel angewendet wird. Somit kann das Netzwerk eine Art Zustand aufrechterhalten, der es ihm ermöglicht, Aufgaben wie die Sequenzvorhersage auszuführen, die über die Leistungsfähigkeit eines standardmäßigen [[mehrlagiges Perzeptron]] hinausgehen.&lt;br /&gt;
&lt;br /&gt;
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, können alle anderen Schichten vollständig verbunden und alle Gewichte modifizierbar sein. Die wiederkehrenden Verbindungen der Kontextschicht stellen dem System ein Kurzzeitgedächtnis zur Verfügung. Die versteckten Einheiten beobachten nicht nur die eigentliche Eingabe, sondern erhalten über die Kontextschicht auch Informationen über ihren eigenen Zustand im letzten Zeitschritt. Da zu einem bestimmten Zeitschritt verborgene Einheiten bereits durch Eingaben in früheren Zeitschritten beeinflusst wurden, umfasst diese Wiederholung eine Erinnerung, die von früheren Zuständen abhängt, obwohl ihr Einfluss mit der Zeit abnimmt. Während des Betriebs wird der Eingang des Elman-Netzes mit einer zeitlichen Folge von Eingangsvektoren versehen. Um die Gewichte zu ändern, kann die Ausgabe mit einem gewünschten Ausgabevektor verglichen werden, und zum Beispiel kann die verallgemeinerte [[Delta-Regel]] angewendet werden, um die Gewichte zu ändern. Dadurch lernt das System, eine Ausgabe nicht nur direkt der Eingabe zuzuordnen, sondern auch der zeitlichen Abfolge mehrerer aufeinanderfolgender Eingabevektoren.&amp;lt;ref&amp;gt;Holk Cruse: [https://www.brains-minds-media.org/archive/615/bmm615.pdf Neural Networks as Cybernetic Systems]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jordan-Netz ===&lt;br /&gt;
[[Jordan-Netz]]e ähneln 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.&lt;br /&gt;
&lt;br /&gt;
== Pseudocode ==&lt;br /&gt;
Gegeben sei eine Zeitreihe &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; der Länge &amp;lt;code&amp;gt;sequence_length&amp;lt;/code&amp;gt;.&lt;br /&gt;
Im rekurrenten neuronalen Netz gibt es eine Schleife, welche nacheinander alle Einträge der Zeitreihe &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; durch die Schichten &amp;lt;code&amp;gt;neural_network&amp;lt;/code&amp;gt; verarbeitet. Diese haben als Rückgabewert in jedem Zeitschritt &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; sowohl die Vorhersage &amp;lt;code&amp;gt;y_pred[i]&amp;lt;/code&amp;gt; als auch einen aktualisierten verdeckten Zustand &amp;lt;code&amp;gt;hidden&amp;lt;/code&amp;gt;, welcher die Länge &amp;lt;code&amp;gt;hidden_size&amp;lt;/code&amp;gt; hat. Als Resultat nach der Schleife wird die Sammlung aller Vorhersagen &amp;lt;code&amp;gt;y_pred&amp;lt;/code&amp;gt; zurückgegeben.&lt;br /&gt;
Der folgende Pseudocode (angelehnt an die Programmiersprache [[Python (Programmiersprache)|Python]]) illustriert die Funktionsweise eines rekurrenten neuronalen Netzes.&amp;lt;ref&amp;gt;Francois Chollet, Tomasz Kalinowski, J. J. Allaire: &amp;#039;&amp;#039;Deep Learning with R.&amp;#039;&amp;#039; 2. Auflage. Verlag Simon and Schuster, 2022, ISBN 978-1-63343-984-9, S. 451 [https://books.google.de/books?id=5l56EAAAQBAJ&amp;amp;pg=PT451 (books.google.de)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
::&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
function RNN_forward(x, sequence_length, neural_network, hidden_size):&lt;br /&gt;
    # Initialisiere Hidden State mit Nullen und Ausgabearray&lt;br /&gt;
    hidden = zeros(size=hidden_size)&lt;br /&gt;
    y_pred = zeros(size=sequence_length)&lt;br /&gt;
    &lt;br /&gt;
    for i in range(sequence_length):&lt;br /&gt;
        # Rufe RNN-Modell für einen Zeitschritt auf: &lt;br /&gt;
        # Verarbeite x[i] mit aktuellem Hidden State&lt;br /&gt;
		# Erhalte y_pred[i] und aktualisierten Hidden State&lt;br /&gt;
        y_pred[i], hidden = neural_network(x[i], hidden)&lt;br /&gt;
    &lt;br /&gt;
    return y_pred&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moderne Bibliotheken liefern laufzeitoptimierte Implementierungen der obigen Funktionalität oder erlauben die langsame Schleife durch [[Just-in-time-Kompilierung]] stark zu beschleunigen.&lt;br /&gt;
&lt;br /&gt;
== Trainieren von rekurrenten neuronalen Netzen ==&lt;br /&gt;
Das Trainieren eines typischen rekurrenten neuronalen Netzes umfasst folgende Schritte:&lt;br /&gt;
&lt;br /&gt;
* Ein Beispiel aus einem Datensatz wird eingegeben.&lt;br /&gt;
* Das Netz nimmt dieses Beispiel auf und wendet einige komplexe Berechnungen mit zufällig initialisierten Variablen an.&lt;br /&gt;
* Ein vorhergesagtes Ergebnis wird produziert.&lt;br /&gt;
* Der Vergleich dieses Ergebnis mit dem erwarteten Wert ergibt einen Fehler.&lt;br /&gt;
* Wenn sich der Fehler durch denselben Pfad wieder ausbreitet, werden die Variablen angepasst.&lt;br /&gt;
* Die Schritte werden wiederholt, bis die Variablen gut definiert sind.&lt;br /&gt;
&lt;br /&gt;
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 können daher als mehrere neuronale Feedforward-Netze betrachtet werden und Informationen von einem zum anderen Netz weitergeben werden.&amp;lt;ref&amp;gt;Towards Data Science: [https://towardsdatascience.com/learn-how-recurrent-neural-networks-work-84e975feaaf7 How Recurrent Neural Networks work]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rekurrente künstliche neuronale Netze sind schwierig durch Methoden des [[Maschinelles Lernen|maschinellen Lernens]] zu trainieren.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://snn.elis.ugent.be/rcbook |titel=Reservoir Computing |hrsg=Reservoir Lab Ghent |datum=2008-05-30 |offline=1 |archiv-url=https://web.archive.org/web/20100405215648/http://snn.elis.ugent.be/rcbook |archiv-datum=2010-04-05 |abruf=2010-04-02}}&amp;lt;/ref&amp;gt; Ein populärer 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.&lt;br /&gt;
Im Falle von LSTMs werden die Netze durch [[Backpropagation-Through-Time]] (siehe [[Backpropagation]]) während des Trainingsvorgangs in ein Feedforward-Netz entsprechend der Sequenzlänge umgewandelt.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Chris Nicholson, Adam Gibson |url=http://deeplearning4j.org/lstm.html |titel=A Beginner&amp;#039;s Guide to Recurrent Networks and LSTMs - Deeplearning4j: Open-source, distributed deep learning for the JVM |werk=deeplearning4j.org |offline=1 |archiv-url=https://web.archive.org/web/20160716162501/http://www.deeplearning4j.org/lstm.html |archiv-datum=2016-07-16 |abruf=2016-07-16}}&amp;lt;/ref&amp;gt; Damit wird die Komplexität des Lernverhaltens ähnlich dem der herkömmlichen Feedforward-Netze.&lt;br /&gt;
&lt;br /&gt;
Ausgangspunkt für die Backpropagation-Through-Time ist, dass die totale Verlustfunktion der Zeitreihe, welche aus &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; Zeitschritten besteht, wie folgt dargestellt werden kann:&lt;br /&gt;
:&amp;lt;math&amp;gt;L=\sum_{t=1}^T l(y_t,o_t(\theta))&amp;lt;/math&amp;gt;,&lt;br /&gt;
wobei &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; eine Funktion ist, welche die Ausgabe (Output) des Netzwerkens &amp;lt;math&amp;gt;o_t&amp;lt;/math&amp;gt; (zum Zeitpunkt &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;) mit dem Ziel &amp;lt;math&amp;gt;y_t&amp;lt;/math&amp;gt; vergleicht und wobei &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; der [[Zeitinvarianz|zeitinvariante]] Parametervektor des rekurrenten neuronalen Netzes ist.&lt;br /&gt;
Backpropagation-Through-Time erlaubt durch Anwenden der [[Kettenregel]] die Berechnung der (komponentenweisen) [[Totale Ableitung|totalen Ableitung]] &amp;lt;math&amp;gt;\frac{d L}{d \theta_i}&amp;lt;/math&amp;gt;. Da der Output &amp;lt;math&amp;gt;o_t(h_{t-1}(\theta))&amp;lt;/math&amp;gt; selbst von Werten &amp;lt;math&amp;gt;h_{t-1}&amp;lt;/math&amp;gt; des vorherigen Zeitschrittes &amp;lt;math&amp;gt;t-1&amp;lt;/math&amp;gt; abhängt und diese von &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;, müssen diese vorherigen Zeitschritte in die Ableitung mit einbezogen werden.&lt;br /&gt;
&lt;br /&gt;
Probleme beim Training von rekurrenten neuronalen Netzen können 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.&amp;lt;ref&amp;gt;Quantifying Exposure Bias for Open-ended Language Generation https://arxiv.org/abs/1905.10617&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aktivierungsfunktion ==&lt;br /&gt;
Die am häufigsten verwendeten [[Aktivierungsfunktion]]en für rekurrente neuronale Netze sind:&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;Stanford University: [https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks Recurrent Neural Networks cheatsheet]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Nico Frisch, Wenhao Peng, Tim Vieth, Mattes Westdörp, Universität zu Köln: [https://www.mi.uni-koeln.de/wp-znikolic/wp-content/uploads/2021/02/20210108_Neuronale_Netze.pdf Deep Feedforward Netze und Rekurrente Neuronale Netze]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Sigmoidfunktion]]: &amp;lt;math&amp;gt;g(z) = \frac{1}{1 + e^{-z}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* [[Tangens hyperbolicus und Kotangens hyperbolicus|Tangens hyperbolicus]]: &amp;lt;math&amp;gt;g(z) = \frac{\mathrm{e}^z - \mathrm{e}^{-z}}{\mathrm{e}^z + \mathrm{e}^{-z}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* [[Rectifier (neuronale Netzwerke)|Rectifier]]: &amp;lt;math&amp;gt;g(z) = \max(0, z)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verlustfunktion ==&lt;br /&gt;
Um ein rekurrentes neuronales Netz zu trainieren, braucht man eine Möglichkeit, die Fehler zu messen, die es macht. Dafür kann man eine sogenannte Verlustfunktion definieren. Ziel ist es, die Parameter zu finden, die die Verlustfunktion für die Trainingsdaten minimieren.&lt;br /&gt;
&lt;br /&gt;
Eine übliche Verlustfunktion ist die [[Kreuzentropie]]. Ist &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; die Anzahl der Trainingsbeispiele, dann ist die Verlustfunktion in Bezug auf die Vorhersagen &amp;lt;math&amp;gt;o_n&amp;lt;/math&amp;gt; und die wahren Labels &amp;lt;math&amp;gt;y_n&amp;lt;/math&amp;gt; gegeben durch&amp;lt;ref&amp;gt;Denny’s Blog: [https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-2/ Recurrent Neural Networks Tutorial]&amp;lt;/ref&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;L(y, o) = -\frac{1}{n}\sum_{i=1}^{n}y_i\log(o_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zielfunktionen ==&lt;br /&gt;
Mit einem geeigneten &amp;lt;math&amp;gt;P_\theta&amp;lt;/math&amp;gt; fährt man fort, den Fehler aus den Zeitschritt zu minimieren und die Anpassung aus dem Aktualisierungsschritt zu maximieren. Dadurch wird jede Beobachtung des Ergebnisses &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; zweimal verwendet. Der Wert des verborgenen Zustands vor einer Aktualisierung wir mit &amp;lt;math&amp;gt;z(t-)&amp;lt;/math&amp;gt; bezeichnet und danach mit &amp;lt;math&amp;gt;z(t)&amp;lt;/math&amp;gt;. Die Verlustfunktion für den Prognoseschritt ist die negative logarithmische Wahrscheinlichkeit der Daten:&lt;br /&gt;
:&amp;lt;math&amp;gt;L_{pred}(y_i, \theta) = -\sum_{i=1}^{N}\sum_{t=t_{0,i}}^{T_i}\log(p_\theta(y|z(t-))&amp;lt;/math&amp;gt;&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;z(t-)&amp;lt;/math&amp;gt; der endgültige Wert des verborgenen Zustands vor dem Aktualisierungsschritt. Die zusätzliche Verlustfunktion, um sicherzustellen, dass nach dem Aktualisierungsschritt die durch den neuen Wert des verborgenen Zustands implizierte Ergebnisverteilung nahe beim beobachteten Datenpunkt &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; liegt, ist&lt;br /&gt;
:&amp;lt;math&amp;gt;L_{jump}(y_i, \theta) = -\sum_{i=1}^{N}\sum_{t=t_{0,i}}^{T_i} m_i \log(p_\theta(y|z(t))&amp;lt;/math&amp;gt;&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;m_i&amp;lt;/math&amp;gt; eine binäre Maske, die nützlich ist, wenn ein Aktualisierungsschritt erforderlich ist, z. B. aufgrund von Änderungen in &amp;lt;math&amp;gt;z(t)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; jedoch entweder nicht gemessen wird oder aus anderen Gründen fehlt. Wenn der Beobachtungsprozess mit Fehlern gemessen wird, können wir dies durch die Verwendung einer [[Kullback-Leibler-Divergenz]] als Verlustfunktion beschreiben:&lt;br /&gt;
:&amp;lt;math&amp;gt;L_{jump}(y_i, \theta) = -\sum_{i=1}^{N} KL(p_\theta(y|z(t)||p_{obs}(y,\sigma^2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;p_{obs}(y,\sigma^2)&amp;lt;/math&amp;gt; die angenommene Verteilung der Antwort &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; bei gegebener Beobachtung &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; und der Annahme eines mittleren Messfehlers von Null mit [[Varianz]] &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt;.&amp;lt;ref&amp;gt;Oisin Fitzgerald, Oscar Perez-Concha, Blanca Gallego-Luxan, Alejandro Metke-Jimenez, Lachlan Rudd, Louisa Jorm: [https://arxiv.org/pdf/2304.07025 Continuous time recurrent neural networks: overview and application to forecasting blood glucose in the intensive care unit]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GloVe Modell ==&lt;br /&gt;
Das GloVe Modell ist eine Worteinbettungstechnik, die eine Co-Occurence-Matrix &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; verwendet, wobei jedes &amp;lt;math&amp;gt;X_{i,j}&amp;lt;/math&amp;gt; die Anzahl der Male bezeichnet, in denen ein Ziel &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; mit einem Kontext &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; aufgetreten ist. Die Kostenfunktion &amp;lt;math&amp;gt;J&amp;lt;/math&amp;gt; für dieses Modell lautet&lt;br /&gt;
:&amp;lt;math&amp;gt;J(\theta) = \frac{1}{2} \sum_{i,j=1}^{|V|}f(X_{i,j})(\theta_i^Te_j+b_i+b_j&amp;#039;-\log(X_{i,j}))^2&amp;lt;/math&amp;gt;&lt;br /&gt;
wobei &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; eine Gewichtungsfunktion ist, sodass &amp;lt;math&amp;gt;f(X_{i,j}) = 0&amp;lt;/math&amp;gt; für alle &amp;lt;math&amp;gt;X_{i,j} = 0&amp;lt;/math&amp;gt; ist.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
* Rajesh Arumugam u. a.: &amp;#039;&amp;#039;Hands-On Natural Language Processing with Python. A practical guide to applying deep learning architectures to your NLP applications.&amp;#039;&amp;#039; Packt, O. O. 2018, ISBN 978-1-78913-949-5.&lt;br /&gt;
&lt;br /&gt;
* Andreas Zell: &amp;#039;&amp;#039;Simulation neuronaler Netze.&amp;#039;&amp;#039; R.&amp;amp;nbsp;Oldenbourg Verlag, München 1997, ISBN 3-486-24350-0.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Jeffrey L. Elman&lt;br /&gt;
   |Titel=Finding Structure in Time&lt;br /&gt;
   |Sammelwerk=Cognitive Science&lt;br /&gt;
   |Auflage=&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Datum=1990-03&lt;br /&gt;
   |ISBN=&lt;br /&gt;
   |Seiten=&lt;br /&gt;
   |DOI=10.1207/s15516709cog1402_1}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Michael I. Jordan&lt;br /&gt;
   |Titel=Chapter 25 - Serial Order: A Parallel Distributed Processing Approach&lt;br /&gt;
   |Sammelwerk=Advances in Psychology&lt;br /&gt;
   |Band=121&lt;br /&gt;
   |Auflage=&lt;br /&gt;
   |Ort=&lt;br /&gt;
   |Datum=&lt;br /&gt;
   |ISBN=&lt;br /&gt;
   |Seiten=471-495&lt;br /&gt;
   |DOI=10.1016/S0166-4115(97)80111-2}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kruse-online&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |autor=Rudolf Kruse et al.&lt;br /&gt;
 |url=https://www.computational-intelligence.eu/?page_id=174&lt;br /&gt;
 |titel=Neuronale Netze {{!}} Computational Intelligence&lt;br /&gt;
 |werk=Computational Intelligence: Eine methodische Einführung in Künstliche Neuronale Netze, Evolutionäre Algorithmen, Fuzzy-Systeme und Bayes-Netze. Zweite Auflage&lt;br /&gt;
 |hrsg=Springer-Vieweg, Wiesbaden 2015&lt;br /&gt;
 |sprache=de&lt;br /&gt;
 |abruf=2017-04-05}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kruse-print&amp;quot;&amp;gt;&lt;br /&gt;
{{Literatur&lt;br /&gt;
 |Autor=[[Rudolf Kruse]] et&amp;amp;nbsp;al.&lt;br /&gt;
 |Titel=Computational Intelligence: Eine methodische Einführung in Künstliche Neuronale Netze, Evolutionäre Algorithmen, Fuzzy-Systeme und Bayes-Netze&lt;br /&gt;
 |Auflage=Zweite Auflage&lt;br /&gt;
 |Verlag=Springer-Vieweg&lt;br /&gt;
 |Ort=Wiesbaden&lt;br /&gt;
 |Datum=2015&lt;br /&gt;
 |ISBN=978-3-658-10903-5&lt;br /&gt;
 |Seiten=515}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4379549-3}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Neuroinformatik]]&lt;br /&gt;
[[Kategorie:Künstliche Neuronale Netze]]&lt;br /&gt;
[[Kategorie:Computational Neuroscience]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rosa Olmos</name></author>
	</entry>
</feed>