WEBVTT

00:00.450 --> 00:05.430
Hallo en welkom bij deze tutorial, nu gaan we de volledige lus maken die het beleidsverlies

00:05.430 --> 00:11.250
en het waardeverlies berekent, en zodra we deze twee verliezen hebben, kunnen we onze optimizer gebruiken om stochastische gradiëntafdaling

00:11.250 --> 00:14.070
toe te passen om te verminderen de verliezen.

00:14.640 --> 00:14.970
Oke.

00:14.970 --> 00:15.710
Dus daar gaan we.

00:15.810 --> 00:17.340
Wij beginnen hier.

00:17.520 --> 00:23.250
Trouwens, in de vorige tutorial hebben we deze sectie geïmplementeerd en ben ik vergeten de streepjes te verwijderen.

00:23.250 --> 00:24.020
Sorry daarvoor.

00:24.270 --> 00:28.040
Dus vanaf ons hier beginnen is niet in de lus.

00:28.320 --> 00:30.360
En nu beginnen we aan een nieuwe volledige lus.

00:30.360 --> 00:32.130
Dus ik begin hier met vier.

00:32.700 --> 00:38.250
En wat we nu gaan doen, is dat we beginnen bij de laatste stap die tijdens de verkenning is gedaan en we

00:38.460 --> 00:40.010
gaan terug in de tijd.

00:40.320 --> 00:45.750
Dus daarom doe ik het hier voor mij in een omgekeerd bereik.

00:47.020 --> 00:54.340
Len beloont omdat beloningen de lijst is, en aangezien elke stap van de verkenning is gekoppeld aan een beloning, omdat we bij

00:54.340 --> 01:00.790
elke stap een beloning krijgen wanneer landbeloningen dit aantal stappen is en dit omgekeerde jaar wordt gebruikt, zodat

01:00.790 --> 01:03.720
we terug in de tijd kunnen gaan .

01:04.120 --> 01:04.930
Dus daar gaan we.

01:04.960 --> 01:10.810
En wat we nu gaan doen, is de cumulatieve beloning die deel uitmaakt, bijwerken en we gaan het op deze

01:10.810 --> 01:11.440
manier bijwerken.

01:11.500 --> 01:13.600
Dat is eigenlijk hetzelfde als wat we deden voor Dhume.

01:14.050 --> 01:20.680
Het zal gelijk zijn aan Gammer, die we krijgen van onze parameters en programma's eerst

01:20.830 --> 01:30.060
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

01:30.080 --> 01:31.000
te nemen.

01:31.360 --> 01:35.920
Dus eerst is dit de beloning van de laatste stap, dan is het de beloning van de vorige stap

01:35.920 --> 01:36.650
en zo.

01:36.910 --> 01:43.060
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.

01:43.480 --> 01:49.390
En onthoud, door dit te doen, onthoud dat we uiteindelijk zullen krijgen, ik ga het schrijven als een

01:49.390 --> 01:55.660
opmerking die we zullen krijgen, de cumulatieve beloning die aan het einde van de lus gelijk zal zijn aan onze nul.

01:55.960 --> 02:05.650
De beloning van Sub-Zero nul plus gamma keer onze één, de beloning, de eerste stap plus gamma kwadraat

02:06.460 --> 02:17.410
keer of twee, de beloning, de tweede stap plus dat dat plus gamma op de macht van en minus één keer

02:17.410 --> 02:25.600
de beloning behaald bij stap en min één waarbij N het aantal stappen is.

02:26.020 --> 02:31.960
Maar wees dan voorzichtig, aan het einde hebben we gamma met de macht van het aantal stappen.

02:33.440 --> 02:39.360
maal de waarde, de waarde van de functie toegepast op de laatste toestand.

02:40.020 --> 02:42.190
Dat is wat we uiteindelijk moeten krijgen.

02:42.500 --> 02:49.070
En dit zullen we krijgen, want onthoud dat we hier deze waarde van de laatste stap hebben omdat dit aan het einde van

02:49.070 --> 02:50.510
deze vier loopier werd gedaan.

02:50.990 --> 02:55.850
En dus kregen we de waarde en we zeiden dat ze gelijk moesten zijn aan die waarde.

02:56.270 --> 03:03.040
Dus nu zijn aan het begin van de tweede vol hier gelijk zal zijn aan deze waarde van de laatste acht.

03:03.440 --> 03:11.930
Maar als je dit doet, krijg je dit uiteindelijk of gelijk aan nul plus of één of twee plus Canada en min één keer

