Hallo und willkommen zurück.
Im letzten Vortrag haben Sie gesehen, wie wir unsere Hilfsfunktionen verwenden, um den Kern unserer Funktionalität zum Trainieren unserer
Modelle wirklich einzurichten.
Wir hatten also unseren Endzustand, unseren Startort, unsere nächste Aktion, den nächsten Ort und den kürzesten Weg,
die wirklich den Großteil dessen definieren, wie unser Agent oder wie unsere Umgebung funktionieren wird.
Das Letzte, was wir tun müssen, ist, unser Training zu nutzen, um unser Training zu nutzen.
Es ist ziemlich einfach in dem Sinne, was wir einbeziehen müssen, aber wie wir es angehen, ist eine andere
Geschichte.
Abgesehen davon ist es auch sehr zu empfehlen, wenn Sie einen anderen Ansatz verwenden oder diesen
anpassen und damit experimentieren möchten.
Wenn Sie einen anderen Ansatz verwenden und darüber diskutieren möchten, können Sie sich gerne an den
Fragen und Antworten beteiligen.
Gerne bespreche ich das mit Ihnen.
Es ist eine großartige Idee, weil es so viele Möglichkeiten gibt, dies zu lösen, und Sie vielleicht einen Weg finden,
der viel besser und vorteilhafter ist.
Wir könnten uns die Vor- und Nachteile noch einmal ansehen und gerne darüber diskutieren.
Gut.
Was müssen wir also tun?
Wir müssen unser Training starten.
Für unsere Ausbildung.
Wir wollen das Epsilon verwenden.
Also im Grunde der Prozentsatz, den wir für die beste Aktion für R anstelle einer zufälligen Aktion nehmen werden.
Setzen wir also unser Epsilon und setzen wir es auf 0. 9 und wir werden etwas Ähnliches mit unseren Werten für
unseren Diskontfaktor und unsere Lernrate machen.
Machen wir also einen Diskontfaktor gleich 0. 9.
Nehmen wir auch unsere Lernrate und setzen sie auf 0. 9.
Das wird die Rate sein, die unser Agent lernen wird oder lernen sollte.
Und wir wollen auch die Anzahl der Trainingsepisoden nehmen, nennen wir es, und Trainingsepisoden.
Wir haben also eine Reihe von Trainingsepisoden.
Setzen wir es auf tausend.
Wie oft wird es trainieren oder wie viele Episoden wird es trainieren?
Fantastisch.
Nun wollen wir im Wesentlichen jede Episode durchlaufen.
Wir wollen die Bandbreite unserer Anzahl an Trainingsepisoden nehmen und im Grunde unser Epsilon festlegen.
Wir wollen unseren zeitlichen Unterschied finden.
Um das einzustellen, müssen wir uns einige frühere Q-Werte ansehen.
Wir müssen unsere Startposition in unserem Aktionsindex berechnen.
Also lasst uns anfangen.
Nehmen wir eine große for-Schleife.
Wir haben also unsere vier Episoden.
Im Rahmen unserer Anzahl an Trainingsfolgen.
Auf geht's.
Abgesehen von Syntaxfehlern meinerseits wollen wir den Zeilenindex und den Spaltenindex für unser Grid für unsere
Ms nehmen. Spaltenindex.
Und gesagt, ein Ziel-Startort, wir brauchen einen Startort.
Also lasst uns diese schlechte Stunde in jeder Folge haben.
Jetzt können wir unseren Terminalstatus while setzen.
Nicht.
Ist Endzustand.
Wir wollen uns den Zeilenindex und den Spaltenindex ansehen.
Okay.
Als nächstes setzen wir unseren Aktionsindex für unsere nächste Aktion.
Wir brauchen also unsere nächste Aktion.
Während dieser Agent die Mittel für unseren Aktionsindex durchläuft, können wir unsere nächste Aktion verwenden.
Und wir können unseren Zeilenindex-Spaltenindex verwenden und unser Epsilon nennen.
Also wollen wir dies anstelle unserer zufälligen Aktion haben, verwenden wir den Spaltenindex.
Und wir brauchen Epsilon.
Fantastisch.
Wenn ich richtig schreiben könnte.
Hier wollen wir Epsilon.
Okay, lass mich das einfach löschen.
Okay.
Lassen Sie mich den Rest des Codes holen und wir gehen ihn durch, damit Sie mir nicht zusehen müssen, wie ich jede
Zeile eintippe.
Aber denken Sie daran, wie wir das angehen wollen.
Um die alte Zeile zu versetzen, benötigen wir einen alten Zeilenindex.
Wir möchten auch die Belohnungen für unsere Spalten und unsere Zeilen haben.
Wir müssen uns die Warteschlangenwerte und die alten Warteschlangenwerte ansehen und unsere zeitliche Differenz
berechnen.
Okay.
Sie sehen also die Änderung im Code oder die Aktualisierung des Codes.
Wir nehmen unseren alten Zeilenindex und unseren alten Spaltenindex, um unseren Zeilenindex und Spaltenindex zu betrachten.
Unser Zeilenindex-Spaltenindex entspricht unserem nächsten Standort.
Und unser nächster Standort würde den Zeilenindex, die Spalte, den Index und die Aktion benötigen.
Schließlich schauen wir uns eine Belohnung an.
Unsere alten Q-Werte wären Q-Werte mit dem alten Zeilenindex, dem alten Spaltenindex und wiederum unter Bezugnahme
auf unseren Aktionsindex und die Berechnung unserer zeitlichen Differenz, die unsere Belohnung ist, plus
dem Diskontfaktor mal den Q-Werten mit der Zeile Index und Spaltenindex minus dem alten Q-Wert vom vorherigen
Q-Wert.
Fast fertig, wo wir unseren neuen Q-Wert brauchen, der unser alter Cue-Wert ist, plus die
Lernrate, die Zeiten, die zeitliche Differenz und unsere Cue-Werte, wobei der alte Zeilenindex in unserem alten Spaltenindex gleich dem neuen
Cue-Wert ist.
Wenn ihr das weiter diskutieren möchtet, empfehle ich noch einmal das Q&A.
Bitte zögern Sie nicht zu drucken.
Versuchen Sie, mit allen hier verwendeten Variablen zu experimentieren.
Wenn Sie ihre Form sehen möchten, sehen möchten, wie sie verwendet werden können, worauf sie sich bezieht, empfehle ich sie sehr und ich
bin mehr als glücklich, sie weiter zu diskutieren.
Eine letzte Sache, die wir tun können, also haben wir eine kleine Benachrichtigung.
Lassen Sie uns eine Druckanweisung hinzufügen, damit wir wissen, wann das Training für unsere tausend Zeilen abgeschlossen ist.
Gut.
Wenn es meinerseits keine Syntaxfehler gibt, sollten wir loslegen.
Das Spaltennotizbuch wird initialisiert.
Ich habe alles neu ausgeführt, also lassen Sie mich das ausführen.
Es sollte sehr schnell gehen, da wir nur numpy verwenden.
Es ist in gewisser Weise ein sehr optimiertes Modell.
Lassen Sie mich darauf klicken und wir suchen dann nach dem kürzesten Weg.
Gut.
Wir haben unsere Ausbildung abgeschlossen.
Lassen Sie uns auch den kürzesten Weg für einige Startoptionen drucken.
Wir beginnen also Reihe drei, Spalte neun mit der kürzesten Pfadoption mit unserem kürzesten Pfad.
Wir wollen uns Zeile fünf und Null ansehen und bei Zeile neun und Spalte Nummer fünf beginnen.
Lassen Sie uns diese ausdrucken.
Fantastisch.
Wir haben den kürzesten Weg, aber wir sind noch nicht fertig.
Wir sind fast da.
Wir können sehen, dass unser Postbote automatisch den kürzesten Weg von einem legalen Ort, den wir in Betracht ziehen, von unserer
Stadt zum Verpackungsbereich der Artikel findet.
Aber was wäre mit dem umgekehrten Szenario, das sich im Grunde darauf bezieht, dass unser Postbote
einen Artikel von überall in der Stadt zum Verpackungsbereich liefern kann?
Aber nach dem Artikel müsste es dann von diesem Bereich aus dem Verpackungsbereich zu einem anderen Ort in der Stadt
gehen, weil es den nächsten Artikel abholen müsste.
Was können wir also tun, um das zu lösen?
Und es ist eigentlich ziemlich einfach.
Sie könnten die Reihenfolge des kürzesten Weges überarbeiten.
Versuchen Sie, eine Sekunde darüber nachzudenken, und dann wäre dies die Lösung.
Wir können den kürzesten Weg benutzen.
Nehmen wir also „Write Five“ und „Column Two“ und dann müssten Sie nur noch die Reverse-Option mit Python
verwenden.
Wir verwenden path dot reverse und könnten den Pfad ausdrucken.
Also sehen wir uns fünf und zwei an.
Und los geht's.
Wir haben den kürzesten Weg.
Und es ist wirklich hilfreich, wenn Sie das Bild in der Zelle erfassen und herunterfahren möchten, um diese Pfade zu vergleichen und
zu betrachten.
Aber Sie können den Weg tatsächlich sehen, wenn Sie die ausgedruckte Abrechnung nehmen, die Spalte in der
Bestellung anschauen und sehen, wie der Verkäufer unterwegs ist.
So tolle Arbeit, die Sie verwenden.
Q-Lernen.
Was wir aus diesem Kurs gelernt haben, enthält im Abschnitt ein kleines Bonus- und Spaßszenario, um dieses
im Wesentlichen Problem des Handlungsreisenden zu lösen.
Wir schauen uns den Postboten an, der Pakete und Artikel in der Stadt ausliefert, um die kürzesten Möglichkeiten und kürzesten
Wege zu finden.
Ich empfehle dringend, dass Sie anpassen, andere Optionen testen, die Hyperparameter ändern und wenn Sie etwas Besseres
entdecken, wenn Sie Optimierungs- oder beste Parameter entdecken, die Sie verwenden können, können Sie diese gerne in den Fragen
und Antworten teilen.
Tolle.
Ich hoffe, euch hat das wirklich gefallen.
Bitte anpassen, experimentieren und weiter lernen.
Es macht so viel Spaß mit euch zu arbeiten.
Lernen und genießen I.