WEBVTT

00:00.560 --> 00:02.560
Bună ziua și bun venit la acest tutorial.

00:02.750 --> 00:04.610
Acum avem creierul de mâine.

00:04.610 --> 00:06.350
Avem, de asemenea, optimizatorul.

00:06.350 --> 00:09.980
Deci, practic, suntem pregătiți să pregătim diferiții agenți.

00:10.010 --> 00:11.620
Asta este creierul nostru diferit.

00:11.720 --> 00:18.650
Deci, asta va face de acum încolo această funcție de tren mare care va conține tot algoritmul A3 și prin urmare

00:18.650 --> 00:24.920
ceea ce urmează să implementăm în acest tren am găsit doar această treaptă imensă de tren care va fi

00:25.230 --> 00:31.200
doar acest tren mare nu funcționează nimic altceva nu dar care va folosi această funcție a trenului.

00:31.250 --> 00:33.880
Și ultimul pas al acestui modul cu codul principal.

00:34.100 --> 00:35.010
Așa că mergem.

00:35.060 --> 00:37.340
Dar, înainte de a începe, puteți observa asta.

00:37.490 --> 00:42.020
Mai intai importim cateva biblioteci, asa ca sunt bibliotecile clasice cu modulul torch.

00:42.020 --> 00:49.040
Vreau să spun că biblioteca ta torchă se termină apoi biblioteca pentru a crea mediul care va izbucni.

00:49.220 --> 00:54.470
Atunci vom importa, de fapt, clasa din modelul nostru.

00:54.620 --> 00:55.980
Trimiteți-l pe acesta.

00:56.420 --> 01:00.070
Și în final vom folosi o variabilă de la TORCIDA.

01:00.150 --> 01:04.000
Regret să conduc concursuri de înaltă performanță la pantă.

01:04.100 --> 01:05.750
Datorită graficelor dinamice.

01:05.990 --> 01:11.960
Și apoi avem acest lucru să asigurăm funcția gradului comun, pe care nu am vrut să-l petrec prea mult timp pentru că,

01:11.960 --> 01:16.930
bine în primul rând, aceasta este doar o funcție care va face sigur că totul funcționează corect.

01:17.030 --> 01:20.400
Dacă modelul utilizat de agent nu are niciun gradient de partajare.

01:20.480 --> 01:25.640
De aceea se numește diplome scurte, iar celălalt motiv este că nu cred că această funcție

01:25.640 --> 01:26.530
este necesară.

01:26.630 --> 01:32.700
Dar nu stim niciodata si cel putin cu aceasta va fi 100% sigur ca codul se va executa in mod corespunzator, dar

01:33.080 --> 01:34.790
asta nu este cu adevarat important.

01:34.880 --> 01:40.640
Trebuie să ne concentrăm asupra acestei funcții de tendință pe care o vom începe cu toții acum.

01:41.000 --> 01:41.600
Deci, aici mergem.

01:41.610 --> 01:48.860
Def și trenul vor deveni în curând un tren și această transformare va lua mai multe argumente.

01:49.010 --> 01:50.400
Primul este rang.

01:50.420 --> 01:56.460
Voi explica ce este și al doilea este cel de-al doilea, astfel încât toți

01:56.460 --> 01:57.840
parametrii sunt mediul.

01:57.920 --> 02:02.860
Apoi, al treilea parametru va fi partajat moral.

02:03.170 --> 02:09.260
Deci știi că modelul partajat este ceea ce agentul va ajunge să-și conducă puțin explorarea pe un

02:09.260 --> 02:17.050
anumit număr de pași și apoi în final ultimul argument va fi optimizatorul care este cel pe care l-am făcut mai devreme.

02:17.770 --> 02:20.040
Atât de perfectă, încât e vorba de argumente.

02:20.090 --> 02:24.010
Și acum suntem gata să începem implementarea aceleiași funcții.

02:24.170 --> 02:30.890
Deci, primul lucru pe care îl vom face este că știi că îți amintești ce înseamnă A-380 că înseamnă

02:31.010 --> 02:32.480
agenți Crilley sincrone activi.

02:32.540 --> 02:34.980
Deci, în 8: 3 vezi că există un sincron.

02:34.980 --> 02:40.940
Așa cum ați înțeles că trebuie să desființăm fiecare agent de instruire și pentru a face economii, atunci

02:40.940 --> 02:49.010
vom folosi rangul pentru a schimba fiecare parte cu acest rang, astfel încât acest parametru de rang aici este doar pentru a schimba semințele astfel

