WEBVTT

00:00.450 --> 00:02.670
Bună ziua și bun venit la acest model este groază.

00:02.850 --> 00:06.890
Așa că am actualizat memoria după ce am ajuns la noua stare.

00:06.900 --> 00:09.010
Și acum să ne ocupăm de a doua zi.

00:09.330 --> 00:12.810
În opinia dvs., acum ce va fi următoarea actualizare.

00:12.810 --> 00:20.040
În principiu, am terminat cu o tranziție pe care am dat-o ultimul element al tranziției, care este

00:20.040 --> 00:20.960
noul stat.

00:21.150 --> 00:23.340
Deci, acum este ca și cum am începe din nou.

00:23.520 --> 00:25.530
Și când începeam din nou.

00:25.650 --> 00:31.320
Este ca și cum știți că suntem în această nouă stare a mediului și deci ce trebuie să facem acum în mod natural.

00:31.500 --> 00:37.170
Bineînțeles că este vorba de o acțiune, pentru că am primit deja observația Statelor de știri.

00:37.410 --> 00:43.290
Acum, lucrurile pe care trebuie să le facem este să jucăm o acțiune și, prin urmare, ceea ce trebuie să facem acum

00:43.290 --> 00:46.960
este, bineînțeles, să folosim funcția de selectare a acțiunii pentru a juca acțiunea.

00:47.010 --> 00:54.320
Deci haideți să facem să creăm o nouă acțiune Voivode și să jucăm acțiunea cu acțiunea selectată, așa că

00:54.320 --> 00:55.240
o iau.

00:55.380 --> 01:03.150
Ei bine, primul sine pentru a specifica faptul că funcția selectivă de acțiune este o metodă a obiectului clasei care va

01:03.150 --> 01:04.300
fi creată.

01:04.470 --> 01:08.610
Deci, un sine care selectează acțiunea.

01:08.640 --> 01:09.520
Începem.

01:09.560 --> 01:11.090
Deci asta este următoarea acțiune.

01:11.310 --> 01:17.560
Și apoi, bineînțeles, deoarece funcția de selectare a acțiunii ia starea ca intrare, desigur, funcția

01:17.560 --> 01:24.270
selectivă de acțiune va returna ieșirea rețelei neuronale atunci când starea curentă de intrare a intrat în

01:24.270 --> 01:25.220
rețeaua neurală.

01:25.500 --> 01:31.650
Așa că trebuie să introducem etapa de intrare aici și din moment ce acele stări pe care tocmai le-am atins în

01:31.650 --> 01:37.350
mediul înconjurător chiar acum, unde starea de intrare este, bineînțeles, statul pentru că această stare pe care tocmai am

01:37.350 --> 01:40.070
atins-o în momentul în care noi acum este Newstead.

01:40.290 --> 01:45.140
Deci, în această funcție de selectare de acțiune mă refer la introducerea de bastoane noi.

01:45.150 --> 01:51.710
În regulă, cu această linie de cod, purtăm pur și simplu noua acțiune după ce ajungem la noua stare.

01:52.140 --> 01:58.780
OK si acum ca am jucat o actiune Ei bine primim recompensa si de aceea primim feedback cu recompensa.

01:59.010 --> 02:04.550
Și, prin urmare, dacă avem mai mult de 100 de elemente în memorie Ei bine, ar fi timpul să învățăm.

02:04.860 --> 02:10.830
Și, prin urmare, ceea ce trebuie să facem acum este ceea ce vine în mod logic după selectarea unei acțiuni

02:10.830 --> 02:13.830
care, bineînțeles, va reduce nevoia AI de a începe învățarea.

02:13.950 --> 02:15.620
Dacă face lucrurile așa cum trebuie.

02:15.870 --> 02:22.530
Și acum, deoarece a jucat bine acțiunea, vom face AI să învețe din acțiunile sale în ultimele

02:22.530 --> 02:23.940
100 de evenimente.

02:24.130 --> 02:31.320
Dar, înainte de a aplica această funcție învățată, trebuie să facem această condiție pentru a ne asigura că am ajuns deja

02:31.320 --> 02:37.380
la mai mult de 100 de evenimente deoarece știți că învățăm din eșantioanele aleatoare ale memoriei.

02:37.530 --> 02:41.110
Știi că avem o memorie imensă de 10000 de elemente.

02:41.190 --> 02:48.930
Luăm câteva eșantioane aleatoare ale memoriei a 100 de elemente și AI învață din informațiile conținute

02:48.990 --> 02:52.850
în acest eșantion de 100 tranziții aleatorii.

02:52.860 --> 03:00.690
Deci, haideți să facem această condiție dacă doriți să vă asigurați că numărul de elemente din memoria acelei memorii și

03:00.810 --> 03:06.390
apoi să fiți atenți doar un mic truc aici, memoria auto-învățată este obiectul

