WEBVTT

00:00.270 --> 00:02.590
Bună ziua și bun venit la acest tutorial Python.

00:02.820 --> 00:08.730
Așa că astăzi vom face funcția de actualizare care va actualiza tot ceea ce există până în

00:08.850 --> 00:12.240
momentul în care ochiul ajunge la o nouă stare.

00:12.510 --> 00:16.140
Deci, când ajunge la o nouă etapă, știi că trebuie să actualizăm acțiunea.

00:16.200 --> 00:19.320
Ultimul vine de fapt noua acțiune care tocmai a fost jucată.

00:19.530 --> 00:22.630
Dar, de asemenea, ultima dată când devine noua stare.

00:22.680 --> 00:27.450
Și, în final, ultimul cuvânt care devine noul cuvânt pe care îl obținem când jucăm acțiunea.

00:27.480 --> 00:31.480
Deci, aceasta este calea logică care se întâmplă imediat după selectarea unei acțiuni.

00:31.530 --> 00:35.100
Trebuie să actualizăm toate elementele tranzițiilor.

00:35.310 --> 00:37.370
Și bineînțeles veți obține o nouă tranziție.

00:37.420 --> 00:40.300
Deci, va trebui să adăugăm această nouă tranziție la memorie.

00:40.350 --> 00:46.200
Și, în final, vom actualiza sau recompensa fereastra pe care o cunoașteți pentru a ține cont de evoluția modului în care

00:46.200 --> 00:49.460
se desfășoară instruirea și de modul în care se desfășoară explorarea.

00:49.680 --> 00:55.380
Dar ceea ce este cel mai important pentru a înțelege este că acum putem face în sfârșit o

00:55.530 --> 01:01.650
conexiune între AI pe care o implementăm chiar acum pe harta noastră, pentru că dacă ne întoarcem pe hartă amintim

01:01.650 --> 01:08.580
că această funcție de actualizare Beiji este în clasa jocurilor și acesta este locul unde făceam de fapt jocul cu mașina și

01:08.580 --> 01:12.940
definind modul în care mașina ar trebui pedepsită atunci când face o greșeală.

01:13.170 --> 01:19.140
Dar în această clasă de joc am observat această funcție de actualizare și în această funcție de actualizare

01:19.500 --> 01:24.700
am observat această acțiune de linie, deoarece actualizarea creierului ultima am lucrat mai puțin semnal.

01:24.900 --> 01:28.410
Și de fapt exact asta vom face.

01:28.410 --> 01:36.300
Suntem pe punctul de a face această funcție de actualizare care va lua ultimul cuvânt și ultimul semnal pentru a obține

01:36.300 --> 01:37.860
următoarea acțiune de jucat.

01:37.860 --> 01:41.640
Așadar, nu numai actualizarea tuturor elementelor diferite ale tranziției.

01:41.910 --> 01:48.390
Dar mai ales vom juca acțiunea pe care ar trebui să o jucăm atunci când obținem ultimul cuvânt și

01:48.390 --> 01:55.920
ultimul semnal și astfel în această funcție de actualizare vom folosi funcția selectată de acțiune pe care tocmai am implementat-o ​​înainte

01:55.920 --> 02:02.400
de a integra funcția selectată de acțiune în funcția de actualizare viitoare pe care suntem pe cale să

02:02.400 --> 02:07.740
o facem pentru a selecta direcția de redare în afară de efectuarea tuturor actualizărilor.

02:07.860 --> 02:11.200
Deci, este foarte important să faceți această conexiune cu harta chiar acum.

02:11.310 --> 02:18.480
Ceea ce vom face este în cele din urmă legătura dintre ochiul nostru și jocul pe care îl facem

02:18.480 --> 02:19.750
în această clasă.

02:19.770 --> 02:24.030
Și ceea ce putem face acum este să luăm direct această actualizare.

02:24.060 --> 02:29.970
Ultima dată am fost mai puțin semnal, deoarece aceasta este de fapt funcția pe care o vom face cu aceste două argumente

