WEBVTT

00:00.210 --> 00:01.920
Hallo en welkom bij deze tutorial.

00:02.310 --> 00:08.190
Oké, dus nadat we deze vier windingen en de Estienne hebben gemaakt, hebben we nu een gecodeerde staat die de

00:08.310 --> 00:13.620
invoer zal zijn van deze twee nieuwe netwerken die we gaan maken voor de acteur en de

00:13.620 --> 00:14.080
criticus.

00:14.580 --> 00:19.350
En nu we het er toch over hebben, het enige dat we nu hoeven te doen, is gewoon tooling maken.

00:19.360 --> 00:22.560
Er zijn volledige connecties, één voor de acteur en één voor de criticus.

00:23.040 --> 00:27.000
Maar voordat we dat doen, moeten we het aantal mogelijke acties weten.

00:27.120 --> 00:32.220
En dus ga ik hier een nieuwe variabele noemen die geen variabele van het object zal zijn.

00:32.370 --> 00:38.830
Dus ik ga zelf hier niet gebruiken, maar ik ga de variabele NUM-uitvoer maken, die een aantal mogelijke acties zal

00:38.850 --> 00:43.890
vertegenwoordigen en om het te krijgen waar we het uit de actieruimte kunnen halen.

00:44.370 --> 00:51.000
Dus we nemen onze actieruimte, die de invoer zal zijn van de init-functie wanneer we het object maken en dan voegen

00:51.330 --> 00:52.620
we dat toe.

00:52.800 --> 01:00.150
En om dit aantal mogelijke acties te krijgen en nu zullen de acteur en de criticus afzonderlijk dezelfde input nemen

01:00.150 --> 01:06.020
die de output is van dit hele proces hier met de windingen en de storm.

01:06.390 --> 01:12.840
Dus het zal dezelfde invoer nodig hebben, wat een gecodeerde toestand is, maar dan zullen ze twee verschillende lineaire verbindingen

01:13.050 --> 01:18.600
hebben zodat we uiteindelijk daadwerkelijk bij neurale netwerken komen, één voor de acteur en één voor Craig.

01:18.900 --> 01:20.900
Dus laten we deze twee afzonderlijke neurale netwerken maken.

01:20.910 --> 01:27.030
Maar aangezien we het grote werk met de codering hier al hebben gedaan, moeten we gewoon twee

01:27.030 --> 01:32.850
objecten maken, één betekenisvolle verbinding voor de acteur en één andere lineaire verbinding voor de

01:32.850 --> 01:33.300
criticus.

01:33.450 --> 01:35.040
En dat is dus precies wat ik ga doen.

01:35.310 --> 01:37.170
Ik ga twee objecten maken.

01:37.180 --> 01:44.550
Nu, het eerste object voor de lineaire verbinding van de criticus, die ik een criticus ga noemen op

01:44.550 --> 01:48.730
de onderstrepingslijn I en om deze lineaire verbinding te creëren.

01:49.020 --> 01:50.220
Nou, je weet hoe je het moet doen.

01:50.220 --> 01:55.940
We moeten gewoon de energiemodule nemen en dan de lineaire klasse waarin we de inputneuronen

01:55.980 --> 02:01.730
moeten invoeren, die de output zijn van dit alles, inclusief hier met de windingen en

02:01.730 --> 02:04.740
de AC, en dat zijn 256 neuronen.

02:05.040 --> 02:12.060
Dus we voeren hier tweehonderdzesenvijftig in en dan hebben we één uitvoer, want onthoud dat de uitvoer van het nieuwe netwerk

02:12.060 --> 02:17.820
voor de criticus de waarde is van de functie die is toegepast op de invoerstatus, op de

02:17.940 --> 02:20.580
invoergecodeerde status die we hebben gemaakt hier.

02:21.060 --> 02:25.620
Dus als we de invoertoestand s noemen, is dat de uitvoer van dit alles.

02:25.950 --> 02:30.420
Welnu, de output van het neurale netwerk van de criticus zal worden geuit.

02:30.540 --> 02:32.360
En daarom heeft het één dimensie.

02:32.370 --> 02:33.410
Het is gewoon een waarde.

02:33.690 --> 02:35.810
En dus voeren we er hier een in.

02:36.330 --> 02:42.720
En onthoud, dit is wat de acteurs delen, zodat ze gemeenschappelijke informatie kunnen krijgen die ze kunnen gebruiken om

