Hallo en welkom bij deze tutorial, nu gaan we de volledige lus maken die het beleidsverlies
en het waardeverlies berekent, en zodra we deze twee verliezen hebben, kunnen we onze optimizer gebruiken om stochastische gradiëntafdaling
toe te passen om te verminderen de verliezen.
Oke.
Dus daar gaan we.
Wij beginnen hier.
Trouwens, in de vorige tutorial hebben we deze sectie geïmplementeerd en ben ik vergeten de streepjes te verwijderen.
Sorry daarvoor.
Dus vanaf ons hier beginnen is niet in de lus.
En nu beginnen we aan een nieuwe volledige lus.
Dus ik begin hier met vier.
En wat we nu gaan doen, is dat we beginnen bij de laatste stap die tijdens de verkenning is gedaan en we
gaan terug in de tijd.
Dus daarom doe ik het hier voor mij in een omgekeerd bereik.
Len beloont omdat beloningen de lijst is, en aangezien elke stap van de verkenning is gekoppeld aan een beloning, omdat we bij
elke stap een beloning krijgen wanneer landbeloningen dit aantal stappen is en dit omgekeerde jaar wordt gebruikt, zodat
we terug in de tijd kunnen gaan .
Dus daar gaan we.
En wat we nu gaan doen, is de cumulatieve beloning die deel uitmaakt, bijwerken en we gaan het op deze
manier bijwerken.
Dat is eigenlijk hetzelfde als wat we deden voor Dhume.
Het zal gelijk zijn aan Gammer, die we krijgen van onze parameters en programma's eerst
gebruiken programma's die GEMAP-tijden zijn, plus de beloning van de stap die we kunnen krijgen door de laagste beloningen te nemen en indextijd
te nemen.
Dus eerst is dit de beloning van de laatste stap, dan is het de beloning van de vorige stap
en zo.
En elke keer dat we updaten, doen we dit door het te vermenigvuldigen met Gamma en vervolgens deze beloning bij de stap toe te voegen.
En onthoud, door dit te doen, onthoud dat we uiteindelijk zullen krijgen, ik ga het schrijven als een
opmerking die we zullen krijgen, de cumulatieve beloning die aan het einde van de lus gelijk zal zijn aan onze nul.
De beloning van Sub-Zero nul plus gamma keer onze één, de beloning, de eerste stap plus gamma kwadraat
keer of twee, de beloning, de tweede stap plus dat dat plus gamma op de macht van en minus één keer
de beloning behaald bij stap en min één waarbij N het aantal stappen is.
Maar wees dan voorzichtig, aan het einde hebben we gamma met de macht van het aantal stappen.
maal de waarde, de waarde van de functie toegepast op de laatste toestand.
Dat is wat we uiteindelijk moeten krijgen.
En dit zullen we krijgen, want onthoud dat we hier deze waarde van de laatste stap hebben omdat dit aan het einde van
deze vier loopier werd gedaan.
En dus kregen we de waarde en we zeiden dat ze gelijk moesten zijn aan die waarde.
Dus nu zijn aan het begin van de tweede vol hier gelijk zal zijn aan deze waarde van de laatste acht.
Maar als je dit doet, krijg je dit uiteindelijk of gelijk aan nul plus of één of twee plus Canada en min één keer
dat we stap zouden hebben en min één plus de macht van het aantal stappen keer
deze waarde van de laatste acht.
Dus dat is het belangrijkste om te begrijpen bij deze berekening van de cumulatieve beloning.
En daarom is het belangrijk om ermee te beginnen door te initialiseren of met de waarde hier en dit
omgekeerd te doen voor Loop om deze laatste vergelijking perfect te krijgen.
En nu we de juiste waarde voor de cumulatieve beloning hebben, gaan we het voordeel berekenen.
En het voordeel hier is alleen het voordeel van het krijgen van deze beloning in vergelijking met de waarde.
Dus ik ga een nieuw variabel voordeel introduceren en daarom zal het gelijk zijn aan deze cumulatieve beloning,
minus de waarde van de functie die bij deze stap is verkregen.
Dus dat is dus eh min waarden die ik perfectioneer.
En nu we de gemeenschapsbeloning en het voordeel hebben, kunnen we de waarde verliezen.
Dit is het eerste verlies dat we nu kunnen krijgen.
Dus we gaan onze waardeverliesvariabele krijgen en dit zal op de volgende manier worden bijgewerkt.
Onthouden.
Zo ver dat het waardeverlies op nul is geïnitialiseerd.
En dus gaan we het waardeverlies opnieuw nemen en vijf keer het kwadraat toevoegen aan het voordeel, zodat we het op
deze manier kunnen krijgen.
Profiteer daar nu ook van.
Dus dat betekent gewoon het voordeel, het voordeel van de macht van twee, kwadrateren.
En dat is precies het waardeverlies, het verlies dat wordt gegenereerd door de voorspellingen van de waarde van de V-functie die door
de kreek wordt uitgevoerd.
En dus is het logisch dat dit het waardeverlies is, want onthoud dat het voordeel, A, van de actie in
de toestand s het verschil is tussen de waarde en de waarde van de P-functie.
En dus als we de optimale actie spelen, nou, we krijgen de stationaire toestand met.
Q Optimaal van de optimale actie die een ster speelde in de staat s.
Is gelijk aan de optimale waarde van ster van de staat.
Het is dus vrij intuïtief om te begrijpen dat wanneer het voordeel niet gelijk is aan nul, er een
verschil zal zijn tussen deze twee en daarom wordt het verlies zo gemeten.
OK, dus waardeverlies berekend een verlies naar beneden.
We hebben er nu nog één te gaan.
Het is het verlies van de polis en dat is precies wat we nu gaan berekenen.
En om het te berekenen, moeten we opnieuw rekening houden met de schatting van het gegeneraliseerde voordeel, want om het beleidsverlies
te berekenen, hebben we de schatting van het gegeneraliseerde voordeel nodig en om de schatting van het gegeneraliseerde voordeel
te krijgen, hebben we eerst het tijdsverschil van de toestandswaarden nodig.
We moeten hier dus meerdere dingen berekenen.
En we gaan beginnen met dit temporele verschil.
Zodra we het temporele verschil krijgen, krijgen we de algemene schatting van het voordeel.
En zodra we de algemene schatting van het voordeel hebben, krijgen we het beleid.
Oke.
Dus laten we beginnen met het temporele verschil.
T. G. Dus T. G. is gelijk aan de beloning van de stap AI plus ganna, waarmee we dingen naar
onze programmalijst krijgen.
Dus parameter kema maalt de waarde van de stap AI plus één en we voegen die gegevens toe om het te beoordelen minus de
waarde van de stap AI.
En stel dat we die gegevens toevoegen.
Oké, dat is de formule van het temporele verschil van de toestandswaarden, en nu kunnen we
de gegeneraliseerde voordeelschatting bijwerken en hoe wordt deze bijgewerkt?
Nou, we nemen onze Geet en we vermenigvuldigen het met GEMAP voor die GIMA-tijden, die we ook geobsedeerd hebben door
onze parameters.
Dus we nemen forams vertellen.
En we voegen dit temporele verschil van de toestandswaarden toe, dus wees voorzichtig, we zitten in een volledige lus en
elke keer dat we het met gamma vermenigvuldigen, tellen we het tijdsverschil op.
Het is dus belangrijk om te begrijpen dat aan het einde van deze lus, deze
algemene schatting van het voordeel gelijk zal zijn aan de zon op alle stappen van gammatijden toren met de macht I maal het temporele verschil bij
de stap voorwaarts.
Oké, het is zo belangrijk om dat in gedachten te houden, en nu we het algemene voordeel,
de schatting en het temperatuurverschil hebben, kunnen we eindelijk de polylettergrepen berekenen.
Dus laten we dit doen.
We gaan onze beleidswetten op de volgende manier bijwerken door de oude beleidswetten te nemen en we trekken de log-kansen
die bij stap I zijn verkregen af, die we vermenigvuldigen met deze algemene voordeelschatting die we in een variabele moeten
invoeren, want dan zullen we hellingen.
Het moet dus worden gekoppeld aan hellingen in de dynamische grafiek.
En dan tellen we min 0 op. 01 keer de entropie, de entropie verkregen bij de stap door in de herfst en opnieuw.
Wees nu voorzichtig.
Dit is de berekening binnen de for-lus, wat betekent dat we aan het einde
van de lus polysyllaben krijgen.
Is gelijk aan min enkele over de treden.
Van het product van het beleid op de stapsgewijze tijden, de gegeneraliseerde voordeelschatting plus deze 0. 01.
Times de entropie op de staatsgrens.
Dus daar gaan we, en wat is nu het beleid van de staat?
Nou, dat zijn de softmax waarschijnlijkheden van de acties en de entropie. Weet je wat het is?
Het is wat we eerder hebben berekend en wat we van plan waren te doen.
Dat hebben we dus al.
Maar deze taart hier is de softmax-waarschijnlijkheid van de acties.
En waarom zetten we hier een minpuntje?
Dat komt omdat het geluk van de kans en de entropie negatieve waarden zijn.
En aangezien we hun absolute waarde willen minimaliseren, moeten we dit zien als een lage waarschijnlijkheid in plaats van
een afstand.
Nee, we willen de kans maximaliseren om de actie te spelen die het voordeel maximaliseert.
Dat is het hele idee erachter.
We willen de kans maximaliseren om de actie te spelen die het voordeel maximaliseert.
En voor degenen onder jullie die zich misschien afvragen wat het doel is van deze entropiecoëfficiënt, dat is deze
factor 0. 01 hier?
Welnu, het doel ervan is alleen om te voorkomen dat we te snel in een val trappen waarin we een
kansverdeling hebben met nullen voor alle acties behalve één die een kans van één heeft.
En als dat gebeurt, zou dat de entropie minimaliseren.
Daarom voegen we deze kleine coëfficiënt 0 toe. 01 hier waardoor de entropie in de gradiëntdaling
toeneemt.
OK, dus nu is het goede nieuws dat het moeilijkste deel is gedaan, we hebben de twee verliezen en daarom hoeven we alleen
nu en we weten al hoe we het moeten doen de stochastische gradiëntafdaling uit te voeren om deze twee
verliezen te verminderen .
Dus wat we nu gaan doen is uit deze lus komen en we gaan onze optimizer nemen, degene die
we apart hebben gemaakt.
Onthoud dan dat het eerste wat we moeten doen is om alle gradiëntparameters op nul te initialiseren.
En om dit te doen, voegen we dat toe dan de nul en deze kerngrad-methode.
Goed, dat is dan gedaan.
Nu gaan we achterwaartse propagatie uitvoeren, maar we gaan twee keer zoveel belang hechten aan de
polis, minder dan het waardeverlies, omdat het polisverlies kleiner is.
Om dit te doen, zetten we tussen haakjes het beleid op de score plus plus vier komma vijf waardeverlies.
Dus vier komma vijf keer het waardeverlies en we gaan dat hier optellen en we passen de achterwaartse methode toe om achterwaartse voortplanting uit te voeren en
zo, dat is lastiger met de polylettergrepen plus de helft van de waarde die we hebben,
twee keer zoveel belang voor het beleid, minder dan de waarde doet.
Oké, dan gaan we een andere truc gebruiken, namelijk om te voorkomen dat het verloop extreem grote
waarden aanneemt en dus om het algoritme te genereren.
En de truc om dat te doen is om eerst onze toortsbibliotheek te krijgen, dan de motormodule uit
de toortsbibliotheek en dan de submodulaire utils.
En nu gaan we de functie clip gebruiken, grad's onderstrepen in deze hoek en
we gaan onze modelparameters invoeren met een tweede invoer, die 40 zal zijn.
En die truc zorgt er in principe voor dat het verloop geen extreem grote waarden aanneemt en om het algoritme
te genereren.
En voor degenen onder jullie die zich misschien afvragen wat deze 40 jaar precies is.
Dat betekent alleen dat we deze waarde gebruiken zodat de norm van het verloop tussen nul en 40
blijft.
En daarom voorkomen we dat het verloop twee grote waarden aanneemt.
Oké, dus nu zijn we bijna klaar.
Onthoud dat we dit hebben gemaakt en die functie zeker hebben gedeeld aan het begin van de herfst, namelijk om ervoor te zorgen dat
de agent en het gedeelde model hetzelfde verloop delen en dit te doen om ervoor te zorgen dat we deze functie
hier kunnen toepassen.
En dus gaan we gradaties toevoegen en zeker delen om ervoor te zorgen dat het model en het gedeelde model hetzelfde verloop
delen.
Oke.
Dus dat is gewoon een voorzorgsmaatregel.
Ik weet niet zeker of dat helemaal nodig is.
Maar weet je, we zullen hier tenminste geen probleem krijgen.
OK, en tot slot, de laatste regel code.
We gaan natuurlijk de optimalisatiestap uitvoeren om de verliezen te verminderen en jij weet hoe je dat moet
doen.
Natuurlijk nemen we onze optimizer en voegen we die stap met haakjes toe en daar gaan we.
De training van onze hersenen is voorbij.
Gefeliciteerd dus.
Ik hoop dat dit niet te overweldigend was.
Maak je geen zorgen, ik zal de code voorzien van alle opmerkingen.
Dus als je een detail hebt gemist, kun je de opmerkingen bekijken.
En maak je geen zorgen als je niets hebt begrepen.
Dit is zeer geavanceerd.
Maar wees gerust, dit is ook de krachtigste herinnering aan wie is gemaakt van de maker van by Torch.
We werken hier dus echt met de besten, de stand van de techniek.
Het is dus volkomen normaal als je niet alles de eerste keer hebt gekregen, maar door er veel aan te werken, zul je je
zeker meer en meer op je gemak voelen.
Dus nu zijn we klaar met de training.
Dus eigenlijk hebben we alle belangrijkste dingen gemaakt.
Weet je, we hebben de hersenen gemaakt door de architecturen van de nieuwe netwerken te bouwen met de windingen,
de a. T. M en de volledig verbonden lagen.
We trainen dit brein door hier deze treincode te maken.
Dus eigenlijk is het hart van het algoritme klaar.
Je hebt de A3 gefeliciteerd.
Nu hebben we nog een paar dingen te doen, maar dat is alleen om het leuke deel te krijgen.
Weet je, we moeten deze test zo mooi maken, die de agenten zal testen en de video's en de uitbraak van het
vliegtuig zal opleveren.
Dit wordt dus erg leuk om naar te kijken.
We zullen niet alle regels coderen van deze test die ik viel omdat, zoals we zeiden, we het belangrijkste
deden, allemaal gerelateerd aan een drie C, maar ik zal natuurlijk de code uitleggen en uiteindelijk hebben we dit kan
eindigen up tegen de herfst, die de code zal uitvoeren.
En vanaf het moment dat we deze code uitvoeren, worden alle codes gegenereerd.
Dus de hersenen zullen worden gemaakt, de training zal plaatsvinden, en ik zal nieuwe breakout-spellen spelen en we zullen
alle video's krijgen.
Dus ik kan niet wachten om ze uiteindelijk te gaan bekijken.
We gaan kijken of hij slim genoeg is om de bal te vangen.
Dus nu ga ik je zien in de volgende tutorial voor deze test-API, zodat we de lucht kunnen testen op een aantal nieuwe
games.
En tot die tijd, geniet van I.