WEBVTT

00:00.420 --> 00:03.950
Ciao e benvenuto ancora alla nostra auto a guida autonoma Maggio.

00:03.960 --> 00:10.200
Quindi, in un toile, spiegherò l'ambiente su cui implementeremo la nostra intelligenza artificiale e che conterrà naturalmente l'auto

00:10.410 --> 00:16.500
che si allenerà per guidare se stessa e per evitare gli ostacoli e sulla quale disegnerà alcune

00:16.500 --> 00:20.950
strade e alcuni blocchi per le nostre macchine per navigare intorno a loro.

00:21.210 --> 00:28.170
Quindi costruiremo più tardi questa intelligenza artificiale per addestrare questa macchina a guidare sulla strada che

00:28.170 --> 00:33.830
conosci senza oltrepassare i limiti ed evitare alcuni ostacoli che metteranno sulla strada.

00:34.140 --> 00:35.870
Quindi questa è una sfida piuttosto eccitante.

00:35.910 --> 00:42.000
e l'uccello che sono intelligenza artificiale che farà tutto l'addestramento per addestrare l'auto a vendere unità.

00:42.000 --> 00:47.090
E in realtà ci sono due file separati, come puoi vedere c'è l'apice

00:47.280 --> 00:52.080
E abbiamo una mappa che abbiamo trovato che è il codice che rende tutto questo ambiente.

00:52.110 --> 00:57.090
Quindi ecco quel codice che è in realtà 200 linee di codice un po 'di più.

00:57.090 --> 01:00.460
Quindi questo codice non è in genere correlato all'IA.

01:00.510 --> 01:03.380
È solo un codice per fare in modo che l'ambiente faccia la mappa.

01:03.420 --> 01:08.430
Quindi analizzerò ognuna delle sezioni una per una per spiegare, ma non

01:08.430 --> 01:13.610
implementeremo questo codice riga per riga da zero perché vogliamo concentrarci sull'intelligenza artificiale.

01:13.740 --> 01:17.160
Ma esaminiamo ancora le sezioni una per una per capire cosa sta succedendo.

01:17.370 --> 01:22.020
Quindi, per prima cosa importiamo le librerie centrali che sono per qualsiasi codice.

01:22.110 --> 01:28.770
Abbiamo bisogno di alcune librerie per eseguire alcune attività in modo più efficiente di quanto importiamo tutti i pacchetti di cavy.

01:28.890 --> 01:35.140
Quindi non è molto importante perché questo è tutto specifico per Cavey, stiamo usando la cavy per fare la mappa.

01:35.190 --> 01:41.010
Quindi stiamo importando molte classi e oggetti per poter creare questa mappa e aggiungere alcuni

01:41.010 --> 01:42.210
strumenti nella mappa.

01:42.210 --> 01:44.420
Va bene allora questa linea è importante.

01:44.430 --> 01:53.130
Questa linea è correlata perché fondamentalmente qui è dove importiamo il nostro cervello al cervello dell'auto che sarà un

01:53.220 --> 01:57.760
altro jet di questo in classe e l'insegnante in classe.

01:57.820 --> 02:00.570
È la nostra intelligenza artificiale stessa.

02:00.570 --> 02:04.680
Vedrai che implementeremo il dequeue in classe nei seguenti tutorial.

02:04.680 --> 02:09.650
E come potresti aver indovinato l'istanza di dequeue per reti Q profonde.

02:09.650 --> 02:15.450
Quindi implementeremo una rete di apprendimento della dequeue e quindi, una volta pronta,

02:15.540 --> 02:21.910
la importeremo qui con questa linea dall'IA e ovviamente gli occhi sono un file python.

02:21.990 --> 02:22.310
Tutto ok.

02:22.320 --> 02:24.450
Quindi non vedo l'ora di implementarlo.

02:24.450 --> 02:29.520
eccitante perché grazie alla I la macchina sarà in grado di guidare da sola.

02:29.520 --> 02:33.200
Questo sarà un bel viaggio ma vedrai che sarà molto

02:33.270 --> 02:33.880
Tutto ok.

02:33.880 --> 02:39.060
E ora, prima di passare alle prossime sezioni, dobbiamo spiegare come addestreremo questa macchina.

02:39.060 --> 02:43.880
Non ho intenzione di spiegare la rete neurale in questo momento, ma ho intenzione di spiegare

02:43.920 --> 02:48.080
l'idea di come possiamo addestrare l'auto a guidare se stessa ed evitare gli ostacoli.

02:48.360 --> 02:54.130
Così sai nella vita reale se vuoi allenare una macchina reale per evitare alcuni muri o alcuni ostacoli.

02:54.390 --> 02:55.580
Bene cosa faresti.

02:55.830 --> 03:01.130
Sicuramente non prenderei muri veri o veri ostacoli e distruggere la tua auto su di loro.

03:01.200 --> 03:02.710
Questo ti costerebbe un sacco di soldi.

