Hallo en welkom bij deze Python-tutorial.
Dus nu we klaar zijn om het netwerk te trainen om de kwadratische afstand tussen de output en het doel
te minimaliseren, dankzij wat we deden met de geschiktheidstracering in de vorige sectie, nou, eigenlijk waren we klaar
om de hele training te starten door, jij weten, onze invoer krijgen, ons doel, onze voorspellingen, dan
de laatste fout vergelijken tussen de voorspellingen en het doel en dan de achterwaartse voortplanting doen met de
Cassegrain in het centrum van gegevensgewichten.
Dus we waren klaar om dit allemaal te doen.
Maar omdat we het voortschrijdend gemiddelde van honderd stappen willen berekenen, weet je, om het gemiddelde van
de training bij te houden, nou, net voordat we deze hele training doen, gaan we nu een klas maken
die dit zal krijgen voortschrijdend gemiddelde op honderd stappen.
Geen zorgen dus.
We zullen het snel doen.
We zullen een klasse maken met drie functies, maar we zullen dit allemaal doen in de enkele tutorial.
Dus we doen het snel.
We hebben het al gedaan.
En bovendien willen we ons nu concentreren op de training, want dat is het belangrijkste.
Dus laten we deze les nu maken in deze enkele tutorial.
Oke.
Dus we gaan een nieuwe klasse introduceren, die we gaan noemen en een voortschrijdend gemiddelde van vier.
En daar gaan we dan met onze eerste functie.
Dus dat is natuurlijk de init-functie die er nooit in verandert.
En voor deze functie zijn twee argumenten nodig.
De eerste zelf voor het voortschrijdend gemiddelde toekomstige object en de grootte, die overeenkomt met de grootte van de
lijst met beloningen waarvan we het gemiddelde gaan berekenen.
Dit worden er dus honderd.
Oke.
We hebben dus argumenten voor de init-functie.
Laten we nu naar de functie gaan.
Nu weet je wat je moet doen.
We moeten de variabelen die specifiek zijn voor het object initialiseren.
En deze zijn goed, eerst zal de eerste een lijst met beloningen zijn.
Dat wordt de lijst met de honderd beloningen waarvan we het gemiddelde gaan berekenen.
Dus hier op dit moment initialiseren we deze lijst gewoon tot dit jaar.
Dus lijst met beloningen.
En dan is de tweede variabele van ons toekomstige object natuurlijk de grootte en de grootte zal gelijk zijn aan
de argumenten die we zullen invoeren bij het creëren van de toekomst.
Bewegende gemiddelde objecten dus grootte hier.
En we zijn al klaar om door te gaan naar de volgende functie, die de add-functie zal zijn en
die de cumulatieve beloningen zal toevoegen.
Doe voorzichtig.
Het is niet de simpele beloning, het is de cumulatieve beloning.
En dat is omdat, weet je, we de geschiktheid traceren en daarom elke 10 stappen leren en
daarom leren met cumulatieve beloningen en niet met een eenvoudige beloning.
Dus deze advertentiefunctie die we gaan maken, zal de cumulatieve beloning aan die lijst met beloningen toevoegen.
Dus we gaan het natuurlijk ADD noemen, en voor deze functie zijn twee argumenten nodig.
De eerste zelf, omdat we deze lijst met beloningen hier gaan gebruiken, omdat we simpelweg de cumulatieve
beloningen gaan besteden aan deze lijst met beloningen.
Dus we hebben het zelf nodig om dit zo zelf te kunnen krijgen.
En de tweede zullen de beloningen zijn, die de cumulatieve beloning zullen vertegenwoordigen.
Oke.
Dus dat zijn onze twee argumenten van de ADD-functie.
Laten we nu naar de functie gaan en definiëren wat het moet doen.
Oké, heel eenvoudig, het eerste wat we moeten doen is telkens wanneer we een cumulatieve beloning krijgen, een nieuwe,
wanneer we tien nieuwe stappen vooruitgaan, wel, wat we moeten doen is deze cumulatieve beloningen aan de lijst
toevoegen.
En dat is precies wat we gaan doen.
We gaan een regel code schrijven die deze nieuwe cumulatieve beloning die we krijgen na tien
stappen aan deze lijst met beloningen hier zal toevoegen.
En om dit te doen, moeten we twee voorwaarden scheiden, want aangezien we met batches zullen werken, zullen de beloningen
in sommige lijsten staan.
Maar in sommige andere gevallen kunnen de beloningen ook als een enkel element zijn.
En de syntaxis om een element aan een lijst toe te voegen, wat hier de lijst met beloningen is, is niet hetzelfde,
of je nu een lijst toevoegt of een enkel element.
Dus we hoeven alleen maar deze voorwaarde te stellen die deze twee gevallen van elkaar scheidt.
En laten we beginnen met het eerste geval, wat het geval is wanneer wat we toevoegen aan deze lijst met beloningen een
lijst is.
En om dit te doen, gaan we een instantie toevoegen.
En tussen haakjes voeren we twee argumenten in.
De eerste is, zijn beloningen die we toevoegen, dus beloning en de tweede is lijst.
En dus als het een beloningslijst is, betekent dat als de beloningen in een lijst staan en dus als de beloningen in
een lijst staan, wat we doen is heel eenvoudig zelf dat we onze lijst nemen.
beloningen.
En we gaan deze lijst toevoegen, omdat dit een lijst is, wat we kunnen doen is een eenvoudige optelbewerking gebruiken, omdat we er
een paar kunnen maken om de beloningen samen op te sommen.
Hier is een lijst, omdat dit in dit geval gelijk is aan waar.
En dus kunnen we deze lijst gewoon optellen bij onze lijst met beloningen en daarom kunnen we hier gewoon een lijst
met beloningen plus gelijk aan beloningen toevoegen.
En door dit te doen, breiden we de lijst gewoon uit door deze twee lijsten samen te sturen.
Oke.
En dan de tweede voorwaarde, zodat we simpelweg else kunnen toevoegen, zodat als de beloning geen lijst is en daarom als het een enkel
element is en wie nog meer, wat er dan gebeurt?
Nou, dat is hetzelfde.
We willen de beloning toevoegen aan onze lijst met beloningen, maar we kunnen de syntaxis niet gebruiken omdat beloningen niet langer een
lijst zijn.
Het zal een enkel element zijn.
Wat we dus moeten gebruiken, is een andere syntaxis, de append-functie.
Als u een enkel element aan een lijst wilt toevoegen, kunt u enkele van de twee toevoegen die u nodig hebt met
de append-functie.
En dit is dus precies wat we nu gaan doen.
We gaan onze lijst met woorden van het object nemen en die hier plakken en dan die append toevoegen dat we
eerst gaan.
En natuurlijk voeren we tussen haakjes het element in dat we willen toevoegen.
En dit is natuurlijk een beloning.
Maar beloningen zullen in dat geval geen lijst zijn.
Het zal een enkel element zijn, zoals een enkele gecumuleerde beloning, niet in een lijst.
Oke.
En dan willen we dit doen, maar nu moeten we nog iets toevoegen.
Het is wat er gebeurt als deze lijst met beloningen meer dan 100 elementen krijgt.
Welnu, in dat geval moeten we het eerste element van deze lijst verwijderen, zodat we zeker weten
dat deze lijst met beloningen altijd niet meer dan honderd elementen bevat.
Dus precies zoals we deden voor de zelfrijdende auto bij het maken van dit scorevenster.
En om hier zeker van te zijn, gaan we een bronvoorwaarde toevoegen die specificeert dat wanneer de lengte van onze lijst
met beloningen, dat een aantal elementen is in onze lijst met beloningen, wanneer dit aantal groter is dan
zelf, die grootte , dat is de grootte die we hier instellen en die later gelijk zal zijn aan honderd
als we het object maken.
Welnu, zodra het aantal elementen van deze lijst met beloningen groter is dan honderd,
wel, wat we willen doen is het eerste element van onze lijst met beloningen verwijderen, wat we kunnen krijgen door de index
nul te nemen.
Dat is de eerste index van onze lijst met beloningen.
Dit is het eerste element van onze lijst met beloningen.
En we willen het verwijderen wanneer onze lijst met beloningen meer dan honderd elementen bevat.
Zodat we er met deze voorwaarde hier voor zorgen dat onze lijst met beloningen nooit meer dan
honderd elementen bevat.
En daarom kunnen we nu een nieuwe functie maken om het gemiddelde van onze lijst met beloningen te
berekenen, die honderd elementen zal bevatten, en daarom zullen we het voortschrijdend gemiddelde elke keer op
honderd stappen berekenen.
Dus laten we deze nieuwe functie maken, het zal heel gemakkelijk zijn omdat er de hoofdfunctie in Python
is, een functie van non-pay om het gemiddelde van een lijst te berekenen.
En laten we hier onze laatste functie introduceren, die we gemiddeld gaan noemen.
En voor deze functie is één argument nodig, namelijk self, omdat we natuurlijk nog steeds
onze lijst met beloningen gaan gebruiken, wat een variabele is van ons object.
Dus ikzelf en Kullen.
En laten we nu het gemiddelde berekenen en zo direct zullen we het gemiddelde teruggeven omdat we het kunnen
krijgen met de gemiddelde functie waar we natuurlijk mee speelden.
Welnu, wat we de betekenis daarvan willen berekenen, is onze lijst met beloningen.
Ik denk dat ik nog steeds heb berekend.
Ja, daar gaan we.
Dus we geven gewoon de betekenis van onze lijst met beloningen terug.
En het gemiddelde, zoals ik al zei, is een functie door non-pay.
Dus hier voeg ik de snelkoppeling enpi toe die een lijst met beloningen betekent.
En dan gaan we, we hebben ons gemiddelde van honderd stappen.
Perfect.
Dus die les hebben we heel efficiënt gemaakt.
Nu krijgen we de instructies voor het verkrijgen van een voortschrijdend gemiddelde van honderd stappen.
En aangezien we één object met voortschrijdend gemiddelde gaan gebruiken bij het doen van de training, laten we dit object
met voortschrijdend gemiddelde al maken.
En dus gaan we het een A noemen en eenvoudig en het wordt een object van de klasse MA.
En zoals we al zeiden, we willen dat de grootte honderd is, omdat we het voortschrijdend gemiddelde willen berekenen op
honderd stappen.
Zo perfect.
Daar gaan we.
We zijn nu klaar om ons oog te trainen om eindelijk intelligent te zijn.
Het zal tijd worden.
Vanaf dit punt wordt ons oog slim, dus ik kan niet wachten om het te trainen.
Het zal vrij eenvoudig zijn, want dit is iets wat we al hebben gedaan, maar dit wordt leuk.
En bovendien, daarna wordt het tijd om nog meer plezier te hebben, want eigenlijk is onze A. L. zal volledig klaar zijn dat
is gebouwd en ook intelligent, en daarom zullen we de code uitvoeren en dan zal onze lucht
doom spelen.
En uiteindelijk zullen we de video's van onze A. L. spelen ook, en we zullen zien of het erin slaagt
het beste te bereiken.
Dus ik kan niet wachten.
Laten we de opleiding doen.
En tot dan, Ingi.