WEBVTT

00:00.450 --> 00:05.700
Ciao e benvenuto al Statoil e al parlare abbiamo inizializzato la mappa.

00:05.850 --> 00:12.090
E ora è il momento per le cose eccitanti che creiamo la macchina e lo facciamo con una lezione ovviamente.

00:12.090 --> 00:18.660
Vedrai che la classe è molto pratica per creare alcune cose che hanno molte proprietà perché come puoi

00:18.660 --> 00:25.300
vedere non solo trovando alcune variabili dalla mia auto ma anche alcune funzioni che ovviamente sono la funzione

00:25.300 --> 00:30.270
che farà muovere la macchina verso il lasciato a destra o andando dritto.

00:30.720 --> 00:35.970
Quindi abbiamo un paio di variabili che sono importanti per descrivere l'ambiente che

00:35.970 --> 00:42.590
abbiamo, ad esempio l'angolo che è l'angolo tra l'asse x e l'asse della direzione della macchina.

00:42.630 --> 00:50.040
che è la sua ultima rotazione che ricorda sia 0 gradi 20 gradi o meno 20 gradi.

00:50.040 --> 00:51.550
Quindi abbiamo la rotazione

00:51.570 --> 00:57.690
Quindi abbiamo la velocità la coordinata x del vettore di velocità e le coordinate y del vettore

00:57.690 --> 00:58.320
di velocità.

00:58.470 --> 01:05.740
E poi il vettore di coordinate velocità xe velocità Y allora abbiamo i sensori e i segnali.

01:05.830 --> 01:12.280
E questo è molto importante che la chiamata che stiamo facendo avrà tre sensori, un

01:12.310 --> 01:18.240
sensore due e tre sensori, uno rileverà se c'è un senso davanti all'auto.

01:18.420 --> 01:25.070
Quindi il sensore 2 è il sensore che rileva se c'è un senso alla sinistra dell'auto e il sensore 3

01:25.080 --> 01:29.640
è il sensore che rileva se c'è un senso alla destra della macchina.

01:29.950 --> 01:37.080
E poi da questi tre sensori otteniamo i segnali che i segnali ricevuti da ciascuno dei sensori.

01:37.290 --> 01:43.320
Quindi il segnale uno è il segnale ricevuto dal sensore un segnale è il segnale ricevuto dal sensore 2 e

01:43.330 --> 01:46.370
il segnale 3 è il singolo ricevuto dai sensori 3.

01:46.380 --> 01:47.700
E così come funziona.

01:47.770 --> 01:54.310
Il segnale 1 è la densità di mandare attorno al sensore un segnale a è la densità del centro attorno

01:54.820 --> 02:00.560
al sensore a segnalare tre è la densità della sensibilità inviata e come calcoliamo questa densità di sabbia.

02:00.670 --> 02:01.690
Bene, è molto semplice.

02:01.700 --> 02:06.110
Prendiamo alcuni grandi quadrati attorno a ciascuno dei sensori.

02:06.130 --> 02:12.490
Questi sono in realtà quadrati di 200 per 200 e per ognuno dei quadrati dividiamo il numero di quelli nel quadrato

02:12.490 --> 02:17.840
per il numero totale di celle nel quadrato che è 22 e 20 è uguale a 400.

02:18.070 --> 02:22.530
E questo ci dà la densità della sabbia perché quelli corrispondono al centro.

02:22.630 --> 02:27.790
Facciamo questo per ogni sensore e questo ci dà la densità di sabbia attorno a ciascun sensore.

02:27.790 --> 02:29.550
Questo è il segnale.

02:29.650 --> 02:35.450
Va bene, ora abbiamo tutto per rilevare il sensore e poi abbiamo la funzione di spostamento.

02:35.450 --> 02:40.660
E ovviamente la funzione di spostamento è ciò che permetterà al nucleo di andare a sinistra andando dritto o

02:40.660 --> 02:41.530
andando a destra.

02:41.920 --> 02:43.360
Quindi analizziamolo velocemente.

02:43.360 --> 02:50.410
Abbiamo qui l'aggiornamento della posizione della macchina con la sua ultima posizione che è auto il passaggio qui e

02:50.740 --> 02:52.400
il vettore di velocità.