03:06.390 --> 03:12.380
clasei dvs. de memorie replay, dar atunci clasa de memorie replay are atribut care este memorie.

03:12.510 --> 03:21.780
Deci, de fapt, trebuie să luăm o parte din memoria că memoria, prima memorie este obiectul clasei de memorie

03:21.780 --> 03:28.170
replay, iar cea de-a doua memorie este atributul aici de sine în memorie.

03:28.200 --> 03:37.350
Deci, dacă numărul elementelor din memorie este bine, dorim să fie mai mare de 100, atunci Cullin Și apoi ce

03:37.860 --> 03:38.800
se întâmplă.

03:38.970 --> 03:46.320
Ei bine, putem învăța, dar pentru învățare trebuie să obținem acest eșantion aleatoriu de 100 de tranziții și acest lucru

03:46.320 --> 03:48.840
se poate obține cu funcția simplă.

03:48.840 --> 03:55.140
Și din moment ce funcția simplă returnează diferitele loturi în state la momentul t aceste date 20 plus una acțiunile timpului

03:55.290 --> 03:57.950
t și am fost la 20 de ani.

03:58.200 --> 04:03.360
Ei bine, ceea ce trebuie să facem acum este să creeze niște revivaluri

04:03.360 --> 04:08.580
noi, care vor fi lotul statelor la momentul t lotului următoarelor date lotul cuvintele și

04:08.580 --> 04:16.030
lotul acțiunilor și putem da pur și simplu aceleași nume așa cum am dat pentru argumentele de aici și sunt aici.

04:16.200 --> 04:24.720
Iar aceste variabile vor fi egale cu ceea ce se întoarce prin simpla funcție, deoarece returnează exact aceste loturi,

04:24.720 --> 04:28.320
iar următorul stat ia cuvinte și acțiuni.

04:28.320 --> 04:35.570
Deci, ceea ce trebuie doar să facem acum este să primim mai întâi obiectul nostru de memorie și apoi din acest

04:35.620 --> 04:40.300
obiect de memorie vom folosi metoda simplă care va lua ca intrări.

04:40.500 --> 04:46.370
Ei bine, numărul de tranziții pe care noi trebuie să le învățăm din AI este de 100.

04:46.620 --> 04:50.540
De aceea ne-am asigurat că am avut mai mult de o sută de tranziții.

04:50.610 --> 04:54.780
Deci, va învăța din 100 de tranziții ale memoriei.

04:54.840 --> 04:56.500
Deci învățarea va fi mult mai bună.

04:56.610 --> 04:59.560
Și acum să facem să se întâmple asta cu adevărat.

04:59.700 --> 05:04.560
Ei bine, deoarece metoda de învățare este o metodă a noastră în clasă.

05:04.830 --> 05:11.180
Ei bine, trebuie să accesăm această metodă de învățare din obiectele viitoare care vor fi create dintr-o clasă diferită și,

05:11.190 --> 05:14.300
prin urmare, ceea ce trebuie să facem este sine.

05:14.430 --> 05:21.960
Sinele se referă la acest obiectiv de a face în timpul clasei și apoi să învețe cum această metodă învățată a

05:22.470 --> 05:29.340
învățat metoda la care, atunci când a pus Bineînțeles, acești tipi aici starea proastă a statului belgian lumea naturală

05:29.340 --> 05:30.530
și acțiunea Bachche.

05:30.630 --> 05:38.730
Acestea sunt loturile noastre prelevate din memoria noastră și le obținem 100 din cauză că avem 100 de tranziții din aceste 100

05:39.330 --> 05:47.750
de tranziții pe care le luăm 100 de state 100 de state următoare 100 de recompense și 100 de acțiuni să ne confruntăm

05:47.780 --> 05:51.530
aici și acolo vom merge acum învățarea se va întâmpla.

05:51.850 --> 05:54.490
Se va întâmpla din toate aceste loturi aleatorii.

05:54.520 --> 05:55.850
Perfect.

05:55.960 --> 06:03.310
Și acum ceea ce trebuie să facem este ultima actualizare după ce știi că ajungi la un nou stat și joci

06:03.310 --> 06:04.140
în acțiune.

06:04.330 --> 06:08.890
Ei bine, te-am făcut să jucăm, dar încă nu am avut acea reacție.

06:08.920 --> 06:11.590
Asta este sinele nostru care a fost ultimul voievod.

06:11.770 --> 06:13.730
Deci, să ne asigurăm că nu uităm asta.

06:13.780 --> 06:15.160
Să o facem chiar acum.

06:15.190 --> 06:24.610
Vom actualiza ultima acțiune de sine pe care ultima acțiune este echivalentă și, desigur, vom acționa acțiunea pe care o vom rămâne aici cu