03:12.320 --> 03:17.740
dat we stap zouden hebben en min één plus de macht van het aantal stappen keer

03:18.080 --> 03:20.470
deze waarde van de laatste acht.

03:20.870 --> 03:25.690
Dus dat is het belangrijkste om te begrijpen bij deze berekening van de cumulatieve beloning.

03:25.910 --> 03:32.750
En daarom is het belangrijk om ermee te beginnen door te initialiseren of met de waarde hier en dit

03:32.750 --> 03:37.280
omgekeerd te doen voor Loop om deze laatste vergelijking perfect te krijgen.

03:37.280 --> 03:43.310
En nu we de juiste waarde voor de cumulatieve beloning hebben, gaan we het voordeel berekenen.

03:43.670 --> 03:48.740
En het voordeel hier is alleen het voordeel van het krijgen van deze beloning in vergelijking met de waarde.

03:49.010 --> 03:56.090
Dus ik ga een nieuw variabel voordeel introduceren en daarom zal het gelijk zijn aan deze cumulatieve beloning,

03:56.090 --> 04:00.950
minus de waarde van de functie die bij deze stap is verkregen.

04:01.490 --> 04:07.600
Dus dat is dus eh min waarden die ik perfectioneer.

04:07.610 --> 04:12.740
En nu we de gemeenschapsbeloning en het voordeel hebben, kunnen we de waarde verliezen.

04:13.070 --> 04:14.770
Dit is het eerste verlies dat we nu kunnen krijgen.

04:15.080 --> 04:20.810
Dus we gaan onze waardeverliesvariabele krijgen en dit zal op de volgende manier worden bijgewerkt.

04:20.810 --> 04:21.270
Onthouden.

04:21.290 --> 04:24.230
Zo ver dat het waardeverlies op nul is geïnitialiseerd.

04:24.590 --> 04:33.440
En dus gaan we het waardeverlies opnieuw nemen en vijf keer het kwadraat toevoegen aan het voordeel, zodat we het op

04:33.590 --> 04:35.300
deze manier kunnen krijgen.

04:35.300 --> 04:38.950
Profiteer daar nu ook van.

04:39.320 --> 04:42.890
Dus dat betekent gewoon het voordeel, het voordeel van de macht van twee, kwadrateren.

04:43.340 --> 04:50.540
En dat is precies het waardeverlies, het verlies dat wordt gegenereerd door de voorspellingen van de waarde van de V-functie die door

04:50.720 --> 04:52.180
de kreek wordt uitgevoerd.

04:52.940 --> 04:59.420
En dus is het logisch dat dit het waardeverlies is, want onthoud dat het voordeel, A, van de actie in

04:59.450 --> 05:04.380
de toestand s het verschil is tussen de waarde en de waarde van de P-functie.

05:04.670 --> 05:10.970
En dus als we de optimale actie spelen, nou, we krijgen de stationaire toestand met.

05:11.180 --> 05:17.300
Q Optimaal van de optimale actie die een ster speelde in de staat s.

05:18.280 --> 05:21.400
Is gelijk aan de optimale waarde van ster van de staat.

05:22.060 --> 05:28.210
Het is dus vrij intuïtief om te begrijpen dat wanneer het voordeel niet gelijk is aan nul, er een

05:28.210 --> 05:32.470
verschil zal zijn tussen deze twee en daarom wordt het verlies zo gemeten.

05:33.220 --> 05:37.050
OK, dus waardeverlies berekend een verlies naar beneden.

05:37.240 --> 05:38.680
We hebben er nu nog één te gaan.

05:38.830 --> 05:42.490
Het is het verlies van de polis en dat is precies wat we nu gaan berekenen.

05:42.790 --> 05:49.540
En om het te berekenen, moeten we opnieuw rekening houden met de schatting van het gegeneraliseerde voordeel, want om het beleidsverlies

05:49.540 --> 05:55.510
te berekenen, hebben we de schatting van het gegeneraliseerde voordeel nodig en om de schatting van het gegeneraliseerde voordeel

05:55.510 --> 05:59.460
te krijgen, hebben we eerst het tijdsverschil van de toestandswaarden nodig.

05:59.680 --> 06:02.770
We moeten hier dus meerdere dingen berekenen.

06:03.010 --> 06:05.440
En we gaan beginnen met dit temporele verschil.

06:05.740 --> 06:10.270
Zodra we het temporele verschil krijgen, krijgen we de algemene schatting van het voordeel.

06:10.280 --> 06:14.120
En zodra we de algemene schatting van het voordeel hebben, krijgen we het beleid.

