Bună ziua și bun venit la poveste.
În regulă, după ce am făcut aceste patru convoluții și LCN, avem acum o stare codificată care va fi
intrarea acestor două rețele neuronale pe care o vom face pentru actor și critic.
Și vorbind despre ei, singurul lucru pe care trebuie să-l facem acum este să creăm instrumente în conexiunile noastre complete.
Unul pentru actor și unul pentru critic.
Dar, înainte de a face acest lucru, trebuie să obținem numărul de acțiuni posibile.
Și așa am să vă numesc variabilă aici, care nu va fi o variabilă a obiectului.
Deci nu am de gând să folosesc sine aici, dar am de gând să creez non-output-uri viabile care vor reprezenta o
serie de acțiuni posibile și să le obțin.
Ei bine, o putem obține din spațiul de acțiune.
Așa că luăm spațiul nostru de acțiune care va fi intrarea funcției atunci când vom crea obiectul.
Și apoi adăugăm acest lucru și pentru a obține acest număr de acțiuni posibile.
Și acum actorul și criticul vor lua separat aceeași intrare care este rezultatul întregului
proces aici, cu convoluțiile și GLSEN.
Deci, va lua aceeași intrare care este o stare codificată, dar atunci vor avea două conexiuni liniare diferite, astfel încât
vom obține în cele din urmă două rețele neuronale unul pentru cei doi și unul pentru un critic.
Deci, hai să facem aceste două rețele neuronale separate.
Dar, de vreme ce am făcut deja marele lucru cu codificarea aici, ceea ce trebuie doar să facem este
să creați două obiecte, unul în conexiunea întreagă pentru actor și o altă conexiune liniară pentru critic.
Și așa este exact ceea ce voi face.
Voi crea două obiecte acum un prim obiect pentru conexiunea liniară a criticului pe care
o voi numi critic și scorul Linnie și pentru a crea această conexiune liniară.
Știți cum să procedăm, pur și simplu trebuie să luăm modulul motor și apoi clasa liniară la care avem
două intrări.
Ei bine, neuronii de intrare care sunt ieșirile din toate acestea, inclusiv aici cu convoluții
și GM, care este de 256 de neuroni.
Așa că atunci când am pus două sute cincizeci și șase aici și apoi vom avea o ieșire deoarece amintim
rezultatul rețelei neuronale pentru critic este valoarea funcției aplicate la starea de intrare la stările codate
de intrare pe care le-am făcut aici.
Deci, dacă numim starea de intrare s, care este rezultatul tuturor acestor rezultate, ieșirea rețelei neuronale a criticului
va fi VS și, prin urmare, are o dimensiune.
Este doar o valoare.
Și așa am pus unul.
Și rețineți că acest lucru este împărțit între actori, astfel încât aceștia să poată obține unele informații comune pe care le
pot utiliza pentru a-și juca acțiunea într-un mod mai relevant.
OK, asta e pentru rețeaua neurală a criticului.
Și acum să facem noua rețea a actorului și, prin urmare, eu sunt aici actorul auto-învățat liniar și același lucru
deja avem statele codificate de intrare.
Deci, acum trebuie doar să adăugăm o conexiune liniară și, prin urmare, să spunem că
vom lua într-un modul, apoi clasa liniară și spunând acum că această nouă rețea a actorului va lua statutul codificat
care are dimensiunea de 256 și deci 256 aici.
Dar rezultatul va fi diferit deoarece, bineînțeles, știi că ieșirea rețelei neuronale pentru
celălalt actor implică valorile cheie ale stărilor de intrare.
Cel pe care l-am auzit și placa de acțiune.
Deci, din nou, dacă numim această stare codificată, aici înțelegem că o acțiune a jucat o ieșire a acestei
rețele neuronale, de fapt, va exista q ca a.
Și din moment ce știți că avem o mare valoare pentru fiecare acțiune, atunci nu avem rezultate.
Valorile Q și, prin urmare, ieșirea aici va fi non-ieșiri, deoarece nici o ieșire nu este de fapt
numărul de oameni.
Bine perfect.
Deci, dacă vrei să pot scrie pentru tine aici.
Criticul este atât de bine cum este statul codificat, iar pentru actor ieșirea este drăguță ca bine.
Deci, este foarte important să înțelegem această distincție aici și să înțelegem că de aceea avem două
rețele de știri separate.
Unul pentru critic și unul pentru actor Bine perfect.
Deci, aproape că am terminat cu această funcție.
Acum, cel mai important lucru este făcut.
Singurul lucru rămas pe care trebuie să-l facem este să inițializăm toate greutățile acestor două rețele neuronale
și toate părtinitoarele.
Și, bineînțeles, pentru a face asta, vom folosi cele două funcții pe care le-am făcut mai devreme, care
este normalizat inițializatorul coloanelor și greutățile din el.
Asa ca sa facem asta repede.
Va fi destul de ușor și destul de rapid.
Deci, mai întâi vom inițializa unele greutăți aleatorii și pentru a face acest lucru vom aplica
greutățile în ea funcția obiectului nostru.
Deci, aici trebuie să ne luăm de sine pentru a ne obiecta și a obiecta.
Aplicăm greutatea în funcția sa.
Prin urmare, în interiorul nostru trebuie doar să punem greutățile în această funcție și atunci vom obține că vom aplica această funcție
obiectului nostru și prin aceasta vom iniționa doar câteva ponderi aleatorii pentru a obține o învățare optimă
în viitor a acestor greutăți.
Și acum ceea ce trebuie să facem este să facem o normalizare specială pentru actor și critic.
Dar amintiți-mă că am spus acest lucru în tutoriile anterioare nu vom seta aceeași varianță pentru
X în acrilic yakked veți obține o mică variație standard deviație mici.
Și criticii vor primi unul mare.
Și de ce facem asta?
Care este scopul de a da o mică deviere standard a greutăților pentru actor și abaterea standard
mare a drumului pentru critic.
Ei bine, care permite gestionarea explorării și exploatării.
Acesta este exact scopul de a face acest lucru oferindu-i o mică variație actorului dintr-o audiență mai mare
la critică.
Vom avea un management bun al explorării și al exploatării.
Deci, haideți să facem acest lucru mai întâi să avem grijă de actor.
Așa că ne-am luat pe sine sau pe obiect atunci vom lua rețeaua neurală a actorului nostru care este actorul
Linnea, atunci vom accesa greutățile acestei noi rețele de actor și ne amintim că avem acces la datele
despre greutățile de care avem nevoie acele date.
In regula.
Prin urmare, cu aceasta obținem greutățile și acum vom folosi funcția inițială de pieptene normalizată.
Deci, am copiat această lipire aici și vom introduce un argument.
Deviația standard pe care dorim să o aibă aceste greutăți.
Dar mai întâi amintiți-vă că această funcție are două argumente.
Mai întâi cum vrem să inițializăm.
Deci, pur și simplu trebuie să o luăm din nou și să ne bazăm aici.
Iar al doilea argument este abaterea standard.
Vrem ca aceste greutăți să aibă.
Așa cum am spus că vrem o mică deviere standard la actor într-o mică, va fi 0. 01 perfectă.
Deci, acolo sunt greutățile rețelei neuronale a actorului.
Acum, haideți să avem grijă de părtinirea noului lucru al actorului.
Și, prin urmare, vom face aproape același lucru pe care îl vom copia această paste care urmează.
Înlocuiți greutatea cumpărătorilor pentru a accesa cumpărătorii și, după date, pur și simplu vom adăuga umplerea și amintiți-vă în interior atunci când puneți zero,
deoarece vrem ca toate dispozitivele să fie inițializate cu zero.
Deci, de fapt, nu cred că această linie este necesară deoarece, după cum vă amintiți, cumpărătorii sunt deja inițializați la
zero cu această funcție de umplere în funcția de așteptare.
Deci știi că facem acest lucru doar pentru a ne asigura că cumpărătorii sunt de fapt inițializați la zero.
Dar cred că sa făcut deja aici.
Dar oricum acum suntem 100 la sută siguri.
În acest moment, vom face același lucru pentru critic.
Deci, să fim eficienți și să acoperim aceste două linii.
Hai să-i confruntăm aici și aici vom înlocui pur și simplu actorul cu criticul.
La fel și eu.
Și acum singurul lucru pe care trebuie să-l schimbăm este doar abaterea standard pe care o dorim ca
greutatea rețelei neuronale să o aibă criticul.
Și cum vă amintiți o dată de această dată o abatere standard mare în loc de a deschide sau una vom introduce o
astfel încât ne ducem avem o mică abatere standard pentru greutățile din noua lucrare a actorului și o
abatere standard mare pentru greutăți.
Și atunci când ajungem la critic.
Și, bineînțeles, asta e ceva ce putem înlocui aici activ prin credit.
În regulă, acum ne rătăcim.
Deci, acum avem două lucruri rămase de făcut mai întâi este de a inițializa de asemenea părtinirea echipei și pentru a face acest lucru ne luăm obiectul nostru de sine
pentru că LACMA aparține obiectului nostru și am spune sau ca T. N. atunci și apoi vom obține
cele două tipuri de cumpărători care sunt în ultima.
Asta este părtinirea și scorul în funcție de vârstă, iar celălalt se bazează pe vârsta scorului vârstei.
Acestea sunt cele două tipuri de părtinire în CME și aceleași vor fi inițializate la zero.
Deci, mai întâi accesăm datele și apoi folosim funcția de subliniere a umplerii pentru a umple toți acești cumpărători
cu zero-uri, inițializându-le cu a ta.
Dreapta.
Și acum pentru al doilea grup de cumpărători suntem aici același înlocuiți cu vârsta după vârstă.
In regula.
Aceasta inițiază părtinirea zerourilor și acum ultimul lucru pe care trebuie să-l facem este să folosim o metodă care este moștenită
de la capăt și modul care este metoda de tren.
Și, practic, există doar o metodă care pune modulul în tratament.
Deci, ce folosește.
Ei bine, utilizarea este că permite activarea în cazul în care există vreo scădere în legăturile de baie.
Și astfel, pentru a-l folosi, adăugăm doar tren de sine și asta pune modulul în perfectă.
Așa că am terminat cu funcția inițială.
Avem convoluțiile noastre avem CME avem două rețele neuronale separate pentru critic și
actor și toate greutățile și părtinirea sunt bine inițializate.
Deci asta e bine.
Suntem gata să trecem la pasul următor, care este de a face funcția înainte care va
transmite cu siguranță propagarea semnalului încă de la început cu imaginile originale de intrare în tot creierul până
când vom obține ieșirea.
Deci, să facem asta în următorul tutorial.
Și până atunci să vă bucurați de AI.