02:42.720 --> 02:46.140
hun actie op een meer relevante manier te spelen.

02:46.800 --> 02:50.190
OK, dus dat is voor het neurale netwerk van de criticus.

02:50.370 --> 02:58.770
En laten we nu het neurale netwerk van de acteur maken en daarom voeg ik hier een self-dout-acteur toe, lineair en

02:59.550 --> 03:00.260
hetzelfde.

03:00.570 --> 03:06.120
We hebben al de ingangen inclusief toestanden, dus nu hoeven we alleen maar een lineaire verbinding toe te voegen

03:06.120 --> 03:10.950
en daarom zeggen we dat we de eindmodule nemen, dan de lineaire klasse en nu hetzelfde.

03:11.190 --> 03:16.800
Dit neurale netwerk van de acteur zal de gecodeerde toestand aannemen die de grootte heeft van

03:16.840 --> 03:17.220
tweehonderdzesenvijftig.

03:17.430 --> 03:19.590
Dus tweehonderdzesenvijftig hier.

03:19.950 --> 03:25.950
Maar dan zal de output anders zijn, want je weet het natuurlijk wel, de output van het

03:25.950 --> 03:31.740
neurale netwerk voor de acteur, andere sleutelwaarden, de kernwaarden van de inputstatus, degene die we hier hebben

03:31.740 --> 03:33.380
opgenomen en de actieplaat.

03:33.690 --> 03:40.470
Dus nogmaals, als we deze gecodeerde toestand die we hier hebben gemaakt s noemen en de actieplaat A, de output

03:40.470 --> 03:43.970
van dit neurale netwerk, dan zal er feitelijk QSA zijn.

03:44.700 --> 03:50.670
En aangezien, weet je, we één sleutelwaarde hebben voor elke actie, daarom hebben we geen uitvoerwaarden en

03:50.850 --> 03:53.670
daarom zal de uitvoer hier geen zijn.

03:54.620 --> 03:58.850
Uitvoer omdat geen uitvoer eigenlijk het aantal waarden is.

03:59.660 --> 04:00.560
Oke perfect.

04:00.980 --> 04:10.100
Dus als je wilt, kan ik de output hier voor je schrijven, want de criticus is de S waarbij S de gecodeerde staat

04:10.640 --> 04:13.640
is en voor de acteur de output.

04:14.460 --> 04:17.100
Is schattig als een.

04:17.930 --> 04:23.420
Oké, dus dat is heel belangrijk om dit onderscheid hier te begrijpen en om te begrijpen dat we daarom twee

04:23.420 --> 04:27.140
afzonderlijke nieuwsnetwerken hebben, één voor de criticus en één voor de acteur.

04:28.130 --> 04:29.240
Oke perfect.

04:29.270 --> 04:31.680
In deze functie zijn we hier dus bijna klaar mee.

04:32.040 --> 04:33.680
Nu is het belangrijkste gedaan.

04:33.890 --> 04:39.290
Het enige dat we nog moeten doen, is alle gewichten van die twee neurale netwerken en

04:39.590 --> 04:40.700
alle kopers initialiseren.

04:40.700 --> 04:44.630
En natuurlijk, om dat te doen, gaan we de twee functies gebruiken die we eerder hebben gemaakt.

04:44.840 --> 04:47.800
Dat is een genormaliseerde Cullum's initialisatie en de gewichten erin.

04:48.350 --> 04:49.480
Laten we dat dus snel doen.

04:49.670 --> 04:51.510
Het gaat vrij gemakkelijk en behoorlijk snel.

04:52.040 --> 04:56.540
Dus eerst gaan we wat willekeurige gewichten initialiseren en om dit te doen, gaan we de gewichten toepassen en

04:56.540 --> 04:57.970
het functioneert op ons object.

04:58.280 --> 05:02.900
Dus hier moeten we onszelf nemen om ons object in ons object te krijgen.

05:03.020 --> 05:05.900
We passen de gewichten toe in hun functie.

05:06.380 --> 05:12.980
Dus daarom hoeven we binnenin alleen de gewichten in de functie in te voeren en dan gaan we.

05:13.220 --> 05:15.680
Dat zal deze functie toepassen op ons object.

05:15.690 --> 05:20.900
En door dit te doen, initialiseren we slechts enkele willekeurige gewichten om in de toekomst optimaal van deze gewichten te