02:52.540 --> 02:58.720
Quindi grazie al vettore di velocità la posizione verrà aggiornata nella direzione del vettore di velocità.

02:58.930 --> 03:05.320
Quindi otteniamo la rotazione che andremo più avanti nel codice proprio qui.

03:05.320 --> 03:08.040
La rotazione equivale all'azione di rotazione.

03:08.040 --> 03:11.400
Sceglierà l'azione e poi entrerà nella rotazione.

03:11.410 --> 03:15.580
E così questa auto-protezione è uguale alla rotazione qui.

03:15.610 --> 03:21.130
È questa rotazione che sappiamo come dobbiamo ruotare l'auto che sta andando a

03:21.130 --> 03:22.360
sinistra oa destra.

03:22.420 --> 03:28.510
Quindi aggiorniamo l'angolo che ricordo è l'angolo tra l'asse x e l'asse della direzione

03:28.510 --> 03:29.560
della macchina.

03:29.620 --> 03:35.350
E poi, una volta che l'auto si è spostata, dobbiamo aggiornare i sensori e il segnale

03:35.350 --> 03:41.380
perché, naturalmente, quando l'auto ha appena ruotato mentre i sensori hanno ruotato, quindi dobbiamo ruotarli usando

03:41.380 --> 03:45.500
la funzione di rotazione e a cui aggiungiamo la nuova posizione.

03:45.790 --> 03:48.950
E perché abbiamo questo vettore di 30 0.

03:49.090 --> 03:54.070
Beh, questo è semplicemente perché 30 è la distanza tra l'auto e il sensore.

03:54.130 --> 03:59.080
Sai è la distanza tra l'auto e ciò che l'auto rileva.

03:59.230 --> 04:04.210
E poi una volta che i sensori sono aggiornati Bene, allora è il momento di aggiornare i segnali.

04:04.270 --> 04:07.110
E così qui facciamo esattamente quello che ho spiegato ai segnali del tuo computer.

04:07.240 --> 04:13.780
Diamo le coordinate x del nostro sensore, quindi prendiamo tutte le celle da Manston a più 10, quindi facciamo

04:13.780 --> 04:19.070
lo stesso per la coordinata y prendendo tutte le celle da Madison a più 10.

04:19.090 --> 04:27.040
Quindi otteniamo il quadrato di 20 di 20 pixel attorno al sensore e all'interno del quadrato ne abbiamo

04:27.130 --> 04:28.280
alcuni più vecchi.

04:28.300 --> 04:35.170
Quindi fondamentalmente con alcune delle celle perché le celle contengono 0 o 1 e poiché in un quadrato 20 x 20

04:35.170 --> 04:38.060
ci sono 20 volte 20 uguali a 400 celle.

04:38.200 --> 04:45.520
Bene lo dividiamo per 400 per ottenere la densità di quelli all'interno del quadrato ed è così che otteniamo il segnale della

04:45.730 --> 04:52.090
densità dei centri attorno al sensore e facciamo lo stesso per il secondo sensore e il terzo sensore per

04:52.360 --> 04:54.870
ottenere il secondo segnale e il terzo segnale.

04:55.060 --> 04:55.340
OK.

04:55.360 --> 05:00.220
Quindi questo è prendere il sensore e quindi queste tre righe di codice qui sono molto importanti.

05:00.220 --> 05:05.710
altro che vogliamo che vogliamo raggiungere la nostra auto quando raggiunge uno dei bordi della mappa.

05:05.710 --> 05:06.290
È un

05:06.290 --> 05:11.830
Sai che non vogliamo che la macchina si precipiti su alcuni muri e quindi vogliamo penalizzarla per

05:11.830 --> 05:16.380
punirla quando si avvicina troppo a Wall e quindi è quello che facciamo qui.

05:16.630 --> 05:24.970
Se il primo sensore è più grande del più lungo meno 10 che è più grande di qui perché più a lungo è questa distanza qui tanto

05:24.970 --> 05:27.580
più a lungo meno 10 è proprio qui.

05:27.580 --> 05:33.550
Quindi se il sensore uno agisce più a lungo di Manison, tutti i punti sono qui.

05:33.550 --> 05:40.930
si sta avvicinando al bordo sinistro della mappa o se il sensore Y è più grande del più grande meno 10 questo

