Hallo en weer welkom bij onze zelfrijdende auto-module, dus in deze tutorial ga ik de omgeving uitleggen
waarin we onze kunstmatige intelligentie zullen implementeren en dat zal natuurlijk doorgaan met de auto die we zullen
trainen om zelf te rijden en om obstakels te vermijden en waarop we enkele wegen en enkele blokken zullen
tekenen zodat onze auto eromheen kan navigeren.
Dus we zullen later deze kunstmatige intelligentie bouwen om deze auto te trainen, om op de weg te rijden, weet je, zonder
de limiet te overschrijden en enkele obstakels te vermijden die we op de weg zullen plaatsen.
Dit is dus een behoorlijk spannende uitdaging.
En eigenlijk zijn er twee aparte bestanden.
Zoals je kunt zien, is er de APACS en voelde dat onze kunstmatige intelligentie die alle training zal doen om de auto te
trainen, hoe te verkopen, te rijden.
En we hebben de kaart die mooi gevonden heeft.
Dat is de code die deze hele omgeving maakt.
Dus hier is die code.
Dat zijn eigenlijk tweehonderd regels code, iets meer.
Dus deze code is niet typisch gerelateerd aan A. L. Het is slechts een code om de omgeving te maken om de kaart
te maken.
Dus ik ga elk van de secties één voor één doornemen om het uit te leggen.
Maar we gaan deze code niet regel voor regel implementeren omdat we ons willen focussen op
kunstmatige intelligentie.
Maar laten we de secties nog steeds één voor één doornemen om te begrijpen wat er gebeurt.
Dus eerst importeren we de essentiële bibliotheken.
Dat is voor elke code.
We hebben enkele bibliotheken nodig om sommige taken efficiënter uit te voeren.
Dan importeren we alle cavey-pakketten.
Dat is dus niet zo belangrijk, want dit is allemaal specifiek voor Caveh.
We gebruiken Cavey om de kaart te maken en daarom importeren we veel klassen en objecten om deze kaart te kunnen maken
en wat tools aan de kaart toe te voegen.
Oké, dan is deze regel belangrijk.
Deze regel is verwant omdat dit in feite is waar we ons brein importeren, het brein van de auto, dat
een object zal zijn van deze ontstemde klasse.
En de DeQuan-klasse is onze kunstmatige intelligentie zelf.
U zult zien dat we de GQ in de klas zullen implementeren in de volgende tutorials.
En zoals je misschien al geraden had, staat DeQuan voor deep cube-netwerken.
Dus gaan we een deep learning netwerk implementeren.
En als het klaar is, importeren we het hier met deze regel uit de A. L. En de ogen zijn
natuurlijk een pythonbestand.
Oke.
Dus kan niet wachten om dit te implementeren.
Dit wordt een hele reis.
Maar je zult zien dat dit heel spannend gaat worden want dankzij de A. L. , zal de auto zelf
kunnen rijden.
Oke.
En nu, voordat ik verder ga met de volgende secties, moeten we uitleggen hoe we deze auto gaan trainen.
Ik ga het neurale netwerk nu niet uitleggen, maar ik ga het idee uitleggen van hoe
we de auto gaan trainen om zelf te rijden en obstakels te vermijden.
Dus, weet je, in het echte leven, als je een echte auto wilt trainen om muren of obstakels te vermijden, wat zou
je dan doen?
Je zou zeker geen echte muren of echte grote obstakels nemen en je auto erop slaan.
Dat zou je veel geld kosten.
In plaats daarvan zou een intelligenter idee zijn om je auto te straffen, niet wanneer hij tegen een muur of een obstakel botst, maar
wanneer hij op wat zand belandt.
Dus het is alsof je een veld hebt.
Dit veld heeft enkele wegen waarop de auto moet blijven staan en de wegen zijn begrensd door wat zand.
En elke keer dat de auto het zand op gaat, is het alsof hij een obstakel oprijdt, want als de auto
eenmaal in het zand gaat, wordt hij afgeremd en zullen we ervoor zorgen dat de auto wordt bestraft, daarvoor wordt
gestraft.
En dat is een essentieel punt van kunstmatige intelligentie.
De slechte beloning komt wanneer de auto in het zand gaat en wordt afgeremd.
Oke.
En daarom introduceer ik hier de laatste tekst.
En daarom zijn dat de coördinaten van het laatste punt in het geheugen als we wat zand op de kaart tekenen.
Oke.
En dan krijgen we onze kunstmatige intelligentie, die we hersenen noemen, en dat bevat ons neurale netwerk.
En we zullen het brein noemen, want dit is eigenlijk het brein van de auto en dat bevat ons neurale
netwerk.
Oke.
Dus in deze regel code, zoals je kunt zien, maak ik een object van de leraar in de klas.
Ik zal eraan herinneren wat klassen en objecten zijn, maar de hersenen zijn het object.
DeJuan is de klas en vijf, drie en open negen zijn de ingangen van de klas.
Dus dat is heel eenvoudig.
Vijf komt overeen met de toestand die gecodeerde vectoren van vijf dimensies zijn.
We zullen zien wat ze perfect beschrijven, wat er gebeurt in de omgeving op de kaart.
Dan is drie het aantal acties. Er zullen drie mogelijke acties zijn: ga naar links, ga rechtdoor of ga
naar rechts en open.
Negen is de GEMAP-parameter in het deep learning-algoritme.
Oke.
En dan hebben we de actie om te draaien.
Dus actie naar rotatie is een vector van drie elementen, nul twintig en min 20.
En dus moeten we dit doen omdat de acties worden gecodeerd door drie cijfers.
Nul.
Eén op twee, en dat komt overeen met de indexen van deze actie tot rotatievector.
Dus, bijvoorbeeld, als de actie die is geselecteerd op tijdstip T nul is, welnu, nul komt overeen met de index
van deze actie tot rotatievector en de waarde van index nul is nul.
En daarom gaan we rechtdoor als de geselecteerde actie er een is waarbij één overeenkomt met de index van deze
actie tot rotatievector en de waarde van deze vector met index één twintig is.
Dus twintig komt overeen met een rotatie van twintig graden en dat betekent dat de auto 20 graden naar rechts gaat.
En als de geselecteerde actie te goed is om overeen te komen met de index, twee van deze actie naar
rotatievector en daarom zal de auto een rotatie van min 20 graden maken en daarom naar links gaan.
Oke.
Vervolgens introduceren we de laatste beloningsvariabele, omdat we in elke staat de laatste beloning krijgen.
Dus onthoud, als de auto niet in het zand gaat, zal de beloning positief zijn.
En als de auto op wat zand gaat, nou, dan krijgt hij een slechte beloning.
En elke keer zal deze variabele deze beloning bevatten die hij krijgt bij elke 20.
En dan initialiseren we de scores, wat een vector is die de beloning zal bevatten, niet allemaal, maar de beloningen
op een schuifvenster zodat, weet je, we een curve kunnen maken van de gemiddelde score van de
beloning met betrekking tot tijd.
Oke.
Vervolgens initialiseren we in deze codesectie de kaart.
Dus initialiseren we bijvoorbeeld de zandvolleybal.
Dus dat is belangrijk.
De zandvolleybal wordt eigenlijk een array waarin de cellen de pixels van de kaart zullen zijn.
En in elke cel zullen we een hebben.
Als er wat zand is en een nul als er in het begin geen zand is, zullen we niets tekenen.
Er zal dus helemaal geen zin zijn.
En daarom zullen alle cellen van centrumrechts een nul hebben.
Er zullen dus overal nullen zijn.
En zodra we wat zand trekken, nou, de cellen waarop we het zand trekken, krijgen een één en
we initialiseren de race met alle nullen hier.
Zand is gelijk aan en nullen.
Dan hebben we dit belangrijke ding, dat is het doel.
Het doel is dus een punt op de kaart waar we de auto naartoe zullen trainen.
Dus het is als een bestemming.
Dus wat wordt dit doel?
Dit wordt de linkerbovenhoek van de kaart.
Dus we draaien de auto om naar de linkerbovenhoek van de kaart te gaan.
En zodra het de linkerbovenhoek van de kaart bereikt, zullen we trainen om naar de rechterbenedenhoek van de
kaart te gaan, zodat we ons het volgende scenario kunnen voorstellen.
De linkerbovenhoek van de kaart is de luchthaven van de stad en de rechterbenedenhoek van de kaart is het
centrum van de stad.
En we zullen een taxi of Ugur inschakelen om wat rondritten te maken tussen de luchthaven en het centrum.
En natuurlijk zullen we de taak voor deze taxi moeilijk maken door steeds moeilijkere wegen te tekenen en
steeds meer obstakels op straat toe te voegen om te zien of de taxi er nog in slaagt om van het vliegveld
naar het centrum te gaan.
Dit wordt dus leuk.
En daarom bepaal ik hier de coördinaten van het eerste doel.
Dat is de luchthaven, die zich linksboven in het scherm bevindt.
Dus de kaart zal een vierkant zijn zoals dit.
En de coördinaten van de oorsprong, dat wil zeggen de coördinaten nul nul, zijn hier.
En dan is deze afstand hier groter.
Dus de coördinaten, twintig A. J. min 20 zal daarom precies hier zijn, de linkerbovenhoek van de
kaart.
En waarom heb ik 20 gekozen en niet nul?
Dat is omdat we de auto willen trainen, niet om tegen de muren op te rennen.
Weet je, we willen het trainen om ook de wielen te vermijden.
En daarom mag het doel niet nul zijn, omdat we niet willen dat de auto de muur raakt.
We willen de go raken.
Dus we moeten het hier neerzetten.
En dan introduceer ik gewoon de laatste afstand volleybal, die alleen de huidige afstand van de auto tot
het doel geeft en die ik initialiseer naar nul.
Oké, en nu tijd om de auto en het spel te maken, dus we gaan twee klassen maken, een klasse voor de
auto en een klasse voor het spel.
En binnenin zullen deze klassen al enkele connecties maken met onze A. L. Dus dat doen we in de
volgende tutorial.
En tot die tijd, geniet van I.