05:20.900 --> 05:21.430
leren.

05:21.800 --> 05:27.200
En nu moeten we een speciale normalisatie maken voor de acteur en de criticus.

05:27.530 --> 05:32.990
Maar onthoud, ik denk dat ik dit in de vorige tutorials heb verteld, we gaan niet dezelfde variantie instellen voor

05:33.110 --> 05:34.820
de acteur en de criticus.

05:35.210 --> 05:40.130
De acteur krijgt een kleine standaarddeviatie, een kleine variantie en de criticus een grote.

05:40.680 --> 05:41.700
En waarom doen we dit?

05:41.720 --> 05:47.510
Wat is het doel van het geven van een kleine standaarddeviatie van de gewichten voor de acteur en de grote standaarddeviatie van

05:47.510 --> 05:49.020
de gewichten voor de criticus?

05:49.370 --> 05:53.510
Dat stelt ons in staat om exploratie versus exploitatie af te handelen.

05:53.720 --> 05:55.640
Dat is precies het doel om dit te doen.

05:55.760 --> 06:01.670
Door een kleine variantie te geven aan de acteur en een groter publiek, de criticus, krijgen we een

06:01.670 --> 06:03.890
goed beheer van exploratie versus exploitatie.

06:04.460 --> 06:05.330
Dus laten we dit doen.

06:05.690 --> 06:09.710
Laten we eerst voor de acteur zorgen, dus we nemen zelf of object.

06:10.040 --> 06:14.510
Dan nemen we het neurale netwerk van onze acteur, dat is acteur Linnehan.

06:14.960 --> 06:20.390
Dan gaan we toegang krijgen tot de gewichten van dit neurale netwerk van de acteur en onthouden om toegang te krijgen tot de

06:20.390 --> 06:22.710
gegevens van de gewichten, we moeten die gegevens toevoegen.

06:23.240 --> 06:23.870
Oke.

06:24.150 --> 06:30.550
Dus hiermee krijgen we de gewichten en nu gaan we onze functie normalized Cullum's Initialized gebruiken.

06:31.280 --> 06:33.680
Dus ik kopieer dit, plak dat hier.

06:34.160 --> 06:38.550
En we gaan als argument de standaarddeviatie invoeren die we willen dat deze gewichten hebben.

06:39.020 --> 06:41.960
Maar onthoud eerst dat deze functie twee argumenten nodig heeft.

06:41.960 --> 06:44.750
Ten eerste zijn de gewichten die we willen initialiseren.

06:45.140 --> 06:49.520
Dus we moeten dat gewoon opnieuw nemen en hier.

06:49.670 --> 06:54.240
En het tweede argument is de standaarddeviatie die we willen dat deze gewichten hebben.

06:54.420 --> 07:02.600
Dus zoals we al zeiden, we willen een kleine standaarddeviatie voor de acteur en een kleine wordt 0. 01 perfect.

07:02.750 --> 07:05.450
Dus dat is voor de gewichten van het neurale netwerk van de acteur.

07:05.720 --> 07:09.230
Laten we nu de vooringenomenheid van het nieuwe netwerk van de acteur wegnemen.

07:09.680 --> 07:11.990
En daarom gaan we hier bijna hetzelfde doen.

07:11.990 --> 07:19.880
We gaan dit stuk kopiëren dat hieronder het gewicht vervangt door vooringenomenheid om toegang te krijgen tot de vooringenomenheid.

07:20.180 --> 07:28.580
En na gegevens gaan we gewoon dat gevoel toevoegen en onthouden binnen invoer nul, omdat we willen dat alle vooroordelen

07:28.760 --> 07:30.750
worden geïnitialiseerd met nul.

07:31.370 --> 07:37.790
Dus eigenlijk denk ik niet dat deze regel nodig is omdat, zoals je je herinnert, de bias al op nul is geïnitialiseerd

07:37.790 --> 07:41.080
met deze volledige functie in de gewichten in zijn functie.

07:41.450 --> 07:47.510
Dus, weet je, we doen dit om er zeker van te zijn dat de bias daadwerkelijk op nul wordt geïnitialiseerd.

07:47.510 --> 07:49.310
Maar ik denk dat het hier al gedaan is.

07:49.550 --> 07:52.380
Maar goed, nu weten we het honderd procent zeker.

07:52.880 --> 07:53.310
Oke.

