WEBVTT

00:00.420 --> 00:03.950
Bună ziua și bun venit din nou la mașina noastră auto-conducere Maggio.

00:03.960 --> 00:10.200
Deci, într-o toiletă, voi explica mediul în care vom implementa inteligența noastră artificială și care va conține Desigur mașina

00:10.410 --> 00:16.500
care se va antrena să se conducă și să evite obstacolele și pe care va trasa unele drumuri

00:16.500 --> 00:20.950
și câteva blocuri pentru mașinile noastre pentru a naviga în jurul lor.

00:21.210 --> 00:28.170
Așa că vom construi mai târziu această inteligență artificială pentru a pregăti această mașină pentru a conduce pe drumul pe care îl cunoașteți

00:28.170 --> 00:33.830
fără a depăși limitele și pentru a evita unele obstacole care se vor pune în interiorul drumului.

00:34.140 --> 00:35.870
Deci, aceasta este o provocare destul de interesantă.

00:35.910 --> 00:42.000
Și, de fapt, există două fișiere separate, după cum puteți vedea că există apex și păsări care sunt

00:42.000 --> 00:47.090
inteligență artificială care vor face tot instruirea pentru a antrena mașina cum să vândă unitatea.

00:47.280 --> 00:52.080
Și avem o hartă pe care am descoperit-o că este codul care face acest mediu.

00:52.110 --> 00:57.090
Deci, aici este codul care are de fapt 200 de linii de cod un pic mai mult.

00:57.090 --> 01:00.460
Deci acest cod nu este în mod obișnuit legat de AI.

01:00.510 --> 01:03.380
Este doar un cod pentru a face ca mediul să facă harta.

01:03.420 --> 01:08.430
Deci voi trece prin fiecare secțiune unul câte unul pentru a explica, dar nu vom implementa

01:08.430 --> 01:13.610
această linie de cod pe linie de la zero pentru că vrem să ne concentrăm asupra inteligenței artificiale.

01:13.740 --> 01:17.160
Dar să trecem prin secțiunile câte una pentru a înțelege ce se întâmplă.

01:17.370 --> 01:22.020
Deci, mai întâi importăm bibliotecile centrale pentru orice cod.

01:22.110 --> 01:28.770
Avem nevoie de niște biblioteci pentru a îndeplini o sarcină mai eficientă decât importăm toate pachetele cravate.

01:28.890 --> 01:35.140
Deci, asta nu e foarte important, pentru că toate acestea sunt specifice pentru Cavey pe care o folosim pentru a face harta.

01:35.190 --> 01:41.010
Și astfel importăm o mulțime de clase și obiecte pentru a putea face această hartă și pentru a adăuga niște

01:41.010 --> 01:42.210
instrumente în hartă.

01:42.210 --> 01:44.420
În regulă, această linie este importantă.

01:44.430 --> 01:53.130
Această linie este legată de faptul că, în esență, aici ne importăm creierul creierul mașinii, care va fi un alt jet al acestui

01:53.220 --> 01:57.760
lucru pe care l-ați făcut în clasă și pe profesorul din clasă.

01:57.820 --> 02:00.570
Este inteligența noastră artificială în sine.

02:00.570 --> 02:04.680
Veți vedea că vom implementa dequeue-ul în clasă în următoarele tutoriale.

02:04.680 --> 02:09.650
Și cum ați fi ghicit instanța dequeue pentru rețelele profunde Q.

02:09.650 --> 02:15.450
Așa că vom implementa o rețea de învățare deșartă și, odată ce este gata,

02:15.540 --> 02:21.910
o vom importa aici cu această linie de la AI și ochii desigur sunt un fișier python.

02:21.990 --> 02:22.310
In regula.

02:22.320 --> 02:24.450
Deci, nu pot să aștept să pună în aplicare acest lucru.

02:24.450 --> 02:29.520
Aceasta va fi o călătorie destul de mare, dar veți vedea că acest lucru va fi foarte

02:29.520 --> 02:33.200
interesant, deoarece datorită mașinii mele, mașina va fi capabilă să se conducă.

02:33.270 --> 02:33.880
In regula.

02:33.880 --> 02:39.060
Și acum, înainte de a trece la secțiunile următoare, trebuie să explicăm cum vom pregăti această mașină.

02:39.060 --> 02:43.880
Nu voi explica acum rețeaua neurală, dar voi explica ideea că putem

02:43.920 --> 02:48.080
pregăti mașina să se conducă și să evite obstacolele.

02:48.360 --> 02:54.130
Deci știi în viața reală dacă vrei să antrenezi o mașină reală pentru a evita niște ziduri sau obstacole.

02:54.390 --> 02:55.580
Ei bine ce ai face tu.

02:55.830 --> 03:01.130
Cu siguranță nu veți lua ziduri reale sau obstacole mari și să vă distrugeți mașina.

03:01.200 --> 03:02.710
Asta ar costa mulți bani.