03:02.850 --> 03:10.170
Invece un'idea più intelligente sarebbe quella di punire la tua auto non quando colpisce un muro o un

03:10.410 --> 03:12.690
ostacolo, ma quando va sulla sabbia.

03:12.810 --> 03:14.220
Quindi è come se avessi un campo.

03:14.220 --> 03:19.680
Questo campo ha alcune strade su cui l'auto deve rimanere e le strade sono delimitate da un po 'di sabbia.

03:19.860 --> 03:25.500
E ogni volta che la macchina va al centro è come se stesse andando a un ostacolo perché una

03:25.500 --> 03:31.050
volta che la macchina va in sabbia sarà rallentata e faremo in modo che l'auto sia penalizzata per questo

03:31.050 --> 03:31.630
è punito.

03:31.860 --> 03:35.200
E questo è un punto essenziale dell'intelligenza artificiale.

03:35.220 --> 03:40.210
La parolaccia arriva ogni volta che la macchina va in un certo senso e viene rallentata.

03:40.230 --> 03:40.770
Tutto ok.

03:40.770 --> 03:45.160
E quindi qui sto introducendo l'ultimo testo ed è per questo.

03:45.300 --> 03:50.650
Quali sono le coordinate dell'ultimo punto in memoria quando disegniamo un profumo sulla mappa.

03:50.760 --> 03:51.110
Tutto ok.

03:51.120 --> 03:57.720
la nostra intelligenza artificiale che chiamiamo cervello e che contiene la nostra rete neurale e la chiameremo cervello perché questo

03:57.900 --> 04:03.020
è in realtà il cervello della macchina e che contiene la nostra rete di noodle.

04:03.030 --> 04:03.920
E poi otteniamo

04:04.350 --> 04:04.730
Tutto ok.

04:04.770 --> 04:10.200
Quindi, in questa riga di codice, come puoi vedere, sto creando oggetti all'insegnante in classe.

04:10.230 --> 04:17.000
Ti ricorderò che classi e oggetti sono solo l'oggetto di Brenna disumanizza la classe e 5:

04:17.010 --> 04:19.660
3 e 0. 9 sono gli input della classe.

04:19.680 --> 04:26.880
Quindi questo è molto semplice: cinque corrispondono agli stati che sono vettori codificati di cinque dimensioni, vedremo

04:26.880 --> 04:31.710
cosa stanno descrivendo perfettamente ciò che sta accadendo nell'ambiente sulla mappa.

04:31.830 --> 04:38.820
azioni che ci saranno tre azioni possibili andate a sinistra andate dritte o andate a destra e 0.

04:39.330 --> 04:44.190
Poi tre è il numero di 9 è di nuovo un parametro nell'algoritmo di apprendimento della dequeue.

04:44.220 --> 04:46.900
Va bene e poi abbiamo l'azione attraverso la rotazione.

04:46.980 --> 04:50.910
Quindi l'azione per la rotazione è un vettore di tre elementi.

04:50.910 --> 04:53.290
020 e meno 20.

04:53.300 --> 05:01.820
E quindi dobbiamo farlo perché le azioni sono codificate da tre numeri 0 1 e 2 e che corrisponde agli indici di

05:01.820 --> 05:04.700
questa azione a due vettori di rotazione.

05:04.710 --> 05:11.160
Ad esempio, se l'azione selezionata al tempo t è zero.

05:11.270 --> 05:18.990
Bene zero corrisponde all'indice di questa azione a due rotazioni e il valore dell'indice 0 è zero.

05:19.150 --> 05:24.490
E quindi andremo subito se l'azione selezionata è 1.

05:24.770 --> 05:30.380
Bene si corrisponde all'indice di questa azione due vettori aggiuntivi e il valore di questo vettore

05:30.380 --> 05:32.810
che ne ha uno successivo è 20.

05:32.810 --> 05:38.580
Quindi 20 corrisponde a una rotazione di 20 gradi e ciò significa che il codice andrà a

05:39.260 --> 05:46.500
20 gradi a destra e quindi se l'azione selezionata è quella di corrispondere all'indice di questa azione al vettore di rotazione.

05:46.700 --> 05:52.570
E quindi il codice farà una rotazione di meno 20 gradi e quindi andrà a sinistra.

05:52.580 --> 06:00.200
Bene, allora introduciamo il Voivode per la ricompensa di sinistra, perché in ogni fase otterremo l'ultima parola.

06:00.200 --> 06:04.970
Quindi ricorda se la carta non va in un certo senso, allora la ricompensa sarà positiva.

06:05.180 --> 06:11.780
E se il codice va avanti in un certo senso, otterrà la cattiva ricompensa e ogni volta

06:11.780 --> 06:15.270
che questa variabile conterrà questa ricompensa che ottiene H20.

06:15.500 --> 06:20.760
E poi inizializziamo i punteggi che è un vettore che conterrà la ricompensa.

