WEBVTT

00:00.450 --> 00:05.700
Bună ziua și bun venit la Statoil și să vorbim că am inițializat harta.

00:05.850 --> 00:12.090
Și acum timpul pentru lucrurile interesante pe care le creăm și facem asta cu o clasă de curs.

00:12.090 --> 00:18.660
Veți vedea că clasa este foarte practică pentru a crea unele lucruri care au o mulțime de proprietăți, deoarece

00:18.660 --> 00:25.300
după cum puteți vedea nu doar găsirea unor variabile din mașina mea, ci și unele funcții care desigur sunt

00:25.300 --> 00:30.270
funcția care va face mașina să se mute la la stânga sau la dreapta.

00:30.720 --> 00:35.970
Așadar avem câteva variabile care sunt importante pentru a descrie mediul

00:35.970 --> 00:42.590
în care avem, de exemplu, unghiul care este unghiul dintre axa x și axa direcției mașinii.

00:42.630 --> 00:50.040
Apoi avem rotația care este ultima sa rotație pe care o reamintim este fie 0 grade 20 grade sau minus

00:50.040 --> 00:51.550
20 de grade.

00:51.570 --> 00:57.690
Apoi avem viteza coordonata x a vectorului de viteza si coordonatele y ale vectorului de

00:57.690 --> 00:58.320
viteza.

00:58.470 --> 01:05.740
Și apoi vectorul de coordonate viteza x și viteza Y atunci avem senzorii și semnalele.

01:05.830 --> 01:12.280
Și este foarte important faptul că apelul pe care îl facem va avea trei senzori senzori un senzor

01:12.310 --> 01:18.240
doi și senzori trei senzori unul va detecta dacă există vreun sens în fața mașinii.

01:18.420 --> 01:25.070
Apoi senzorul 2 este senzorul care va detecta dacă există sens în partea stângă a autovehiculului, iar senzorii 3

01:25.080 --> 01:29.640
sunt senzorii care vor detecta dacă există sens în partea dreaptă a mașinii.

01:29.950 --> 01:37.080
Și apoi de la acești trei senzori primim semnalele care semnalele primite de fiecare senzor.

01:37.290 --> 01:43.320
Deci semnalul este semnalul primit de semnalul senzorului un semnal primit de senzorul 2 și semnalul

01:43.330 --> 01:46.370
3 este semnalul primit de senzorii 3.

01:46.380 --> 01:47.700
Și cum funcționează?

01:47.770 --> 01:54.310
Semnalul 1 este densitatea trimiterii în jurul senzorului un semnal pentru a fi densitatea centrului în jurul senzorului pentru a

01:54.820 --> 02:00.560
semnala trei este densitatea trimiterii în jurul sensibilității și cum putem calcula această densitate de nisip.

02:00.670 --> 02:01.690
Ei bine, este foarte simplu.

02:01.700 --> 02:06.110
Luăm niște pătrate mari în jurul fiecărui senzor.

02:06.130 --> 02:12.490
Acestea sunt de fapt pătrate de 200 la 200, iar pentru fiecare dintre pătrate împărțim numărul celor din pătrat cu

02:12.490 --> 02:17.840
numărul total de celule din pătrat care este de 22 și 20 este egal cu 400.

02:18.070 --> 02:22.530
Și asta ne dă densitatea nisipului, deoarece acestea corespund centrului.

02:22.630 --> 02:27.790
Facem acest lucru pentru fiecare senzor și asta ne dă densitatea de nisip în jurul fiecărui senzor.

02:27.790 --> 02:29.550
Acestea sunt semnalele.

02:29.650 --> 02:35.450
În regulă, acum avem totul pentru a detecta senzorul și apoi avem funcția de mutare.

02:35.450 --> 02:40.660
Și, bineînțeles, funcția de mișcare este ceea ce va permite ca miezul să meargă spre stânga sau să

02:40.660 --> 02:41.530
meargă spre dreapta.

02:41.920 --> 02:43.360
Să trecem prin asta repede.

02:43.360 --> 02:50.410
Avem aici actualizarea pozitiei masinii cu ultima ei pozitie care este trecerea de aici si

02:50.740 --> 02:52.400
vectorul de viteza.

02:52.540 --> 02:58.720
Deci, datorită vectorului de viteză, poziția va fi actualizată în direcția vectorului de viteză.

