Hallo und herzlich Willkommen im Intertoto Gewürz.
In Ordnung, also werden wir in diesem neuen Codeabschnitt Erfahrung mit Spielen umsetzen.
Wir werden also eine neue Klasse erstellen, die als Wiederholungsspeicher bezeichnet wird und die Erfahrung so implementiert, dass sie genau so
spielt, wie Sie es in den Intuitionsvorlesungen gesehen haben.
Aber zuerst wollen wir uns kurz an die Wiederholung der Erfahrung erinnern.
Sie wissen also, dass diese künstliche Intelligenz auf Markov-Entscheidungsprozessen beruht, und Markov-Entscheidungsprozesse bestehen
aus der Betrachtung einer Reihe von Ereignissen.
Ereignisse sind also Sie wissen zum Beispiel von einem Zustand zum nächsten und Tipis.
Aber wenn die Ereignisse seit dem nächsten Tag so gut waren, hängt das sehr vom aktuellen Zustand ab.
Nun, das Netzwerk würde nicht gut laufen.
Für diejenigen, die aus dem Deep Learning-Kurs kommen, ist dies genau das Gleiche wie bei einem Zeitschritt, in
dem wir unsere Zeitreihe gelernt haben.
Es lernte nichts, weil ein Zeitschritt nicht ausreichte, um ein Modell zu
verstehen, um langfristige Zusammenhänge zu verstehen.
So ist das hier auch und deshalb müssen wir die Erlebniswiedergabe implementieren.
Wie funktioniert das?
Nun, das ist sehr einfach, anstatt nur den aktuellen Zustand zu betrachten, der zum Zeitpunkt t nur ein
Zustand ist.
Wir werden in der Vergangenheit mehr darüber nachdenken.
Also genau wie bei Lithien und deshalb wird unsere Veranstaltungsreihe nicht so sein.
Und ich nehme an, dass dies zum Beispiel die einhundert Staaten in der Vergangenheit sein werden.
Also als T-minus einhundertachtzig minus 99 bis zu minus 1 und dann S-T.
Mit anderen Worten, wir fügen 100 weniger Übergänge in das hinzu, was wir als Erinnerung
bezeichnen, und deshalb haben wir ein Langzeitgedächtnis im Gegensatz zu einem Kurzzeitgedächtnis oder
sogar, sollte ich sagen, ein Sofortgedächtnis.
Und sobald wir diese Erinnerung der letzten 100 Ereignisse erstellt haben, werden wir einfach einige zufällige
Stapel dieser Übergänge benötigen, um unser nächstes Update durchzuführen.
Dies ist unser nächster Schritt, indem wir den nächsten Abschnitt auswählen. Daher werden wir in dieser Replay-Speicherklasse,
die wir für Replay Experience implementieren, drei Funktionen erstellen.
Zunächst einmal ist die Funktion wie gewohnt für jede Klasse der Fall.
In dieser Funktion definieren wir also die Variablen, die an die zukünftigen Instanzen der Klasse angehängt werden, bei der es
sich um die zukünftigen Objekte handelt, die aus dieser Klasse erstellt werden.
Und so werden diese Variablen ganz einfach der Speicher der 100 Übergänge zu 100 Ereignissen sein.
Und die Kapazität, die die Zahl 100 ist, können Sie gerne länger ausprobieren, indem Sie die
Kapazität erhöhen.
Das ist also die erste Funktion in dieser Funktion, und dann werden wir zwei weitere Funktionen erstellen, eine
Push-Funktion, um sicherzustellen, dass der Speicher niemals mehr als 100 Übergänge enthält.
Und dazu nutzen wir die Kapazität, indem wir nur eine einfache Bedingung ausführen, und dann werden wir
schließlich die einfache Funktion erstellen, und das wird natürlich sein, um einige Übergänge in diesem Speicher der
letzten 100 Übergänge abzutasten.
Also gut, beginnen wir mit der Einführung der Klasse.
Wie Sie wissen, fangen wir mit der Klasse an und geben sie an die Klasse weiter, die wir Wiedergabespeicher nennen. Dann
geben wir in Klammern das Objekt und dann Cullin ein. Dann beginnen wir mit der ersten Funktion.
Das Ende ist Funktion.
Das ist also genau so wie vor dem Tod.
Dann zwei Unterstriche, noch einmal zwei Unterstriche und dann die Variablen.
Es gibt also natürlich selbst die Variable, die an die zukünftigen Instanzen der Klasse der zukünftigen
Objekte angehängt ist, und dann haben wir eine andere Variable für Sie, mit der Sie einige
andere Erfahrungen mit den Erinnerungen machen können sei die Kapazität.
Diese Kapazität wird also einfach die Nummer einhundert sein, weil wir mit den
hundert weniger Übergängen Erfahrung sammeln werden.
Alles klar und dann Collon Und jetzt geht es los.
Gehen wir in die Funktion hinein und definieren wir die Variablen unseres Wiedergabespeicherobjekts.
Die erste wird die Fähigkeit zum Selbstunterricht sein, und wie Sie wahrscheinlich verstanden haben, wird dies die Kapazität sein, die die maximale Anzahl
von Übergängen ist, die wir in unserer Erinnerung an Ereignisse haben möchten.
Dies entspricht den Argumenten, die eingegeben werden, wenn ein Objekt der Wiedergabespeicherklasse
erstellt wird und daher Kapazität ist.
Das ist das Argument der init-Funktion.
Also Kapazität.
Um nicht selbst verwirrt zu sein, dass Kapazität der Name der Variablen ist, die an das
Objekt angehängt ist, und Kapazität hier das Argument, das beim Erstellen eines Objekts der Wiedergabespeicherklasse eingegeben wird.
Gut.
Und dann haben wir einen zweiten Woiwode.
Das ist natürlich die Erinnerung.
So lernte Nemec selbst.
Gut.
Und was soll diese Erinnerung an Voivode sein?
Nun, dieser Speicher soll die letzten 100 Ereignisse enthalten und daher sollte dies ein einfacher Test sein.
Sie kennen eine Liste, die die letzten 100 Ereignisse der letzten 100 Übergänge enthält und die Liste
initialisiert.
Es gibt nichts Einfacheres, wir fügen nur solche Klammern hinzu.
Und es geht los.
Unser Gedächtnis wird initialisiert, also zu Beginn des Experiments oder genauer zu Beginn der Erkundung
ist das Gedächtnis eine leere Liste und dann werden wir die Übergänge setzen.
Jedes Mal, wenn wir einen zukünftigen Zustand erreichen.
Und davon reden wir genau mit der nächsten Funktion, die wir
Push-Funktion nennen.
Wir werden diese Push-Funktion einrichten, um die Ereignisse in diese Speicherliste einzufügen, und dann verwenden wir die
Kapazität, um sicherzustellen, dass diese Speicherliste immer 100 Ereignisse enthält und niemals mehr.
Also gut, machen wir das auch im nächsten.
Und bis dahin ich