Hallo und herzlich willkommen zu diesem Tutorial.
Gut.
In den vorherigen Tutorials haben wir also das Gehirn gemacht oder wenn Sie das Gehirn für die A-3 sehen wollen, müssen
wir dieses Gehirn trainieren.
Aber um sein Gehirn zu trainieren, brauchen wir einen Optimierer, der dieses Werkzeug verwendet. Stecken Sie eine Zigarette in
die Mitte, um das Gewicht entsprechend dem Anteil, den sie zum Fehler zwischen den Vorhersagen und den Zielen
beitragen, zu tragen.
Und was wir bisher im ersten und zweiten Modul gemacht haben, haben wir im Training den Atom Optimizer per Fackel
verwendet.
Aber wie ich Ihnen gesagt habe, haben wir es mit einem sehr herausfordernden Problem zu tun, das ausbricht und der A-380-Algorithmus
allein reicht nicht aus, um dieses Problem zu lösen.
Wir brauchen ein paar angepasste Optimierer und viele verschiedene Tricks, um dieses Problem zu lösen, ohne lange warten
zu müssen.
Das ist also der Zweck, und deshalb haben wir einen separaten benutzerdefinierten Optimierer, der auf dem
Atom-Optimierer basiert.
Und das ist in dieser gemeinsamen feindlichen Klasse enthalten und warum das gemeinsame Atom.
Dies ist so, weil es tatsächlich der Atom-Optimierer ist, aber das funktioniert bei gemeinsamen Zuständen.
Wir werden also erklären, wie es funktioniert und es zu toile geht. Also
gehen wir die verschiedenen Funktionen hier durch, ohne sie zu töten, weil Sie wissen, dass wir für
den nächsten Moment etwas Energie behalten wollen fiel, was mehr als einhundert Zeilen Code braucht.
Sei also darauf vorbereitet.
Deshalb werden wir versuchen, in einem Statoil Statoil zu erklären, was hier vor sich geht.
Und fangen wir gleich an.
In Ordnung, so führen wir zuerst dieses Class-Sharing-Atom ein, das drei Funktionen enthält, die Init-Funktion,
die Shared Memory-Funktion und die Step-Funktion.
Was wir zuerst tun, ist, dass wir von optin das Atom erben, das natürlich der Atom-Optimierer ist und
das wir vom Upton-Modul aus der Fackel-Bibliothek bekommen.
Hier sind wir also einfach, die Werkzeuge alle mit dem Atom-Optimierer in Verbindung zu bringen, und dann beginnen
wir mit der init-Funktion.
Was passiert also hier?
Zuerst verwenden wir die Überfunktion, um von allen Werkzeugen und allen grundlegenden Parametern des Atoms die Atom-Klasse
zu erben. Diese grundlegenden Parameter befinden sich hier.
Harams lernen Rassenköder Epsilon und Gewichtsverlust.
Und dann beginnen wir mit einem Follow-up.
Diese erste Foluke für die Gruppe selbst, die Paramo gruppiert.
Was für Parum-Gruppen in Gruppen eingerichtet ist, enthält also alle Attribute des Optimierers.
Und unter diesen Attributen haben wir die Parameter, die wir haben, um
diese Parameter zu optimieren, um andere Wege des Netzwerks zu atomisieren, die in Selbstparum-Gruppen enthalten sind.
Also, da gehen wir Gruppe gehört zu Selbsthilfegruppen.
Und hier haben wir den zweiten Faltu, der diese Parameter erhalten wird, die wir
optimieren möchten und die vielleicht in Selbstzweifel-Parum-Gruppen enthalten sind.
Im Grunde gehen wir durch Selbsthilfegruppen, die alle Parameter enthalten. Für jede Parametergruppe und für Selbstgespräche
von Gruppen werden wir die Parameter durchgehen, die wir optimieren möchten.
Für die Gruppe Paramo bedeutet hier also für jeden Tancer die Gewichte, die wir optimieren wollen.
Also für jedes Sensorgewicht, das wir optimieren möchten, und was dann innerhalb dieser Gruppe mit diesen
vier Codezeilen geschieht.
Grundsätzlich geschieht, dass die vom Optimierer durchgeführte Aktualisierung auf einem exponentiellen gleitenden Durchschnitt des
Gradienten basiert.
Das ist diese Codezeile hier.
Das ist der exponentielle gleitende Durchschnitt des Gradienten von Moment eins, der in der Ordnung eins ist.
Die von Atom hergestellten Objekte basieren jedoch nicht nur auf einem exponentiellen gleitenden Durchschnitt
des Quadrats des Gradienten.
Dies ist ein exponentieller gleitender Durchschnitt des Impulsgradienten auf ein oder zwei.
Hier ist also der exponentielle gleitende Durchschnitt von einem.
Und hier ist der exponentielle gleitende Durchschnitt von zwei für jeden, den EMJ abgebaut hat.
Also, was passiert hier?
Und wenn Sie nun mehr über die Funktionsweise des exponentiellen gleitenden Durchschnitts erfahren
möchten, sollten Sie sich diese Adam-Methode zur stochastischen Optimierung ansehen, da der Atom-Optimierer, auf
den wir jetzt implementieren, im Wesentlichen basiert den Algorithmus hier ein.
Wenn Sie also mehr Details zur Funktionsweise des Algorithmus wünschen, ist dieses Dokument auf jeden Fall hilfreich.
Und dann haben Sie noch einige weitere Erklärungen zum Algorithmus mit den Atomen und den Regeln.
Sie wissen also, dass dies nur dann der Fall ist, wenn Sie dies angreifen möchten, bevor Sie die große Zugfunktion
angreifen, die danach ausgeführt wird.
OK, lass uns zu Bison zurückkehren.
Nun geht es weiter zur zweiten Funktion des gemeinsamen Speichers.
Jetzt werde ich nur noch ein paar Worte sagen.
Die Idee dieser Shared Memory-Funktion ist eine Art Tensor, bei dem Kuda, den Sie kennen, ein Beschleuniger ist, der auf
einer Ansicht basiert.
Im Grunde ist es hier also so, dass wir hier und hier die Tensoren der Zustände haben, die
das Gedächtnis gemeinsam haben und sich ein bisschen wie Tenso verhalten, das die beschleunigte Berechnung beschleunigen könnte.
Der Unterschied ist jedoch, dass hier die Sensoren, die sich den Speicher teilen, die Berechnung an einen Teil
des Hausarztes senden, den Sie oder Sie für alle gelähmten Bedrohungen zugänglich sind.
Das ist also im Grunde das, was hier gemacht wird.
Das ist ein bisschen wie 10 für diesen Kuda, aber er wird nur an einen Teil des GP gesendet, um für die
parallelisierten Bedrohungen zugänglich zu sein.
Gut.
Und dann haben wir den letzten Funktionsschritt.
Sie wissen also, dass diese Funktion die Schrittmethode des Atom-Optimierers ist, die wir in diesem Kurs verwenden.
Und wieder basiert dieser Algorithmus auf dem gleichen Papier, das wir zuvor gesehen haben.
Also dieser Algorithmus.
Sie möchten also die folgenden Codezeilen im Detail verstehen.
Nun wieder ich Ingrid's, um diesen Algorithmus durch dieses Papier zu betrachten.
Außerdem ist das, was hier gemacht wird, nicht zwingend, da es sich tatsächlich um eine Kopie der
Schrittmethode handelt, die diese Atomklasse ausübt.
Im Grunde haben wir es also getan, wenn wir unser Erbe verwenden würden, denn hier erben wir
von Acton, dass Adam und so, um unser Erbe zu nutzen. Was wir tun können,
anstatt alles zu tun, ist hier nur einen Kommentar zu schreiben Superfunktion, die wir auf unsere gemeinsame Adam-Klasse anwenden, dann unser
Objekt selbst und hier fügen wir einfach Schritt mit Klammern hinzu. Schritt ist die Methode des Akts in dieser Klasse, und
das ist genau das Gleiche.
Deshalb habe ich nur gesagt, dass hier nur eine Kopie der Schrittmethode des Acts in der
Atom-Klasse eingefügt wird.
Ich denke also, wenn Sie all dies durch diese Superfunktion ersetzen, die angewendet wurde, um Adam und die Schrittmethode gut zu
teilen, könnten wir genau dasselbe bekommen.
Also gut, also war es interessant, einen kurzen Blick darauf zu werfen.
Grundsätzlich können Sie dies als den Adam-Optimierer sehen.
Es ist, als hätten wir es tiefer betrachtet.
Aber wenn Sie mehr darüber erfahren möchten und verstehen möchten, was sich hinter der Szene abspielt? Nun,
ich möchte Sie dazu ermutigen, einen Blick auf diese Forschungsarbeit zu werfen.
Ich werde den Link hier in die Kommentare einfügen.
Sie wissen, dass Sie den gesamten Code detailliert miteinander verbunden haben.
Es ist also gut, wenn Sie es sich ansehen können.
Und jetzt hoffe ich, dass Sie eine großartige Energie haben, weil wir mit der Zugdatei fortfahren werden, die diese riesige Zugfunktion
enthalten wird, die unser Gehirn im Grunde trainieren wird, was wir jetzt tun können, weil
wir unseren Optimierer haben.
Also jetzt eine gute Pause.
Schlafen Sie gut und wann immer Sie sich in guter Verfassung befinden.
Fahren wir mit dem nächsten Schritt fort.
Bis dahin genießen Sie die KI.