02:58.930 --> 03:05.320
Apoi vom obține rotația pe care o vom obține mai departe în codul de aici.

03:05.320 --> 03:08.040
Rotația este egală cu acțiunea de rotație.

03:08.040 --> 03:11.400
El va selecta acțiunea și apoi va intra în rotație.

03:11.410 --> 03:15.580
Așa că această auto-protecție este rotativă aici.

03:15.610 --> 03:21.130
Este această rotație pe care o vedem cum trebuie să rotim mașina care merge spre stânga

03:21.130 --> 03:22.360
sau spre dreapta.

03:22.420 --> 03:28.510
Apoi, actualizăm unghiul pe care mi-l amintesc unghiul dintre axa x și axa

03:28.510 --> 03:29.560
direcției mașinii.

03:29.620 --> 03:35.350
Apoi, odată ce autovehiculul sa mutat, trebuie să actualizăm senzorii și semnalul, desigur, atunci când mașina

03:35.350 --> 03:41.380
sa rotit în timp ce senzorii s-au rotit și de aceea trebuie să le rotim prin

03:41.380 --> 03:45.500
utilizarea funcției de rotire și la care adăugăm noua poziție.

03:45.790 --> 03:48.950
Și de ce avem acest vector de 30 0.

03:49.090 --> 03:54.070
Ei bine, asta e doar pentru că 30 este distanța dintre mașină și senzor.

03:54.130 --> 03:59.080
Știți este distanța dintre mașină și ce detectează mașina.

03:59.230 --> 04:04.210
Și apoi odată ce senzorii sunt actualizați Ei bine, atunci este timpul să actualizăm semnalele.

04:04.270 --> 04:07.110
Și așa că facem exact ceea ce ți-am explicat semnalele computerului.

04:07.240 --> 04:13.780
Dăm coordonatele x ale senzorului nostru, apoi luăm toate celulele de la Manston la plus 10, apoi facem

04:13.780 --> 04:19.070
același lucru pentru coordonatele y, luând toate celulele de la Madison în plus 10.

04:19.090 --> 04:27.040
Așa că, prin urmare, ajungem la pătrat de 20 de 20 de pixeli care înconjoară senzorul și în interiorul pătratului avem

04:27.130 --> 04:28.280
niște vechi.

04:28.300 --> 04:35.170
Deci, practic, cu unele dintre celule, deoarece celulele conțin 0 sau 1 și deoarece într-un 20 20 pătrat există 20

04:35.170 --> 04:38.060
de ori 20 echivalează cu 400 de celule.

04:38.200 --> 04:45.520
Ei bine, am împărțit-o cu 400 pentru a obține densitatea celor din interiorul pătratului și astfel obținem semnalul densității centrilor în

04:45.730 --> 04:52.090
jurul senzorului și facem același lucru pentru al doilea senzor și cel de-al treilea senzor pentru a obține

04:52.360 --> 04:54.870
al doilea semnal și al treilea semnal.

04:55.060 --> 04:55.340
O.K.

04:55.360 --> 05:00.220
Deci asta înseamnă să iei senzorul și apoi aceste trei linii de cod aici sunt foarte importante.

05:00.220 --> 05:05.710
Este altceva că vrem să vrem să ajungem la mașina noastră când ajunge la una din marginile

05:05.710 --> 05:06.290
hărții.

05:06.290 --> 05:11.830
Știți că nu vrem ca mașina să se grăbească în niște pereți și, prin urmare, vrem să o penalizăm pentru ao

05:11.830 --> 05:16.380
pedepsi atunci când se apropie prea mult de Wall și, prin urmare, asta facem noi aici.

05:16.630 --> 05:24.970
Dacă primul senzor este mai mare decât lungimea minus 10, care este mai mare decât aici, deoarece această distanță este mai lungă aici, deci

05:24.970 --> 05:27.580
mai mult minus 10 este chiar aici.

05:27.580 --> 05:33.550
Deci, dacă un senzor acționează mai mult decât mai mult, Manison se referă la toate punctele.

05:33.550 --> 05:40.930
Aceasta este dacă autovehiculul se apropie de marginea dreaptă a hărții sau dacă senzorul celular acționează mai puțin de