02:29.970 --> 02:30.430
aici.

02:30.720 --> 02:38.530
Și așa cum creierul memento rapid este obiectul nostru AI, care este obiectul clasei Dejuan.

02:38.540 --> 02:45.690
Deci, ceea ce vom face acum este că vom copia această actualizare mai puțin semnal mai puțin cuvânt și asta va fi

02:45.690 --> 02:48.390
următoarea noastră funcție pe care o facem.

02:48.480 --> 02:54.120
Și, prin urmare, și aici, pentru a fi atent, aș vrea să dau câteva nume diferite decât

02:54.120 --> 02:56.190
numele pe care le avem aici.

02:56.200 --> 03:00.820
Știți că avem ultimul cuvânt aici și nu vreau să deranjez ultimul cuvânt cu acesta.

03:00.900 --> 03:02.060
Asta poate fi periculos.

03:02.220 --> 03:06.100
Deci voi înlocui ultimul cuvânt aici cu cuvânt.

03:06.390 --> 03:13.880
Și apropo, pentru semnalul mai mic, să punem doar semnal sau chiar un semnal nou pentru a preciza că știm că vrem să măsurăm acest

03:13.920 --> 03:18.900
lucru atunci când ajungem la o stare nouă și, prin urmare, obținem un nou semnal.

03:18.900 --> 03:26.100
Dar, bineînțeles, acest cuvânt va fi ultima răsplată pe care o vom ajunge aici.

03:26.280 --> 03:32.400
Știți când mergeți pe un nisip sau, mai rău, apropiați prea mult de o margine a hărții,

03:32.670 --> 03:34.130
unde definim ultimul cuvânt.

03:34.200 --> 03:39.400
Ultimul cuvânt va fi introducerea funcției de actualizare, de aceea avem ultimul cuvânt aici.

03:39.600 --> 03:43.660
Dar chiar aici dau doar un alt nume pentru argument.

03:43.710 --> 03:47.640
Nu vrem să o confundăm cu ultimul cuvânt aici.

03:47.640 --> 03:50.160
Bine, deci aceasta este funcția de actualizare.

03:50.310 --> 03:54.090
Acum, hai să intrăm în el și să facem aceste două lucruri.

03:54.090 --> 03:58.970
Acestea sunt datele tuturor elementelor tranziției noastre și, bineînțeles, selectăm acțiunea.

03:59.290 --> 04:01.670
OK, deci, ce avem nevoie să actualizăm mai întâi.

04:01.950 --> 04:06.760
După cum ați înțeles că vrem să facem o dată când ajungem la orice stat.

04:06.840 --> 04:12.800
Deci, primul lucru pe care îl vom actualiza este, evident, această veste că aceasta este vestea că ajungem.

04:12.840 --> 04:17.340
Așa că am să numesc acest nou stat nou stat și apoi o va face.

04:17.340 --> 04:19.810
Și cum putem obține acest nou stat.

04:20.040 --> 04:25.460
Bineînțeles că depinde de semnal noul semnal pe care senzorii au detectat-o.

04:25.830 --> 04:32.760
Și ca o reamintire, starea este semnalul în sine alcătuit din cele trei semnale care indică faptul că senzorii

04:32.760 --> 04:37.470
semnalează un semnal pentru a semnaliza orientarea plus trei orientări și minus.

04:37.530 --> 04:38.600
Asta e starea noastră.

04:38.610 --> 04:42.470
Asigurați-vă că înțelegeți că semnalul este starea.

04:42.660 --> 04:46.160
Dar acum este o listă simplă de cinci elemente.

04:46.200 --> 04:51.540
Și deoarece aceasta va fi intrarea pentru a face tot ce funcționează amintiți că trebuie să-l convertim într-un senzor

04:51.540 --> 04:52.200
de torță.

04:52.490 --> 04:54.960
Deci exact asta vom face acum.

04:54.960 --> 05:03.910
Vom lua biblioteca tortei noastre și apoi vom lua clasa tensor acolo mergem, ceea ce va transforma noul nostru semnal într-o torță