02:49.220 --> 02:52.230
încât fiecare agent de instruire să fie sincronizat.

02:52.580 --> 02:59.390
De exemplu, dacă există agenți de instruire, rândurile vor merge de la 1 la 10 și va exista un număr

02:59.390 --> 03:02.600
întreg pe agent de la 1 la 10.

03:02.630 --> 03:08.840
Când vom schimba semințele cu un fir, toate numerele pseudo aleatoare create de acest fir vor

03:08.840 --> 03:11.340
fi complet independente de celelalte fire.

03:11.480 --> 03:14.250
Cu toate acestea, semințele sau numerele fixe.

03:14.510 --> 03:19.640
Atunci când vom reproduce experiența vom găsi exact aceleași evenimente.

03:19.880 --> 03:23.450
Și asta pentru că este determinist în ceea ce privește scaunul.

03:23.690 --> 03:30.470
Deci, este important să înțelegem și de aceea trebuie să facem sincronizarea fiecărui agent de stagiu prin folosirea

03:30.800 --> 03:34.260
acestui punct pentru a schimba semințele cu rangul.

03:34.350 --> 03:36.110
Deci, hai să facem asta pentru a face asta.

03:36.140 --> 03:39.170
O să luăm biblioteca torței.

03:39.170 --> 03:45.350
Apoi vom obține semințele cu paranteze de însămânțare subliniază manual.

03:45.350 --> 03:51.040
Aceasta este o funcție și acum vom lua semințele tuturor agenților cu care putem avea acces din

03:51.220 --> 03:55.620
acea sămânță și să le schimbăm de rang pentru a se sincroniza.

03:55.660 --> 04:05.420
Fiecare dintre acești agenți se va adăuga aici, plus rec și care va schimba semințele cu rangul pentru a distrage fiecare agent de formare,

04:05.510 --> 04:09.970
deoarece există o singură sămânță pentru fiecare agenție de formare.

04:09.980 --> 04:15.390
Primul lucru pe care l-ați făcut și acum următorul pas este să obțineți mediul înconjurător.

04:15.530 --> 04:21.470
Așa că vom crea o nouă variabilă pe care o vom apela și acum o vom folosi pentru a

04:21.590 --> 04:26.120
crea Atari și a funcționa din modulul final pentru a crea mediul pentru breakout.

04:26.150 --> 04:28.130
Aceasta este pentru a obține mediul de a izbucni.

04:28.250 --> 04:38.070
Așa că luăm această funcție creând Terry și acum trebuie să introducem doar un singur argument care sunt parametrii

04:38.070 --> 04:39.060
mediului.

04:39.270 --> 04:42.730
Și le avem pentru că aceasta este una dintre intrările funcției creierului.

04:42.750 --> 04:48.270
Acesta este acest parametru care va fi parametrii mediului de breakout și, prin

04:48.330 --> 04:58.320
urmare, pentru a obține mediile de breakout luăm aceste argumente de program, atunci și apoi vom obține un nume care, în viitor, care

04:58.320 --> 05:03.240
este în următorul cod cu funcția principală care va executa întregul

05:03.240 --> 05:06.010
cod va fi Breakout Brahial Vizier.

05:06.010 --> 05:09.450
În regulă, pentru a ne face să fie perfect mediul înconjurător.

05:09.610 --> 05:16.080
Și acum, pasul următor este alinierea scaunului mediului pe unul dintre agenți.

05:16.180 --> 05:17.650
Și de ce facem asta?

05:17.650 --> 05:24.220
Este pentru că amintesc că fiecare agent al lui A-3 Silmaril are propria sa viziune asupra mediului cum ar

05:24.220 --> 05:31.000
fi propria sa copie a mediului și, prin urmare, avem nevoie să aliniem fiecare dintre agenți într-o versiune specifică a

05:31.000 --> 05:36.520
mediului și să facem că vom merge pentru a utiliza scaunul deoarece fiecare scaun determină un

05:36.520 --> 05:37.320
anumit mediu.

05:37.450 --> 05:43.390
Deci, prin asocierea unei semințe diferite fiecărui agent bine, vom obține exact ceea ce dorim, că

05:43.390 --> 05:46.340
fiecare agent va avea propriul său mediu.

05:46.500 --> 05:54.730
Și cum putem face acest lucru, putem să luăm mediul în care trăim atunci, apoi folosiți funcția de sămânță pentru a ști că alegeți cele

