Hallo en welkom bij deze tutorial.
Oké, dus nadat we deze vier windingen en de Estienne hebben gemaakt, hebben we nu een gecodeerde staat die de
invoer zal zijn van deze twee nieuwe netwerken die we gaan maken voor de acteur en de
criticus.
En nu we het er toch over hebben, het enige dat we nu hoeven te doen, is gewoon tooling maken.
Er zijn volledige connecties, één voor de acteur en één voor de criticus.
Maar voordat we dat doen, moeten we het aantal mogelijke acties weten.
En dus ga ik hier een nieuwe variabele noemen die geen variabele van het object zal zijn.
Dus ik ga zelf hier niet gebruiken, maar ik ga de variabele NUM-uitvoer maken, die een aantal mogelijke acties zal
vertegenwoordigen en om het te krijgen waar we het uit de actieruimte kunnen halen.
Dus we nemen onze actieruimte, die de invoer zal zijn van de init-functie wanneer we het object maken en dan voegen
we dat toe.
En om dit aantal mogelijke acties te krijgen en nu zullen de acteur en de criticus afzonderlijk dezelfde input nemen
die de output is van dit hele proces hier met de windingen en de storm.
Dus het zal dezelfde invoer nodig hebben, wat een gecodeerde toestand is, maar dan zullen ze twee verschillende lineaire verbindingen
hebben zodat we uiteindelijk daadwerkelijk bij neurale netwerken komen, één voor de acteur en één voor Craig.
Dus laten we deze twee afzonderlijke neurale netwerken maken.
Maar aangezien we het grote werk met de codering hier al hebben gedaan, moeten we gewoon twee
objecten maken, één betekenisvolle verbinding voor de acteur en één andere lineaire verbinding voor de
criticus.
En dat is dus precies wat ik ga doen.
Ik ga twee objecten maken.
Nu, het eerste object voor de lineaire verbinding van de criticus, die ik een criticus ga noemen op
de onderstrepingslijn I en om deze lineaire verbinding te creëren.
Nou, je weet hoe je het moet doen.
We moeten gewoon de energiemodule nemen en dan de lineaire klasse waarin we de inputneuronen
moeten invoeren, die de output zijn van dit alles, inclusief hier met de windingen en
de AC, en dat zijn 256 neuronen.
Dus we voeren hier tweehonderdzesenvijftig in en dan hebben we één uitvoer, want onthoud dat de uitvoer van het nieuwe netwerk
voor de criticus de waarde is van de functie die is toegepast op de invoerstatus, op de
invoergecodeerde status die we hebben gemaakt hier.
Dus als we de invoertoestand s noemen, is dat de uitvoer van dit alles.
Welnu, de output van het neurale netwerk van de criticus zal worden geuit.
En daarom heeft het één dimensie.
Het is gewoon een waarde.
En dus voeren we er hier een in.
En onthoud, dit is wat de acteurs delen, zodat ze gemeenschappelijke informatie kunnen krijgen die ze kunnen gebruiken om
hun actie op een meer relevante manier te spelen.
OK, dus dat is voor het neurale netwerk van de criticus.
En laten we nu het neurale netwerk van de acteur maken en daarom voeg ik hier een self-dout-acteur toe, lineair en
hetzelfde.
We hebben al de ingangen inclusief toestanden, dus nu hoeven we alleen maar een lineaire verbinding toe te voegen
en daarom zeggen we dat we de eindmodule nemen, dan de lineaire klasse en nu hetzelfde.
Dit neurale netwerk van de acteur zal de gecodeerde toestand aannemen die de grootte heeft van
tweehonderdzesenvijftig.
Dus tweehonderdzesenvijftig hier.
Maar dan zal de output anders zijn, want je weet het natuurlijk wel, de output van het
neurale netwerk voor de acteur, andere sleutelwaarden, de kernwaarden van de inputstatus, degene die we hier hebben
opgenomen en de actieplaat.
Dus nogmaals, als we deze gecodeerde toestand die we hier hebben gemaakt s noemen en de actieplaat A, de output
van dit neurale netwerk, dan zal er feitelijk QSA zijn.
En aangezien, weet je, we één sleutelwaarde hebben voor elke actie, daarom hebben we geen uitvoerwaarden en
daarom zal de uitvoer hier geen zijn.
Uitvoer omdat geen uitvoer eigenlijk het aantal waarden is.
Oke perfect.
Dus als je wilt, kan ik de output hier voor je schrijven, want de criticus is de S waarbij S de gecodeerde staat
is en voor de acteur de output.
Is schattig als een.
Oké, dus dat is heel belangrijk om dit onderscheid hier te begrijpen en om te begrijpen dat we daarom twee
afzonderlijke nieuwsnetwerken hebben, één voor de criticus en één voor de acteur.
Oke perfect.
In deze functie zijn we hier dus bijna klaar mee.
Nu is het belangrijkste gedaan.
Het enige dat we nog moeten doen, is alle gewichten van die twee neurale netwerken en
alle kopers initialiseren.
En natuurlijk, om dat te doen, gaan we de twee functies gebruiken die we eerder hebben gemaakt.
Dat is een genormaliseerde Cullum's initialisatie en de gewichten erin.
Laten we dat dus snel doen.
Het gaat vrij gemakkelijk en behoorlijk snel.
Dus eerst gaan we wat willekeurige gewichten initialiseren en om dit te doen, gaan we de gewichten toepassen en
het functioneert op ons object.
Dus hier moeten we onszelf nemen om ons object in ons object te krijgen.
We passen de gewichten toe in hun functie.
Dus daarom hoeven we binnenin alleen de gewichten in de functie in te voeren en dan gaan we.
Dat zal deze functie toepassen op ons object.
En door dit te doen, initialiseren we slechts enkele willekeurige gewichten om in de toekomst optimaal van deze gewichten te
leren.
En nu moeten we een speciale normalisatie maken voor de acteur en de criticus.
Maar onthoud, ik denk dat ik dit in de vorige tutorials heb verteld, we gaan niet dezelfde variantie instellen voor
de acteur en de criticus.
De acteur krijgt een kleine standaarddeviatie, een kleine variantie en de criticus een grote.
En waarom doen we dit?
Wat is het doel van het geven van een kleine standaarddeviatie van de gewichten voor de acteur en de grote standaarddeviatie van
de gewichten voor de criticus?
Dat stelt ons in staat om exploratie versus exploitatie af te handelen.
Dat is precies het doel om dit te doen.
Door een kleine variantie te geven aan de acteur en een groter publiek, de criticus, krijgen we een
goed beheer van exploratie versus exploitatie.
Dus laten we dit doen.
Laten we eerst voor de acteur zorgen, dus we nemen zelf of object.
Dan nemen we het neurale netwerk van onze acteur, dat is acteur Linnehan.
Dan gaan we toegang krijgen tot de gewichten van dit neurale netwerk van de acteur en onthouden om toegang te krijgen tot de
gegevens van de gewichten, we moeten die gegevens toevoegen.
Oke.
Dus hiermee krijgen we de gewichten en nu gaan we onze functie normalized Cullum's Initialized gebruiken.
Dus ik kopieer dit, plak dat hier.
En we gaan als argument de standaarddeviatie invoeren die we willen dat deze gewichten hebben.
Maar onthoud eerst dat deze functie twee argumenten nodig heeft.
Ten eerste zijn de gewichten die we willen initialiseren.
Dus we moeten dat gewoon opnieuw nemen en hier.
En het tweede argument is de standaarddeviatie die we willen dat deze gewichten hebben.
Dus zoals we al zeiden, we willen een kleine standaarddeviatie voor de acteur en een kleine wordt 0. 01 perfect.
Dus dat is voor de gewichten van het neurale netwerk van de acteur.
Laten we nu de vooringenomenheid van het nieuwe netwerk van de acteur wegnemen.
En daarom gaan we hier bijna hetzelfde doen.
We gaan dit stuk kopiëren dat hieronder het gewicht vervangt door vooringenomenheid om toegang te krijgen tot de vooringenomenheid.
En na gegevens gaan we gewoon dat gevoel toevoegen en onthouden binnen invoer nul, omdat we willen dat alle vooroordelen
worden geïnitialiseerd met nul.
Dus eigenlijk denk ik niet dat deze regel nodig is omdat, zoals je je herinnert, de bias al op nul is geïnitialiseerd
met deze volledige functie in de gewichten in zijn functie.
Dus, weet je, we doen dit om er zeker van te zijn dat de bias daadwerkelijk op nul wordt geïnitialiseerd.
Maar ik denk dat het hier al gedaan is.
Maar goed, nu weten we het honderd procent zeker.
Oke.
Nu gaan we hetzelfde doen voor de criticus.
Laten we dus efficiënt zijn en deze twee lijnen vergelijken.
Laten we ze hier en hier nemen, we gaan acteur vervangen door criticus, hetzelfde hier en nu, het enige dat
we moeten veranderen is alleen de standaarddeviatie.
Wilt u de gewichten van het nieuwe netwerk voor de criticus hebben.
En zoals je je herinnert, willen we deze keer een grote standaarddeviatie.
En in plaats van 0. 01, we zullen er een invoeren.
Dus daar gaan we.
We hebben een kleine standaarddeviatie voor de gewichten van het nieuwe netwerk van de acteur en een lagere standaarddeviatie voor de
gewichten van het nieuwe netwerk van de criticus.
En laten we natuurlijk niet vergeten acteur hier te vervangen door criticus.
Oké, nu worden we cool.
Dus nu hebben we nog twee dingen te doen.
De eerste is om ook de bias van het systeem te initialiseren.
En om dit te doen, nemen we ons object zelf omdat de LCN bij ons object hoort en we nemen onze beurt
dan dat en dan gaan we de twee soorten kopers krijgen die in de storm zitten.
Die vooringenomenheid onderstrepen leeftijd.
En de andere is gebaseerd op deze kern H. H. Dat zijn dus de twee soorten vooringenomenheid bij de verkiezingen.
En hetzelfde zullen ze worden geïnitialiseerd op nul.
Dus eerst hebben we toegang tot de gegevens en dan gebruiken we de functie voor het onderstrepen van het veld om al deze vooroordelen met nullen te vullen,
ze geïnitialiseerd met de jouwe.
Oke.
En nu voor de tweede groep vooroordelen, we zijn hier hetzelfde, maar we hebben het vervangen door H. H..
Oke.
Dus dat initialiseert de bias van het axioma met nullen.
En nu is het laatste wat we moeten doen een methode gebruiken die is overgenomen van de module die de
treinmethode is.
En eigenlijk is dat gewoon een methode die de module in de treinmodus zet.
Dus wat is het nut ervan?
Welnu, het gebruik dat het mogelijk maakt om, als die er is, de drop en de batchnormalisaties te activeren.
En dus om het te gebruiken, voegen we gewoon een zelfdarttrein toe en dat zet de module perfect in de treinmodus.
We zijn dus klaar met de init-functie.
We hebben onze windingen, we hebben de Estienne, we hebben onze twee afzonderlijke neurale netwerken voor de
criticus en de acteur en alle gewichten en vooroordelen.
Oh goed geïnitialiseerd.
Dus dat is allemaal goed.
We zijn klaar om door te gaan naar de volgende stap, namelijk het maken van de voorwaartse
functie die, natuurlijk, het signaal vanaf het allereerste begin met de originele invoerbeelden door het hele brein zal verspreiden totdat
we de uitvoer krijgen.
Dus laten we dat doen in de volgende tutorial.
En tot die tijd, geniet ervan.