03:02.850 --> 03:10.170
În schimb, o idee mai inteligentă ar fi să-ți pedepsești mașina nu când sparge un zid sau un obstacol,

03:10.410 --> 03:12.690
ci când merge pe nisip.

03:12.810 --> 03:14.220
Deci e ca și cum ai avea un câmp.

03:14.220 --> 03:19.680
Acest câmp are câteva drumuri pe care trebuie să rămână mașina, iar drumurile sunt delimitate de nisip.

03:19.860 --> 03:25.500
Și de fiecare dată când mașina se îndreaptă spre centru, se pare că se întâmplă într-un obstacol, pentru că odată

03:25.500 --> 03:31.050
ce mașina merge în nisip, va fi încetinită și ne vom asigura că mașina este penalizată este pedepsită pentru

03:31.050 --> 03:31.630
asta.

03:31.860 --> 03:35.200
Și acesta este un punct esențial al inteligenței artificiale.

03:35.220 --> 03:40.210
Cuvântul rău vine ori de câte ori mașina merge într-un anumit sens și este încetinită.

03:40.230 --> 03:40.770
In regula.

03:40.770 --> 03:45.160
Prin urmare, aici introduc ultimul text și de aceea.

03:45.300 --> 03:50.650
Care sunt coordonatele ultimului punct din memorie atunci când atragem un miros pe hartă.

03:50.760 --> 03:51.110
In regula.

03:51.120 --> 03:57.720
Și atunci obținem inteligența artificială pe care noi o numim creier și care conține rețeaua noastră neuronală și o

03:57.900 --> 04:03.020
vom numi creier, pentru că acesta este de fapt creierul mașinii și care conține rețeaua

04:03.030 --> 04:03.920
noastră Noodle.

04:04.350 --> 04:04.730
In regula.

04:04.770 --> 04:10.200
Deci, în această linie de cod, după cum puteți vedea, creez obiecte la profesor în clasă.

04:10.230 --> 04:17.000
Va reamintesc ca clasele si obiectele sunt doar obiectul lui Brenna care dezumanizeaza clasa si 5:

04:17.010 --> 04:19.660
3 si 0. 9 sunt intrările clasei.

04:19.680 --> 04:26.880
Deci, foarte simplu, cinci corespund statelor care sunt vectori codificați de cinci dimensiuni, vom vedea ce descriu

04:26.880 --> 04:31.710
perfect ceea ce se întâmplă în mediul înconjurător pe hartă.

04:31.830 --> 04:38.820
Apoi trei sunt numarul de actiuni acolo vor fi trei actiuni posibile du-te la stanga mergeti drept sau

04:39.330 --> 04:44.190
du-te la dreapta si 0. 9 este din nou un parametru în algoritmul de învățare deces.

04:44.220 --> 04:46.900
În regulă și apoi avem acțiunea prin rotație.

04:46.980 --> 04:50.910
Deci, acțiunea spre rotație este un vector de trei elemente.

04:50.910 --> 04:53.290
020 și minus 20.

04:53.300 --> 05:01.820
Și așa trebuie să facem acest lucru deoarece acțiunile sunt codificate de trei numere 0 1 și 2 și care corespund

05:01.820 --> 05:04.700
indiciilor acestei acțiuni doi vectori de rotație.

05:04.710 --> 05:11.160
De exemplu, dacă acțiunea selectată la momentul t este zero.

05:11.270 --> 05:18.990
Ei bine, zero corespunde indexului acestei acțiuni doi vectori de rotație și valoarea indexului 0 este zero.

05:19.150 --> 05:24.490
Și, prin urmare, vom merge direct atunci când acțiunea selectată este 1.

05:24.770 --> 05:30.380
Ei bine, unul corespunde indexului acestei acțiuni două vectori adiționali și valoarea acestui vector

05:30.380 --> 05:32.810
care are următoarea este de 20.

05:32.810 --> 05:38.580
Deci, 20 corespunde unei rotații de 20 de grade și asta înseamnă că codul va merge

05:39.260 --> 05:46.500
la 20 de grade spre dreapta și apoi dacă acțiunea selectată va fi bine pentru a corespunde indexului acestui vector de rotație.

05:46.700 --> 05:52.570
Și, prin urmare, codul va face o rotație de minus 20 grade și, prin urmare, va merge în stânga.

05:52.580 --> 06:00.200
În regulă, atunci introducem voievodul rămas de la stânga, pentru că în fiecare etapă se va obține ultimul cuvânt.

06:00.200 --> 06:04.970
Deci, amintiți-vă dacă cardul nu merge într-un anumit sens, atunci recompensa va fi pozitivă.

06:05.180 --> 06:11.780
Și dacă codul merge într-un anumit sens bine, acesta va primi recompensa proastă și de fiecare dată când

06:11.780 --> 06:15.270
această variabilă va conține această recompensă că primește H20.