06:20.780 --> 06:22.780
Non tutti, ma la ricompensa.

06:22.800 --> 06:28.340
Su una finestra scorrevole in modo che tu sappia che possiamo fare una curva dello squat medio la

06:28.340 --> 06:29.440
ricompensa rispetto al tempo.

06:29.450 --> 06:34.520
Bene, in questa sezione di codice inizializziamo la mappa, quindi inizializziamo.

06:34.520 --> 06:36.170
Ad esempio la suddetta variabile.

06:36.170 --> 06:37.220
Quindi è importante

06:37.220 --> 06:42.710
La seconda variabile sarà in realtà una matrice in cui le celle saranno i pixel della

06:43.250 --> 06:45.880
mappa e in ogni cella avremo un 1.

06:45.980 --> 06:52.120
Se c'è un senso in uno zero se non c'è un centro all'inizio non disegneremo nulla.

06:52.160 --> 06:57.840
Quindi non ci sarà alcun senso e quindi tutte le celle dell'array centrale avranno zero.

06:57.860 --> 07:02.990
Ci saranno zeri dappertutto e non appena avremo un po 'di senso mentre le celle su

07:02.990 --> 07:10.290
cui disegniamo il senso ne prenderanno una e inizializzeremo la gara con tutti gli zeri che qui hanno inviato uguali e zeri.

07:10.370 --> 07:13.510
Quindi abbiamo questa cosa importante che è l'obiettivo.

07:13.520 --> 07:17.630
Quindi l'obiettivo è un punto nella mappa che addestrerà l'auto a raggiungere.

07:17.630 --> 07:19.850
Quindi è come una destinazione.

07:19.850 --> 07:21.460
Quindi, qual è questo obiettivo sarà.

07:21.560 --> 07:27.380
Bene, questo sarà l'angolo in alto a sinistra della mappa per addestrare l'auto ad andare nell'angolo in alto a

07:27.380 --> 07:28.480
sinistra della mappa.

07:28.550 --> 07:33.290
E poi, una volta raggiunto l'angolo in alto a sinistra della mappa, avremo tendenza ad andare nell'angolo in

07:33.290 --> 07:36.590
basso a destra della mappa in modo da poter immaginare il seguente scenario.

07:36.590 --> 07:42.620
della mappa è l'aeroporto di una città e l'angolo in basso a destra della mappa è il centro della città.

07:42.620 --> 07:44.320
L'angolo in alto a sinistra

07:44.570 --> 07:50.180
E noi addestreremo un taxi o Uber per fare alcuni viaggi di andata e ritorno tra l'aeroporto e il centro città.

07:50.210 --> 07:55.610
E naturalmente renderemo il compito difficile a questo taxi disegnando strade sempre più difficili

07:55.700 --> 08:01.190
e aggiungendo sempre più ostacoli sulla strada per vedere se il taxi può ancora

08:01.190 --> 08:02.760
arrivare dall'aeroporto al centro.

08:02.990 --> 08:04.170
Quindi sarà divertente.

08:04.190 --> 08:11.030
Ed ecco perché sto impostando le coordinate del primo obiettivo che è l'aeroporto che si trova nella parte

08:11.030 --> 08:12.640
superiore sinistra dello schermo.

08:12.830 --> 08:20.000
Quindi la mappa sarà come un quadrato come questo e le coordinate dell'origine che sono le

08:20.090 --> 08:22.090
coordinate 00 sono proprio qui.

08:22.340 --> 08:25.250
E poi più grande è questa distanza qui.

08:25.310 --> 08:32.640
Quindi le coordinate 20 e Najah meno 20 saranno quindi proprio qui nell'angolo in alto a sinistra della mappa.

08:32.790 --> 08:35.650
E perché ho scelto 20 e non zero.

08:35.850 --> 08:40.300
Beh, questo è perché vogliamo addestrare l'auto a non precipitarsi contro le mura.

08:40.320 --> 08:45.450
Sai che vogliamo allenarci anche nei muri e quindi non è zero perché non

08:45.450 --> 08:48.120
vogliamo che l'auto tocchi dove vogliamo toccare.

08:48.180 --> 08:53.910
Quindi dobbiamo metterlo qui e poi sto solo introducendo l'ultima variabile di distanza che dà solo la

08:53.910 --> 08:58.200
distanza corrente dalla macchina alla strada e che sto inizializzando a zero.

08:59.020 --> 08:59.470
Tutto ok.

08:59.480 --> 09:02.220
E ora è tempo di fare la macchina e il gioco.

09:02.370 --> 09:06.650
Quindi faremo due classi una classe per l'auto e una classe per il gioco.

09:06.850 --> 09:10.850
E all'interno di queste classi si potranno già fare alcuni collegamenti con la nostra IA.

09:11.170 --> 09:13.170
Quindi lo faremo nel prossimo Statoil.

09:13.180 --> 09:15.000
E fino ad allora mi godo I.