05:54.770 --> 05:57.340
pe care le primește pentru mediul înconjurător.

05:57.520 --> 06:01.370
Și acum, pentru a alinia scaunul mediului la semințele agentului.

06:01.600 --> 06:08.460
Ei bine, avem nevoie pur și simplu pentru a obține acest lucru, deoarece acest lucru corespunde scaunului de agent care a fost mutat lucrurile

06:08.530 --> 06:14.170
pentru a rang pentru a obține agenților decent de formare organizat, deoarece acestea sunt toate pe un set diferit.

06:14.200 --> 06:20.020
Așa că trebuie să plătim acest lucru aici și acest lucru va alinia scaunul de mediu pe

06:21.210 --> 06:24.660
cel al agentului. Bine, acum ne vom da modelul.

06:24.670 --> 06:27.060
Adevărul este A-3.

06:27.180 --> 06:32.320
Și acum este că vom folosi clasa activă din fișierul nostru model.

06:32.350 --> 06:38.500
Deci, vom crea în principiu un obiect nou al acestei clase de activitate și vom numi acest model

06:38.500 --> 06:40.960
de obiect sau creier dacă doriți.

06:41.200 --> 06:47.650
Dar, în esență, acest obiect va conține toate convoluțiile CM Conexiunea liniară și funcția

06:47.650 --> 06:49.500
Ford pentru propagarea semnalului.

06:49.600 --> 06:55.630
Deci, va conține în principal creierul actorului în critic cu capacitatea de a propaga

06:55.630 --> 06:59.120
semnalul în creier pentru a obține ieșirea finală.

06:59.170 --> 07:06.850
Deci, haideți să facem acest lucru să ne creăm modelul așa cum am spus că vrem să numim acest model de obiect.

07:07.150 --> 07:15.040
Așadar, am creat un obiect al clasei de creație Act și, prin urmare, luăm un critic actor de clasă și acum ne amintim ce

07:15.040 --> 07:17.250
argumente în cazul celor două intrări.

07:17.350 --> 07:20.420
Aceasta este de fapt argumentele funcției.

07:20.640 --> 07:26.230
Deci, de sine, trebuie să o introducem, știi că este ceea ce trebuie să facem pentru a folosi obiectul în metodă.

07:26.530 --> 07:33.010
Dar atunci argumentele pe care trebuie să le punem sunt nominalizările care sunt în formă rea, care se realizează în

07:33.010 --> 07:38.680
lanțuri de artă în imagini tipărite și în spațiul real care conține tu știi setul de acțiuni.

07:38.680 --> 07:42.550
Deci, să punem aceste argumente în funcția de tren.

07:42.760 --> 07:51.580
Deci, prima o putem obține cu mediul nostru și că apoi vom folosi spațiul de observație, care este spațiul

07:51.580 --> 07:59.020
de observații, atunci că și apoi veți obține numărul de intrări obținem nuanțe de umbră zero.

07:59.190 --> 07:59.550
In regula.

07:59.550 --> 08:01.120
Asta e pentru intrări.

08:01.290 --> 08:04.690
Și acum pentru spațiul de acțiune.

08:04.860 --> 08:10.480
Ei bine, este aproape la fel cum avem nevoie pentru a obține din mediul nostru că suntem importanți decât atât.

08:10.500 --> 08:12.920
Și apoi spațiu de acțiune.

08:12.920 --> 08:13.260
In regula.

08:13.260 --> 08:17.860
Și asta ne oferă argumentele pe care trebuie să le furnizăm atunci când creăm un obiect.

08:17.860 --> 08:20.130
Modelul clasei execrate.

08:20.400 --> 08:25.150
OK, acum avem modelul nostru și acum următorul pas este să ne pregătim stările de intrare.

08:25.170 --> 08:31.230
Amintiți-vă că încă facem o învățătură informală mai profundă, astfel că intrarea afișează imaginile noastre de intrare și, prin urmare,

08:31.560 --> 08:37.080
aceasta va fi inițial făcută de Ray care va conține un canal, deoarece vom lucra cu imagini

08:37.080 --> 08:40.670
alb-negru și va avea timp în oceane de 42 de 42.

08:40.980 --> 08:46.680
Dar este important să înțelegeți și să rețineți aici că stările de intrare sunt imagini de intrare.

08:46.680 --> 08:51.940
Deci, ceea ce trebuie să facem este să-i luăm pe cei care nu sunt de putere, atunci o vom transforma într-un răspuns la tortură.

