Also erstmal guten Morgen zusammen und ich würde gerne heute nochmal anfangen mit einer Wiederholung
von den kleinen, rekorenten Netzen. Klein heißt nicht, dass die jetzt sozusagen simpel sind,
im Sinne von naja das ist trivial und dann kommen die Großen, die sind wichtiger, natürlich sind
sie wichtiger, aber das ist eine strukturelle Eigenschaft. Also klein meint, ich bestreibe nur
einen Ausschnitt der Welt und dann gibt es offensichtlich eine Umwelt davon und diese Umwelt
wirkt auf dieses kleine Modell. Das heißt also ich habe da einen externen Einfluss dran und das
kann man halt mit so einem Forward- und Backward-Abboard schreiben. Dann haben wir uns den
Existenzbeweis hier angeguckt, dann haben wir dem Korrespondenzprinzip gefolgt und gesagt,
wir wollen Gleichungen, Architekturen, lokale Algorithmen untersuchen. Die Gleichungen hier,
die haben wir in dem Existenzbeweis aufgestellt, denn die Umwandlung in der Architektur ist mehr
oder weniger straightforward. Wenn man denn annimmt, dass diese drei Matrizen ABC in der
Architektur hier immer wieder vorkommt, dann habe ich sozusagen eine Ähnlichkeit von den Gleichungen
in der Architektur. Beim Laden muss ich mich halt darum kümmern, ich könnte einfach hingehen,
so eine Architektur hinschreiben und per Initialisierung dafür sorgen, dass hier immer
diese B, A, C stehen und dann würde natürlich der erste Schritt richtig funktionieren, weil
dann kann ich ganz normal die Konnektoren hier hochrechnen. Ich würde eine Output-Geschichte
produzieren, der Vergleich Output-Target in den verschiedenen Stellen würde, aber dann zu
unterschiedlichen Gradienten führen, die die Gleichheit dieser Matrizen hier zerreißen und
von daher hätte ich danach, schon nach einem Larnschritt, hätte ich eben keine Äquivalenz
mehr von Architektur und Gleichungen. Wenn ich das aufrechterhalten will, muss ich dafür sorgen,
dass die A's hier immer gleich bleiben, genauso B und C und das macht man mit diesem Trick über
shared weights, indem man sagt, naja, die Gradienten, die von hier, hier und hier kommen,
die werden erst mal aufaddiert oder ihr Mittelwert gebildet, bevor dann für das eine A, was sich hier
im Speicher befindet, tatsächlich der Update gemacht wird. Und dass das mathematisch richtig ist,
haben wir alles hier gesehen und dann können wir uns endlich der Frage zuwenden, wie will ich jetzt
dynamische Systeme verstehen und die will ich eben so verstehen, dass ich sage, ich will etwas
kompliziertes erklären in y, aber die Frage, warum das kompliziert ist, ist gar nicht klar.
Es könnte kompliziert sein, weil die Eigendynamik kompliziert ist oder aber weil die externen Treiber
das System durcheinanderbringen und das auseinander zu destillieren hier, was ist Eigendynamik und was
ist der Einfluss vom externen Treiber, das ist die eigentliche Aufgabe in der Systemidentifikation.
Na ja, da ist natürlich auch eine Aufgabe, was ist die Leckstruktur im Verhalten zwischen Input und
Output hier, weil es ist ja nicht klar, dass ut-3 direkt hier wirkt, sondern es könnte sein,
dass ut-3 erst eine Zeit lang vor sich hin iterieren muss, bis es dann mal eine Konsequenz auf der
Outputseite hat. Also wir lernen hier dynamische Leckstrukturen und wir lernen diese Überlagerung
und wenn denn eben die Eigendynamik hier eine wesentliche Rolle spielt, dann kann ich auch mehr
wie einen Tag in Richtung Zukunft gucken. Jetzt müssen Sie sich mal so vorstellen, diese acht
Modelle haben wir vor 20 Jahren benutzt, um so etwa zehn Schritte Vergangenheit, fünf Schritte vor
Zukunft zu haben und weil das so wenige Schritte sind, deswegen war damals diese Long Short-Term
Memory-Geschichte kein Punkt. Die wurde ja erfunden für Long Memory-Effekte und wir hatten
einfach in unseren Anwendungen kein Long Memory. Was wir aber hatten, war, dass wir unvollständige
Input-Informationen hatten, sprich man soll irgendwie ein Stück Welt erklären, hatte aber
eigentlich nicht die Informationen, die die Formeln doch suggerieren, dass man sie haben müsste. Also
was macht man stattdessen? Man kann mehr Informationen in U suchen gehen, das ist schön,
wenn man sie findet. Wenn man sie nicht findet, hat man halt, muss man nicht aufgeben, muss man nur
weiter nachdenken. Dieses Weiter nachdenken führt dann dazu zu sagen, naja, ich tu ja nicht nur eine
Prognose in Richtung Zukunft machen, ich mach sie auch in der Vergangenheit. In der Vergangenheit
kann ich aber gucken, ob sie stimmte. Wenn sie nicht stimmte, dann sehe ich, aha, irgendwas habe
ich verpasst. Diesen Fehler in der Vergangenheit kann ich dann eben mitbenutzen als zusätzliche
Information, um den nächsten Schritt besser zu bestimmen. Also das heißt, auch in der Vergangenheit
bestimme ich Expectation, Minus Observation und die Differenz von beiden Seiten sollte 0 sein. Wenn
Presenters
Zugänglich über
Offener Zugang
Dauer
01:27:22 Min
Aufnahmedatum
2019-04-18
Hochgeladen am
2019-04-18 21:42:06
Sprache
de-DE