Hallo en welkom bij deze tutorial.
OK, dus we hebben zojuist de entropie berekend en toegevoegd aan de attributenlijst
en nu gaan we een willekeurige trekking van een actie doen volgens de kansverdeling van de softmax.
Dus laten we dit doen.
Dat is de volgende stap.
We zijn nog steeds in de lus omdat we hier nog steeds op de trappen rennen.
En dus weet je nu hoe je de actie moet spelen.
We zullen eerst een variabele introduceren voor de actie genaamd actie, en dan
nemen we onze kansverdeling en we gaan de multi Gnomeo-functie gebruiken om een willekeurige trekking uit deze kansverdeling te
nemen.
En dan voegen we die gegevens toe, dus het is belangrijk op te merken dat de actie eigenlijk een Tenzer zal zijn met slechts
één waarde, maar je moet dit niet als een eenvoudige waarde zien.
Je zou dit moeten zien als een sensor, een dimensie is één voor één die deze waarde voor de actie bevat.
En dat komt omdat het niet geperst is.
En nu nog steeds in dezelfde lus, krijgen we de vertragingskans die is gekoppeld aan de actie die werd
weergegeven.
En dus dateer ik mijn liefdeswaarschijnlijkheid hier door de vorige te nemen, het vorige slotprobleem dat we hier
hebben berekend.
En dan ga ik de andere methode gebruiken waaraan ik er een ga invoeren en de actie die werd weergegeven,
omdat we de vergrendelingswaarschijnlijkheid willen krijgen die aan deze actie is gekoppeld.
En dus als het tweede argument hier, ga ik mijn actie invoeren.
Maar er moet een martelvariabele zijn zoals vereist door de verzamelde functie en de verzamelde functie, alleen
indexen met het tensor-geheel getal.
Oke.
Dus nu hebben we zojuist de vergrendelingsprob gekregen die is gekoppeld aan de actie die werd weergegeven.
En nu is de volgende stap om toe te voegen wat we hebben aan de lijst hier.
Dus we hebben de waarde.
Dat is wat we hier hebben als de output van het model.
Toen kregen we ook het slotprobleem.
Dus we gaan het slot toevoegen aan de lijst met slot misschien.
We hebben de entropie al toegevoegd aan de entropieën, dus we zitten goed.
En de beloningen, die krijgen we achteraf.
Dus we zullen nu de waarde en het slot toevoegen aan de waardenlijst en het slot misschien lijst.
Laten we dit doen.
We nemen onze waardenlijst.
We voegen eraan toe dat we de append-functie gebruiken en we voegen de waarde toe die zojuist door het model is geretourneerd.
Perfect.
Dan hetzelfde voor de logprobs.
We hebben net onze nieuwe laptops en we gaan deze uitbreiden naar de log probusiness.
En dus voeren we in deze append-functie log in vanuit ons geluk.
Dat is hier net berekend.
Oke.
Dus onze lijsten zijn nu goed bijgewerkt.
Dus wat we nu gaan doen is de actie spelen, want eigenlijk hebben we hier de actie
geselecteerd door een willekeurige trekking te doen uit deze kansverdeling hier.
Maar eigenlijk hebben we het nog niet gespeeld.
En we gaan het nu spelen zodat we de nieuwe staat kunnen bereiken en dus de nieuwe overgang kunnen krijgen.
En om het te spelen, nemen we onze omgeving omdat we de actie in onze omgeving
spelen, dan gaan we de stapmethode gebruiken.
En binnenin specificeren we de actie die is geselecteerd om het te spelen.
En om dit te doen, ondernemen we onze actie en voegen we dat getal toe met omdat dat is wat wordt verwacht door
de stapfunctie.
Oké, maar dit komt terug.
Eigenlijk de nieuwe staat en ook de nieuwe beloning, want door een nieuwe staat te bereiken, krijgen we een nieuwe beloning en krijgen we ook
nieuwe waarde voor Dunn om te weten of het spel klaar is of niet.
Oke.
Dus hiermee spelen we de actie.
We hebben een nieuwe staat bereikt en we krijgen een nieuwe beloning en we weten of we klaar zijn met het spel.
En als we het hebben over klaar zijn met het spel, nou, we gaan hier gewoon iets toevoegen dat
ervoor zorgt dat een agent niet vastzit in een of andere staat.
En om dat te doen, gaan we de verdraaide variabele op de volgende manier bijwerken.
Nou, het zal gelijk zijn aan Dunn of we gaan een voorwaarde toevoegen die zegt dat de aflevering van het spel
niet te lang mag duren.
En u zult in de hoofdfunctie zien dat er een parameter voor de lengte van de volgende aflevering zal zijn, die gelijk
zal zijn aan tienduizend.
En we willen niet dat een aflevering langer duurt dan tienduizend stuks.
Dus we gaan hier de lengte van de aflevering toevoegen, wat de lengte van een aflevering is, en we
gaan een voorwaarde schrijven die groter is dan Max.
Afleveringslengtes die we gebruiken, maken het eigenlijk de lengte die we krijgen van onze parameters, daarom voeg
ik hier programma's toe met de bromstadmaximizer-lengte.
Dus dit betekent dat als het spel klaar is of de lengte van de aflevering groter is dan de maximale lengte van de afleveringsset, die gelijk zal
zijn aan tienduizend, het spel zal worden gespeeld en we een nieuw spel zullen
beginnen.
Oké, dus dat is slechts een voorzorgsmaatregel.
En over voorzorg gesproken, we gaan nog een voorzorgsmaatregel toevoegen.
Het is om de beloning tussen min één en plus één te klemmen.
We hebben de beloning hier al, maar we willen ervoor zorgen dat de beloning tussen min één en plus één ligt.
En om dit te doen, hoeven we alleen maar de beloning bij te werken door dit te doen, de max te
nemen, dan de mannen van beloning en één te nemen.
En hier nemen we het maximum van het minimum aan beloning en één en min één.
En dat is wat ervoor zorgt dat de beloning tussen min één ligt.
Plus een.
Oké, dus nog een voorzorgsmaatregel en nu willen we gewoon controleren of het spel klaar is, in welk geval we de omgeving
zullen herstellen, en waarom moeten we dat nu controleren?
Het is omdat we net hebben bereikt en New zei dat we net een nieuwe transmissie hebben doorgegeven.
Dus we moeten dat controleren na het passeren van deze nieuwe overgang terwijl het spel nog niet klaar is.
Dus als het opnieuw wordt gedaan, als het wordt gedaan, zullen we in dat geval de omgeving herstellen door de lengte van de
aflevering op nul in te stellen en ook zal de status opnieuw worden geïnitialiseerd om deze opnieuw te initialiseren.
We nemen onze omgeving en we gebruiken de reset-functie.
OK, nu komen we uit deze toestand die alleen maar was om in te checken, en wat we nu gaan doen is
sinds we een nieuwe staat hebben bereikt, nou, deze nieuwe staat is nu en dan baira, want
onthoud, de staten zijn de ingangen, afbeeldingen die oorspronkelijk bekend waren door gewist.
En dus moeten we nu de nieuwe toestand omzetten in een toortssensor.
Dus we gaan onze status updaten en we gaan de fakkelbibliotheek gebruiken en natuurlijk
de van Noontide-functie om dit aantal om te zetten, een status van de invoerbeelden in een zaklampsensor.
Perfect.
En het laatste wat we moeten doen voordat we uit deze for-loop komen, is de loop op onze stappen.
Nou, het is natuurlijk om de beloning toe te voegen aan de beloningslijst.
Dat is het laatste dat moet worden bijgewerkt.
We hebben alle lijsten hier bijgewerkt, behalve de beloning.
Dus dat gaan we nu doen.
We nemen onze beloningen en gebruiken de penfunctie om de laatst ontvangen beloning bij te wonen.
Perfect.
En net voordat we uit de lus zijn, hoeven we nog een laatste controle uit te voeren om dat te controleren.
Als het klaar is, willen we de verkenning stoppen.
En dus gaan we hier gewoon een pauze toevoegen, wat betekent dat als het klaar is, we de verkenning stoppen
en direct doorgaan naar de volgende stap, namelijk de update van het gedeelde model.
En nu zijn we klaar met deze groep.
Nu de agent zijn verkenning heeft gedaan, zal hij het gedeelde model updaten en daar zullen we in de volgende
Atauro voor zorgen.
Tot dan, Inge.