Hallo en welkom terug.
In de laatste lezing heb je gezien hoe we onze helperfuncties gebruiken om de kern van onze functionaliteit echt in te stellen om
onze modellen te trainen.
Dus we hadden onze eindstatus, onze startlocatie, onze volgende actie, volgende locatie en kortste pad
echt de meerderheid van hoe onze agent of hoe onze omgeving gaat werken.
Het laatste wat we moeten doen is onze training gebruiken om onze training te gebruiken.
Het is vrij eenvoudig in de zin van wat we moeten opnemen, maar hoe we het aanpakken is een ander
verhaal.
Dat gezegd hebbende, ook als jullie een andere benadering gebruiken of als je dit wilt aanpassen en ermee wilt
experimenteren, wordt dit ten zeerste aanbevolen.
Als u daarnaast een andere aanpak gebruikt en deze wilt bespreken, aarzel dan niet om deze te
delen in de Q&A.
Meer dan blij om het met u te bespreken.
Het is zo'n geweldig idee, want er zijn zoveel manieren om dit op te lossen en je zou een manier kunnen
vinden die veel beter en voordeliger is.
We zouden de voor- en nadelen opnieuw kunnen bekijken, meer dan blij om het te bespreken.
Oke.
Dus wat moeten we doen?
We moeten onze opleiding starten.
Voor onze opleiding.
We willen de Epsilon gebruiken.
Dus eigenlijk het percentage dat we gaan nemen voor de beste actie voor R in plaats van een willekeurige actie.
Dus laten we onze epsilon instellen en op 0 zetten. 9 en we gaan iets soortgelijks doen met onze waarden
voor onze kortingsfactor en onze leersnelheid.
Dus laten we de kortingsfactor gelijk aan 0 doen. 9.
Laten we ook onze leersnelheid nemen en deze gelijk stellen aan 0. 9.
Dat zal het tarief zijn dat onze agent gaat of zou moeten leren.
En we willen ook het aantal trainingsafleveringen nemen, laten we het zo noemen, en trainingsafleveringen.
We hebben dus een aantal trainingsafleveringen.
Laten we het op duizend zetten.
Hoe vaak gaat het trainen of hoeveel afleveringen gaat dit trainen?
Geweldig.
Wat we nu eigenlijk willen doen, is elke aflevering herhalen.
We willen het bereik van ons aantal trainingsafleveringen nemen en ons in wezen ons epsilon instellen.
We willen ons temporele verschil vinden.
Om dat in te stellen, moeten we naar enkele eerdere Q-waarden kijken.
We moeten onze startpositie berekenen in onze actie-index.
Dus laten we beginnen.
Laten we een grote for-lus nemen.
Dus we hebben onze vier afleveringen.
In het bereik van ons aantal trainingsafleveringen.
Daar gaan we.
Behoudens enige syntaxisfout van mijn kant, willen we de rij-index en de kolomindex voor ons raster voor
onze Ms. kolom index.
En zei een beoogde startlocatie, we hebben een startlocatie nodig.
Dus laten we elke aflevering dat arme uur hebben.
Nu kunnen we onze eindstatus instellen while.
Niet.
Is terminale staat.
We willen kijken naar de rij-index en de kolomindex.
Oké.
Laten we vervolgens onze actie-index instellen voor onze volgende actie.
Dus we hebben onze volgende actie nodig.
Terwijl deze agent de middelen voor onze actie-index doorloopt, kunnen we onze volgende actie gebruiken.
En we kunnen onze rij-indexkolomindex gebruiken en laten we onze epsilon noemen.
Dus we willen dit hebben in plaats van onze willekeurige actie, laten we de kolomindex gebruiken.
En we hebben Epsilon nodig.
Geweldig.
Als ik goed kon spellen.
Hier, we willen Epsilon.
Oké, laat me dit even verwijderen.
Oké.
Laat me de rest van de code pakken en we lopen er doorheen zodat je niet hoeft te kijken hoe ik elke
regel typ.
Maar houd dat in gedachten hoe we dit willen aanpakken.
Als compensatie voor de oude rij hebben we een oude rij-index nodig.
We zouden ook de beloningen voor onze kolommen en onze rijen willen hebben.
We moeten kijken naar wachtrijwaarden en oude wachtrijwaarden, en we moeten ons temporele verschil
berekenen.
Oké.
U ziet dus de wijziging in code of de update van de code.
We nemen onze oude rij-index en onze oude kolomindex om naar onze rij-index en kolomindex te kijken.
Onze rij-index kolomindex gelijk aan onze volgende locatie.
En onze volgende locatie zou de rij-index, kolom, index en actie nodig hebben.
Ten slotte kijken we naar een beloning.
Onze oude Q-waarden zouden Q-waarden zijn met de oude rij-index, de oude kolomindex en nogmaals, verwijzend naar
onze actie-index en de berekening van ons tijdsverschil, wat onze beloning is, plus de
kortingsfactor maal de Q-waarden met de rij index en kolomindex minus de oude Q-waarde van de vorige
Q-waarde.
Bijna klaar waar we onze nieuwe Q-waarde nodig hebben, wat onze oude cue-waarde is, plus
de leersnelheid, tijden, tijdsverschil en onze cue-waarden met de oude rij-index in onze oude kolomindex die gelijk is aan de
nieuwe cue-waarde.
Als jullie hier verder over willen praten, raad ik de Q&A ten zeerste aan.
Voel je vrij om te printen.
Probeer te experimenteren met alle variabelen die hier worden gebruikt.
Als je hun vorm wilt zien, zien hoe ze kunnen worden gebruikt, waar het naar verwijst, raad ik het ten zeerste aan en ik
ben meer dan blij om het verder te bespreken.
Een laatste ding dat we kunnen doen, dus we hebben een kleine melding.
Laten we een afdrukoverzicht toevoegen, zodat we weten wanneer de training is voltooid voor onze duizend rijen.
Oke.
Als er geen syntaxisfouten van mijn kant zijn, zouden we goed moeten zijn om te gaan.
Het kolomnotitieblok wordt geïnitialiseerd.
Ik heb alles opnieuw gedaan, dus laat me dit uitvoeren.
Het zou heel snel moeten gaan, aangezien we alleen numpy gebruiken.
Het is in zekere zin een erg geoptimaliseerd model.
Laat me hierop klikken en dan zoeken we de kortste weg.
Oke.
We hebben onze opleiding afgerond.
Laten we voor sommige startopties ook het kortste pad afdrukken.
Dus we beginnen een rij drie, kolom negen met de kortste padoptie met ons kortste pad.
We willen naar rij vijf en nul kijken en beginnen bij rij negen en kolom nummer vijf.
Laten we deze uitprinten.
Geweldig.
We hebben de kortste weg, maar we zijn nog niet klaar.
We zijn er bijna.
We kunnen zien dat onze postbode automatisch het kortste pad krijgt van een juridische locatie die we kunnen overwegen, van onze stad
naar het verpakkingsgebied van het artikel.
Maar hoe zit het met het omgekeerde van het tegenovergestelde scenario, in feite verwijzend naar, weet je, kan
onze postbode een artikel van overal in de stad naar het verpakkingsgebied brengen?
Maar na het item zou het dan van dat gebied, van het verpakkingsgebied naar een andere locatie in de stad moeten
gaan, omdat het het volgende item zou moeten ophalen.
Dus wat kunnen we doen om dit op te lossen?
En het is eigenlijk best simpel.
Je zou de volgorde van het kortste pad kunnen herzien.
Probeer daar even over na te denken en dan zou dit de oplossing zijn.
We kunnen de kortste weg gebruiken.
Dus laten we vijf en kolom twee nemen en dan hoef je alleen de omgekeerde optie met Python te
gebruiken.
We gebruiken paddot reverse en we kunnen het pad afdrukken.
Dus we kijken naar vijf en twee.
En daar gaan we.
Wij hebben de kortste weg.
En het is erg handig als je de afbeelding in de cel wilt pakken en naar beneden wilt halen om die paden te vergelijken
en te bekijken.
Maar u kunt het pad daadwerkelijk zien als u de afgedrukte verklaring neemt, naar de kolom in
de bestelling kijkt en ziet hoe de verkoper reist.
Zo geweldig werk dat je gebruikt.
V Leren.
Wat we van deze cursus hebben geleerd, heeft een beetje een bonus en een leuk scenario in de sectie
om dit in wezen handelsreizigersprobleem op te lossen.
We kijken naar de postbode om pakketten en items in de stad te bezorgen om die kortste opties en kortste
paden te vinden.
Ik raad u ten zeerste aan om aan te passen, andere opties uit te testen, de hyperparameters te wijzigen,
en als u iets beters ontdekt, als u optimalisatie- of beste parameters ontdekt om te gebruiken, aarzel dan niet om deze te
delen in de Q&A.
Verbazingwekkend.
Ik hoop dat jullie hier echt van genoten hebben.
Pas het aan, experimenteer en blijf leren.
Het is zo leuk om met je samen te werken.
Leren en genieten I.