06:15.500 --> 06:20.760
Apoi inițializăm scorurile care reprezintă un vector care va conține recompensa.

06:20.780 --> 06:22.780
Nu toți, ci doar recompensa.

06:22.800 --> 06:28.340
Într-o fereastră alunecătoare, pentru a ști că putem face o curbă a mijlocului de alunecare a recompenselor în

06:28.340 --> 06:29.440
raport cu timpul.

06:29.450 --> 06:34.520
În regulă, în această secțiune de cod, inițializăm harta, așa că inițializăm.

06:34.520 --> 06:36.170
De exemplu, variabila menționată.

06:36.170 --> 06:37.220
Deci, asta e important.

06:37.220 --> 06:42.710
A doua variabilă va fi de fapt o matrice în care celulele vor fi pixelii hărții,

06:43.250 --> 06:45.880
iar în fiecare celulă vom avea 1.

06:45.980 --> 06:52.120
Dacă există un sens în zero, dacă nu există niciun centru la început, nu vom atrage nimic.

06:52.160 --> 06:57.840
Deci, nu va exista nici un sens și deci toate celulele matricei centrale vor avea zero.

06:57.860 --> 07:02.990
Vor exista zerouri pretutindeni și imediat ce vom trage un sens în timp ce

07:02.990 --> 07:10.290
celulele pe care le tragem sensul vor primi unul și vom inițializa cursa cu toate zerourile trimise aici, egale și zerouri.

07:10.370 --> 07:13.510
Apoi avem acest lucru important care este scopul.

07:13.520 --> 07:17.630
Deci, obiectivul este un punct pe harta care va instrui masina sa ajunga.

07:17.630 --> 07:19.850
Deci este ca o destinație.

07:19.850 --> 07:21.460
Deci, ce va fi acest obiectiv.

07:21.560 --> 07:27.380
Ei bine, acesta va fi colțul din stânga sus al hărții pentru a antrena trenul pentru a merge în colțul din stânga

07:27.380 --> 07:28.480
sus al hărții.

07:28.550 --> 07:33.290
Apoi, odată ce ajunge la colțul din stânga sus al hărții, atunci vom trece în colțul din dreapta

07:33.290 --> 07:36.590
jos al hărții, astfel încât să ne putem imagina următorul scenariu.

07:36.590 --> 07:42.620
Colțul din stânga sus al hărții este aeroportul unui oraș, iar colțul din dreapta jos al

07:42.620 --> 07:44.320
hărții este centrul orașului.

07:44.570 --> 07:50.180
Și vom pregăti un taxi sau Uber pentru a face unele călătorii rotunde între aeroport și centrul orașului.

07:50.210 --> 07:55.610
Și, bineînțeles, vom face sarcina dificilă pentru acest taxi prin trasarea unor drumuri mai dificile și mai dificile

07:55.700 --> 08:01.190
și adăugând tot mai multe obstacole pe stradă pentru a vedea dacă taxiul încă reușește să meargă de la

08:01.190 --> 08:02.760
aeroport la centrul orașului.

08:02.990 --> 08:04.170
Deci, asta va fi distractiv.

08:04.190 --> 08:11.030
Și de aceea de aici aș stabili coordonatele primului gol care este aeroportul din stânga

08:11.030 --> 08:12.640
sus a ecranului.

08:12.830 --> 08:20.000
Deci, harta va fi ca un pătrat ca acesta și coordonatele originii care sunt coordonatele

08:20.090 --> 08:22.090
00 sunt chiar aici.

08:22.340 --> 08:25.250
Și mai mare este distanța de aici.

08:25.310 --> 08:32.640
Deci, coordonatele 20 și Najah minus 20 vor fi așadar chiar aici în colțul din stânga sus al hărții.

08:32.790 --> 08:35.650
Și de ce am ales 20 și nu zero.

08:35.850 --> 08:40.300
Ei bine, asta pentru că vrem să antrenăm mașina să nu se grăbească în pereți.

08:40.320 --> 08:45.450
Știți că vrem să trenăm și în pereți și, prin urmare, nu este zero, deoarece nu vrem ca

08:45.450 --> 08:48.120
mașina să atingă locul în care vrem să atingem.

08:48.180 --> 08:53.910
Așa că trebuie să o punem aici și apoi introduc doar ultima variabilă de distanță care doar dă

08:53.910 --> 08:58.200
distanța curentă de la mașină la drum și că inițializez la zero.

08:59.020 --> 08:59.470
In regula.

08:59.480 --> 09:02.220
Și acum este momentul să facem mașina și jocul.

09:02.370 --> 09:06.650
Așa că vom face două clase o clasă pentru masă și o clasă pentru joc.

09:06.850 --> 09:10.850
Și în interiorul acestor clase se vor face deja legături cu AI.

09:11.170 --> 09:13.170
Vom face asta în următoarea Statoil.

09:13.180 --> 09:15.000
Și până atunci bucura-te.