08:52.050 --> 08:57.770
Dar primul pas ca ceea ce am făcut înainte a fost să-l luăm pe un arbitru și să-l obținem.

08:57.840 --> 08:58.970
De fapt este destul de simplu.

08:58.980 --> 09:06.080
Ei bine, mai întâi trebuie să creăm o variabilă pentru starea de intrare care va trece de stat și asta pentru a obține o

09:06.080 --> 09:07.130
matrice de arbitri.

09:07.230 --> 09:13.000
Pur și simplu trebuie să luăm mediul înconjurător, apoi să ne adaptăm și apoi să folosim funcția de resetare.

09:13.200 --> 09:19.940
Și aceasta va inițializa statele ca o serie de imperii de dimensiuni una câte 42 de 42.

09:20.190 --> 09:27.170
Unul înseamnă 1 canal atât de alb și negru și 42 de 42 este, bineînțeles, dominările imaginii.

09:27.210 --> 09:30.860
Numărul de pixeli și lățimea și numărul de pixeli și înălțimea.

09:30.870 --> 09:32.630
Deci, practic, asta e doar momentul de timp.

09:32.670 --> 09:34.660
Și cu asta lucrăm.

09:34.820 --> 09:40.830
Și acum, acum că avem acest lucru de fapt, în umpiring pentru că acest lucru ne va aduce aceste imagini de astfel

09:40.830 --> 09:42.670
de asigurare de timp în Imperiu.

09:42.870 --> 09:48.510
Acum le putem converti în dansatori cu torțe și pentru a face acest lucru, vom reveni la o stare de date din nou pentru

09:48.510 --> 09:50.890
că nu avem nevoie să păstrăm matricele de numere.

09:51.180 --> 09:55.030
Și aici folosim torța modulului torță.

09:55.260 --> 10:02.790
Și amintiți-vă că am făcut deja acest lucru în legătură cu funcția de la paranteza non-thailandeză de subliniere.

10:02.880 --> 10:08.350
Și în interiorul acestei funcții trebuie să introduceți rata numărului pe care dorim să o convertim într-un senzor al tortei.

10:08.610 --> 10:14.880
Și aceasta este situația în care versiunea anterioară a matricei de stat non-pay va fi transmisă de la

10:14.880 --> 10:20.510
funcția de țeavă a unui senzor de torță, astfel încât doar creează intense de la stat.

10:20.550 --> 10:24.870
Și acum trebuie să inițializăm realizarea viabilă.

10:24.870 --> 10:30.650
Amintiți-vă că variabila este, în general, variabila care spune dacă un episod este terminat sau dacă jocul sa terminat.

10:30.870 --> 10:37.110
Ei bine, aici vrem doar să introducem acest lucru foarte bine și inițial la adevărat pentru a specifica că acest

10:37.160 --> 10:41.230
Do not Voivode va fi egal cu adevărat atunci când jocul este terminat.

10:41.260 --> 10:46.790
Acest lucru va fi util pentru mai târziu, astfel încât AI nu se joacă la nesfârșit pentru a izbucni.

10:46.820 --> 10:47.350
In regula.

10:47.390 --> 10:54.320
Deci, acesta a fost, în principiu, începutul acestei funcții de tendință, cu o oarecare inițializare și câteva lucruri pe care trebuie

10:54.320 --> 10:55.370
să le facem.

10:55.370 --> 11:00.560
Cea mai importantă componentă a fost aceea că trebuie să excludem fiecare agent de formare.

11:00.560 --> 11:04.890
Acesta este un prim principiu al lui A3 similar pe care trebuie să îl aplicăm.

11:05.160 --> 11:09.780
Și acum, în tutorialul următor, vom trece la sincronizarea cu modelul partajat.

11:09.830 --> 11:14.810
Să nu uităm că există un model diferit, dar și modelul de partajare care este un model pe care

11:14.810 --> 11:16.180
îl împărtășesc toți agenții.

11:16.190 --> 11:22.430
Și astfel trebuie să ne sincronizăm cu modelul de prezentare, astfel încât fiecare agent să poată obține acest model partajat pentru a

11:22.520 --> 11:25.990
trece la o mică explorare a unui anumit număr de pași.

11:26.000 --> 11:28.080
Așa vom face în următoarea Statoil.

11:28.130 --> 11:29.710
Și până atunci să vă bucurați de AI.
