WEBVTT

00:00.240 --> 00:02.370
Hallo en welkom bij deze Python-tutorial.

00:02.850 --> 00:07.580
Oké, dus in deze nieuwe codesectie gaan we ervaring implementeren om te spelen.

00:07.800 --> 00:13.800
Dus we gaan een nieuwe klasse maken, die we replay-geheugen zullen noemen, en die ervaring zal implementeren.

00:13.800 --> 00:16.360
We spelen precies zoals je zag in de intuïtiecolleges.

00:16.740 --> 00:21.170
Maar laten we eerst een korte herinnering geven aan wat ervaringsherhaling is.

00:21.390 --> 00:27.660
Dus, weet je, al deze kunstmatige intelligentie is gebaseerd op marktbeslissingsprocessen en marktbeslissingsprocessen bestaan

00:27.660 --> 00:31.500
uit het kijken naar een reeks gebeurtenissen.

00:31.860 --> 00:38.390
Dus de gebeurtenissen gaan bijvoorbeeld van de ene staatsstad naar de volgende staat en stad plus één.

00:38.940 --> 00:44.190
Maar als de gebeurtenissen zo waren, nou, aangezien de volgende staat erg gecorreleerd is met de huidige staat,

00:44.400 --> 00:46.500
zou het netwerk niet zo goed leren.

00:46.860 --> 00:52.380
Dus voor degenen die van de deep learning-cursus komen, dat is precies hetzelfde als waar we onze tijdreeksen

00:52.380 --> 00:54.540
hebben geleerd met slechts één tijdstap.

00:54.840 --> 01:00.240
Het was niets leren omdat één tijdstap niet voldoende was om een model

01:00.240 --> 01:02.370
langetermijncorrelaties te laten begrijpen.

01:02.970 --> 01:04.200
Dus dat is hier hetzelfde.

01:04.200 --> 01:06.740
En daarom moeten we experience replay implementeren.

01:07.080 --> 01:08.040
Dus hoe werkt het?

01:08.160 --> 01:09.170
Nou, dat is heel eenvoudig.

01:09.180 --> 01:15.540
In plaats van alleen naar de huidige toestand te kijken, is dat slechts één toestand tegelijk. We gaan er meer in

01:15.540 --> 01:16.690
het verleden bekijken.

01:16.710 --> 01:23.400
Dus precies zoals vier of lijsten en daarom zal onze reeks evenementen niet Estie en C plus één zijn.

01:23.790 --> 01:27.150
Dit zullen bijvoorbeeld de 100 staten in het verleden zijn.

01:27.300 --> 01:33.460
Dus als T min honderd schat negenennegentig tot SC min één en dan s-t.

01:33.900 --> 01:40.260
Dus met andere woorden, we stoppen de 100 overgangen minder in wat we het geheugen noemen, en

01:40.260 --> 01:45.840
daar hebben we een langetermijngeheugen in tegenstelling tot een kortetermijngeheugen of zelfs een instantgeheugen.

01:46.230 --> 01:49.550
En daardoor werkt het hele deep learning-proces veel beter.

01:50.130 --> 01:56.100
En als we eenmaal deze herinnering aan de laatste 100 gebeurtenissen hebben gemaakt, gaan we proeven.

01:56.250 --> 02:01.890
Dat wil zeggen, we zullen enkele willekeurige batches van deze overgangen nemen om onze volgende update uit te voeren.

02:02.160 --> 02:05.370
Dat is onze volgende zet door de volgende sectie te selecteren.

02:06.000 --> 02:12.000
En daarom zullen we in deze herhalingsgeheugenklasse die we implementeren voor ervaren herhalingen, drie

02:12.000 --> 02:13.080
functies maken.

02:13.380 --> 02:15.630
Allereerst functioneert de init zoals gewoonlijk.

02:15.630 --> 02:16.980
Dat is bij elke klas zo.

02:17.320 --> 02:23.250
En dus zullen we in deze init-functie de variabelen definiëren die aan de toekomstige instanties van de klasse zullen worden gekoppeld, dat

02:23.250 --> 02:26.850
wil zeggen de toekomstige objecten die van deze klasse zullen worden gemaakt.

02:27.360 --> 02:32.190
En zo heel eenvoudig, deze variabelen zullen het geheugen zijn van de honderd overgangen naar

02:32.190 --> 02:35.280
honderd gebeurtenissen en de capaciteit die het honderdtal is.

02:35.490 --> 02:39.300
U bent van harte welkom om een langer geheugen te proberen door de capaciteit te vergroten.

02:39.630 --> 02:41.850
Dus dat is de eerste functie init functie.

02:42.300 --> 02:48.480
En dan maken we nog twee andere functies, één push-functie om ervoor te zorgen dat het geheugen

02:48.480 --> 02:50.850
nooit meer dan honderd overgangen bevat.

02:51.000 --> 02:54.900
En hiervoor zal de capaciteit worden gebruikt door slechts één simpele if-voorwaarde te doen.

02:55.290 --> 02:58.560
En dan zullen we uiteindelijk de eenvoudige functie maken.