06:24.610 --> 06:27.020
această funcție selectată de acțiune.

06:27.020 --> 06:30.520
Acum, ultima secțiune este actualizată atunci.

06:30.520 --> 06:31.890
Același lucru pentru noul stat.

06:31.930 --> 06:39.190
Am ajuns la noul stat, însă nu am actualizat ultima dată, deoarece, bineînțeles, ultima a fost înainte de stat

06:39.280 --> 06:40.590
în momentul t.

06:40.750 --> 06:44.870
Dar de când am ajuns la noul surplus de stat când e timpul să trecem unul.

06:45.070 --> 06:48.180
Ei bine, ultimul devine acest lucru pe care l-ai spus aici.

06:48.190 --> 06:50.290
Prin urmare, avem nevoie de actualizare, de asemenea.

06:50.290 --> 06:57.070
Eul care ultima stare este egal cu noua noastră stare.

06:57.280 --> 06:58.020
Vom merge acolo.

06:58.210 --> 06:59.620
Și acum ce avem nevoie până acum?

06:59.830 --> 07:01.640
Ei bine, a rămas doar un singur lucru.

07:01.660 --> 07:08.070
Acesta este, desigur, cuvântul și cuvântul este exact cuvântul pe care îl obținem în realitate.

07:08.290 --> 07:15.910
Deci, acesta va fi argumentul acestei funcții care, dacă am face legătura cu harta noastră, va fi

07:15.910 --> 07:17.160
ultimul cuvânt.

07:17.200 --> 07:23.250
Acesta este cuvântul pe care îl obținem imediat după ce am jucat acțiunea în aceste state noi.

07:23.470 --> 07:30.260
Deci, dacă vom merge la un sunet, ultimul cuvânt va fi acela de minus unul dacă vom merge mai departe de la drum

07:30.290 --> 07:35.580
vom primi un cuvânt ușor rău minus 0. 2 dacă ne apropiem de obiectiv.

07:35.660 --> 07:38.680
Vom primi o recompensă ușor bună 0. 1.

07:38.830 --> 07:43.370
Și dacă ne apropiem prea mult de o margine a hărții, care se va referi la pedeapsă.

07:43.510 --> 07:45.330
Vom primi minus unul pentru fiecare.

07:45.440 --> 07:47.110
Deci acesta este ultimul cuvânt pe care îl primim.

07:47.110 --> 07:50.700
În realitate, atunci când acest lucru se întâmplă real pe hartă.

07:50.830 --> 07:53.550
Și acesta va fi argumentul funcției.

07:53.600 --> 07:54.690
Ultimul cuvânt aici.

07:54.700 --> 07:56.200
Exact asta este.

07:56.250 --> 08:01.840
Și așa că din moment ce acesta este argumentul funcției de

08:02.170 --> 08:11.590
actualizare care corespunde cu asta nu am fost aici și, prin urmare, sinele nostru ca ultima variabilă de cuvânt inițializată la

08:12.070 --> 08:20.570
început în această funcție devine cuvântul nou pe care îl obținem în realitate, adică cuvântul sau același ultim cuvânt.

08:20.730 --> 08:21.360
In regula.

08:21.410 --> 08:23.680
Acum am actualizat ultimul nostru cuvânt.

08:23.990 --> 08:27.240
Și acum, de când am primit ultimul cuvânt.

08:27.500 --> 08:29.470
Ei bine, acum putem cunoaște lumea.

08:29.850 --> 08:37.140
Vă amintiți războiul când am inițializat-o aici ca una dintre variabilele obiectului clasei noastre.

08:37.190 --> 08:42.500
Aceasta este fereastra care va urmări modul în care trenul merge, luând media

08:42.500 --> 08:44.270
ultimelor 100 de recompense.

08:44.300 --> 08:50.180
Deci știi că va fi ca o fereastră glisantă care ne arată cum evoluează mediul lumii.

08:50.180 --> 08:52.730
Și din moment ce tocmai am primit ultimul cuvânt.

08:52.910 --> 08:56.910
Ei bine, putem să actualizăm fereastra despre modul în care o actualizăm.

08:57.080 --> 09:03.680
Ei bine, pur și simplu trebuie să adăugăm ultimul cuvânt la fereastră și, prin urmare, ceea ce am

09:03.980 --> 09:12.350
de gând să fac este să-mi iau fereastra de sine pe care o spunem când aud acest lucru și voi folosi funcția de adăugare.

09:12.530 --> 09:18.830
Și în interiorul funcției deschise trebuie să introducem elementul pe care dorim să-l anexăm la ceea ce eram

09:18.830 --> 09:21.480
atunci când facem acest lucru, desigur, dorim.

09:21.500 --> 09:22.610
În regulă.

09:22.610 --> 09:29.480
Și atunci când această fereastră de război va avea o dimensiune fixă, știți că nu va fi o fereastră în creștere,