05:40.950 --> 05:48.250
è il bordo superiore della mappa e o se Y auto-censurato è inferiore a 10 che è il bordo inferiore della mappa.

05:48.250 --> 05:55.870
Cioè se l'auto si sta avvicinando al bordo destro della mappa o se il sensore di cella si comporta più in basso

05:55.870 --> 05:58.670
di 10, questo è proprio qui se l'auto

05:58.720 --> 06:06.370
E così se il sensore sta raggiungendo uno qualsiasi di questi quattro bordi, beh, metteremo il segnale del segnale del sensore

06:06.490 --> 06:08.760
quando il segnale lo ha inviato.

06:08.800 --> 06:10.290
Lo imposteremo per essere uno.

06:10.540 --> 06:11.610
E cosa significa?

06:11.650 --> 06:15.390
Ciò significa un suono pieno come la piena densità della sabbia.

06:15.580 --> 06:17.270
È come il peggio e potresti ottenere.

06:17.330 --> 06:19.540
Ha molto senso che fermerà la tua macchina.

06:19.660 --> 06:24.480
Quindi il segnale sarà uno e quindi l'auto riceverà una ricompensa terribilmente cattiva.

06:24.490 --> 06:24.830
Tutto ok.

06:24.820 --> 06:30.190
E poi facciamo lo stesso anche per il segnale e segnali tre dal sensore due istanze tre.

06:30.410 --> 06:30.790
Tutto ok.

06:30.800 --> 06:36.470
E poi creiamo la classe di gioco, quindi è fondamentalmente la classe a creare il gioco perché

06:36.470 --> 06:40.720
finora abbiamo creato solo la macchina e ora ovviamente dobbiamo creare la mappa.

06:40.820 --> 06:42.310
Dobbiamo creare il gioco stesso.

06:42.410 --> 06:47.750
Quindi non giocheremo il gioco, sarà la nostra IA a giocare e il gioco è in

06:47.750 --> 06:52.240
realtà quello di evitare gli ostacoli e andare dall'aeroporto al centro e viceversa.

06:52.520 --> 06:59.610
Quindi in questa classe di gioco abbiamo bisogno di creare alcuni oggetti come la macchina, quindi dobbiamo definire la

06:59.630 --> 07:00.540
funzione di aggiornamento.

07:00.590 --> 07:05.330
Questo è il più importante e in realtà ci focalizzeremo su questo in questo momento

07:05.330 --> 07:12.250
perché è in questa funzione di aggiornamento che selezionerà l'azione che l'auto deve fare e ogni volta per raggiungere il suo obiettivo.

07:12.350 --> 07:16.880
E questa azione è esattamente l'output della nostra rete neurale.

07:16.880 --> 07:20.860
La nuova volontà che funziona sarà al centro della nostra intelligenza artificiale.

07:20.930 --> 07:27.550
E così questa azione viene restituita dal cervello dell'auto che rimane l'oggetto della nostra classe umana che

07:27.560 --> 07:29.780
verrà creata nel nostro file AI.

07:29.930 --> 07:36.500
E questo oggetto ha un metodo chiamato aggiornamento e prende come input l'ultima parola e

07:36.500 --> 07:37.590
l'ultimo segnale.

07:37.610 --> 07:43.250
Quindi l'ultima parola è ovviamente l'ultima parola raggiunta dalla macchina e l'ultimo segnale è ovviamente

07:43.250 --> 07:50.480
l'ultimo segnale dei tre sensori che segnala uno dal sensore un segnale due dal sensore al segnale tre dal

07:50.480 --> 07:51.240
sensore 3.

07:51.440 --> 07:56.870
Ma poi aggiungo altri due input che sono l'orientamento della macchina rispetto all'obiettivo.

07:56.900 --> 08:01.540
Quindi, ad esempio, se l'auto si sta dirigendo verso l'obiettivo, l'orientamento sarà uguale a zero.

08:01.730 --> 08:06.730
Se va leggermente a destra, l'orientamento sarà vicino a 45 gradi.

08:06.920 --> 08:11.820
E se va leggermente a sinistra, l'orientamento sarà vicino a meno 45 gradi.

08:11.900 --> 08:15.380
Quindi questo è l'input di forza dei nostri stati di input.

08:15.410 --> 08:18.950
E poi c'è una lezione messa meno l'orientamento.