02:58.560 --> 03:04.530
En dat zal natuurlijk zijn om enkele overgangen eenvoudig te maken in deze herinnering aan de laatste honderd overgangen.

03:05.350 --> 03:05.700
Oke.

03:05.700 --> 03:08.260
Dus laten we beginnen met de introductie van de klas.

03:08.370 --> 03:12.540
Dus, zoals gewoonlijk, beginnen we met de klas en dan geven we de klas een naam.

03:12.540 --> 03:15.510
We noemen het replay-geheugen.

03:17.030 --> 03:23.250
En dan tussen haakjes, voeren we object in, dan Colin, en dan gaan we.

03:23.390 --> 03:25.400
We beginnen met de eerste functie.

03:25.430 --> 03:26.500
Het einde is functie.

03:27.050 --> 03:29.150
Dat is dus precies hetzelfde als voorheen.

03:29.330 --> 03:36.220
We beginnen met def dan twee op deze cursus daarin twee onderstrepingstekens en dan de variabelen.

03:36.620 --> 03:42.680
Dus er is natuurlijk zelf, de variabele die is gekoppeld aan de toekomstige instanties van het toekomstige object van de

03:42.680 --> 03:43.130
klasse.

03:43.520 --> 03:49.130
En dan hebben we nog een variabele voor je, zodat je een andere ervaring kunt proberen, een

03:49.130 --> 03:52.210
aantal herinneringen kunt vervangen en dat wordt de capaciteit.

03:52.820 --> 03:57.940
Dus deze capaciteit zal gewoon het getal honderd zijn omdat we ervaring gaan maken,

03:57.950 --> 03:59.990
vervangen door de honderd overgangen.

04:00.770 --> 04:01.230
Oke.

04:01.250 --> 04:02.480
En dan Colin.

04:02.930 --> 04:03.790
En hier gaan we.

04:03.800 --> 04:09.930
Laten we naar de functie gaan en de variabelen van onze replay-geheugenobjecten definiëren.

04:10.310 --> 04:14.510
Dus de eerste zal zelf die capaciteit zijn.

04:16.040 --> 04:21.890
En zoals je waarschijnlijk hebt begrepen, zal dit de capaciteit zijn die het maximale aantal overgangen is dat

04:22.160 --> 04:28.520
we in ons geheugen van gebeurtenissen willen hebben, en dit zal gelijk zijn aan het argument dat we zullen

04:28.520 --> 04:34.000
invoeren bij het maken van een object van de replay-geheugenklasse, en dus dat is capaciteit.

04:34.400 --> 04:36.220
Dat is het argument van de init-functie.

04:36.560 --> 04:37.430
Dus capaciteit.

04:38.030 --> 04:44.450
Dus nogmaals, niet te verwarren met zelf, die capaciteit is de naam van de variabele die aan het object

04:44.450 --> 04:46.190
en de capaciteit is gekoppeld.

04:46.190 --> 04:51.830
Dit is het argument dat we zullen invoeren bij het maken van een object van de geheugenklasse.

04:52.700 --> 04:53.240
Oke.

04:53.630 --> 04:55.550
En dan hebben we nog een tweede variabele.

04:56.000 --> 04:57.580
Dat is natuurlijk het geheugen.

04:57.830 --> 05:00.110
Dus zelf die herinnering.

05:01.600 --> 05:05.420
Oké, en waar zal deze geheugenvariabele dan gelijk aan zijn?

05:05.830 --> 05:13.240
Welnu, dit geheugen zou de laatste 100 gebeurtenissen moeten bevatten en daarom zou dit een eenvoudige lijst moeten zijn, weet

05:13.240 --> 05:18.670
je, een lijst die de laatste 100 gebeurtenissen, de laatste 100 overgangen zal bevatten.

05:19.300 --> 05:21.880
En om de lijst te initialiseren, is er niets eenvoudiger.

05:22.090 --> 05:25.840
We voegen gewoon wat haakjes toe en daar gaan we.

05:25.900 --> 05:27.450
Ons geheugen is geïnitialiseerd.

05:27.700 --> 05:32.380
Dus, natuurlijk, aan het begin van het experiment of meer precies het begin van de expiratie, zal

05:32.680 --> 05:38.100
het geheugen een lege lijst zijn en dan zullen we de overgangen plaatsen elke keer dat we een toekomstige staat bereiken.

05:38.410 --> 05:43.360
Daarover gesproken, dat is precies wat we gaan doen met de volgende functie die we de

05:43.360 --> 05:44.380
push-functie gaan noemen.

05:44.720 --> 05:51.250
We zullen deze push-functie maken om de gebeurtenissen in deze geheugenlijst toe te voegen, en dan zullen we de capaciteit

05:51.460 --> 05:56.780
gebruiken om ervoor te zorgen dat deze geheugenlijst altijd 100 gebeurtenissen bevat en nooit meer.

05:57.310 --> 05:57.700
Oke.

05:57.700 --> 05:59.430
Dus laten we dit in de volgende ook doen.

05:59.500 --> 06:01.240
En tot die tijd, geniet van I.