05:40.950 --> 05:48.250
10, chiar dacă mașina se apropie de marginea din stânga a hărții sau dacă senzorul Y este mai mare

05:48.250 --> 05:55.870
decât cel mai mare minus 10 aceasta este marginea superioară a hărții și dacă autocenzura Y este mai mică decât

05:55.870 --> 05:58.670
10, adică marginea inferioară a hărții.

05:58.720 --> 06:06.370
Și astfel, dacă senzorul ajunge la oricare dintre aceste patru margini, bine vom pune semnalul semnalului senzorului

06:06.490 --> 06:08.760
când semnalul a trimis unul.

06:08.800 --> 06:10.290
Vom pune-o să fie una.

06:10.540 --> 06:11.610
Și ce înseamnă asta.

06:11.650 --> 06:15.390
Asta înseamnă un sunet complet, cum ar fi densitatea completă a nisipului.

06:15.580 --> 06:17.270
E ca și cel mai rău și ai putea obține.

06:17.330 --> 06:19.540
Există atât de multă sens că va opri mașina.

06:19.660 --> 06:24.480
Deci semnalul va fi unul și, prin urmare, mașina va primi o recompensă foarte rău.

06:24.490 --> 06:24.830
In regula.

06:24.820 --> 06:30.190
Și apoi facem același lucru și pentru semnal și semnalează trei din senzorul două cazuri trei.

06:30.410 --> 06:30.790
In regula.

06:30.800 --> 06:36.470
Și apoi vom crea clasa de joc, astfel încât aceasta este în principiu clasa de a crea jocul, deoarece

06:36.470 --> 06:40.720
până acum am creat doar masina și acum, desigur, trebuie să creăm harta.

06:40.820 --> 06:42.310
Trebuie să creăm jocul în sine.

06:42.410 --> 06:47.750
Deci nu vom juca jocul este AI-ul nostru care va juca jocul și jocul este de fapt pentru

06:47.750 --> 06:52.240
a evita obstacolele și pentru a merge de la aeroport la centrul orașului și viceversa.

06:52.520 --> 06:59.610
Deci, în această clasă de joc trebuie să creăm anumite obiecte ca mașina, atunci trebuie să definim funcția

06:59.630 --> 07:00.540
de actualizare.

07:00.590 --> 07:05.330
Aceasta este cea mai importantă și de fapt ne vom concentra pe asta chiar acum, pentru că

07:05.330 --> 07:12.250
asta este în această funcție de actualizare care va selecta acțiunea pe care mașina trebuie să o facă și de fiecare dată pentru a-și atinge scopul.

07:12.350 --> 07:16.880
Și această acțiune este exact rezultatul rețelei noastre neuronale.

07:16.880 --> 07:20.860
Noua voință care lucrează care va fi în centrul inteligenței noastre artificiale.

07:20.930 --> 07:27.550
Și astfel, această acțiune este returnată de creierul mașinii, care rămâne obiectul clasei umane pe care o

07:27.560 --> 07:29.780
vom face în fișierul AI.

07:29.930 --> 07:36.500
Și acest obiect are o metodă care se numește actualizare și ia ca ultimul cuvânt și

07:36.500 --> 07:37.590
ultimul semnal.

07:37.610 --> 07:43.250
Deci, ultimul cuvânt este, desigur, ultimul cuvânt atins de mașină, iar ultimul semnal este desigur ultimul

07:43.250 --> 07:50.480
semnal al celor trei senzori semnale unul de la un senzor un semnal doi de la senzor la semnalul trei de la

07:50.480 --> 07:51.240
senzorul 3.

07:51.440 --> 07:56.870
Dar apoi adaug doua alte intrari care sunt orientarea masinii in raport cu scopul.

07:56.900 --> 08:01.540
De exemplu, dacă mașina se îndreaptă spre țintă, atunci orientarea va fi egală cu zero.

08:01.730 --> 08:06.730
Dacă merge ușor spre dreapta, atunci orientarea va fi aproape de 45 de grade.

08:06.920 --> 08:11.820
Și dacă merge ușor spre stânga orientarea va fi aproape de minus 45 de grade.

08:11.900 --> 08:15.380
Deci, aceasta este forța de intrare a stărilor noastre de intrare.

08:15.410 --> 08:18.950
Și apoi există o lecție care este minus orientare.