08:19.010 --> 08:25.250
Quindi di solito gli input della rete neurale sono indipendenti. Non c'è multicollinearità, ma non importa se

08:25.250 --> 08:29.360
siamo così perché la rete neurale lo aggiusterà solo con i pesi.

08:29.480 --> 08:35.450
questo meno l'orientamento bene che consente alla vettura l'allenamento della vettura per stabilizzare l'accelerazione.

08:35.450 --> 08:37.840
Ma ancora mi accorgo che aggiungendo

08:37.940 --> 08:43.460
Sai che lo stiamo facendo è che l'intelligenza artificiale non esplora sempre nella stessa direzione aggiungendo

08:43.460 --> 08:44.390
questo orientamento negativo.

08:44.390 --> 08:48.680
Ci assicuriamo che esplori in entrambe le direzioni, a destra oa sinistra.

08:48.920 --> 08:55.780
E così questo i tre segnali Più l'orientamento e l'orientamento negativo sono i cinque ingressi del nostro

08:55.810 --> 09:03.020
vettore codificato che andranno nella rete che il nostro vettore di input che andrà nella rete e dopo

09:03.050 --> 09:09.560
che entrerà nella rete Bene la rete restituisce le uscite che è l'azione da giocare.

09:09.650 --> 09:15.290
è lo stato di input e anche l'ultima parola perché l'azione da giocare anche dipende dall'ultima parola.

09:15.290 --> 09:20.450
E ogni volta e l'output viene restituito da questa funzione di aggiornamento che contiene la

09:20.450 --> 09:26.110
rete stessa e l'output della rete e quindi è per questo che dobbiamo inserire l'ultimo segnale che

09:26.950 --> 09:33.700
Va bene e poi aggiorniamo il punteggio principale delle parole che aggiorniamo la rotazione, usiamo la funzione

09:33.700 --> 09:37.500
di spostamento per ruotare l'auto in base all'azione selezionata.

09:37.510 --> 09:44.230
Prendiamo la distanza della macchina verso la strada e otterremo le posizioni dei sensori palla una palla due in

09:44.230 --> 09:48.490
entrambe le risposte Rieker alle palle che rappresenteranno i sensori sulla mappa.

09:48.530 --> 09:49.880
Lo vedrai molto velocemente.

09:50.550 --> 09:56.230
perché, come puoi vedere, significa che se la macchina è in un certo senso, sarà rallentata.

09:56.230 --> 10:04.060
E poi qui quella parte è molto importante perché è lì che penalizziamo la macchina se va in un certo senso

10:04.150 --> 10:06.550
Ecco dove riduciamo la sua velocità.

10:06.590 --> 10:10.020
Sai che la sua velocità è di solito 6 come puoi vedere qui.

10:10.150 --> 10:14.410
E se continua in un certo senso, sarà uno che verrà rallentato a 1.

10:14.430 --> 10:17.810
Vedrai come la macchina verrà rallentata una volta che avrà un senso.

10:18.030 --> 10:19.090
Quindi è lento.

10:19.210 --> 10:23.610
E inoltre ottiene una brutta ricompensa che ottiene un meno uno che vogliamo.

10:23.920 --> 10:26.140
E questo è in realtà il peggior premio che potresti ottenere.

10:26.140 --> 10:32.100
La migliore ricompensa è la peggiore in cui la nostra parola è meno uno e la ricompensa è tra meno 1 e più 1.

10:32.530 --> 10:33.450
E poi altrimenti.

10:33.570 --> 10:35.770
E la macchina non è sulla sabbia.

10:35.980 --> 10:41.000
Bene, mantiene la sua normale velocità del sesso e poi aggiungiamo qualcos'altro.

10:41.080 --> 10:45.710
Se si sta avvicinando all'obiettivo, otterrà una ricompensa leggermente positiva.

10:45.910 --> 10:53.410
E se si sta allontanando dall'obiettivo Bene ottiene una ricompensa leggermente negativa meno 0. 2.

10:53.590 --> 10:54.830
E poi ultimo.

10:54.830 --> 10:57.280
Condizioni correlate alla ricompensa.

10:57.470 --> 11:02.840
Beh, questo è se la macchina si sta avvicinando troppo a uno dei bordi di cui abbiamo parlato prima.

