Ciao e benvenuto ancora alla nostra auto a guida autonoma Maggio.
Quindi, in un toile, spiegherò l'ambiente su cui implementeremo la nostra intelligenza artificiale e che conterrà naturalmente l'auto
che si allenerà per guidare se stessa e per evitare gli ostacoli e sulla quale disegnerà alcune
strade e alcuni blocchi per le nostre macchine per navigare intorno a loro.
Quindi costruiremo più tardi questa intelligenza artificiale per addestrare questa macchina a guidare sulla strada che
conosci senza oltrepassare i limiti ed evitare alcuni ostacoli che metteranno sulla strada.
Quindi questa è una sfida piuttosto eccitante.
e l'uccello che sono intelligenza artificiale che farà tutto l'addestramento per addestrare l'auto a vendere unità.
E in realtà ci sono due file separati, come puoi vedere c'è l'apice
E abbiamo una mappa che abbiamo trovato che è il codice che rende tutto questo ambiente.
Quindi ecco quel codice che è in realtà 200 linee di codice un po 'di più.
Quindi questo codice non è in genere correlato all'IA.
È solo un codice per fare in modo che l'ambiente faccia la mappa.
Quindi analizzerò ognuna delle sezioni una per una per spiegare, ma non
implementeremo questo codice riga per riga da zero perché vogliamo concentrarci sull'intelligenza artificiale.
Ma esaminiamo ancora le sezioni una per una per capire cosa sta succedendo.
Quindi, per prima cosa importiamo le librerie centrali che sono per qualsiasi codice.
Abbiamo bisogno di alcune librerie per eseguire alcune attività in modo più efficiente di quanto importiamo tutti i pacchetti di cavy.
Quindi non è molto importante perché questo è tutto specifico per Cavey, stiamo usando la cavy per fare la mappa.
Quindi stiamo importando molte classi e oggetti per poter creare questa mappa e aggiungere alcuni
strumenti nella mappa.
Va bene allora questa linea è importante.
Questa linea è correlata perché fondamentalmente qui è dove importiamo il nostro cervello al cervello dell'auto che sarà un
altro jet di questo in classe e l'insegnante in classe.
È la nostra intelligenza artificiale stessa.
Vedrai che implementeremo il dequeue in classe nei seguenti tutorial.
E come potresti aver indovinato l'istanza di dequeue per reti Q profonde.
Quindi implementeremo una rete di apprendimento della dequeue e quindi, una volta pronta,
la importeremo qui con questa linea dall'IA e ovviamente gli occhi sono un file python.
Tutto ok.
Quindi non vedo l'ora di implementarlo.
eccitante perché grazie alla I la macchina sarà in grado di guidare da sola.
Questo sarà un bel viaggio ma vedrai che sarà molto
Tutto ok.
E ora, prima di passare alle prossime sezioni, dobbiamo spiegare come addestreremo questa macchina.
Non ho intenzione di spiegare la rete neurale in questo momento, ma ho intenzione di spiegare
l'idea di come possiamo addestrare l'auto a guidare se stessa ed evitare gli ostacoli.
Così sai nella vita reale se vuoi allenare una macchina reale per evitare alcuni muri o alcuni ostacoli.
Bene cosa faresti.
Sicuramente non prenderei muri veri o veri ostacoli e distruggere la tua auto su di loro.
Questo ti costerebbe un sacco di soldi.
Invece un'idea più intelligente sarebbe quella di punire la tua auto non quando colpisce un muro o un
ostacolo, ma quando va sulla sabbia.
Quindi è come se avessi un campo.
Questo campo ha alcune strade su cui l'auto deve rimanere e le strade sono delimitate da un po 'di sabbia.
E ogni volta che la macchina va al centro è come se stesse andando a un ostacolo perché una
volta che la macchina va in sabbia sarà rallentata e faremo in modo che l'auto sia penalizzata per questo
è punito.
E questo è un punto essenziale dell'intelligenza artificiale.
La parolaccia arriva ogni volta che la macchina va in un certo senso e viene rallentata.
Tutto ok.
E quindi qui sto introducendo l'ultimo testo ed è per questo.
Quali sono le coordinate dell'ultimo punto in memoria quando disegniamo un profumo sulla mappa.
Tutto ok.
la nostra intelligenza artificiale che chiamiamo cervello e che contiene la nostra rete neurale e la chiameremo cervello perché questo
è in realtà il cervello della macchina e che contiene la nostra rete di noodle.
E poi otteniamo
Tutto ok.
Quindi, in questa riga di codice, come puoi vedere, sto creando oggetti all'insegnante in classe.
Ti ricorderò che classi e oggetti sono solo l'oggetto di Brenna disumanizza la classe e 5:
3 e 0. 9 sono gli input della classe.
Quindi questo è molto semplice: cinque corrispondono agli stati che sono vettori codificati di cinque dimensioni, vedremo
cosa stanno descrivendo perfettamente ciò che sta accadendo nell'ambiente sulla mappa.
azioni che ci saranno tre azioni possibili andate a sinistra andate dritte o andate a destra e 0.
Poi tre è il numero di 9 è di nuovo un parametro nell'algoritmo di apprendimento della dequeue.
Va bene e poi abbiamo l'azione attraverso la rotazione.
Quindi l'azione per la rotazione è un vettore di tre elementi.
020 e meno 20.
E quindi dobbiamo farlo perché le azioni sono codificate da tre numeri 0 1 e 2 e che corrisponde agli indici di
questa azione a due vettori di rotazione.
Ad esempio, se l'azione selezionata al tempo t è zero.
Bene zero corrisponde all'indice di questa azione a due rotazioni e il valore dell'indice 0 è zero.
E quindi andremo subito se l'azione selezionata è 1.
Bene si corrisponde all'indice di questa azione due vettori aggiuntivi e il valore di questo vettore
che ne ha uno successivo è 20.
Quindi 20 corrisponde a una rotazione di 20 gradi e ciò significa che il codice andrà a
20 gradi a destra e quindi se l'azione selezionata è quella di corrispondere all'indice di questa azione al vettore di rotazione.
E quindi il codice farà una rotazione di meno 20 gradi e quindi andrà a sinistra.
Bene, allora introduciamo il Voivode per la ricompensa di sinistra, perché in ogni fase otterremo l'ultima parola.
Quindi ricorda se la carta non va in un certo senso, allora la ricompensa sarà positiva.
E se il codice va avanti in un certo senso, otterrà la cattiva ricompensa e ogni volta
che questa variabile conterrà questa ricompensa che ottiene H20.
E poi inizializziamo i punteggi che è un vettore che conterrà la ricompensa.
Non tutti, ma la ricompensa.
Su una finestra scorrevole in modo che tu sappia che possiamo fare una curva dello squat medio la
ricompensa rispetto al tempo.
Bene, in questa sezione di codice inizializziamo la mappa, quindi inizializziamo.
Ad esempio la suddetta variabile.
Quindi è importante
La seconda variabile sarà in realtà una matrice in cui le celle saranno i pixel della
mappa e in ogni cella avremo un 1.
Se c'è un senso in uno zero se non c'è un centro all'inizio non disegneremo nulla.
Quindi non ci sarà alcun senso e quindi tutte le celle dell'array centrale avranno zero.
Ci saranno zeri dappertutto e non appena avremo un po 'di senso mentre le celle su
cui disegniamo il senso ne prenderanno una e inizializzeremo la gara con tutti gli zeri che qui hanno inviato uguali e zeri.
Quindi abbiamo questa cosa importante che è l'obiettivo.
Quindi l'obiettivo è un punto nella mappa che addestrerà l'auto a raggiungere.
Quindi è come una destinazione.
Quindi, qual è questo obiettivo sarà.
Bene, questo sarà l'angolo in alto a sinistra della mappa per addestrare l'auto ad andare nell'angolo in alto a
sinistra della mappa.
E poi, una volta raggiunto l'angolo in alto a sinistra della mappa, avremo tendenza ad andare nell'angolo in
basso a destra della mappa in modo da poter immaginare il seguente scenario.
della mappa è l'aeroporto di una città e l'angolo in basso a destra della mappa è il centro della città.
L'angolo in alto a sinistra
E noi addestreremo un taxi o Uber per fare alcuni viaggi di andata e ritorno tra l'aeroporto e il centro città.
E naturalmente renderemo il compito difficile a questo taxi disegnando strade sempre più difficili
e aggiungendo sempre più ostacoli sulla strada per vedere se il taxi può ancora
arrivare dall'aeroporto al centro.
Quindi sarà divertente.
Ed ecco perché sto impostando le coordinate del primo obiettivo che è l'aeroporto che si trova nella parte
superiore sinistra dello schermo.
Quindi la mappa sarà come un quadrato come questo e le coordinate dell'origine che sono le
coordinate 00 sono proprio qui.
E poi più grande è questa distanza qui.
Quindi le coordinate 20 e Najah meno 20 saranno quindi proprio qui nell'angolo in alto a sinistra della mappa.
E perché ho scelto 20 e non zero.
Beh, questo è perché vogliamo addestrare l'auto a non precipitarsi contro le mura.
Sai che vogliamo allenarci anche nei muri e quindi non è zero perché non
vogliamo che l'auto tocchi dove vogliamo toccare.
Quindi dobbiamo metterlo qui e poi sto solo introducendo l'ultima variabile di distanza che dà solo la
distanza corrente dalla macchina alla strada e che sto inizializzando a zero.
Tutto ok.
E ora è tempo di fare la macchina e il gioco.
Quindi faremo due classi una classe per l'auto e una classe per il gioco.
E all'interno di queste classi si potranno già fare alcuni collegamenti con la nostra IA.
Quindi lo faremo nel prossimo Statoil.
E fino ad allora mi godo I.