08:19.010 --> 08:25.250
Deci, de obicei, intrările rețelei neuronale sunt independente. Nu există multicoliniaritate, dar nu contează dacă suntem,

08:25.250 --> 08:29.360
deoarece rețeaua neurală o va rezolva doar cu greutățile.

08:29.480 --> 08:35.450
Dar totuși observ că prin adăugarea acestei minus orientare bine, care permite mașinii de formare

08:35.450 --> 08:37.840
a mașinii pentru a stabiliza accelerația.

08:37.940 --> 08:43.460
Știți că facem acest lucru este că AI nu explorează mereu în aceeași direcție adăugând această

08:43.460 --> 08:44.390
orientare minus.

08:44.390 --> 08:48.680
Ne asigurăm că se explorează în ambele direcții spre dreapta sau spre stânga.

08:48.920 --> 08:55.780
Și astfel, cele trei semnale Plus orientarea și orientarea minus sunt cele cinci intrări ale vectorului nostru

08:55.810 --> 09:03.020
codificat care va intra în rețeaua că vectorul nostru de intrare care va intra în rețea și după

09:03.050 --> 09:09.560
ce va intra în rețea Ei bine, rețeaua returnează ieșirile care este acțiunea de jucat.

09:09.650 --> 09:15.290
Și de fiecare dată și ieșirea este returnată de această funcție de actualizare care conține rețeaua în

09:15.290 --> 09:20.450
sine și ieșirea rețelei și de aceea de aceea trebuie să introducem ultimul semnal care

09:20.450 --> 09:26.110
este starea de intrare și, de asemenea, ultimul cuvânt deoarece acțiunea de jucat și depinde de ultimul cuvânt.

09:26.950 --> 09:33.700
În regulă și apoi actualizăm scorul principal al cuvintelor pe care le actualizăm rotația pe care o folosim funcția de

09:33.700 --> 09:37.500
mutare pentru a roti mașina în funcție de acțiunea selectată.

09:37.510 --> 09:44.230
Luăm distanța de la mașină la drum și vom obține pozițiile mingii senzorilor o minge doi în ambele

09:44.230 --> 09:48.490
răspunsuri Rieker la bilele care vor reprezenta senzorii pe hartă.

09:48.530 --> 09:49.880
Veți vedea foarte repede.

09:50.550 --> 09:56.230
Și apoi aici partea aceea este foarte importantă, pentru că acolo vom penaliza mașina, dacă merge

09:56.230 --> 10:04.060
într-un anumit sens, pentru că după cum puteți vedea acest lucru înseamnă că dacă mașina este într-un anumit sens bine va fi încetinită.

10:04.150 --> 10:06.550
Deci, acolo ne-am reduce viteza.

10:06.590 --> 10:10.020
Știți că viteza lui este de obicei 6, după cum puteți vedea aici.

10:10.150 --> 10:14.410
Și dacă merge într-un anumit sens, va fi unul care va fi încetinit până la 1.

10:14.430 --> 10:17.810
Veți vedea cum va fi încetinită mașina odată ce va intra într-un anumit sens.

10:18.030 --> 10:19.090
Deci este încetinită.

10:19.210 --> 10:23.610
Și pe lângă aceasta primește o recompensă proastă, devine un minus pe care îl dorim.

10:23.920 --> 10:26.140
Și aceasta este de fapt cea mai mare recompensă pe care o puteți obține.

10:26.140 --> 10:32.100
Cea mai bună răsplată este una dintre cele mai grave pe care le spunem cu minusul și recompensa este între minus 1 și plus 1.

10:32.530 --> 10:33.450
Și apoi altfel.

10:33.570 --> 10:35.770
Și mașina nu este pe nisip.

10:35.980 --> 10:41.000
Păstrează viteza obișnuită a vitezei de sex și apoi adăugăm altceva.

10:41.080 --> 10:45.710
Dacă se apropie de obiectiv, atunci va primi o recompensă ușor pozitivă.

10:45.910 --> 10:53.410
Și dacă devine mai departe de obiectivul Ei bine, devine o recompensă ușor negativă minus 0. 2.

10:53.590 --> 10:54.830
Și apoi ultima.

10:54.830 --> 10:57.280
Condiții legate de recompensă.