06:14.740 --> 06:15.220
Oke.

06:15.520 --> 06:18.370
Dus laten we beginnen met het temporele verschil.

06:18.540 --> 06:30.910
T. G. Dus T. G. is gelijk aan de beloning van de stap AI plus ganna, waarmee we dingen naar

06:30.910 --> 06:31.420
onze programmalijst krijgen.

06:31.720 --> 06:42.940
Dus parameter kema maalt de waarde van de stap AI plus één en we voegen die gegevens toe om het te beoordelen minus de

06:42.940 --> 06:45.760
waarde van de stap AI.

06:46.770 --> 06:49.200
En stel dat we die gegevens toevoegen.

06:50.100 --> 06:55.820
Oké, dat is de formule van het temporele verschil van de toestandswaarden, en nu kunnen we

06:55.950 --> 06:59.490
de gegeneraliseerde voordeelschatting bijwerken en hoe wordt deze bijgewerkt?

06:59.700 --> 07:09.540
Nou, we nemen onze Geet en we vermenigvuldigen het met GEMAP voor die GIMA-tijden, die we ook geobsedeerd hebben door

07:09.540 --> 07:10.620
onze parameters.

07:10.800 --> 07:13.170
Dus we nemen forams vertellen.

07:14.030 --> 07:21.710
En we voegen dit temporele verschil van de toestandswaarden toe, dus wees voorzichtig, we zitten in een volledige lus en

07:21.710 --> 07:26.820
elke keer dat we het met gamma vermenigvuldigen, tellen we het tijdsverschil op.

07:27.020 --> 07:33.620
Het is dus belangrijk om te begrijpen dat aan het einde van deze lus, deze

07:34.040 --> 07:45.590
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

07:45.590 --> 07:47.240
de stap voorwaarts.

07:48.030 --> 07:53.940
Oké, het is zo belangrijk om dat in gedachten te houden, en nu we het algemene voordeel,

07:54.150 --> 07:58.550
de schatting en het temperatuurverschil hebben, kunnen we eindelijk de polylettergrepen berekenen.

07:58.920 --> 07:59.870
Dus laten we dit doen.

08:00.060 --> 08:09.900
We gaan onze beleidswetten op de volgende manier bijwerken door de oude beleidswetten te nemen en we trekken de log-kansen

08:10.080 --> 08:20.220
die bij stap I zijn verkregen af, die we vermenigvuldigen met deze algemene voordeelschatting die we in een variabele moeten

08:20.220 --> 08:23.610
invoeren, want dan zullen we hellingen.

08:24.000 --> 08:26.730
Het moet dus worden gekoppeld aan hellingen in de dynamische grafiek.

08:27.000 --> 08:37.750
En dan tellen we min 0 op. 01 keer de entropie, de entropie verkregen bij de stap door in de herfst en opnieuw.

08:38.040 --> 08:38.960
Wees nu voorzichtig.

08:39.390 --> 08:45.270
Dit is de berekening binnen de for-lus, wat betekent dat we aan het einde

08:45.270 --> 08:47.940
van de lus polysyllaben krijgen.

08:50.020 --> 08:53.950
Is gelijk aan min enkele over de treden.

08:55.010 --> 09:05.930
Van het product van het beleid op de stapsgewijze tijden, de gegeneraliseerde voordeelschatting plus deze 0. 01.

09:07.060 --> 09:09.670
Times de entropie op de staatsgrens.

09:10.060 --> 09:12.880
Dus daar gaan we, en wat is nu het beleid van de staat?

09:13.150 --> 09:19.510
Nou, dat zijn de softmax waarschijnlijkheden van de acties en de entropie. Weet je wat het is?

09:19.510 --> 09:22.780
Het is wat we eerder hebben berekend en wat we van plan waren te doen.

09:22.790 --> 09:23.880
Dat hebben we dus al.

09:24.160 --> 09:29.210
Maar deze taart hier is de softmax-waarschijnlijkheid van de acties.

09:29.980 --> 09:31.970
En waarom zetten we hier een minpuntje?

09:31.990 --> 09:36.850
Dat komt omdat het geluk van de kans en de entropie negatieve waarden zijn.

09:37.030 --> 09:43.270
En aangezien we hun absolute waarde willen minimaliseren, moeten we dit zien als een lage waarschijnlijkheid in plaats van

09:43.270 --> 09:44.010
een afstand.

09:44.230 --> 09:51.020
Nee, we willen de kans maximaliseren om de actie te spelen die het voordeel maximaliseert.

09:51.400 --> 09:52.710
Dat is het hele idee erachter.