05:04.450 --> 05:12.420
mai densă, atunci este mai bine să vă asigurați că toate elementele torței care răspund sunt plutind, așa că

05:12.420 --> 05:19.650
am de gând să efectuați o conversie de tip pentru a le converti în flotoare ca aceasta.

05:19.900 --> 05:24.500
Și apoi încercați să obțineți un reflex al a ceea ce trebuie să facem în continuare.

05:24.530 --> 05:29.590
Este, desigur, să creăm acel motor fals pentru a adăuga diamante și să

05:29.590 --> 05:37.080
corespundă lotului și noi facem acest lucru desigur cu funcția de stoarcere la care trebuie să punem indicele acestui diamant mare.

05:37.100 --> 05:40.210
Și vrem pentru lotul care este zero.

05:40.770 --> 05:41.320
In regula.

05:41.320 --> 05:47.110
Și acum avem noile noastre stări compuse din cele trei semnale ale celor trei senzori, plus

05:47.110 --> 05:54.290
orientarea minus orientare și, desigur, care va depinde de noul semnal pe care îl primim cu această funcție de actualizare.

05:54.400 --> 05:57.940
Chiar și la ultimul semnal, primim cele trei semnale.

05:57.940 --> 06:04.450
Deci, în plus minus sau în plus și ca un memento cele trei semnale sunt densitatea senzorului

06:04.720 --> 06:06.490
detectat în jurul senzorilor.

06:06.490 --> 06:06.940
In regula.

06:06.970 --> 06:13.710
Așa că am obținut o nouă etapă, ceea ce înseamnă că am ajuns la noua scenă și acum trebuie să facem următoarea actualizare.

06:13.750 --> 06:16.440
Deci, în funcție de dvs., ce avem nevoie să actualizăm acum.

06:16.660 --> 06:22.320
Care ar fi lucrul logic până în prezent, după ce a ajuns la acest nou stat.

06:22.630 --> 06:25.940
Ei bine, ceea ce avem nevoie până acum este memoria.

06:25.960 --> 06:27.010
De ce este asta.

06:27.010 --> 06:34.200
Este pentru că în fiecare moment o tranziție este compusă din starea curentă Estey a doua zi ca

06:34.220 --> 06:37.660
tipis atunci când răsplata artiștii și acțiunea 80.

06:37.860 --> 06:44.020
Și acum avem deja S-T, avem deja echipa noastră și deja avem 80 și tocmai am

06:44.020 --> 06:47.540
obținut ultimul element al tranziției Estep plus unul.

06:47.590 --> 06:55.720
Așadar, prin obținerea acestei noi stări la fel de profunde ca și noi, noi primim o tranziție nouă a memoriei și, prin urmare,

06:55.720 --> 07:01.910
trebuie să adăugăm această tranziție nouă la memorie, deoarece aceasta este pur și simplu următoarea noastră tranziție.

07:01.930 --> 07:03.980
De aceea trebuie să avem memoria acum.

07:04.120 --> 07:10.990
Și, prin urmare, ceea ce am de gând să fac este să ia obiectul de memorie creat din clasa de

07:10.990 --> 07:17.130
memorie replay și, prin urmare, am de gând să ia auto-memorie să se refere la obiect.

07:17.160 --> 07:22.700
Dar din moment ce eu folosesc sine, trebuie să-l includ pe sine în această funcție.

07:22.950 --> 07:25.440
Deci, acum puteți vedea cu adevărat pentru ce este acest sine.

07:25.550 --> 07:32.600
Este oricând utilizați o variabilă pe care ați creat-o și ați inițializat-o în memoria respectivă.

07:32.600 --> 07:33.960
Și acum am făcut-o.

07:34.190 --> 07:36.950
Și în funcție de tine cum o să actualizăm asta.

07:37.160 --> 07:41.290
Vestea bună este că am făcut deja o funcție pentru a face asta.

07:41.300 --> 07:46.990
Este funcția de împingere care interzice un eveniment sau o tranziție la memorie.