09:29.480 --> 09:35.300
va fi o fereastră de dimensiuni fixe care alunecă cu timpul pentru a arăta evoluția lumii.

09:35.500 --> 09:38.590
Și acum trebuie să decidem pentru o dimensiune a acestei iarnă.

09:38.750 --> 09:43.600
Și este pur și simplu numărul de mijloace ale recompensei pe care o vom avea în această fereastră.

09:43.900 --> 09:49.330
Și, de exemplu, să vă cunoaștem ultimele 1000 de mijloace din ultimele 100 de cuvinte.

09:49.340 --> 09:58.730
Și astfel, pentru a ne asigura că vom adăuga dacă atunci vom planifica apoi să luăm fereastra de lucru și pur

09:58.740 --> 10:05.810
și simplu adăugăm aici dacă numărul de elemente din fereastră este mai mare de 1000.

10:05.990 --> 10:14.780
Ei bine, ceea ce vrem să facem este să ștergem primul element al acestei ferestre, iar primul element al

10:14.780 --> 10:19.070
acesteia a fost fereastra trebuie să indice zero.

10:19.150 --> 10:19.550
In regula.

10:19.550 --> 10:24.620
Acum ne asigurăm că această fereastră de război nu va primi niciodată mai mult de 1000 de elemente.

10:24.620 --> 10:31.130
Există o mie de mijloace din ultimele 100 de cuvinte care sunt perfecte, aceasta va fi o fereastră de dimensiune fixă, astfel

10:31.310 --> 10:34.360
încât să putem vedea dacă media cuvântului este în creștere.

10:34.460 --> 10:39.560
Și, prin urmare, dacă antrenamentul merge bine și, în consecință, instanța face ceea ce vrem.

10:39.800 --> 10:40.760
Perfect.

10:41.000 --> 10:46.010
Și acum, un mic lucru mic de făcut în stânga în funcție de tine ce va fi.

10:46.190 --> 10:52.130
Amintiți-vă bine că această funcție de actualizare nu numai că actualizează diferitele elemente ale tranziției în fereastra

10:52.140 --> 10:57.960
de război, dar, de asemenea, returnează acțiunea care a fost jucată la atingerea acestei noi stări.

10:58.190 --> 11:05.270
De aceea avem și atunci acea acțiune este egală cu aducerea acelei date că suntem mai puțin semnal și prin urmare

11:05.360 --> 11:10.760
ar trebui să întoarcem ceva și ceva care ar trebui să se întoarcă este, desigur, acțiunea.

11:10.820 --> 11:18.950
Deci, ultimul lucru pe care trebuie să-l facem este doar să întoarceți acțiunea care a fost jucată atunci când a ajuns

11:18.950 --> 11:20.180
la noua etapă.

11:20.600 --> 11:23.670
Și asta este funcția noastră de actualizare este gata.

11:23.840 --> 11:29.110
Ea va face toate actualizările necesare și va transforma acțiunea la atingerea noii etape.

11:29.480 --> 11:30.650
Este perfect.

11:30.650 --> 11:35.230
Aceasta a fost ultima acțiune dificilă de făcut pentru toate acestea un proces.

11:35.240 --> 11:37.120
Acum restul va fi bun.

11:37.220 --> 11:42.170
Vom face doar o funcție de bază pentru a returna mijloacele pe care le dorim în fereastră.

11:42.200 --> 11:47.450
Apoi vom face o funcție sigură pentru a salva creierul mașinii ori de câte ori doriți să renunțați la aplicație și să

11:47.600 --> 11:48.840
vă întoarceți la ea.

11:48.890 --> 11:53.720
Și, bineînțeles, din moment ce vrei să poți încărca creierul mașinii tale când te întorci la ea,

11:53.720 --> 11:54.730
întoarce-te la cerere.

11:55.040 --> 12:01.370
Ei bine, vom ajunge prin a face o funcție de încărcare care vă va încărca modelul după ce salvați

12:01.370 --> 12:02.800
modelul cu aceeași funcție.

12:02.840 --> 12:06.470
Deci, trei funcții pentru a face acest lucru, dar va fi simplu.

12:06.500 --> 12:12.760
Și atunci vom avea cea mai interesantă secțiune a acestui prim modul, care este demo-ul pe care îl vom vedea

12:12.770 --> 12:13.840
dacă aerul funcționează.

12:13.850 --> 12:19.430
Vom vedea dacă mașina atinge obiectivele și vom vedea cum putem să o îmbunătățim și, în cele din

12:19.430 --> 12:21.980
urmă, va trebui să construiți primul dvs. AI.

12:22.160 --> 12:24.010
Așa că nu pot să aștept să încep demo-ul.

12:24.140 --> 12:27.580
Să facem aceste trei funcții mai întâi și până atunci.