10:57.470 --> 11:02.840
Ei bine, dacă mașina se apropie prea mult de unul dintre margini, așa cum am vorbit mai devreme.

11:02.910 --> 11:04.990
Amintiți-vă când am vorbit despre senzorul de combustibil.

11:05.220 --> 11:11.840
Dacă mașina se apropie prea mult de marginea din stânga a hărții, devine minus un singur cuvânt dacă se apropie prea

11:11.840 --> 11:15.440
mult de marginea dreaptă a hărții, dar este recompensată minus una.

11:15.710 --> 11:20.220
Și dacă se apropie prea mult de marginea de jos a hărții, devine unul sau mai puțin unul.

11:20.360 --> 11:25.230
Și dacă se apropie prea mult de stânga sus a hărții, primește recompense minus unul.

11:25.230 --> 11:27.620
Deci este o pedeapsă teribilă.

11:27.620 --> 11:31.910
Și astfel veți vedea cum este plin și rapid să nu vă grăbiți cu altceva.

11:31.940 --> 11:36.600
În regulă și apoi acest lucru este de a actualiza du-te atunci când obiectivul este atins.

11:36.620 --> 11:41.390
Deci știi când mașina ajunge la aeroportul care este primul care merge acolo este colțul din stânga sus

11:41.390 --> 11:41.920
al hărții.

11:41.930 --> 11:45.990
În timp ce obiectivul se schimbă în colțul din dreapta jos al hărții care este în centrul orașului.

11:46.250 --> 11:51.080
Și exact asta facem noi actualizăm coordonatele x a coordonatelor Crow și albe

11:51.140 --> 11:55.870
ale apelului și apoi actualizăm distanța de la mașină la mașină.

11:55.880 --> 11:56.260
In regula.

11:56.270 --> 11:58.320
Și atunci este mai puțin important.

11:58.340 --> 12:04.130
Aceasta este doar o clasă care va adăuga instrumentele de pictură pe care le cunoașteți pentru a putea picta câteva drumuri sau unele obstacole

12:04.130 --> 12:10.790
pe hartă care sunt mai apropiate de K. V. pot avea o privire dacă vrei să furnizez

12:10.790 --> 12:16.370
versiunea condensată a acestui cod și o să ofer o referință dacă vrei să te concentrezi mai mult pe cum să

12:16.370 --> 12:17.570
faci asta cu skivvy.

12:17.570 --> 12:22.730
Dar ne apropiem de inteligența artificială, așa că nu voi intra în detalii.

12:22.910 --> 12:30.110
Și aceasta este aceeași pentru ultima secțiune de cod cu clasa mașină care este la fel cum butoanele API clare

12:30.110 --> 12:31.320
salvează și încarcă.

12:31.520 --> 12:32.810
Așa facem aici.

12:32.820 --> 12:34.900
Pânza clară în siguranță.

12:34.940 --> 12:40.220
Și asta este de fapt foarte important, pentru ca noi să putem salva ziua pe care o cunosc pentru

12:40.700 --> 12:46.520
a salva creierul astfel încât să îl puteți reutiliza mai târziu, luând funcția de încărcare, care este un alt instrument pe care

12:46.520 --> 12:52.010
îl adăugăm pe hartă pentru a încărca creierul mașinii este de a încărca memoria mașinii cum să navigați pe hartă.

12:52.250 --> 12:57.830
Și apoi, în sfârșit, avem ultima din ultima secțiune de cod care rulează întregul lucru

12:57.830 --> 13:00.660
care rulează harta și AI în sine.

13:00.980 --> 13:03.340
Și de fapt asta vom face acum.

13:03.590 --> 13:07.020
Să aruncăm o privire la tot ce am făcut în acest cod.

13:07.040 --> 13:10.520
Deci, acum nu este implementată AI.

13:10.520 --> 13:13.910
Codul va avea o mișcare foarte aleatorie.

13:13.940 --> 13:17.810
De fapt, va arăta ca o insectă, dar nu vă faceți griji că vom rezolva asta.

13:17.810 --> 13:24.860
În mod normal, îl vom antrena să se mute ca o mașină reală și să o instruiască pentru a naviga după câteva drumuri și pentru

13:24.920 --> 13:26.380
a evita unele obstacole.

13:26.660 --> 13:27.710
Să o facem.

13:27.710 --> 13:32.240
Voi selecta totul și voi executa.