07:53.330 --> 07:55.760
Nu gaan we hetzelfde doen voor de criticus.

07:55.940 --> 07:58.790
Laten we dus efficiënt zijn en deze twee lijnen vergelijken.

08:00.050 --> 08:08.990
Laten we ze hier en hier nemen, we gaan acteur vervangen door criticus, hetzelfde hier en nu, het enige dat

08:08.990 --> 08:12.320
we moeten veranderen is alleen de standaarddeviatie.

08:12.330 --> 08:15.460
Wilt u de gewichten van het nieuwe netwerk voor de criticus hebben.

08:15.800 --> 08:19.580
En zoals je je herinnert, willen we deze keer een grote standaarddeviatie.

08:19.850 --> 08:23.240
En in plaats van 0. 01, we zullen er een invoeren.

08:23.720 --> 08:24.340
Dus daar gaan we.

08:24.350 --> 08:30.290
We hebben een kleine standaarddeviatie voor de gewichten van het nieuwe netwerk van de acteur en een lagere standaarddeviatie voor de

08:30.290 --> 08:32.870
gewichten van het nieuwe netwerk van de criticus.

08:33.170 --> 08:37.110
En laten we natuurlijk niet vergeten acteur hier te vervangen door criticus.

08:37.790 --> 08:40.190
Oké, nu worden we cool.

08:40.370 --> 08:42.230
Dus nu hebben we nog twee dingen te doen.

08:42.350 --> 08:45.590
De eerste is om ook de bias van het systeem te initialiseren.

08:45.740 --> 08:52.460
En om dit te doen, nemen we ons object zelf omdat de LCN bij ons object hoort en we nemen onze beurt

08:52.700 --> 08:57.730
dan dat en dan gaan we de twee soorten kopers krijgen die in de storm zitten.

08:58.010 --> 09:01.370
Die vooringenomenheid onderstrepen leeftijd.

09:01.640 --> 09:07.040
En de andere is gebaseerd op deze kern H. H. Dat zijn dus de twee soorten vooringenomenheid bij de verkiezingen.

09:07.670 --> 09:09.790
En hetzelfde zullen ze worden geïnitialiseerd op nul.

09:09.800 --> 09:18.950
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,

09:18.950 --> 09:20.980
ze geïnitialiseerd met de jouwe.

09:21.740 --> 09:22.230
Oke.

09:22.250 --> 09:30.740
En nu voor de tweede groep vooroordelen, we zijn hier hetzelfde, maar we hebben het vervangen door H. H..

09:31.340 --> 09:31.810
Oke.

09:32.390 --> 09:35.570
Dus dat initialiseert de bias van het axioma met nullen.

09:36.230 --> 09:42.140
En nu is het laatste wat we moeten doen een methode gebruiken die is overgenomen van de module die de

09:42.140 --> 09:42.920
treinmethode is.

09:43.040 --> 09:47.070
En eigenlijk is dat gewoon een methode die de module in de treinmodus zet.

09:47.390 --> 09:48.470
Dus wat is het nut ervan?

09:48.710 --> 09:55.280
Welnu, het gebruik dat het mogelijk maakt om, als die er is, de drop en de batchnormalisaties te activeren.

09:55.370 --> 10:03.040
En dus om het te gebruiken, voegen we gewoon een zelfdarttrein toe en dat zet de module perfect in de treinmodus.

10:03.050 --> 10:05.210
We zijn dus klaar met de init-functie.

10:05.580 --> 10:10.970
We hebben onze windingen, we hebben de Estienne, we hebben onze twee afzonderlijke neurale netwerken voor de

10:10.970 --> 10:13.970
criticus en de acteur en alle gewichten en vooroordelen.

10:13.970 --> 10:15.140
Oh goed geïnitialiseerd.

10:15.470 --> 10:16.400
Dus dat is allemaal goed.

10:16.790 --> 10:21.500
We zijn klaar om door te gaan naar de volgende stap, namelijk het maken van de voorwaartse

10:21.500 --> 10:26.810
functie die, natuurlijk, het signaal vanaf het allereerste begin met de originele invoerbeelden door het hele brein zal verspreiden totdat

10:26.810 --> 10:28.220
we de uitvoer krijgen.

10:28.850 --> 10:30.650
Dus laten we dat doen in de volgende tutorial.

10:30.650 --> 10:32.150
En tot die tijd, geniet ervan.