09:53.050 --> 09:57.700
We willen de kans maximaliseren om de actie te spelen die het voordeel maximaliseert.

09:58.060 --> 10:03.850
En voor degenen onder jullie die zich misschien afvragen wat het doel is van deze entropiecoëfficiënt, dat is deze

10:03.850 --> 10:05.380
factor 0. 01 hier?

10:05.770 --> 10:13.360
Welnu, het doel ervan is alleen om te voorkomen dat we te snel in een val trappen waarin we een

10:13.360 --> 10:19.170
kansverdeling hebben met nullen voor alle acties behalve één die een kans van één heeft.

10:19.360 --> 10:22.120
En als dat gebeurt, zou dat de entropie minimaliseren.

10:22.390 --> 10:28.990
Daarom voegen we deze kleine coëfficiënt 0 toe. 01 hier waardoor de entropie in de gradiëntdaling

10:28.990 --> 10:29.800
toeneemt.

10:30.820 --> 10:37.360
OK, dus nu is het goede nieuws dat het moeilijkste deel is gedaan, we hebben de twee verliezen en daarom hoeven we alleen

10:37.540 --> 10:42.880
nu en we weten al hoe we het moeten doen de stochastische gradiëntafdaling uit te voeren om deze twee

10:43.030 --> 10:44.350
verliezen te verminderen .

10:45.010 --> 10:51.430
Dus wat we nu gaan doen is uit deze lus komen en we gaan onze optimizer nemen, degene die

10:51.430 --> 10:52.870
we apart hebben gemaakt.

10:53.440 --> 10:58.260
Onthoud dan dat het eerste wat we moeten doen is om alle gradiëntparameters op nul te initialiseren.

10:58.420 --> 11:03.950
En om dit te doen, voegen we dat toe dan de nul en deze kerngrad-methode.

11:04.660 --> 11:06.580
Goed, dat is dan gedaan.

11:06.850 --> 11:11.830
Nu gaan we achterwaartse propagatie uitvoeren, maar we gaan twee keer zoveel belang hechten aan de

11:11.830 --> 11:15.300
polis, minder dan het waardeverlies, omdat het polisverlies kleiner is.

11:15.820 --> 11:25.420
Om dit te doen, zetten we tussen haakjes het beleid op de score plus plus vier komma vijf waardeverlies.

11:26.690 --> 11:36.080
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

11:36.290 --> 11:42.050
zo, dat is lastiger met de polylettergrepen plus de helft van de waarde die we hebben,

11:42.050 --> 11:46.700
twee keer zoveel belang voor het beleid, minder dan de waarde doet.

11:47.360 --> 11:53.240
Oké, dan gaan we een andere truc gebruiken, namelijk om te voorkomen dat het verloop extreem grote

11:53.240 --> 11:56.630
waarden aanneemt en dus om het algoritme te genereren.

11:56.840 --> 12:03.470
En de truc om dat te doen is om eerst onze toortsbibliotheek te krijgen, dan de motormodule uit

12:04.040 --> 12:06.910
de toortsbibliotheek en dan de submodulaire utils.

12:07.370 --> 12:14.060
En nu gaan we de functie clip gebruiken, grad's onderstrepen in deze hoek en

12:14.060 --> 12:20.480
we gaan onze modelparameters invoeren met een tweede invoer, die 40 zal zijn.

12:21.020 --> 12:26.960
En die truc zorgt er in principe voor dat het verloop geen extreem grote waarden aanneemt en om het algoritme

12:26.960 --> 12:27.640
te genereren.

12:28.040 --> 12:31.290
En voor degenen onder jullie die zich misschien afvragen wat deze 40 jaar precies is.

12:31.700 --> 12:37.550
Dat betekent alleen dat we deze waarde gebruiken zodat de norm van het verloop tussen nul en 40

12:37.550 --> 12:38.120
blijft.

12:38.480 --> 12:41.960
En daarom voorkomen we dat het verloop twee grote waarden aanneemt.

12:42.770 --> 12:44.820
Oké, dus nu zijn we bijna klaar.

12:45.020 --> 12:52.520
Onthoud dat we dit hebben gemaakt en die functie zeker hebben gedeeld aan het begin van de herfst, namelijk om ervoor te zorgen dat

12:52.550 --> 12:59.390
de agent en het gedeelde model hetzelfde verloop delen en dit te doen om ervoor te zorgen dat we deze functie

12:59.390 --> 13:00.420
hier kunnen toepassen.

13:01.010 --> 13:13.250
En dus gaan we gradaties toevoegen en zeker delen om ervoor te zorgen dat het model en het gedeelde model hetzelfde verloop