11:02.910 --> 11:04.990
Ricorda quando abbiamo parlato del sensore del carburante.

11:05.220 --> 11:11.840
Bene, se l'auto si avvicina troppo al bordo sinistro della mappa diventa meno una parola se si avvicina

11:11.840 --> 11:15.440
troppo al bordo destro della mappa viene premiata meno uno.

11:15.710 --> 11:20.220
E se si avvicina troppo al bordo inferiore della mappa, si ottiene o meno uno.

11:20.360 --> 11:25.230
E se si avvicina troppo in alto a sinistra della mappa ottiene premi meno uno.

11:25.230 --> 11:27.620
Quindi è una punizione terribile.

11:27.620 --> 11:31.910
E così vedrai com'è pieno e veloce non precipitarsi in qualcos'altro.

11:31.940 --> 11:36.600
Va bene e allora questo è per aggiornare il go quando l'obiettivo è raggiunto.

11:36.620 --> 11:41.390
Quindi sai quando l'auto raggiunge l'aeroporto, che è il primo che va c'è l'angolo in alto a sinistra

11:41.390 --> 11:41.920
della mappa.

11:41.930 --> 11:45.990
Mentre l'obiettivo cambia nell'angolo in basso a destra della mappa che è in centro.

11:46.250 --> 11:51.080
E questo è esattamente ciò che facciamo qui aggiorniamo la coordinata x del corvo e

11:51.140 --> 11:55.870
le coordinate bianche della chiamata e quindi aggiorniamo la distanza dalla macchina alla macchina.

11:55.880 --> 11:56.260
Tutto ok.

11:56.270 --> 11:58.320
E poi è meno importante.

11:58.340 --> 12:04.130
Questa è solo una classe che aggiungerà gli strumenti di pittura che conosci per noi per poter dipingere alcune strade o alcuni

12:04.130 --> 12:10.790
ostacoli sulla mappa che è più correlata a K. V. posso dare un'occhiata se vuoi fornirò

12:10.790 --> 12:16.370
la versione condensata di questo codice e fornirò qualche riferimento se vuoi approfondire come farlo

12:16.370 --> 12:17.570
con lo skivvy.

12:17.570 --> 12:22.730
Ma ci stiamo allontanando dall'intelligenza artificiale, quindi non ho intenzione di entrare nei dettagli di esso.

12:22.910 --> 12:30.110
E questo è lo stesso per l'ultima sezione di codice con la classe di auto che è proprio come i pulsanti API si

12:30.110 --> 12:31.320
cancellano e si caricano.

12:31.520 --> 12:32.810
Quindi questo è quello che facciamo qui.

12:32.820 --> 12:34.900
Chiara tela sicura.

12:34.940 --> 12:40.220
E questo è davvero molto importante per noi essere in grado di salvare il giorno in cui so di

12:40.700 --> 12:46.520
salvare il cervello in modo che tu possa riutilizzarlo in seguito prendendo la funzione di carico che è un altro strumento

12:46.520 --> 12:52.010
che aggiungiamo sulla mappa per caricare il cervello dell'auto che è caricare la memoria dell'auto come navigare nella mappa.

12:52.250 --> 12:57.830
E infine abbiamo l'ultima dell'ultima sezione di codice che esegue l'intera cosa che

12:57.830 --> 13:00.660
esegue la mappa e l'intelligenza artificiale stessa.

13:00.980 --> 13:03.340
E in realtà è quello che faremo ora.

13:03.590 --> 13:07.020
Diamo un'occhiata a tutto ciò che abbiamo fatto in questo codice.

13:07.040 --> 13:10.520
Quindi adesso l'IA non è implementata.

13:10.520 --> 13:13.910
Quindi il codice avrà un movimento molto casuale.

13:13.940 --> 13:17.810
Sembrerà un insetto, ma non preoccuparti, lo risolveremo.

13:17.810 --> 13:24.860
Normalmente lo addestreremo per muoversi come una vera macchina e addestrarlo per navigare seguendo alcune strade ed

13:24.920 --> 13:26.380
evitare alcuni ostacoli.

13:26.660 --> 13:27.710
Facciamolo.

13:27.710 --> 13:32.240
Selezionerò tutto ed eseguirò.