13:32.510 --> 13:33.900
Și aici este harta.

13:33.950 --> 13:35.270
Și aici este mașina.

13:35.690 --> 13:36.070
In regula.

13:36.080 --> 13:41.600
Deci asta e micul lucru pe care îl vedeți că arată ca o insectă în mașina noastră.

13:41.630 --> 13:45.960
Așa cum ți-am spus că acțiunile sunt total aleatorii.

13:46.220 --> 13:53.890
Deci, de fiecare dată când mașina selectează la întâmplare o acțiune pentru a merge direct spre stânga sau spre dreapta.

13:53.930 --> 13:59.260
De aceea se face mișcări prostie și de aceea arată ca o insectă.

13:59.450 --> 14:01.460
Deci, vom rezolva asta desigur.

14:01.730 --> 14:09.500
Și bineînțeles, de vreme ce AI este activată Ei bine, nu se va ajunge la obiectivul care este aeroportul aici

14:09.500 --> 14:12.930
sau la centrul din dreapta jos a hărții.

14:13.760 --> 14:21.850
Și vom rezolva toate acestea făcând AI-urile care vor implementa AI în această mașină sau în această insectă, astfel încât să puteți

14:21.860 --> 14:26.480
vedea cele trei bile aici, cea galbenă, cea roșie și cea albă.

14:26.630 --> 14:28.190
Aceiași trei senzori.

14:28.220 --> 14:30.020
Așa vom detecta.

14:30.020 --> 14:32.580
Există niște mirosuri în jurul lui.

14:32.810 --> 14:35.720
Și vorbind despre miros, bine, hai să aruncăm ceva.

14:35.720 --> 14:45.510
Deci, pentru a face acest lucru, trebuie doar să fac un clic stânga aici și tu știi într-un anumit sens, prin a preda încă stânga.

14:45.510 --> 14:50.240
Deci, acum adaug ceva nisip, putem adauga ceva mai mult.

14:50.250 --> 14:57.360
Deci, de fiecare dată când ești nebun, după cum poți vedea că punerea celor în matricea centrală este aceea de a trimite o

14:57.360 --> 15:00.100
matrice care are 00 de coordonate ale originii.

15:00.180 --> 15:01.990
Și aici sunt multe.

15:02.080 --> 15:04.720
Și după cum puteți vedea bine, este bine să vedeți mașina.

15:04.770 --> 15:07.240
Tocmai am coborât și am încetinit.

15:07.620 --> 15:12.230
Așa cum puteți vedea chiar acum, este într-adevăr încetinită deoarece intră în nisip.

15:12.510 --> 15:14.820
Și acum încearcă să scape.

15:16.310 --> 15:23.030
Și așa că știi ce vom face este să tragem niște drumuri și vom trage niște drumuri de la aeroport la

15:23.030 --> 15:28.490
centrul orașului și vom antrena mașina pentru a rămâne pe drum și pentru a evita obstacolele.

15:28.490 --> 15:28.830
In regula.

15:28.850 --> 15:35.690
Și după cum puteți vedea acolo este butonul clar pentru a goli nisipul există butonul de salvare pentru

15:35.690 --> 15:37.230
a salva creierul mașinii.

15:37.310 --> 15:43.640
Și, de fapt, există această curbă de bază pe care am vorbit-o despre acea siguranță care vă salvează modelul

15:43.640 --> 15:50.270
de fapt creierul mașinii dvs. și apoi puteți să știți când vă lăsați răceala sau opriți calculatorul și doriți să reveniți

15:50.270 --> 15:51.680
din nou la el.

15:51.920 --> 15:59.290
Puteți utiliza butonul de încărcare pentru a încărca modul în care se încarcă creierul și care va

15:59.360 --> 16:01.760
obține trenurile AI ale mașinii.

16:01.820 --> 16:06.030
În regulă, acum nu pot să aștept să încep să fac AI.

16:06.080 --> 16:07.450
Acest lucru va fi foarte distractiv.

16:07.490 --> 16:13.910
Vom face rețeaua noastră neuronală și vom pedepsi mașina de îndată ce nu face ce vrem.

16:14.120 --> 16:16.290
Deci, să facem asta din următorul tutorial.

16:16.400 --> 16:18.140
Și până atunci bucurați-vă de a.