13:13.250 --> 13:14.030
delen.

13:14.510 --> 13:14.840
Oke.

13:14.840 --> 13:16.280
Dus dat is gewoon een voorzorgsmaatregel.

13:16.460 --> 13:18.260
Ik weet niet zeker of dat helemaal nodig is.

13:18.260 --> 13:21.170
Maar weet je, we zullen hier tenminste geen probleem krijgen.

13:21.910 --> 13:24.650
OK, en tot slot, de laatste regel code.

13:24.890 --> 13:31.490
We gaan natuurlijk de optimalisatiestap uitvoeren om de verliezen te verminderen en jij weet hoe je dat moet

13:31.490 --> 13:32.000
doen.

13:32.030 --> 13:40.190
Natuurlijk nemen we onze optimizer en voegen we die stap met haakjes toe en daar gaan we.

13:40.310 --> 13:42.920
De training van onze hersenen is voorbij.

13:43.400 --> 13:44.690
Gefeliciteerd dus.

13:44.690 --> 13:46.590
Ik hoop dat dit niet te overweldigend was.

13:46.940 --> 13:49.290
Maak je geen zorgen, ik zal de code voorzien van alle opmerkingen.

13:49.520 --> 13:53.000
Dus als je een detail hebt gemist, kun je de opmerkingen bekijken.

13:53.210 --> 13:55.670
En maak je geen zorgen als je niets hebt begrepen.

13:55.910 --> 13:57.050
Dit is zeer geavanceerd.

13:57.260 --> 14:03.830
Maar wees gerust, dit is ook de krachtigste herinnering aan wie is gemaakt van de maker van by Torch.

14:03.980 --> 14:07.750
We werken hier dus echt met de besten, de stand van de techniek.

14:07.850 --> 14:13.430
Het is dus volkomen normaal als je niet alles de eerste keer hebt gekregen, maar door er veel aan te werken, zul je je

14:13.610 --> 14:15.590
zeker meer en meer op je gemak voelen.

14:16.370 --> 14:18.670
Dus nu zijn we klaar met de training.

14:19.070 --> 14:22.610
Dus eigenlijk hebben we alle belangrijkste dingen gemaakt.

14:22.760 --> 14:28.070
Weet je, we hebben de hersenen gemaakt door de architecturen van de nieuwe netwerken te bouwen met de windingen,

14:28.070 --> 14:30.150
de a. T. M en de volledig verbonden lagen.

14:30.470 --> 14:34.120
We trainen dit brein door hier deze treincode te maken.

14:34.340 --> 14:36.880
Dus eigenlijk is het hart van het algoritme klaar.

14:37.130 --> 14:39.320
Je hebt de A3 gefeliciteerd.

14:39.680 --> 14:43.850
Nu hebben we nog een paar dingen te doen, maar dat is alleen om het leuke deel te krijgen.

14:43.850 --> 14:52.270
Weet je, we moeten deze test zo mooi maken, die de agenten zal testen en de video's en de uitbraak van het

14:52.280 --> 14:53.770
vliegtuig zal opleveren.

14:54.020 --> 14:55.810
Dit wordt dus erg leuk om naar te kijken.

14:56.120 --> 15:02.150
We zullen niet alle regels coderen van deze test die ik viel omdat, zoals we zeiden, we het belangrijkste

15:02.150 --> 15:08.360
deden, allemaal gerelateerd aan een drie C, maar ik zal natuurlijk de code uitleggen en uiteindelijk hebben we dit kan

15:08.360 --> 15:11.540
eindigen up tegen de herfst, die de code zal uitvoeren.

15:11.690 --> 15:15.710
En vanaf het moment dat we deze code uitvoeren, worden alle codes gegenereerd.

15:15.860 --> 15:22.370
Dus de hersenen zullen worden gemaakt, de training zal plaatsvinden, en ik zal nieuwe breakout-spellen spelen en we zullen

15:22.370 --> 15:23.570
alle video's krijgen.

15:23.960 --> 15:26.240
Dus ik kan niet wachten om ze uiteindelijk te gaan bekijken.

15:26.420 --> 15:29.510
We gaan kijken of hij slim genoeg is om de bal te vangen.

15:29.870 --> 15:36.380
Dus nu ga ik je zien in de volgende tutorial voor deze test-API, zodat we de lucht kunnen testen op een aantal nieuwe

15:36.380 --> 15:36.950
games.

15:37.100 --> 15:38.900
En tot die tijd, geniet van I.