13:32.510 --> 13:33.900
E qui è la mappa.

13:33.950 --> 13:35.270
Ed ecco la macchina.

13:35.690 --> 13:36.070
Tutto ok.

13:36.080 --> 13:41.600
Quindi questa è la piccola cosa qui che vedi che sembra un insetto nella nostra macchina.

13:41.630 --> 13:45.960
Quindi, come ti ho detto, le azioni sono totalmente casuali.

13:46.220 --> 13:53.890
Quindi ogni volta che l'auto seleziona a caso un'azione, se andare direttamente a sinistra o a destra.

13:53.930 --> 13:59.260
Ecco perché sta facendo alcuni movimenti senza senso ed è per questo che sembra un insetto.

13:59.450 --> 14:01.460
Quindi sistemeremo quello naturalmente.

14:01.730 --> 14:09.500
non sta andando alla meta che è l'aeroporto qui o al centro in basso a destra della mappa.

14:09.500 --> 14:12.930
E naturalmente da quando l'IA è attivata, beh,

14:13.760 --> 14:21.850
E sistemeremo tutto questo rendendo le IA che implementeranno l'IA in questa macchina o in questo insetto in modo da poter

14:21.860 --> 14:26.480
vedere le tre sfere qui quella gialla quella rossa e quella bianca.

14:26.630 --> 14:28.190
Sono i nostri tre sensori.

14:28.220 --> 14:30.020
Quindi questo è quello che rileveremo.

14:30.020 --> 14:32.580
C'è un po 'di profumo intorno.

14:32.810 --> 14:35.720
E a proposito di profumo Beh, buttiamone un po '.

14:35.720 --> 14:45.510
Quindi, per farlo, ho solo bisogno di fare un clic lasciato qui e tu sai in un certo senso di insegnare ancora a sinistra.

14:45.510 --> 14:50.240
Quindi adesso aggiungo un po 'di sabbia, possiamo aggiungerne ancora.

14:50.250 --> 14:57.360
Quindi, ogni volta in modo folle, come puoi vedere, inserendo quelli nell'array centrale che è quello di inviare un

14:57.360 --> 15:00.100
array che è a 00 coordinate dell'origine.

15:00.180 --> 15:01.990
E qui ce ne sono molti.

15:02.080 --> 15:04.720
E come puoi vedere bene è bello vedere la macchina.

15:04.770 --> 15:07.240
Abbiamo appena iniziato la discesa ed è stato rallentato.

15:07.620 --> 15:12.230
Quindi, come puoi vedere adesso, è davvero lento perché sta andando nella sabbia.

15:12.510 --> 15:14.820
E in questo momento sta cercando di scappare.

15:16.310 --> 15:23.030
E così saprai cosa faremo disegneremo alcune strade e disegneremo alcune strade dall'aeroporto al centro

15:23.030 --> 15:28.490
e noi addestreremo l'auto per rimanere sulla strada ed evitare gli ostacoli.

15:28.490 --> 15:28.830
Tutto ok.

15:28.850 --> 15:35.690
E come puoi vedere c'è il pulsante per cancellare la sabbia c'è il pulsante salva per

15:35.690 --> 15:37.230
salvare il cervello dell'auto.

15:37.310 --> 15:43.640
E in realtà c'è questa curva fondamentale che abbiamo detto di quella sicurezza che salva il tuo modello in

15:43.640 --> 15:50.270
realtà il cervello della tua auto e poi puoi sapere quando ti lasci raffreddare o spegnere il computer e vuoi

15:50.270 --> 15:51.680
tornare ad esso nuovamente.

15:51.920 --> 15:59.290
Puoi usare il pulsante di caricamento per caricare la tua modalità che carica il cervello e che otterrà

15:59.360 --> 16:01.760
i treni AI della tua auto.

16:01.820 --> 16:06.030
Va bene così ora non vedo l'ora di iniziare a fare l'intelligenza artificiale.

16:06.080 --> 16:07.450
Questo sarà molto divertente.

16:07.490 --> 16:13.910
Creeremo la nostra rete neurale e puniremo l'auto non appena farà ciò che vogliamo.

16:14.120 --> 16:16.290
Quindi facciamolo dal prossimo tutorial.

16:16.400 --> 16:18.140
E fino ad allora godere di a.
