Hallo und willkommen zu diesem Python-Tutorial.
Gut.
Nun werden wir in der nächsten Funktion, die wir implementieren, das tiefe neuronale Netzwerk trainieren, das
sich in unserer künstlichen Intelligenz befindet.
Im Grunde werden wir den gesamten Prozess für die Ausbreitung und dann für die Ausbreitung durchführen.
Wir werden also unsere Ergebnisse erhalten.
Wir werden das Ziel erreichen.
Wir werden die Ausgabe des Ziels vergleichen, um den letzten Fehler zu berechnen, und dann diesen letzten Fehler
zurück in das neue Netzwerk zu verbreiten.
Und mit dem vorgeschlagenen Gradientenabstieg, der darauf warten muss, wie viel er zum letzten Fehler
beigetragen hat.
Also lasst uns das alles für diejenigen tun, die vom tiefen Marine Corps kommen.
Das wird eine gute Sache sein, aber für die anderen sorgen Sie sich nicht, ich werde das noch einmal erweitern.
Wir nennen diese neue Funktion "Lernen und Lernen". Die Funktion erfordert mehrere Argumente.
Erstes Selbstverständnis, das sich auf den Gegenstand des Studienabschlusses bezieht.
Dann nehmen wir unseren Batch-Status für den aktuellen Status, dann unseren nächsten Batch-Status,
dann unsere That-Belohnung und schließlich die Arbat-Aktion.
Warum nehmen wir das?
Sie haben wahrscheinlich erkannt, was diese Serie ist.
Nun, das ist natürlich ein Übergang, ein Übergang des Marktentscheidungsprozesses, der an der Basis liegt.
Hast du gelernt.
Und warum nehmen wir sie alle in ein paar Chargen auf.
Nun, das ist so, weil Sie wissen, dass wir die Übergänge nicht nach einer Reihe der aktuellen
Belohnungen und aktuellen Aktionen des obersten oder aktuellen Zustands betrachten.
Wir haben hier dank der einfachen Funktion einige einfache Chargen erstellt.
Und jetzt sind unsere Übergänge in Form einer ersten Charge für diesen Zustand.
Eine zweite Charge für das nächste Datum, eine Charge für die Belohnung und eine Charge für die Aktion.
Das ist jetzt die Form unseres Übergangs, und alle sind hinsichtlich der Zeit gut aufeinander
abgestimmt, dank dieser Verkettung, die wir hier bezüglich der ersten Dimension vorgenommen haben.
Der Punkt ist nun, dass wir diese Chargenübergänge eine Charge für jeden der nächsten Tage haben, an denen wir ihn in
Aktion beobachten, und wir tun all dies, weil wir diesen Replay-Trick für die Erfahrung verwenden.
Das heißt, unser tiefes neuronales Netzwerk kann etwas lernen.
Denken Sie daran, wenn Sie nur einen Übergang hatten, was sofortiges Lernen wäre.
Oder wenn Sie ein sehr kurzes Gedächtnislernen möchten und der Maulwurf daher nichts lernen würde.
Also müssen wir diese Stapel aus dem Speicher nehmen, die zu unseren Übergängen werden, und schließlich werden wir für jeden
der Zustände der Eingabezustände unterschiedliche Ausgaben erhalten, und wir werden dies für die Zustände und für
die nächsten Zustände tun, da wir beide benötigen um den Verlust zu berechnen.
Ich werde bald die Balance-Gleichung erinnern, die den Kern des Lernalgorithmus bildet.
Gehen wir nun in die Funktion und lassen Sie uns zunächst die Ausgänge des Box-Status erhalten.
Ich werde dies als erste brauchbare Ergebnisse bezeichnen und dann werden wir natürlich sagen, dass unser
Selbstgespräch nicht alle so selbstständig ist.
Nein, weil wir unsere Modellausgaben der Eingangszustände des Zustands erhalten möchten.
Und da unser Modell tatsächlich eine Reihe von Eingabezuständen erwartet.
Nun, wir können diesen Zustand jetzt vollständig für die Eingabe von allen eingeben.
Genau so haben wir die Zustände, die mit Folterantworten ins Netz gehen, mit dieser
vagen Dimension für die perfekte Charge initialisiert.
Wir bekommen jetzt die Ausgaben von allen.
Aber es gibt einen weiteren technischen Trick, wenn wir nur diesen Modellzustand verkaufen. Nun, wir werden die Ergebnisse aller möglichen Aktionen
erhalten, die Sie kennen, 0 1 und 2, aber das wollen wir nicht.
Wir sind nur an den Aktionen interessiert, die ausgewählt wurden.
Die Aktionen, die das Netzwerk zu jedem Zeitpunkt ausgespielt hat, um diese
tatsächlich zu interessieren, sind die gespielten Aktionen. Wir müssen diese Erfassungsfunktion verwenden, in die wir eine eingeben,
weil wir nur die gewählte Aktion wollen und dann Wir fügen diese Aktion mit dieser hinzu.
In diesem Abschnitt werden wir jedes Mal die beste Aktion für jeden der Eingabezustände des
Staates zusammenstellen.
Wir möchten nicht, dass die Aktion, die gespielt wird, die Aktion ist, die ausgewählt wird, und wir bekommen dies mit dieser Aktion, die
diese Aktion sammelt.
Aber dann sei vorsichtig.
Der Staat hat diese gefälschten Diamanten und Schmiermittel in die Partie und dieser Abschnitt hat es nicht.
Backstay hat es, weil wir hier mit Unsworth gearbeitet haben, aber wir haben noch keine Armdrücken für
die Aktionen verwendet. Daher müssen wir es hier hinzufügen, damit die Bache-Aktion genau die gleiche Dimension hat wie der Zustand.
Also fügen wir einen Punkt hinzu und quetschen dein Recht hier, und eigentlich ist dies nicht Null, sondern Eins, weil die Null-Antwort auf
den Glauben nicht der Zustand ist und man der Prüfung der Handlungen entsprechen wird.
Und das letzte, was wir hier tun müssen, ist, diese gefälschte Charge mit einem Druck zu töten.
Warum müssen wir das tun?
Weil wir uns jetzt außerhalb des neuronalen Netzwerks befinden.
Wir haben unsere Outputs, wollen sie aber nicht zurück.
Wir wollen sie.
Und die einfache Antwort ist ein einfacher Vektor.
Ein Vektor für die Ausgabe der Stapel, wenn wir im neuronalen Netzwerk arbeiten, weil das neuronale
Netzwerk das Format von Sensoren in einem Stapel erwartet.
Aber jetzt haben wir unsere Ergebnisse und in der nächsten Baluns-Gleichung des Tiefenlernens werden wir sie nicht
mehr brauchen.
Also töte ich das hier und töte die Glaubensdimension, um die einfache Form unserer Leistungen zurück zu bekommen.
Also füge ich hier nur Dot hinzu und drücke dann und da ich die gefälschte Laminierung entsprechend der Rückseite
der Aktion abtöten möchte.
Nun, da die Spacetime-Engine einen Index hat, füge ich hier einen hinzu.
Gut.
Und jetzt haben wir unsere Ausgänge.
OK.
Wir haben eine kleine Warnung, dass die Ausgabe der lokalen Variablen zugewiesen wird, aber niemals verwendet wird.
Kein Problem.
Wir werden es sehr schnell nutzen.
Das ist also unser Output.
Und jetzt wollen wir unsere nächsten Überlistungen machen. Nun denken Sie vielleicht, warum wir die nächsten Ausgaben benötigen.
Um dies zu verstehen, müssen wir auf den tiefen Lernalgorithmus zurückgreifen, der
hier im Letak-Handbuch enthalten ist.
Das ist also der ganze Diffusionsprozess.
Am Anfang haben wir alle Schlüsselwerte initialisiert und dann zu jedem Zeitpunkt t.
Nun, wir wählen die Aktion mit gesaugtem Max aus, wie wir es mit der Select-Action-Funktion gemacht haben.
Dann haben wir den Übergang geöffnet und dann, wie Sie sehen können, bekommen wir die Vorhersage, dass wir das Ziel bekommen und wir können
der Letzte sein.
Warum brauchen wir auch die nächste Ausgabe?
Das Ziel ist, dass das Ziel Ghana mal der nächsten Ausgabe plus dem von uns gewünschten Wert entspricht, und wir werden die
Ziele direkt danach berechnen, da wir die nächste Ausgabe des Ziels benötigen.
Lassen Sie uns das zuerst berechnen.
Um das nächste Update sehr einfach zu machen, wird die nächste Ausgabe das Ergebnis unseres neuronalen
Netzwerks sein, wenn der nächste Zustand im Stapelbetrieb als Eingabe in dieses eingeht.
Wir nehmen also ganz einfach unser Modell, das unser neuronales Netzwerk ist, und diesmal wird der Eingang des
neuronalen Netzwerks der nächste Zustand sein, der den nächsten nächsten Stapelvorgang enthält.
Aber denken Sie jetzt daran, wenn wir zu dem frühen Algorithmus zurückkehren. Nun, Sie können sehen, dass die nächste Ausgabe das Maximum der
q-Werte für den nächsten Zustand in Bezug auf alle Aktionen ist.
Um also die nächste Ausgabe zu erhalten, benötigen wir das Maximum dieser q-Werte. Deshalb mache ich
es hier.
Trennen Sie das Wissen, um alle Ausgaben des Modells abzutrennen, da sich in diesem Stapel mehrere Zustände befinden. Nächste
Zustände sind der Stapel aller nächsten Zustände in allen Übergängen, die aus dem Zufallsmuster unseres
Speichers stammen.
Also trenne ich alle mit der Detach-Funktion, und dann nehme ich das Maximum aller dieser beiden
Werte.
Und da wir das Maximum dieser beiden Werte in Bezug auf die Aktion verwenden, müssen wir angeben, dass
es sich auf die Aktion bezieht.
Und da die Aktion durch den Index Eins dargestellt wird.
Nun, wir müssen die nächste noch einmal hier angeben und dann müssen wir angeben, dass wir die
Cue-Werte als T plus 1 nehmen, was die nächste Stufe ist, und der nächste Zustand wird durch 0 dargestellt, da der Index
Null den Zuständen und entspricht Daher müssen hier Klammern mit dem Index 0 hinzugefügt werden.
Auf diese Weise erhalten wir das Maximum der Schlüsselwerte der nächsten Zustände, die durch
die nächste Null repräsentiert werden, gemäß allen Aktionen, die durch den Index Eins dargestellt werden.
Dies ist ein neues Set.
Da hatten wir die Warnung.
Aber das ist gut.
Wir werden es jetzt verwenden, um das Ziel zu berechnen.
Und wenn wir von dem Ziel sprechen, ist dies der nächste Schritt dieser bekannten Funktion.
Also los geht's.
Ziel ist gleich.
Kommen wir nun zu unserem AI-Handbuch.
Das Ziel ist gleich dem Wort plus Gamma, wenn die nächste Ausgabe das Maximum der Würfelwerte des nächsten
Tages ist.
Nach den Aktionen können wir das berechnen.
Das ist also dem Gamma und dem Gamma gleich, das Gamma initialisiert wurde.
Hier ist es eine Variable, die die Jungfrau Q ist. Ein Objekt selbst holt die nächsten Ausgaben, wie wir gerade
sagten, plus. Wollen wir, dass wir das Beste wollen?
Wir arbeiten hier mit Batches, also Batch, das wir wollen, und das ist das Ziel.
In einer Probe des Speichers wird Gamma mit den nächsten Ausgängen multipliziert plus der Belohnung.
Gut.
Perfekt.
Jetzt haben wir unsere Ausgänge.
Wir haben auch unsere Ziele und können daher den Verlust berechnen, der den Fehler der
Vorhersage darstellt.
Nennen wir das letzte, die letzten beiden sind natürlich für den zeitlichen Unterschied.
Das ist wieder der Kern des Q-Lernens, und dieses Tiddy wird der Veröffentlichung gleichkommen, die den
Cunanan stark verbessert.
Das ist die letzte Funktion, die wir für unsere künstliche Intelligenz wählen werden.
Für diejenigen unter Ihnen, die vom tiefgrünen Platz kommen, ist dies wirklich der letzte, den ich empfehle.
Wenn Sie die Coonerty implementieren wollen und wie sollen wir das bekommen?
Nun, wieder nehmen wir eine Funktion aus dem Funktionsmodul, das durch F dargestellt
wird, und deshalb werde ich hier unser Funktionsmodul verwenden, und die Hubble-Funktion kann dank der
Funktion erhalten werden, die Smoots L-1 liebt.
Drücken Sie also die Eingabetaste.
Und das ist wirklich die beste verlorene Funktion, die ich für tiefes Lernen empfehle.
Es verbessert wirklich den Culin.
Aber dies ist eine Funktion, also füge ich einige Klammern hinzu.
Und jetzt gibt es nichts Einfacheres.
Die Argumente, die wir eingeben müssen, sind die Vorhersagen und Ziele.
Die Vorhersagen sind also natürlich Ergebnisse, weil dies die Ausgabe des neuronalen Netzwerks ist.
Nein, die Ausgabe des neuronalen Netzwerks ist das, was das neuronale Netzwerk vorhersagt.
Das ist also die Vorhersage.
Das erste Argument hier ist also Ausgaben und dann ist das zweite Argument natürlich das Ziel.
Das, was wir versuchen zu bekommen und es ist bereits perfekt berechnet.
Wir können direkt ein Ziel eingeben.
Perfekt.
Jetzt haben wir gesagt, dass wir hier etwas Tee bekommen.
Da gehen wir.
Nun sollte die Warnung verschwinden.
Ja.
Perfekt.
Und jetzt, da wir den letzten Fehler haben, können wir den Fehler der Verbreiter zurück ins Netzwerk setzen, um
die Gewichtungen mit dem stochastischen Gradientenabstieg zu aktualisieren. Genau das werden wir im nächsten Schritt tun.
Natürlich müssen wir jetzt, wie Sie vielleicht denken, unseren Optimierer nehmen, den
wir erneut einführen.
Und das ist ein Atom-Optimierer, der eigentlich ein Objekt der Atom-Klasse ist und bereits mit den
Parametern unseres Modells ausgestattet ist.
Und wir haben bereits eine Lernrate von 0 gewählt. 1 Prozent zur Perfektionierung unseres Optimierers ist fertig, aber jetzt
müssen wir es beim letzten Fehler spielen, um ein stochastisches Raster in Richtung und Datengewichtungen durchzuführen.
Wenn wir mit Kämpfern zusammenarbeiten, müssen wir sie als erstes bei jeder Wiederholung der Schleife neu
initialisieren.
Wir müssen das Optimierungsprogramm von einer Interaktion zur anderen in der Schleife neu initialisieren, um das Raster im Satz
zu erhalten und es neu zu initialisieren.
Und jede Wiederholung der Schleife.
Nun, wir werden die folgende Methode verwenden, die Null ist.
Auf geht's.
Nullgrad initialisiert den Optimierer bei jeder Wiederholung der Schleife neu.
Dann vergessen wir nicht die Klammern.
Perfekt.
Und jetzt, da es neu initialisiert wird. Nun können wir mit unserem Optimierer eine Rückwärtsausbreitung durchführen.
Und wie machen wir das?
Nun, wir setzen uns an die Gesetze und werden sie zurück ins Netzwerk und zurück
ins Netzwerk verbreiten.
Wir müssen die Rückwärts-Funktion verwenden, und innerhalb dieser Rückwärts-Funktion empfehle ich, die Unterstrichvariablen einzugeben
und auf true zu setzen.
Ich empfehle, dies zu tun, da dies die Rückwärtsausbreitung verbessern wird.
Die Verwendung von geschriebenen Variablen ist gleichbedeutend mit dem Festlegen von etwas Speicher und
wir müssen den Speicher freigeben, da wir beim letzten Mal mehrmals vorgehen werden, um die Trainingsleistung definitiv zu verbessern.
Der letzte Schritt dieser erlernten Funktion besteht schließlich darin, Datengewichtungen gemäß der Rückwärtsausbreitung zu haben.
Je nachdem, um wie viel die Gewichte zum Fehler beigetragen haben.
Um dies zu tun, nehmen wir unseren Optimierer erneut, der mit re-initialize initialisiert wurde, und verwenden
die Schrittfunktion und einfach diese Codezeile mithilfe der Schrittfunktion.
Dadurch werden die Gewichte aktualisiert.
Das ist diese Codezeile, die die Gewichte aktualisiert.
Diese Codezeile, die den Fehler an das neuronale Netzwerk weiterleitet, und diese Codezeile verwendet den Optimierer, um die
Gewichte zu aktualisieren, und los geht's.
Wir haben ein neuronales Lernnetzwerk, also herzlichen Glückwunsch.
Dies war wahrscheinlich der technischste und schwierigste Teil dieses ganzen Streits oder des morgigen Tages.
Ich weiß, dass meine Fackel manchmal mit Leichtigkeit und Quetschung und Quetschung schwierig sein kann, aber
am Ende verspreche ich Ihnen, dass Sie ein sehr funktionelles neuronales Netzwerk erhalten und daher eigenartig modellieren und schließlich eine
große künstliche Intelligenz haben.
Gehen wir nun zum nächsten Schritt oder zum nächsten Lehrer und Modell über, das die Aktualisierungsfunktion sein wird, die
natürlich aktualisiert wird, wenn die KI den neuen Zustand erkennt.
Sie wissen also, dass es den neuen Zustand entdecken wird, und dann wird es die Belohnung erhalten.
Abhängig von der angezeigten Aktion und diesem neuen Status wird dies mit der Aktualisierungsfunktion
erledigt und im nächsten Lernprogramm ausgeführt.
Bis dahin genießen.
ICH.