Ciao e benvenuto al Statoil e al parlare abbiamo inizializzato la mappa.
E ora è il momento per le cose eccitanti che creiamo la macchina e lo facciamo con una lezione ovviamente.
Vedrai che la classe è molto pratica per creare alcune cose che hanno molte proprietà perché come puoi
vedere non solo trovando alcune variabili dalla mia auto ma anche alcune funzioni che ovviamente sono la funzione
che farà muovere la macchina verso il lasciato a destra o andando dritto.
Quindi abbiamo un paio di variabili che sono importanti per descrivere l'ambiente che
abbiamo, ad esempio l'angolo che è l'angolo tra l'asse x e l'asse della direzione della macchina.
che è la sua ultima rotazione che ricorda sia 0 gradi 20 gradi o meno 20 gradi.
Quindi abbiamo la rotazione
Quindi abbiamo la velocità la coordinata x del vettore di velocità e le coordinate y del vettore
di velocità.
E poi il vettore di coordinate velocità xe velocità Y allora abbiamo i sensori e i segnali.
E questo è molto importante che la chiamata che stiamo facendo avrà tre sensori, un
sensore due e tre sensori, uno rileverà se c'è un senso davanti all'auto.
Quindi il sensore 2 è il sensore che rileva se c'è un senso alla sinistra dell'auto e il sensore 3
è il sensore che rileva se c'è un senso alla destra della macchina.
E poi da questi tre sensori otteniamo i segnali che i segnali ricevuti da ciascuno dei sensori.
Quindi il segnale uno è il segnale ricevuto dal sensore un segnale è il segnale ricevuto dal sensore 2 e
il segnale 3 è il singolo ricevuto dai sensori 3.
E così come funziona.
Il segnale 1 è la densità di mandare attorno al sensore un segnale a è la densità del centro attorno
al sensore a segnalare tre è la densità della sensibilità inviata e come calcoliamo questa densità di sabbia.
Bene, è molto semplice.
Prendiamo alcuni grandi quadrati attorno a ciascuno dei sensori.
Questi sono in realtà quadrati di 200 per 200 e per ognuno dei quadrati dividiamo il numero di quelli nel quadrato
per il numero totale di celle nel quadrato che è 22 e 20 è uguale a 400.
E questo ci dà la densità della sabbia perché quelli corrispondono al centro.
Facciamo questo per ogni sensore e questo ci dà la densità di sabbia attorno a ciascun sensore.
Questo è il segnale.
Va bene, ora abbiamo tutto per rilevare il sensore e poi abbiamo la funzione di spostamento.
E ovviamente la funzione di spostamento è ciò che permetterà al nucleo di andare a sinistra andando dritto o
andando a destra.
Quindi analizziamolo velocemente.
Abbiamo qui l'aggiornamento della posizione della macchina con la sua ultima posizione che è auto il passaggio qui e
il vettore di velocità.
Quindi grazie al vettore di velocità la posizione verrà aggiornata nella direzione del vettore di velocità.
Quindi otteniamo la rotazione che andremo più avanti nel codice proprio qui.
La rotazione equivale all'azione di rotazione.
Sceglierà l'azione e poi entrerà nella rotazione.
E così questa auto-protezione è uguale alla rotazione qui.
È questa rotazione che sappiamo come dobbiamo ruotare l'auto che sta andando a
sinistra oa destra.
Quindi aggiorniamo l'angolo che ricordo è l'angolo tra l'asse x e l'asse della direzione
della macchina.
E poi, una volta che l'auto si è spostata, dobbiamo aggiornare i sensori e il segnale
perché, naturalmente, quando l'auto ha appena ruotato mentre i sensori hanno ruotato, quindi dobbiamo ruotarli usando
la funzione di rotazione e a cui aggiungiamo la nuova posizione.
E perché abbiamo questo vettore di 30 0.
Beh, questo è semplicemente perché 30 è la distanza tra l'auto e il sensore.
Sai è la distanza tra l'auto e ciò che l'auto rileva.
E poi una volta che i sensori sono aggiornati Bene, allora è il momento di aggiornare i segnali.
E così qui facciamo esattamente quello che ho spiegato ai segnali del tuo computer.
Diamo le coordinate x del nostro sensore, quindi prendiamo tutte le celle da Manston a più 10, quindi facciamo
lo stesso per la coordinata y prendendo tutte le celle da Madison a più 10.
Quindi otteniamo il quadrato di 20 di 20 pixel attorno al sensore e all'interno del quadrato ne abbiamo
alcuni più vecchi.
Quindi fondamentalmente con alcune delle celle perché le celle contengono 0 o 1 e poiché in un quadrato 20 x 20
ci sono 20 volte 20 uguali a 400 celle.
Bene lo dividiamo per 400 per ottenere la densità di quelli all'interno del quadrato ed è così che otteniamo il segnale della
densità dei centri attorno al sensore e facciamo lo stesso per il secondo sensore e il terzo sensore per
ottenere il secondo segnale e il terzo segnale.
OK.
Quindi questo è prendere il sensore e quindi queste tre righe di codice qui sono molto importanti.
altro che vogliamo che vogliamo raggiungere la nostra auto quando raggiunge uno dei bordi della mappa.
È un
Sai che non vogliamo che la macchina si precipiti su alcuni muri e quindi vogliamo penalizzarla per
punirla quando si avvicina troppo a Wall e quindi è quello che facciamo qui.
Se il primo sensore è più grande del più lungo meno 10 che è più grande di qui perché più a lungo è questa distanza qui tanto
più a lungo meno 10 è proprio qui.
Quindi se il sensore uno agisce più a lungo di Manison, tutti i punti sono qui.
si sta avvicinando al bordo sinistro della mappa o se il sensore Y è più grande del più grande meno 10 questo
è il bordo superiore della mappa e o se Y auto-censurato è inferiore a 10 che è il bordo inferiore della mappa.
Cioè se l'auto si sta avvicinando al bordo destro della mappa o se il sensore di cella si comporta più in basso
di 10, questo è proprio qui se l'auto
E così se il sensore sta raggiungendo uno qualsiasi di questi quattro bordi, beh, metteremo il segnale del segnale del sensore
quando il segnale lo ha inviato.
Lo imposteremo per essere uno.
E cosa significa?
Ciò significa un suono pieno come la piena densità della sabbia.
È come il peggio e potresti ottenere.
Ha molto senso che fermerà la tua macchina.
Quindi il segnale sarà uno e quindi l'auto riceverà una ricompensa terribilmente cattiva.
Tutto ok.
E poi facciamo lo stesso anche per il segnale e segnali tre dal sensore due istanze tre.
Tutto ok.
E poi creiamo la classe di gioco, quindi è fondamentalmente la classe a creare il gioco perché
finora abbiamo creato solo la macchina e ora ovviamente dobbiamo creare la mappa.
Dobbiamo creare il gioco stesso.
Quindi non giocheremo il gioco, sarà la nostra IA a giocare e il gioco è in
realtà quello di evitare gli ostacoli e andare dall'aeroporto al centro e viceversa.
Quindi in questa classe di gioco abbiamo bisogno di creare alcuni oggetti come la macchina, quindi dobbiamo definire la
funzione di aggiornamento.
Questo è il più importante e in realtà ci focalizzeremo su questo in questo momento
perché è in questa funzione di aggiornamento che selezionerà l'azione che l'auto deve fare e ogni volta per raggiungere il suo obiettivo.
E questa azione è esattamente l'output della nostra rete neurale.
La nuova volontà che funziona sarà al centro della nostra intelligenza artificiale.
E così questa azione viene restituita dal cervello dell'auto che rimane l'oggetto della nostra classe umana che
verrà creata nel nostro file AI.
E questo oggetto ha un metodo chiamato aggiornamento e prende come input l'ultima parola e
l'ultimo segnale.
Quindi l'ultima parola è ovviamente l'ultima parola raggiunta dalla macchina e l'ultimo segnale è ovviamente
l'ultimo segnale dei tre sensori che segnala uno dal sensore un segnale due dal sensore al segnale tre dal
sensore 3.
Ma poi aggiungo altri due input che sono l'orientamento della macchina rispetto all'obiettivo.
Quindi, ad esempio, se l'auto si sta dirigendo verso l'obiettivo, l'orientamento sarà uguale a zero.
Se va leggermente a destra, l'orientamento sarà vicino a 45 gradi.
E se va leggermente a sinistra, l'orientamento sarà vicino a meno 45 gradi.
Quindi questo è l'input di forza dei nostri stati di input.
E poi c'è una lezione messa meno l'orientamento.
Quindi di solito gli input della rete neurale sono indipendenti. Non c'è multicollinearità, ma non importa se
siamo così perché la rete neurale lo aggiusterà solo con i pesi.
questo meno l'orientamento bene che consente alla vettura l'allenamento della vettura per stabilizzare l'accelerazione.
Ma ancora mi accorgo che aggiungendo
Sai che lo stiamo facendo è che l'intelligenza artificiale non esplora sempre nella stessa direzione aggiungendo
questo orientamento negativo.
Ci assicuriamo che esplori in entrambe le direzioni, a destra oa sinistra.
E così questo i tre segnali Più l'orientamento e l'orientamento negativo sono i cinque ingressi del nostro
vettore codificato che andranno nella rete che il nostro vettore di input che andrà nella rete e dopo
che entrerà nella rete Bene la rete restituisce le uscite che è l'azione da giocare.
è lo stato di input e anche l'ultima parola perché l'azione da giocare anche dipende dall'ultima parola.
E ogni volta e l'output viene restituito da questa funzione di aggiornamento che contiene la
rete stessa e l'output della rete e quindi è per questo che dobbiamo inserire l'ultimo segnale che
Va bene e poi aggiorniamo il punteggio principale delle parole che aggiorniamo la rotazione, usiamo la funzione
di spostamento per ruotare l'auto in base all'azione selezionata.
Prendiamo la distanza della macchina verso la strada e otterremo le posizioni dei sensori palla una palla due in
entrambe le risposte Rieker alle palle che rappresenteranno i sensori sulla mappa.
Lo vedrai molto velocemente.
perché, come puoi vedere, significa che se la macchina è in un certo senso, sarà rallentata.
E poi qui quella parte è molto importante perché è lì che penalizziamo la macchina se va in un certo senso
Ecco dove riduciamo la sua velocità.
Sai che la sua velocità è di solito 6 come puoi vedere qui.
E se continua in un certo senso, sarà uno che verrà rallentato a 1.
Vedrai come la macchina verrà rallentata una volta che avrà un senso.
Quindi è lento.
E inoltre ottiene una brutta ricompensa che ottiene un meno uno che vogliamo.
E questo è in realtà il peggior premio che potresti ottenere.
La migliore ricompensa è la peggiore in cui la nostra parola è meno uno e la ricompensa è tra meno 1 e più 1.
E poi altrimenti.
E la macchina non è sulla sabbia.
Bene, mantiene la sua normale velocità del sesso e poi aggiungiamo qualcos'altro.
Se si sta avvicinando all'obiettivo, otterrà una ricompensa leggermente positiva.
E se si sta allontanando dall'obiettivo Bene ottiene una ricompensa leggermente negativa meno 0. 2.
E poi ultimo.
Condizioni correlate alla ricompensa.
Beh, questo è se la macchina si sta avvicinando troppo a uno dei bordi di cui abbiamo parlato prima.
Ricorda quando abbiamo parlato del sensore del carburante.
Bene, se l'auto si avvicina troppo al bordo sinistro della mappa diventa meno una parola se si avvicina
troppo al bordo destro della mappa viene premiata meno uno.
E se si avvicina troppo al bordo inferiore della mappa, si ottiene o meno uno.
E se si avvicina troppo in alto a sinistra della mappa ottiene premi meno uno.
Quindi è una punizione terribile.
E così vedrai com'è pieno e veloce non precipitarsi in qualcos'altro.
Va bene e allora questo è per aggiornare il go quando l'obiettivo è raggiunto.
Quindi sai quando l'auto raggiunge l'aeroporto, che è il primo che va c'è l'angolo in alto a sinistra
della mappa.
Mentre l'obiettivo cambia nell'angolo in basso a destra della mappa che è in centro.
E questo è esattamente ciò che facciamo qui aggiorniamo la coordinata x del corvo e
le coordinate bianche della chiamata e quindi aggiorniamo la distanza dalla macchina alla macchina.
Tutto ok.
E poi è meno importante.
Questa è solo una classe che aggiungerà gli strumenti di pittura che conosci per noi per poter dipingere alcune strade o alcuni
ostacoli sulla mappa che è più correlata a K. V. posso dare un'occhiata se vuoi fornirò
la versione condensata di questo codice e fornirò qualche riferimento se vuoi approfondire come farlo
con lo skivvy.
Ma ci stiamo allontanando dall'intelligenza artificiale, quindi non ho intenzione di entrare nei dettagli di esso.
E questo è lo stesso per l'ultima sezione di codice con la classe di auto che è proprio come i pulsanti API si
cancellano e si caricano.
Quindi questo è quello che facciamo qui.
Chiara tela sicura.
E questo è davvero molto importante per noi essere in grado di salvare il giorno in cui so di
salvare il cervello in modo che tu possa riutilizzarlo in seguito prendendo la funzione di carico che è un altro strumento
che aggiungiamo sulla mappa per caricare il cervello dell'auto che è caricare la memoria dell'auto come navigare nella mappa.
E infine abbiamo l'ultima dell'ultima sezione di codice che esegue l'intera cosa che
esegue la mappa e l'intelligenza artificiale stessa.
E in realtà è quello che faremo ora.
Diamo un'occhiata a tutto ciò che abbiamo fatto in questo codice.
Quindi adesso l'IA non è implementata.
Quindi il codice avrà un movimento molto casuale.
Sembrerà un insetto, ma non preoccuparti, lo risolveremo.
Normalmente lo addestreremo per muoversi come una vera macchina e addestrarlo per navigare seguendo alcune strade ed
evitare alcuni ostacoli.
Facciamolo.
Selezionerò tutto ed eseguirò.
E qui è la mappa.
Ed ecco la macchina.
Tutto ok.
Quindi questa è la piccola cosa qui che vedi che sembra un insetto nella nostra macchina.
Quindi, come ti ho detto, le azioni sono totalmente casuali.
Quindi ogni volta che l'auto seleziona a caso un'azione, se andare direttamente a sinistra o a destra.
Ecco perché sta facendo alcuni movimenti senza senso ed è per questo che sembra un insetto.
Quindi sistemeremo quello naturalmente.
non sta andando alla meta che è l'aeroporto qui o al centro in basso a destra della mappa.
E naturalmente da quando l'IA è attivata, beh,
E sistemeremo tutto questo rendendo le IA che implementeranno l'IA in questa macchina o in questo insetto in modo da poter
vedere le tre sfere qui quella gialla quella rossa e quella bianca.
Sono i nostri tre sensori.
Quindi questo è quello che rileveremo.
C'è un po 'di profumo intorno.
E a proposito di profumo Beh, buttiamone un po '.
Quindi, per farlo, ho solo bisogno di fare un clic lasciato qui e tu sai in un certo senso di insegnare ancora a sinistra.
Quindi adesso aggiungo un po 'di sabbia, possiamo aggiungerne ancora.
Quindi, ogni volta in modo folle, come puoi vedere, inserendo quelli nell'array centrale che è quello di inviare un
array che è a 00 coordinate dell'origine.
E qui ce ne sono molti.
E come puoi vedere bene è bello vedere la macchina.
Abbiamo appena iniziato la discesa ed è stato rallentato.
Quindi, come puoi vedere adesso, è davvero lento perché sta andando nella sabbia.
E in questo momento sta cercando di scappare.
E così saprai cosa faremo disegneremo alcune strade e disegneremo alcune strade dall'aeroporto al centro
e noi addestreremo l'auto per rimanere sulla strada ed evitare gli ostacoli.
Tutto ok.
E come puoi vedere c'è il pulsante per cancellare la sabbia c'è il pulsante salva per
salvare il cervello dell'auto.
E in realtà c'è questa curva fondamentale che abbiamo detto di quella sicurezza che salva il tuo modello in
realtà il cervello della tua auto e poi puoi sapere quando ti lasci raffreddare o spegnere il computer e vuoi
tornare ad esso nuovamente.
Puoi usare il pulsante di caricamento per caricare la tua modalità che carica il cervello e che otterrà
i treni AI della tua auto.
Va bene così ora non vedo l'ora di iniziare a fare l'intelligenza artificiale.
Questo sarà molto divertente.
Creeremo la nostra rete neurale e puniremo l'auto non appena farà ciò che vogliamo.
Quindi facciamolo dal prossimo tutorial.
E fino ad allora godere di a.