Hallo und willkommen zu diesem Muster ist es Horror.
Also gut, also haben wir den Speicher gerade aktualisiert, nachdem wir den neuen Zustand erreicht haben.
Und jetzt kümmern wir uns um den nächsten Tag.
Wie Sie jetzt wissen, ist das nächste Update.
Nun, im Grunde sind wir mit einem Übergang fertig, den wir mit dem letzten Element des Übergangs, dem neuen Zustand,
datiert haben.
Jetzt fangen wir also wieder von vorne an.
Und als wir wieder von vorne anfingen.
Es ist, als ob Sie wissen, dass wir uns in diesem neuen Zustand der Umgebung befinden, und was müssen wir jetzt natürlich tun?
Natürlich ist es eine Aktion zu spielen, weil wir bereits die Beobachtung der Nachrichtenzustände erhalten haben.
Jetzt müssen wir eine Aktion spielen. Daher müssen wir natürlich die Aktion zum
Auswählen der Aktion verwenden, um die Aktion abzuspielen.
Also lass es uns tun, lass uns eine neue Voivode-Aktion erstellen und lass uns die Aktion mit der Select-Aktion spielen, also nehme
ich mit.
Zunächst einmal muss angegeben werden, dass die select-Aktionsfunktion eine Methode des Objekts der zu erstellenden
Klasse ist.
Also ein Selbst, das Action auswählt.
Auf geht's.
Das ist also die nächste Aktion.
Und da natürlich die Select-Action-Funktion den Status als Eingabe annimmt, wird die Select-Action-Funktion natürlich
die Ausgabe des neuronalen Netzwerks zurückgeben, wenn der aktuelle Eingabezustand in das neuronale Netzwerk
eingeht.
Wir müssen also die Eingabestufe hier eingeben, und da dies die Zustände sind, die wir gerade jetzt in der
Umgebung erreicht haben, wo der Eingabestatus natürlich Sie angeben, weil dieser Zustand, den wir gerade zu dem
Zeitpunkt erreichten, den wir gerade erreichen, Newstead ist.
In dieser Select-Action-Funktion meine ich also, neue Stöcke zu setzen.
Also gut, mit dieser Codezeile spielen wir einfach die neue Aktion, nachdem wir den neuen Zustand erreicht haben.
OK und jetzt, da wir eine Aktion gespielt haben Nun, wir bekommen die Belohnung und deshalb bekommen wir Feedback mit der Belohnung.
Und wenn wir also mehr als 100 Elemente im Speicher haben, wäre es Zeit zu lernen.
Deshalb müssen wir jetzt das tun, was logisch ist, wenn Sie eine Aktion auswählen, die natürlich dazu
dient, die KI zu senken, um zu lernen.
Wenn es die Dinge richtig macht.
Und jetzt, da die Aktion gerade gut gespielt wurde, werden wir die KI dazu bringen, aus den Aktionen der letzten
100 Ereignisse zu lernen.
Aber bevor wir diese gelernte Funktion anwenden, müssen wir diese Bedingung festlegen, um sicherzustellen, dass wir bereits mehr als
100 Ereignisse erreicht haben, weil Sie wissen, dass wir aus den Zufallsstichproben des Speichers lernen.
Sie wissen, dass wir über einen riesigen Speicher von 10000 Elementen verfügen.
Wir nehmen einige Stichproben des Speichers von 100 Elementen und die KI lernt aus den
Informationen in dieser Stichprobe von 100 Zufallsübergängen.
Nehmen wir also diese Bedingung vor, um sicherzustellen, dass die Anzahl der Elemente des Speichers dieses
Speichers groß ist, und seien Sie vorsichtig. Nur ein kleiner
Trick. Selbstlernender Speicher ist das Objekt Ihrer Wiedergabespeicherklasse Attribut, das Speicher ist.
In der Tat müssen wir etwas von dem Speicher nehmen, in dem der erste Speicher das Objekt der
Wiedergabespeicherklasse ist und der zweite Speicher hier das Attribut dieses Speichers ist.
Wenn also die Anzahl der Elemente im Speicher gut ist, möchten wir, dass es größer als 100 ist, dann Cullin. Und was
passiert dann?
Wir können lernen, aber um zu lernen, müssen wir diese Zufallsstichprobe von 100 Übergängen erhalten, die wir mit
der einfachen Funktion erhalten können.
Und da die einfache Funktion die verschiedenen Chargen zum Zeitpunkt t in die Zustände zurückstellt, sind diese Daten 20 und die Aktionen
des Zeitpunkts t und wir waren bei 20.
Nun, was wir jetzt tun müssen, ist die Erstellung neuer Revivals, die zum
Zeitpunkt der nächsten Datumsstapel, der Stapel der Wörter und der Stapel der Aktionen sein
werden. Dabei können wir einfach die gleichen Namen vergeben wie wir für die Argumente hier gaben und sie sind hier.
Diese Variablen sind mit den Ergebnissen der einfachen Funktion identisch, da sie genau diese Stapel zurückgeben und der nächste
Zustand des Staates Wörter und Aktionen erfordert.
Was wir jetzt einfach tun müssen, ist, zuerst unser Speicherobjekt zu erhalten, und dann werden wir von diesem
Speicherobjekt die einfache Methode verwenden, die als Eingaben verwendet wird.
Nun, die Anzahl der Übergänge, von denen unsere KI lernen soll, beträgt 100.
Deshalb haben wir dafür gesorgt, dass wir mehr als hundert Übergänge hatten.
Es wird also aus 100 Übergängen der Erinnerung lernen.
Das Lernen wird also viel besser sein.
Und jetzt machen wir das wirklich.
Nun, da die Lernmethode eine Methode unserer Klasse ist.
Nun, wir müssen auf diese Learn-Methode von den zukünftigen Objekten zugreifen, die aus einer anderen Klasse erstellt
werden, und daher müssen wir selbst übernehmen.
Das Selbst bezieht sich auf dieses Ziel, das während des Unterrichts zu tun ist, und lernte dann, wie diese erlernte Methode
eine Methode erlernte, zu der diese Jungs hier natürlich den schlechten Zustand des belgischen Staates, die natürliche Welt und
die Bachche-Aktion stellen.
Dies sind unsere aus unserem Gedächtnis gesammelten Stapel. Wir erhalten 100 von ihnen,
weil wir 100 Übergänge von diesen 100 Übergängen haben. Wir nehmen 100 Zustände.
100 nächste Zustände. 100 Belohnungen.
Es wird aus all diesen zufälligen Chargen geschehen.
Perfekt.
Jetzt müssen wir die letzten Updates durchführen, nachdem Sie wissen, dass Sie einen neuen Status erreicht haben und in
Aktion sind.
Nun, wir haben dich eigentlich zum Spielen gebracht, aber diese Reaktion hatten wir immer noch nicht.
Das ist unser Selbst, die letzte Aktion, die den Voivode betrifft.
Stellen wir also sicher, dass wir das nicht vergessen.
Lass es uns gleich tun.
Wir werden die letzte Aktion selbst aktualisieren, die der letzten Aktion entspricht, und natürlich die Aktion, die wir mit
dieser Auswahlaktion hier bleiben.
In Ordnung, der letzte Abschnitt wird dann aktualisiert.
Gleiches für den neuen Staat.
Wir haben den neuen Status erreicht, aber das letzte Datum wurde noch nicht aktualisiert, da das letzte Datum natürlich vor dem Status zum
Zeitpunkt t lag.
Aber seitdem haben wir den neuen Staatsüberschuss erreicht, wenn es Zeit ist, einen zu überschreiten.
Nun, das letzte, was Sie hier gesagt haben.
Deshalb müssen wir auch aktualisiert werden.
Selbst, dass der letzte Zustand unserem neuen Zustand gleicht.
Da gehen wir.
Und was brauchen wir jetzt noch?
Nun, es bleibt nur noch eins übrig.
Das ist natürlich das Wort und das Wort ist genau das Wort, das wir in der Realität bekommen.
Das ist also das Argument dieser Funktion, die, wenn wir die Verbindung zu unserer Karte herstellen, das letzte Wort
sein wird.
Das ist das Wort, das wir direkt nach dem Spielen der Aktion in diesen neuen Zuständen erhalten.
Wenn wir also zu einem Ton weitermachen, wird dieses letzte Wort dasjenige sein, das minus eins ist, wenn wir weiter weg von dem Schritt kommen,
werden wir ein etwas schlechtes Wort minus 0 erhalten. 2, wenn wir dem Ziel näher kommen.
Wir erhalten eine etwas gute Belohnung 0. 1.
Und wenn wir zu nahe an einen Rand der Karte kommen, geht es um Strafe.
Wir bekommen für jeden minus eins.
Das ist das letzte Wort, das wir bekommen.
In der Realität passiert das tatsächlich auf der Karte.
Und das wird das Argument der Funktion sein.
Das letzte Wort hier.
Das ist genau das hier.
Da dies also das Argument der Aktualisierungsfunktion ist, das diesem entspricht,
waren wir nicht hier, und daher ist unser Selbst, dass die am Anfang in dieser Funktion initialisierte letzte Wortvariable das
neue Wort ist, das wir in Wirklichkeit bekommen, das Wort ist oder das ist das gleiche letzte Wort
Gut.
Jetzt haben wir unser letztes Wort aktualisiert.
Und jetzt, da wir gerade unser letztes Wort bekommen haben.
Nun können wir uns jetzt mit der Welt verabreden.
Sie erinnern sich an den Krieg, als sie hier als eine der Variablen des Objekts unserer Klasse initialisiert wurden.
Das ist das Fenster, das den Verlauf dieses Zuges verfolgen wird, indem er den Durchschnitt
der letzten 100 Belohnungen nimmt.
Sie wissen also, es wird wie ein Schiebefenster sein, das uns zeigt, wie sich der Mittelwert der Welt entwickelt.
Und da haben wir gerade unser letztes Wort bekommen.
Nun, wir können das Fenster, in dem wir waren, auf den neuesten Stand bringen.
Nun, wir müssen einfach dieses letzte Wort an das Fenster anhängen und deshalb werde
ich mir mein Kriegsfenster selbst nehmen, wenn wir das sagen, wenn sie das hören und ich werde die Append-Funktion verwenden.
Und innerhalb der Open-Funktion müssen wir das Element eingeben, das wir an das anfügen möchten, als wir
das getan haben. Natürlich möchten wir.
Alles klar perfekt.
Und da dieses Kriegsfenster eine feste Größe haben wird, wissen Sie, dass es kein wachsendes Fenster sein wird. Daher wird es ein
Fenster mit fester Größe sein, das mit der Zeit verschoben wird, um die Entwicklung der Welt zu zeigen.
Und so müssen wir uns jetzt für eine Größe dieses Winters entscheiden.
Und es ist einfach die Anzahl der Mittel der Belohnung, die wir in diesem Fenster haben werden.
So lassen Sie uns zum Beispiel die letzten 1000 Mittel der letzten 100 Wörter kennen.
Um dies sicherzustellen, werden wir hinzufügen, wenn dann geplant, dann nehmen wir unser Arbeitsfenster und fügen hier einfach
hinzu, wenn die Anzahl der Elemente im Fenster größer als 1000 ist.
Nun, wir wollen das erste Element davon löschen, das unser Fenster hat, und das erste
Element dieses Fensters muss Null indizieren.
Gut.
Jetzt stellen wir sicher, dass dieses Kriegsfenster niemals mehr als 1000 Elemente enthält.
Es gibt eintausend Mittel der letzten 100 Wörter, die perfekt sind. Dies wird ein Fenster mit fester Größe sein, sodass
wir sehen können, ob der Mittelwert des Wortes zunimmt.
Und deshalb, wenn das Training gut läuft und dementsprechend das Gericht macht, was wir wollen.
Perfekt.
Und jetzt bleibt nur noch ein winziges kleines Ding übrig, was es sein wird.
Denken Sie daran, dass diese Aktualisierungsfunktion nicht nur die verschiedenen Elemente des Übergangs im Kriegsfenster
aktualisiert, sondern auch die Aktion zurückgibt, die beim Erreichen dieses neuen Status ausgeführt wurde.
Das ist der Grund, warum wir das haben und dann ist das Datum gleich, dass wir weniger Signal haben und
deshalb sollte es etwas zurückgeben und das, was zurückkehren soll, ist natürlich das Handeln.
Das Letzte, was wir hier noch tun müssen, ist einfach die Aktion zu wiederholen, die gerade gespielt wurde, als die neue
Stufe erreicht wurde.
Und das ist unsere Update-Funktion.
Es werden alle erforderlichen Aktualisierungen durchgeführt und die Aktion wird geändert, wenn die neue Stufe erreicht wird.
Das ist perfekt.
Dies war die letzte schwierige Maßnahme, um all dies zu einem Prozess zu machen.
Jetzt wird der Rest gut sein.
Wir werden nur eine Kernfunktion erstellen, um die gewünschten Mittel im Fenster zurückzugeben.
Dann machen wir eine sichere Funktion, um das Gehirn des Autos zu retten, wann immer Sie die Anwendung beenden und
zu ihr zurückkehren möchten.
Und natürlich, da Sie das Gehirn Ihres Autos laden möchten, wenn Sie zurückkommen, kehren Sie
zur Anwendung zurück.
Am Ende erstellen wir eine Ladefunktion, die Ihr Modell lädt, nachdem Sie Ihr Modell mit derselben
Funktion gespeichert haben.
Also drei Funktionen dazu, aber es wird einfach sein.
Und dann haben wir den aufregendsten Abschnitt dieses ersten Moduls, nämlich die Demo, die wir sehen werden, wenn
die Luft funktioniert.
Wir werden sehen, ob das Auto die Ziele erreicht, und wir werden sehen, wie wir es verbessern können,
und schließlich müssen Sie Ihre erste KI aufbauen.
Ich kann es kaum erwarten, die Demo zu starten.
Lassen Sie uns diese drei Funktionen zuerst und bis dahin ich machen.