Hallo und herzlich willkommen im Statoil.
OK, also haben wir die Entropie berechnet und der Entropieliste hinzugefügt.
Jetzt machen wir einen zufälligen Drop einer Aktion entsprechend der Wahrscheinlichkeitsverteilung
des nächsten.
Also lass uns das tun.
Das ist der nächste Schritt.
Wir sind immer noch auf dem Laufenden, weil wir hier immer noch auf den Stufen laufen.
Und so wissen Sie jetzt, wie Sie die Action spielen.
Wir werden zuerst eine Variable für die Aktion namens action einführen, dann nehmen wir
unsere Verteilung der Wahrscheinlichkeiten und verwenden die multi no neuronale Funktion, um aus dieser Verteilung der Wahrscheinlichkeiten eine Zufallsentnahme zu
machen, und dann fügen wir diese Daten hinzu.
Es ist daher wichtig zu beachten, dass die Aktion tatsächlich ein Tensor mit nur einem Wert ist, aber Sie sollten
dies nicht als einfachen Wert betrachten.
Sie sollten dies als Tensor-Verdammung nacheinander sehen, die diesen Wert für die Aktion enthält.
Und das ist, weil es nicht immer noch in der gleichen Schleife für die Schleife ausgequetscht wird.
Wir erhalten die logarithmische Wahrscheinlichkeit, die mit der gerade gespielten Aktion verbunden ist.
Wenn ich also meine Glückwahrscheinlichkeit hier datiere, nehme ich das vorherige Glück, das wir hier berechneten,
aus dem vorherigen, und dann werde ich die andere Methode verwenden, in die ich 1 und die gerade eingegangene Aktion eingeben
werde spielen, weil wir die Glückswahrscheinlichkeit erhalten wollen, die mit dieser Aktion verbunden ist.
Das zweite Argument hier werde ich meine Handlung vorbringen, aber es muss eine fürchterliche Folter sein, wie es
von der gesammelten Funktion verlangt wird und die gesammelte Funktion nur mit einer Tensor-Ganzzahl indiziert.
Okay, jetzt haben wir gerade das Aussehen der angezeigten Aktion erhalten.
Und jetzt ist der nächste Schritt, das anzuhängen, was wir hier zur Liste bekommen haben.
Also haben wir den Wert bekommen.
Das haben wir hier als Ausgabe des Modells erhalten.
Dann haben wir auch das Sperrproblem.
Also fügen wir die Sperre der Liste der Sperren hinzu.
Die Entropie wird bereits an die Entropie angehängt und ist weniger gut, und die Belohnungen erhalten sie danach.
Also werden wir uns jetzt dem Wert öffnen und die Werteliste und den Rechtsprozess nachschlagen.
Lass uns das machen.
Wir nehmen unsere Werteliste, wir fügen hinzu, dass wir die Spend-Funktion verwenden,
und wir addieren den Wert, den das Modell perfekt zurückgegeben hat. Dann gilt das
Gleiche für die Sperr-Probs.
Und so können wir in dieser Append-Funktion ein Protokoll unseres Glücks setzen, wahrscheinlich wurde es hier gerade berechnet.
Alles in Ordnung, also sind unsere Listen jetzt gut aktualisiert.
Jetzt spielen wir die Aktion, denn hier haben wir die Aktion durch
Zufallsprinzip aus der Verteilung der Wahrscheinlichkeiten ausgewählt.
Aber wir haben es eigentlich noch nicht gespielt und wir werden es jetzt spielen, damit wir den neuen Zustand erreichen können und
somit den neuen Übergang bekommen und ihn spielen können.
Wir nehmen unsere Umgebung, weil wir die Aktion in unserer Umgebung spielen
und dann die Schrittmethode verwenden.
Im Inneren geben wir die Aktion an, die ausgewählt wurde, um sie abzuspielen, und um dies zu tun, ergreifen wir unsere Aktion und
fügen hinzu, dass keine hinzugefügt wird, da erwartet wird, dass dies die Funktion ist.
Ok, aber das gibt tatsächlich den neuen Status und auch die neue Belohnung zurück, denn durch das Erreichen des neuen Status erhalten wir eine neue
Belohnung und außerdem erhalten wir einen neuen Wert, damit Dunn weiß, ob das Spiel fertig ist oder nicht.
In Ordnung, damit spielen wir die Action, erreichen einen neuen Zustand und wir erhalten eine Belohnung und wir wissen, ob wir mit
dem Spiel fertig sind.
Und sprechen davon, mit dem Spiel fertig zu sein.
Nun, wir werden hier nur etwas hinzufügen, um sicherzustellen, dass ein Agent nicht in einem bestimmten Zustand gestapelt
ist.
Und um das zu tun, werden wir das auf folgende Weise sehr gut aktualisieren.
Nun, es wird gleich erledigt sein oder wir werden eine Bedingung hinzufügen, die besagt, dass die Episode des
Spiels nicht zu lange dauern sollte, und wir werden in der Hauptfunktion sehen, dass es einen maximalen Längenparameter
gibt, der gleich ist bis 10000.
Und wir wollen nicht, dass eine Episode länger als 10000 Einheiten dauert.
Wir werden also die Länge einer Episode hören, die der Länge einer Episode entspricht, und wir
werden eine Bedingung schreiben, die größer ist als die maximale Episode Lex, die wir nicht ausführlich gesagt haben.
Wir bekommen es von unseren Parametern für ein Ende hier Paramjit aber Ramstad.
Max ist ausführlich.
Dies bedeutet also, dass, wenn das Spiel beendet ist oder die Länge der Episode größer ist als die maximale
Länge der Episoden, die 10000 beträgt.
Nun ist das Spiel fertig und wir werden ein neues Spiel beginnen.
OK, das ist nur eine Vorsichtsmaßnahme.
Apropos Vorsichtsmaßnahme: Wir werden eine weitere Vorsichtsmaßnahme hinzufügen, um die Belohnung zwischen minus 1 und plus 1
zu halten.
Wir haben bereits die wir hier waren, aber wir wollen sicherstellen, dass die Belohnung zwischen minus 1 und plus 1
liegt.
Und um dies zu tun, müssen wir einfach die Belohnung aktualisieren, indem Sie das Maximum ausnutzen, dann
die Männer der Belohnung und 1.
Und hier nehmen wir das Maximum der Belohnung und 1 und Minus 1, und das wird sicherstellen, dass die Belohnung
zwischen minus eins und eins liegt.
Gut.
Also noch eine Percussion.
Jetzt wollen wir nur prüfen, ob das Spiel fertig ist. In diesem Fall starten wir die Umgebung neu.
Und warum müssen wir das jetzt überprüfen, weil wir gerade einen neuen Zustand erreicht haben.
Wir haben gerade einen neuen Übergang passiert.
Wir müssen das also überprüfen, nachdem wir diesen neuen Übergang passiert haben.
Nun, das Spiel ist nicht fertig. Wenn das Spiel erneut beendet wird, werden die
Umgebungen neu gestartet, indem die Episodenlänge auf Null gesetzt wird.
Und auch der Zustand wird neu initialisiert, um die Umgebung neu zu initialisieren
und die Reset-Funktion OK zu verwenden.
Jetzt kommen wir aus diesem Zustand heraus, der gerade geprüft wurde.
Und jetzt tun wir, seit wir einen neuen Zustand erreicht haben, während dieser neue Zustand
gerade von Ray bestimmt ist, denn die Zustände sind die Eingabebilder, die ursprünglich durch Arrays benannt wurden.
Nun müssen wir also den neuen Staat in eine gefolterte Antwort verwandeln.
Wir werden also unseren Zustand aktualisieren und die Fackelbibliothek verwenden.
Und natürlich gibt die nicht-thailändische Funktion zur Umwandlung dieser Nichtzahler die Eingangsbilder in einen Brennersensor
an.
Perfekt.
Und das letzte, was wir tun müssen, bevor wir aus dieser for-Schleife aussteigen, die die Schleife
unserer Schritte ist. Nun, es ist natürlich die Belohnung für die Watchlist.
Das ist das letzte, was aktualisiert werden muss. Wir haben hier alle Listen mit Ausnahme der Belohnung aktualisiert.
Also machen wir das jetzt, nehmen wir unsere Belohnungen und verwenden Ihre Gehirnfunktion, um das letzte
Wort anzufügen, das gerade perfekt erhalten wurde.
Und bevor wir die for-Schleife verlassen, müssen wir nur noch eine letzte Überprüfung durchführen, um zu überprüfen, ob
der Vorgang beendet ist.
Also fügen wir hier einfach eine Pause hinzu.
Das heißt, wenn wir damit fertig sind, stoppen wir die Erkundung und gehen direkt
zum nächsten Schritt über, dem Update des gemeinsam genutzten Modells. Jetzt sind wir damit fertig, da der Agent seine Erkundung nun
durchgeführt hat.
Es wird das gemeinsam genutzte Modell aktualisieren, und wir werden uns im nächsten Tutorial darum kümmern.