07:47.190 --> 07:49.060
Deci exact asta vom folosi acum.

07:49.070 --> 07:55.460
Vom folosi funcția de împingere pentru a ne pătrunde noua tranziție pe care tocmai am făcut-o în memorie

07:55.760 --> 08:01.820
și, prin urmare, aici nu iau o egalitate pentru că vom folosi metoda și, prin urmare, putem

08:02.320 --> 08:04.200
folosi direct această forță.

08:04.280 --> 08:10.010
Și mai întâi voi adăuga tranziția acestei noi tranziții pe care tocmai am primit-o și aceasta este mai întâi

08:10.010 --> 08:10.780
ultima dată.

08:10.850 --> 08:14.010
Deci, de sine la ultima dată.

08:14.270 --> 08:18.680
Deci asta e S-T Asta e exact acesta deja există.

08:18.680 --> 08:23.620
Apoi, următorul element al acestei tranziții este, bineînțeles, noul stat pe care tocmai l-am atins.

08:23.840 --> 08:29.720
Și, prin urmare, deoarece nu este viabilă din obiectul pe care l-am creat și inițializat în această funcție init,

08:30.080 --> 08:31.470
nu ne punem aici.

08:31.580 --> 08:39.940
Am pus direct pe Newstead atunci următorul element al tranziției este acțiunea și spunem că deja avem ultima secțiune

08:39.940 --> 08:43.690
care este acel sine ca ultima acțiune aici.

08:43.840 --> 08:45.320
Deci, desigur, este egal cu zero.

08:45.350 --> 08:50.050
Dar, desigur, acesta va fi actualizat cu funcția selectare acțiune.

08:50.170 --> 08:51.190
Dar asta e asta.

08:51.190 --> 08:55.620
Deci, atunci este ultima acțiune.

08:55.840 --> 08:57.120
Dar acum fiți atenți.

08:57.190 --> 09:01.540
Elementele care au fost incluse în această tranziție ar trebui să fie toate răspunsuri torționate.

09:01.870 --> 09:03.860
După cum puteți vedea că este cazul pentru ultima dată.

09:03.880 --> 09:05.200
Este un senzor al tortei.

09:05.350 --> 09:07.860
Noul stat este, de asemenea, un răspuns răcit.

09:07.900 --> 09:12.050
Și așa trebuie să fie același lucru pentru acțiune și apoi recompensa, desigur.

09:12.190 --> 09:17.320
Dar acum vă veți gândi cum poate fi un răspuns încălzit, considerând că este pur și simplu un număr.

09:17.410 --> 09:20.700
Știți că acțiunea este 0 1 sau 2.

09:20.890 --> 09:22.370
Dar, de fapt, nu este o problemă.

09:22.390 --> 09:28.640
Încă putem converti această variabilă 0 1 sau 2 într-un senzor al tortei.

09:28.660 --> 09:31.530
Aceasta va fi ceea ce noi numim un tensor lung.

09:31.540 --> 09:36.910
Lungimea este un tip și acesta este tensorul care va conține un întreg, deoarece ultima acțiune

09:36.910 --> 09:39.660
este un întreg este 0 1 sau 2.

09:39.670 --> 09:47.650
Deci, ceea ce vom lua acum este biblioteca noastră torche, atunci vom lua lunga este o clasă lungă tensor

09:48.190 --> 09:53.470
care va crea un obiect care va fi non-tenure în sine.

09:53.710 --> 10:00.370
Și luând această funcție de ultimă acțiune ca intrare, ea va crea acest obiect tensor de lungă durată, dar va

10:00.370 --> 10:08.590
conține încă 0 1 sau 2 într-un obiect tensor lung și care este doar pentru a fi în concordanță cu tranziția pe care o conține

10:08.830 --> 10:14.070
numai tensori, deoarece suntem lucrează cu torța PI și lucrăm cu o rețea neurală.

10:14.170 --> 10:18.480
Deci, trebuie să lucrăm cu senzori, astfel încât să mergem mult timp să răspundem.

