Hallo en welkom terug bij de cursus over kunstmatige intelligentie.
Oké, dus ik hoop dat je geniet van de tutorial.
Tot nu toe zijn we bijna klaar met de intuïtionist.
Zeer snel.
Ga naar de praktische kant van de dingen.
We hebben alleen een paar kleine dingen die we moeten verbergen.
Oke.
Dus eerder hadden we het over hoe we neurale netwerken toevoegen aan deze hele vergelijking van leren en nemen, leren naar de
volgende stap en het omzetten in diep leren.
En vandaag gaan we een extra belangrijke functie toevoegen, namelijk coderen in de praktische kant van de
dingen.
Dus Hadland en ik besloten dat het belangrijk voor ons is om het vaak te behandelen in de integratiekant van dingen, zodat je er beter op
voorbereid bent als het gaat om de coderingskant van dingen.
Dus zoals we hebben besproken, hebben we het netwerk daar.
Er zijn twee delen die gebeuren.
Allereerst is het het leren.
Dus het netwerk leert eigenlijk bij elke nieuwe fase, het werkt langzaam zijn gewichten bij om steeds beter en
beter met deze omgeving om te gaan.
En dan is er het handelen binnen de staat.
Dus nadat de sleutelwaarden in de staat zijn geteld, wordt er één sleutelwaarde geselecteerd.
Dus vandaag gaan we het nog steeds hebben over het leergedeelte.
We gaan een interessante functie bedenken die goed gaat, we gaan deze functie
niet zelf bedenken, maar we zullen het hebben over een functie die erg belangrijk is voor een diep Q-leren en
dat een functie heet Experience a replay.
Oke.
Dus hier is ons netwerk.
Dus we hebben het hier maar gekopieerd.
We hebben dat een verlies.
Dat wil zeggen Calicut onderaan wordt terug gepropageerd via een netwerk.
En laten we eens kijken naar een voorbeeld van wat er gebeurt om het probleem waar we mee te maken hebben wat beter te
begrijpen.
Dus hier is een voorbeeld uit deze cursus.
Dit is een screenshot precies van deze cursus.
Dit is wat je gaat programmeren.
Dit is een zelfrijdende auto die door dit soort wegen langs deze weg rijdt.
En het moet leren deze weg te bewandelen.
En dus wat is zoals we eerder hebben besproken, wat is dit in deze staat?
En natuurlijk wordt de staat niet alleen x1 x2.
Atlan zal wat gedetailleerder beschrijven wat de staat is.
Het zullen een aantal parameters zijn die betrekking hebben op de hoek van de auto en enkele relatieve parameters, wat de
sensoren lezen enzovoort.
Er zullen dus meer parameters zijn om de staat te beschrijven.
Maar desalniettemin wordt het een vector van waarden, gaat het door een neuraal netwerk
en dan krijg je aan de uitgang wat AQ-waarden.
Nogmaals, er zal een ander zijn, afhankelijk van de omgeving, er kan een ander aantal acties zijn, mogelijke acties, maar dat
zal, omwille van de eenvoud, het op vier laten, alleen voor ons om een beetje beter
te begrijpen wat er is hier aan de hand.
Dus in dit geval, wat is de vraag tot nu toe, wat is dit?
Dit komt in dit neurale netwerk?
Of meer specifiek, hoe vaak activeren we dit neurale net?
Hoe vaak gaat dit neurale netwerk door?
Welnu, elke keer dat de auto in een nieuwe staat terechtkomt, dus de auto een beweging maakt, komt hij in een nieuwe
staat terecht, en dan gaat alles.
Al die data, al die informatie van over de staat gaat via het netwerk.
Kivel is een berekende fout, maar deze fout wordt berekend op basis van wat we in eerdere tutorials hebben besproken.
Deze fout wordt terug gepropageerd via een netwerk dat wordt bijgewerkt.
Vervolgens selecteert de auto welke actie er moet worden ondernomen.
Die verhuizing komt in een nieuwe staat terecht.
In de nieuwe staat begint alles opnieuw.
En dus gebeurt dit eigenlijk elke keer als de auto er is.
En dan zeg je, kijk eens naar dit voorbeeld.
Ik heb specifiek deze screenshot gemaakt omdat het eruit ziet dat het heel goed het probleem illustreert dat wordt aangepakt
door middel van ervaring, opnieuw afspelen en ervaren.
Replay is niet alleen iets dat we in deze cursus of in dit specifieke probleem gebruiken.
Het is iets dat je overal zult zien, zoals steeds weer en steeds weer in
kunstmatige-intelligentiealgoritmen, omdat het zo krachtig en zo belangrijk is.
Dus kijk naar deze auto, deze auto in dit probleem of in deze omgeving, de gaullisten komen van hier
naar hier en terug.
Het doel is om hierheen te navigeren, zonder deze muren, die van zand zijn gemaakt, te overschrijden.
En dus begon de auto hier, hij ging naar beneden en zoals zijn beloning is gebaseerd op hoe dicht hij bij stereo is.
Dus de auto ging vanaf hier.
Het ging naar beneden en ging zo door.
Zo, zo, zo, zo.
Langs deze muur.
En wat het daarna gaat doen, zal blijven doorgaan.
Wat we wilden doen, is hier doorgaan.
Maar laten we er even over nadenken.
Eenmaal bij deze muur, gaat het elke keer dat het vooruit gaat, vooruit.
Het gaat vooruit.
Het gaat vooruit en zo verder.
Het gaat vooruit.
Dus er kan zijn, afhankelijk van de structuuromgeving, het zou kunnen zijn als 100 honderd zetten hier
of 50 zetten hier.
Dat blijft maar vooruit, vooruit, vooruit, vooruit, vooruit ervoor gaan.
En er verandert niets.
Niks.
Verandert echt, ja, het gaat verder weg van dit begon dichter bij dit doel, dat is heerlijk.
Maar qua omgeving verandert er niet veel.
Het is nog steeds diezelfde muur.
Als je in de auto zit, heb je waarschijnlijk de situatie gezien wanneer je in de
auto rijdt, het is alsof de omgeving zo eentonig is dat je gewoon ongeveer hetzelfde voorbij ziet
komen.
Maar stel je voor dat je door een woestijn rijdt en je ziet precies hetzelfde.
Het is hetzelfde teken.
Het is dezelfde kant.
Er gebeurt niets, er verandert niets en zo basaal.
Maar elke keer dat we die staat, die nieuwe staat hier plaatsen, ja, natuurlijk kan er iets
veranderen.
U bestuurt bijvoorbeeld de auto en uw GPS geeft aan dat u dichter bij uw bestemming bent.
Een van deze ingangen is dus gewijzigd.
Maar veel van deze andere inputs, bijvoorbeeld de sensoren die op de auto zitten, veranderen niet.
En daarom, terwijl je aan het rijden bent, dus in deze staat, voer je de invoer in
en je bent de hele tijd een beetje hier, hier, hier, hier, hier, hier, hier en hier en hier.
De ingangen zijn vrijwel hetzelfde.
Dus als je dezelfde invoer, dezelfde waarden, dezelfde vector of zeer vergelijkbare vectoren in je netwerk blijft
invoeren, omdat er geen variatie is, zal de auto heel goed leren.
Eén ding leer je heel goed hoe je langs deze muur moet rijden, die zich rechts ervan bevindt.
En zo zal het netwerk zich updaten en je wordt beloond, langzaamaan beloond voor
het rijden.
Nou, het zal zijn als, oké, dus vanaf hier zal ik zo eenzaam zijn.
Oh het gaat zo goed met me.
Het gaat nog beter met me.
Ik doe het beter.
Hij zal deze valse perceptie hebben dat hij het eigenlijk heel goed doet, ook al leert hij alleen hoe
hij langs deze muur moet rijden.
En zo zal het neurale netwerk zeer aangepast worden om langs deze muur te rijden.
En dan is er ineens die bocht en weet de auto niet wat hij moet doen en past
hij totaal niet in dit neurale netwerk.
En zelfs als het zich op de een of andere manier aanpast, laten we hypothetisch zeggen dat het deze plek passeert en dan eindigt
het op deze muur, hetzelfde gaat gebeuren, gaat van hier, hier, hier rijden.
Oké, nu herstructureert het neurale netwerk zichzelf om zich aan deze muur aan te passen en dan, bam, gebeurt
dit.
En zelfs als het daar op de een of andere manier voorbij komt, zal het langs dit ding rijden en dan hetzelfde langs deze lijnen.
Dus eigenlijk is dit een heel levendig voorbeeld van het probleem dat we zijn wat we hebben, is dat omdat de manier waarop
we het neurale netwerk gebruiken, het elke staat bijwerken, als we eenmaal veel opeenvolgende dingen hebben, ze niet eens
hetzelfde moeten zijn.
Maar in omgevingen is het normaal dat opeenvolgende toestanden op de een of andere manier gecorreleerd zijn of op de een of andere manier onderling
afhankelijk zijn.
En we willen niet dat die onderlinge afhankelijkheid ons netwerk vertekent.
We willen niet dat de auto gewoon leert rijden als een rechte lijn of langs een gebogen lijn
of zoals iets dat je denkt dat ze kunnen bedenken in een leven waarin een agent zou navigeren in een
omgeving waar we kunnen denken aan gecorreleerde of onderling afhankelijke toestanden die op elkaar volgen, die je neurale netwerk echt
in de war kunnen brengen als je de agent daarvan laat leren.
En dat is waar experience replay om de hoek komt kijken.
Wat er gebeurt bij het opnieuw afspelen van ervaringen, zijn deze ervaringen.
Dus deze staten dat het in, een, twee, drie is, hoeveel vijftig staten hier op een rij ook zijn, ze
worden niet meteen door het netwerk gestuurd.
Ze zijn eigenlijk opgeslagen in het geheugen van de agent.
En dus, bijvoorbeeld, het slaat al deze op en bewaart al deze en sommigen zullen je op een bepaald moment, zodra het een bepaalde
drempel bereikt, die je tijdens de lunch kunt coderen, laten zien hoe je dat moet doen.
Zodra het een bepaalde drempel bereikt, beslist de agent zelf, OK, het is tijd om te leren.
Ik heb deze batch ervaringen die ik heb en nu ga ik van die batch leren.
En dus selecteert het willekeurig een uniform verdeelde en uniforme sleutel is hier belangrijk, want daar zullen we het
op de volgende dia over hebben.
Zal kijken, zal dat vermelden, maar er is een uniform verdeelde steekproef voor nodig.
Dus in principe worden alle ervaringen als gelijk beschouwd.
Het neemt een uniform verdeelde steekproef van die reeks ervaringen die het heeft, en dan gaat het er doorheen en
leert het ervan.
Dus het hoeft niet alle extremen te nemen.
Het duurt gewoon een uniform verdeelde monsters.
Het kan een paar van hier vergen, een paar van hier, een paar van hier.
En het en elke ervaring wordt gekenmerkt door de staat.
Het zat in de actie die het ondernam, de staat waarin het belandde en de beloning die het behaalde door die actie
in die specifieke staat.
Dus vier elementen in elke ervaring geven één actie aan, toestand twee en beloning.
En dus duurt het al die ervaringen en dan geeft het ze door het netwerk en het leert.
En op die manier doorbreekt het het patroon daarvan.
Bias, die voortkomt uit de sequentiële aard van de ervaring, alsof je ze een voor een door het
netwerk zou sturen.
Dus dat is de belangrijkste focus van het opnieuw afspelen van ervaringen.
Dat is het probleem dat wordt aangepakt en een ander voordeel van het opnieuw afspelen van ervaringen is
dat je in een omgeving als deze soms zeer waardevolle, zeldzame ervaringen hebt.
Dus bijvoorbeeld, ik weet het niet, laten we eens kijken naar dit kwartaal.
Rechts.
Dit is een rechterhoek.
Rechts.
En een hele scherpe.
Hoeveel is scherp?
Dus het zal van hier komen, ervan uitgaande dat het deze hoek omhelst.
Dus hoeveel scherpe rechterhoeken hebben we hierin in dit geheel en we hebben maar één rechterhoek hier en
één rechterhoek hier.
Rechts.
Dus als het deze kant op komt, is dat de juiste hoek.
En als het dan teruggaat, is het hier een scherpe rechterhoek.
Dus en deze is niet scherp, deze scherp.
Er is dus maar één kans in de hele omgeving om te leren vanuit een scherpe rechterhoek.
En dat is een heel belangrijke ervaring, want het kan heel goed worden in het rijden langs rechte lijnen,
heel goed in het doen van zulke zachte bochten, zoals dat.
Maar en dan zal het deze scherpe rechterhoek blijven verknoeien, simpelweg omdat het simpelweg niet zoveel gelegenheid heeft om
ervan te leren.
En daarom zal het al het andere vrij snel leren.
Maar het zal lang duren om dit te leren.
Rechts.
Omdat het een zeer vereenvoudigd voorbeeld is, is een zeer vereenvoudigde uitleg.
Maar het illustreert het concept dat er soms zeldzame ervaringen zijn die waardevol kunnen zijn.
En als je gewoon een eenvoudig neuraal netwerk aan het maken bent waar je je waarden hier invoert en je weet
dat ze doorgaan en, weet je, zelfs als we dat probleem vergeten van de sequentiële aard van ervaringen
en hoe ze kunnen onderling afhankelijk zijn en allemaal gecorreleerd zijn, vergeet dat zelfs voor een
seconde.
Wat er gebeurt, is dat als je eenmaal een ervaring erin stopt, het wat gegevens doorloopt, en dan vergeet je het
meteen, vergeet je die ervaring.
Je gaat door naar de volgende.
Dat is gewoon hoe de neurale netwerken dan ga je naar de volgende dag.
De volgende dag, de volgende dag, de volgende ervaring, volgende ervaring, ervaring enzovoort.
Dus dit rechter kwadrant, zodra het door een netwerk gaat, is het weg en heb je geen enkele
herinnering aan die waardevolle ervaring.
Terwijl we herhaling hebben ervaren omdat je deze ervaringen in batches stopt, kun je je batch organiseren als
een rollend venster.
U kunt dus bijvoorbeeld 100 batches hebben.
Dus 100 ervaringen in je batch.
Dus als het van hier terugkomt, is het zodra het deze ervaring in zijn batch heeft vastgelegd, en dan,
zoals op een bepaald moment, het een uniforme distributie van zijn batch ervaringen nodig heeft en dan is er een
rollend venster.
Dus het vergeet deze ervaringen, maar dan behoudt het deze ervaringen.
En aan de andere kant, het leert van als het eenmaal hier is, het leert van deze batch en als het eenmaal hier
is, als het helemaal tot hier komt, maar dan heeft het een batch van dergelijke ervaringen.
Dus daarom leert een notitie van deze ervaringen.
En op die manier krijg je dat deze rechterhoek meerdere keren naar voren kan komen in zijn leerproces, omdat het
in die batch was toen de batch daar zo was.
Toen zat het in de batch hier in de batch hier.
Dus het kwam in verschillende batches naar voren omdat een batch mogelijk wordt bijgewerkt als een rollend venster van ervaring.
Dus de oudere ervaringen worden eruit gegooid, de nieuwere ervaringen worden toegevoegd.
En dan nog, oudere ervaring, Victor.
Een ervaring blijft dus geruime tijd in de batch en de auto of agent kan meerdere keren van die
ervaring leren.
Dus dat is nog een voordeel van ervaring, replay.
En natuurlijk is het laatste voordeel ervaring.
Replay geeft je de mogelijkheid om van meer ervaringen te leren dan wanneer je slechts één voor één zou
leren, omdat je die batch hebt en daarom en het een rollend venster is.
En daarom, zelfs als uw omgeving beperkt is tot ervaring, kan uw benadering van het opnieuw afspelen van ervaringen
u helpen sneller te leren.
En in plaats van alleen maar opnieuw te doen, zijn er vele, vele, vele keren dat u sneller kunt leren omdat u het niet opnieuw
hoeft te doen.
Je hebt die ervaringen opgeslagen.
Dat zijn dus de belangrijkste voordelen van ervaring.
Replay, dat is opnieuw koppelen.
Dan hebben we dat we dat patroon van onafhankelijkheid doorbreken en.
Correlatie van opeenvolgende ervaringen, we bewaren zeldzame ervaringen die belangrijk kunnen zijn, en
daarom kunnen we er vaker van leren en we kunnen leren in omgevingen, we kunnen snellere
omgevingen leren die ervaring zijn, die een tekort aan ervaringen hebben, die geen zoveel ervaringen die de agent
doormaakt.
En toch kunnen we het leren.
Dus dat is waar ervaring om draait.
Als je wat meer wilt lezen dan dit.
Er is een interessant artikel gepubliceerd door Deep Mind in 2016.
Het heet Prioritized Experience Replay en het vertelt waarom we een uniforme distributie gebruiken om
onze ervaringen uit de ervaringsbatch te selecteren?
Waarom zoeken we geen betere manier om onze ervaringen te selecteren en prioriteit te geven aan enkele van de ervaringen die
we belangrijk vinden.
Het is dus best een interessant iets.
Dus in dit geval kunt u niet alleen uw kennis over het opnieuw afspelen van ervaringen versterken, maar
u kunt ook echt meegaan met de allernieuwste technologie.
Dit is dus 2016 en gepubliceerd door Deep Mines.
Het is dus een zeer recent, zeer krachtig artikel.
U kunt dus daadwerkelijk de grenzen verkennen of dit algoritme nog verder verkennen en naar een hoger
niveau tillen.
Dus ik laat het aan jou over om uit te zoeken waarom en hoe we de uniforme verdeling kunnen veranderen in een andere benadering
van ervaringsrapportage uit dit artikel, als je dat wilt.
En ik hoop dat je er vandaag van geniet, Statoil.
En nu weten we wat ervaring werkelijk is en kunnen we het vol vertrouwen in onze praktische termen gebruiken.
En ik kijk ernaar uit om je de volgende keer te zien.
Tot die tijd, geniet van I.