Hallo und willkommen zu diesem Python-Tutorial.
Gut.
In diesem Öl werden wir die Funktion erstellen, die jedes Mal die richtige Aktion auswählt.
Im Grunde werden wir den Teil implementieren, der das Auto zum richtigen Schritt macht.
Und jedes Mal, wenn es nach links geht oder geradeaus geht, um das Ziel zu erreichen und die
Hindernisse zu vermeiden, die Abstieg bedeuten.
Also machen wir das gleich jetzt.
Wir beginnen wie üblich mit den Gehörlosen, um eine Funktion zu definieren. Dann
geben wir unserer Funktion einen Namen, den wir select action als einige Klammern nennen. Diese select-Aktionsfunktion benötigt zwei
Argumente.
Das erste ist das Ich, während Sie wachsen, um sich auf das Objekt zu beziehen, und das zweite Argument, welches
Ihrer Meinung nach welches sein wird.
Nun, was könnte es sein?
Wenn Sie darüber nachdenken, kommt die von uns gewählte Aktion von der Ausgabe des neuronalen Netzwerks, weil die
Ausgabe des neuronalen Netzwerks oder die q-Werte für jede der drei möglichen Aktionen und daher die
Aktion, die wir ausführen, die Aktion ist, die die Ausgabe sein wird Das neuronale Netzwerk hängt vom Eingabezustand
ab, und der Eingabezustand ist genau das zweite Argument, das wir mit der select-Aktionsfunktion benötigen.
Das liegt daran, dass wir buchstäblich die Ausgabe des neuronalen Netzwerks übernehmen.
Und natürlich hängt die Ausgabe des neuronalen Netzwerks direkt von der Eingabe des neuronalen Netzwerks ab.
Das wird also unser Argument sein.
Und jetzt können wir ihm einen beliebigen Namen geben, den wir eigentlich Zustand nennen werden, da die Eingabe der
neuronalen Netze die Eingangszustände sind, die durch einen Vektor aus fünf Dimensionen und drei Signalorientierungen und
Minusorientierungen codiert sind.
Und so wird es jetzt einfach.
Wir werden den Eingabezustand in das neuronale Netzwerk einspeisen, das wir hier direkt mit der
nächsten Klasse erstellen, und dann werden wir die Ausgaben erhalten, die die Schlüsselwerte für jede der drei
möglichen Aktionen darstellen mit der Soft Max-Methode, die ich in diesem Tutorial erklären
werde.
Wir bekommen die letzte Aktion zum Spielen.
Lasst uns das tun, lasst uns in die Funktion gehen und all das implementieren.
Das erste, was wir anfangen müssen, ist das, was ich gerade erwähnt habe, um Max zu glauben. Die
Idee des weichen Max ist, dass wir versuchen, jedes Mal die beste Aktion zu erreichen.
Gleichzeitig werden wir jedoch die verschiedenen Aktionen untersuchen.
Und wie machen wir das?
Wie können wir die beste Aktion erzielen, während wir die anderen Aktionen erkunden?
Nun, wir haben diese Idee von Sachen benutzt, die darin besteht, eine Wahrscheinlichkeitsverteilung für jeden der q-Werte
zu erzeugen.
Q Staaten Aktion.
Jetzt haben wir einen Q-Wert für jede Aktion. Nach links oder nach rechts gehen.
Dieser q-Wert hängt jedoch auch vom Eingangszustand ab.
Das ist genau die Q-Funktion, die in Intuitionsvorlesungen verwendet wird.
Diese Q-Funktion ist eine Funktion des Zustands und der Aktion.
Da wir hier einen Eingabezustand haben, der hier der Zustand ist, und drei mögliche
Aktionen, haben wir drei neue Werte Q. Staatliche Aktion 1 Q Staatenaktion 2 und zwei Staaten
Aktion 3, und wir werden eine Wahrscheinlichkeitsverteilung in Bezug auf diese drei Schlüsselwerte generieren.
Das heißt, wir haben eine Wahrscheinlichkeit für den ersten Q-Wert, die Wahrscheinlichkeit für den zweiten
Q-Wert und eine dritte Wahrscheinlichkeit für den dritten Q. Und alle drei Wahrscheinlichkeiten summieren sich auf 1.
Also machen wir das alles mit gesaugtem Max und gesaugtem Max wird eine große Wahrscheinlichkeit auf das höchste Q-Niveau
in der Umgebung zurückführen.
Deshalb ist eine Alternative zu soft Max ein einfacher RMX, der nicht direkt
das Maximum der q-Werte verwendet.
Dank dieser Wahrscheinlichkeiten können wir an einem anderen Ort mit einem Temperaturparameter ausloten, den wir sehr
schnell sehen werden.
Wir können sie noch erforschen, indem Sie diesen Temperaturparameter konfigurieren.
Deshalb empfehle ich aus Sicherheitsgründen generell die Verwendung eines weichen x anstelle eines einfachen RMX.
Also gut, lassen Sie uns X implementieren und so, wie Sie es verstanden haben.
Da gesaugt gibt Max die Wahrscheinlichkeiten der drei Q-Werte für die drei möglichen Aktionen zurück.
Nun, die erste Variable, die wir erstellen werden, bezieht sich wahrscheinlich auf diese Wahrscheinlichkeiten.
Die Requisiten sind also gleich und jetzt werden wir unsere gesuchte nächste
Funktion übernehmen.
Natürlich erinnern wir uns daran, dass wir die importierten.
Und dann funktioniert das funktionale Submodul, an das ich mich erinnere, das Modul, das die meisten Aktionen zur Implementierung
eines neuronalen Netzwerks enthält.
Wir haben ihm die Abkürzung F gegeben und so ist es eigentlich aus diesem funktionalen Submodul, dass
wir unsere nächste Funktion übernehmen werden.
Aber da wir ihm eine Abkürzung gegeben haben, fangen wir hier mit einem Neph an, der eine funktionale darstellt, von der
wir unsere gesuchte nächste Funktion nehmen.
Hier ist es.
Das ist die erste und Klammer.
Gut.
Nun, was müssen wir in der nächsten Funktion eingeben.
Nun, das sind natürlich die Entitäten, für die wir eine Wahrscheinlichkeitsverteilung erzeugen wollen.
Und was sind diese Entitäten?
Nun, das sind natürlich die Schlüsselwerte.
Nun stellt sich die Frage, wie wir die q-Werte erhalten können.
Natürlich sind die q-Werte die Ausgabe des neuronalen Netzwerks und um diese Ausgaben des neuronalen Netzwerks zu
erhalten.
Nun, wir gehen weiter.
Wir müssen unser neues Netzwerk nutzen.
Aber in der Tat haben wir es bereits, weil es am Ende seine Funktion ist.
Wissen, dass wir ein autodidaktisches Modell erstellt haben, das nichts anderes ist, weil es ein neues Objekt
der Netzwerkklasse ist.
Und das ist perfekt.
Wir können unser Modell einfach hierher bringen und als Nächstes dieses Modell auf den Eingabezustand anwenden, der hier
das Argument ist und die Ausgaben liefert, nach denen wir suchen.
Das sind die Schlüsselwerte.
Und jetzt könnte Ihre Intuition, warum wir das Modell hier nehmen mussten, um es in die Funktion einzuführen, vielleicht besser
werden.
Diejenigen von Ihnen, die mit der objektorientierten Programmierung beginnen, werden feststellen, dass das alles als
nächstes so natürlich wird.
Deshalb nehmen wir unsere Modelle selbst als Modell, da dies das Modell des Objekts sein muss, das wir hier erstellt haben.
Aber dann müssen wir die Ausgabe unseres neuronalen Netzwerkmodells erhalten, und deshalb werden wir einige
Klammern hören, in die wir den Eingabezustand mit dem Namen state eingeben.
Was wir also zuerst tun wollen, ist der Zustand "state", aber jetzt müssen wir auf etwas achten, das wie ein einfacher
Satz aussieht.
Denken Sie jedoch daran, dass der Status tatsächlich ein Brennersensor sein wird, da wir diese Zelle später
mit weniger Status verwenden, um sie als Argument der Aktionsfunktion Select zu verwenden.
Das Argument des Staates, das sich hier befindet, wird tatsächlich später dieser autodidaktische Zustand sein.
Und da dies eine gefolterte Antwortwelt ist, wird das Modell sie akzeptieren.
Also das ist gut.
Jetzt können wir den Algorithmus verbessern.
Sobald der Zustand ein Brennersensor ist, sind die meisten Sensoren wie oben erwähnt in den Voivode
gewickelt.
Dieser enthält auch einen Farbverlauf.
Also, jetzt, was wir zuerst tun werden, ist es, diesen Eingangszustand,
der ein Tensor ist, sehr gut in eine Fackel einzuwickeln.
Wir werden den Gradienten dieses Brenners nicht verwenden
und das können Stationen sein. Daher werden wir diesen Brennersensorzustand in eine Brennervariable umwandeln.
Aber dann zu spezifizieren, dass wir die Gradienten in der Grafik nicht wollen, die am Ende von Mudgal
Prädationen können.
Nun, wir werden hier bei Volatilität gleich wahr werden.
Damit haben wir unseren State Fackelsensor sehr gut in eine Fackel geschoben, aber dank dieses Votels ist es ein
wahres Barometer.
Nun, wir werden die Gradienten, die diesen Eingangszuständen zugeordnet sind, in den Graphen aller Zustände des Endes in
diesem Modell einbeziehen.
Das ist also ein weiterer technischer Trick.
Dies spart uns etwas Speicher und verbessert somit die Leistung.
Deshalb empfehle ich dringend, dies zu tun, und jetzt fügen wir etwas mehr Spaß hinzu.
Es geht um diesen Temperaturparameter, den ich gerade erwähnt habe.
Dieser Temperaturparameter ist also der Parameter, mit dem wir modulieren können, wie das
neuronale Netzwerk sicher ist, welche Aktion es ausführen soll.
Dieser Temperaturparameter ist also eine positive Zahl und je näher er an Null ist, desto weniger sicher ist das
neuronale Netzwerk beim Spielen und je höher der Temperaturparameter, desto sicherer ist das neuronale Netzwerk mit
der Aktion, die es zu spielen entscheidet .
Um diesen Parameter hinzuzufügen, multipliziere ich die Ausgänge, die von diesem Temperaturparameter verwendet
werden.
Beginnen wir zum Beispiel mit 7 und ich werde hier den kleinen Kommentar T gleich 7 angeben.
Das ist also der Temperaturparameter.
Tut mir leid, gehe zu 7.
Wir werden einige andere ausprobieren, aber ich möchte mit einem kleinen anfangen, weil Sie das
mit einem kleinen sehen werden.
Unser Auto wird sich immer noch wie eine Art Insekt verhalten, aber durch Erhöhen des
Temperaturparameters wird unser Code eher wie ein Auto aussehen und der Verkauf des Fahrens wird viel besser.
Das macht also Sinn, denn je höher dieser Temperaturparameter ist, desto höher
ist die Wahrscheinlichkeit des gewinnenden Juval me, weil zum Beispiel ein weiches Maximum der q-Werte vorliegt.
Nehmen wir ein paar einfache Zahlen eins zwei drei, wenn maximal ein bis drei gleich sind.
Zum Beispiel 0. 04 0. 11 und öffnen Sie fünfundachtzig.
Dann durch Erhöhen der Temperatur durch Erhöhen der Temperatur.
Im Moment ist die Temperatur gleich eins, indem eine hohe Temperatur genommen wird, wie zum Beispiel Tussaud subtrahiert, lassen
Sie uns dies kopieren und mit beispielsweise zwei oder drei multiplizieren, so dass die nächsten Werte dieselben Werte haben, jedoch mit dem
Temperaturparameter von drei multipliziert.
Nun, wir bekommen so etwas wie Null für den ersten Q-Wert, weil dies eine sehr geringe Wahrscheinlichkeit hatte, dass etwas
um Null herum und dann etwas sehr Kleines für die zweite Wahrscheinlichkeit war, weil dies noch eine
geringe Wahrscheinlichkeit war.
Sagen wir zum Beispiel oder Punkt 0 2.
Aber dann diese dritte Wahrscheinlichkeit, da sie die größte war und eine ziemlich hohe.
Wenn Sie die Temperatur erhöhen, wird diese Wahrscheinlichkeit noch größer, da wir noch
sicherer sind, dass dies der richtige Q-Wert ist, der der Aktion entspricht, die wir spielen müssen, und dass
dies etwa 0 ist. 2 98.
Nun, durch die Erhöhung des Temperaturparameters Nun, wir sind jetzt noch sicherer, dass die dritte Aktion hier
die Aktion sein soll, da die Wahrscheinlichkeit für den q-Wert dieser Aktion nicht nur die größte,
sondern auch sehr hoch ist.
Darum geht es bei diesem Temperaturparameter.
Es geht um die Gewissheit, in welche Richtung wir uns entscheiden sollten.
Gut.
Also werde ich diesen Kommentar entfernen.
Das war nur zu erklären.
Und jetzt lasst uns unsere Aktion bekommen.
Wie wirst du das tun?
Nun, das Prinzip der next-Methode ist nicht nur das Generieren einer Wahrscheinlichkeitsverteilung für
jeden der Schlüsselwerte, sondern auch der zweite Schritt der Soft-Next-Methode.
Wir ziehen eine zufällige Auslosung aus dieser Verteilung, um unsere endgültige Aktion zu erhalten.
Und natürlich haben wir eine große Chance, die Aktion zu erhalten, die dem Q-Wert entspricht,
der die höchste Wahrscheinlichkeit hat, weil die Verteilung genau so funktioniert.
Also los geht's.
Lass uns unsere Aktion bekommen.
Wir werden also einen neuen Voivode einführen, wenn wir action nennen, und diese Aktion wird eine
zufällige Verlosung der Wahrscheinlichkeitsverteilung sein, die wir gerade zu diesem Zeitpunkt erstellt haben.
Und wie bekommen wir so eine zufällige Auslosung?
Nun, wir nehmen die Wahrscheinlichkeiten unserer Requisiten für jeden der
Schlüsselwerte, die wir Requisiten nehmen, und dann Dart, und dann werden wir
die Multi-Gnomeo-Funktion verwenden.
Das ist alles, was seine Reaktion bekommen wird.
Perfekt.
Und jetzt werden wir natürlich die Aktion zurückgeben.
Hier gibt es einen kleinen Trick.
Was ist die Tatsache, dass diese Propst dieses Multinomial den PI mit einem gefälschten Abzeichen in Richtung Lebensfähigkeit zurückführt.
Sie kennen diese gefälschten Diamanten und entsprechen der Partie und damit das richtige Ergebnis zu erzielen, das wir
wollen, ist die Aktion in 0 1 oder 2.
Wir müssen hier nur Daten hinzufügen und dann einige Klammern und die folgenden Aktionen sind eine oder zwei, nach
denen wir suchen: Inhalt und der Index ist 0 und 0.
Gut.
Und da gehen wir hin.
Jetzt haben wir unsere Aktion dank dieser Select-Action-Funktion. Die KI weiß nun, welche Aktion sie spielen soll.
Und jedes Mal.
Großartig.
Nun können wir zur nächsten Funktion übergehen, die die Lernfunktion sein wird.
Und hier werden wir das gesamte neuronale Netzwerk trainieren, das
Sie mit all der Vorwärtsausbreitung kennen.
Grundsätzlich werden wir das gesamte Training des tiefen Lernmodells implementieren, das im Mittelpunkt
unserer künstlichen Intelligenz steht.
Ich kann es also kaum erwarten.
Dies wird ein aufregendes Tutorial, und wir sehen uns im nächsten Statoil.
Bis dahin genießen.
ICH.