10:18.580 --> 10:20.780
Și o ultimă conversie pentru a face.

10:20.860 --> 10:27.520
Trebuie să fim siguri că ceea ce există în acest răspuns lung este un număr întreg și să ne

10:27.520 --> 10:34.000
asigurăm că acesta este deja cunoscut că ultima acțiune este 0 1 sau 2 pentru a ne asigura că

10:34.000 --> 10:39.310
vom face din nou această conversie de tip int, auto-ultima acțiune într-un număr întreg.

10:39.310 --> 10:46.450
Acolo mergem și apoi trebuie să punem acea acțiune totală de altruistă în paranteze chiar aici, pentru ca acum să obținem un

10:46.450 --> 10:52.810
tensor lung al unui element care va fi această ultimă acțiune 0 sau 1 sau 2 în sine.

10:52.810 --> 10:59.880
Deci, punctul cheie este că tocmai cum convertiți un simplu număr zero unul sau doi într-un tensor cu torche.

11:00.060 --> 11:00.360
In regula.

11:00.360 --> 11:06.820
Și apoi, în final, ultimul element al tranziției și acesta este, desigur, ultimul cuvânt pe care l-am primit.

11:06.880 --> 11:12.980
Acesta este exact ultimul cuvânt de volei pe care l-am creat în orice funcție care a fost inițializată la zero.

11:13.110 --> 11:19.720
Dar, bineînțeles, este actualizat chiar aici, în acest cod, fie atunci când mergem într-un sens care este un cuvânt negativ sau

11:19.770 --> 11:24.020
dacă ne îndepărtăm de obiectivul care este din nou o recompensă negativă.

11:24.180 --> 11:30.090
Dacă ne apropiem de obiectivul care este o recompensă pozitivă și cea mai gravă pedeapsă dacă ne apropiem prea mult de

11:30.090 --> 11:34.080
o margine a hărții Ei bine, este un cuvânt negativ teribil minus unul.

11:34.290 --> 11:36.190
Și asta e a.

11:36.260 --> 11:40.810
Deci, să adăugăm acest ultim element al tranziției auto-direcționând cuvântul.

11:41.060 --> 11:47.660
Așadar, am copiat această lipire aici și acum trebuie să facem o altă conversie, care va fi, desigur, exact

11:47.750 --> 11:53.570
aceeași ca aceasta, doar că cuvântul nu este un număr întreg, ci un număr de float.

11:53.780 --> 12:00.350
Vom face pur și simplu o torță care transformă tensorul, dar fără asta va păstra parantezele aici pentru că știi mai întâi

12:00.350 --> 12:06.200
că trebuie să punem numărul într-o listă și apoi această listă va merge și a pune torța în clasă,

12:06.200 --> 12:11.510
dar nu avem pentru a face asta în conversie, deoarece ultimul cuvânt este un număr de float.

12:11.510 --> 12:21.400
Deci, ceea ce vom face este să adăugăm pur și simplu aici torce dot tensor incendiat paranteză tensor apoi paranteze.

12:21.680 --> 12:27.470
Și vom închide parantezele aici și vom închide paranteza.

12:27.470 --> 12:28.820
Vom merge acolo.

12:28.820 --> 12:35.180
Deci, pentru a rezuma Ce ați spus că tocmai am ajuns și pe care noi o spunem observăm un nou eveniment de tranziție pe

12:35.540 --> 12:37.150
care îl adăugăm în memorie.

12:37.550 --> 12:44.240
Și această tranziție conține ultima dată și vedeți noua stare ca tipis când ultima acțiune

12:44.540 --> 12:47.640
are 80 și ultimul cuvânt Archie.

12:48.020 --> 12:48.390
In regula.

12:48.440 --> 12:51.220
Și acum mergem cu amintirea datelor noastre.

12:51.410 --> 12:55.710
Deci, hai să facem o pauză rapidă și vom avea grijă de următoarea actualizare în următorul tutorial.

12:55.970 --> 12:57.440
Până atunci
