de ADL

Învățarea prin întărire este un aspect al învățării automate în care un agent învață să se comporte într-un mediu, efectuând anumite acțiuni și observând recompensele / rezultatele pe care le obține din acele acțiuni.

Odată cu progresele înregistrate în manipularea brațelor robotice, Google Deep Mind a învins un jucător profesionist Alpha Go și, recent, echipa OpenAI a învins un jucător profesionist DOTA, domeniul învățării prin întărire a explodat cu adevărat în ultimii ani.

O scurta introducere in invatarea prin intarire
1611164289 240 O scurta introducere in invatarea prin intarire
Exemple

În acest articol, vom discuta:

  • Ce este învățarea de întărire și cum ar fi recompensele, sarcinile etc.
  • 3 categorizări ale învățării prin întărire

Ce este învățarea prin întărire?

Să începem explicația cu un exemplu – să spunem că există un copil mic care începe să învețe cum să meargă.

Să împărțim acest exemplu în două părți:

ad-banner

1. Bebelușul începe să meargă și ajunge cu succes pe canapea

Deoarece canapeaua este scopul final, bebelușul și părinții sunt fericiți.

O scurta introducere in invatarea prin intarire

Deci, bebelușul este fericit și primește aprecieri de la părinți. Este pozitiv – copilul se simte bine (Recompensă pozitivă + n).

2. Bebelușul începe să meargă și cade din cauza unor obstacole între ele și se învineți.

1611164290 852 O scurta introducere in invatarea prin intarire

Vai! Bebelușul este rănit și suferă. Este negativ – copilul plânge (Recompensă negativă -n).

Așa învățăm noi oamenii – prin urmărire și eroare. Învățarea prin întărire este conceptual aceeași, dar este o abordare de calcul pentru a învăța prin acțiuni.

Consolidarea învățării

Să presupunem că agentul nostru de învățare de consolidare învață să-l joace pe Mario ca exemplu. Procesul de învățare a întăririi poate fi modelat ca o buclă iterativă care funcționează după cum urmează:

O scurta introducere in invatarea prin intarire
  • Agentul RL primește starea S⁰ din mediu inconjurator adică Mario
  • Pe baza asta starea S⁰, agentul RL ia un acțiunea A⁰, să zicem – agentul nostru RL se mișcă la dreapta. Inițial, acest lucru este aleatoriu.
  • Acum, mediul se află într-o stare nouă (nou cadru de la Mario sau motorul jocului)
  • Mediul dă ceva recompensa R¹ către agentul RL. Probabil dă +1 pentru că agentul nu este încă mort.

Această buclă RL continuă până când suntem morți sau ajungem la destinație și scoate continuu o secvență de stare, acțiune și recompensă.

Scopul de bază al agentului nostru RL este de a maximiza recompensa.

Maximizarea recompenselor

Agentul RL funcționează practic pe o ipoteză de maximizare a recompensei. De aceea, învățarea prin întărire ar trebui să aibă cea mai bună acțiune posibilă pentru a maximiza recompensa.

Recompensele cumulative la fiecare pas cu acțiunea respectivă sunt scrise ca:

1611164291 605 O scurta introducere in invatarea prin intarire

Cu toate acestea, lucrurile nu funcționează în acest fel atunci când însumăm toate recompensele.

Să înțelegem acest lucru, în detaliu:

1611164291 583 O scurta introducere in invatarea prin intarire

Să spunem că agentul nostru RL (mouse-ul robot) se află într-un labirint care conține brânză, electrocutări și pisici. Scopul este de a mânca cantitatea maximă de brânză înainte de a fi consumată de pisică sau de a primi un șoc electric.

Pare evident să mâncăm brânza lângă noi, mai degrabă decât brânza aproape de pisică sau de șocul electric, deoarece cu cât suntem mai aproape de șocul electric sau de pisică, pericolul de a fi mort crește. Ca urmare, recompensa de lângă pisică sau șocul electric, chiar dacă este mai mare (mai multă brânză), vor fi reduse. Acest lucru se face din cauza factorului de incertitudine.

Are sens, nu?

Reducerea recompenselor funcționează astfel:

Definim o rată de actualizare numită gamma. Ar trebui să fie între 0 și 1. Cu cât gama este mai mare, cu atât reducerea este mai mică și invers.

Deci, recompensele noastre cumulate așteptate (reduse) sunt:

1611164291 858 O scurta introducere in invatarea prin intarire
Recompense cumulate așteptate

Sarcini și tipurile lor în învățarea prin întărire

A sarcină este o singură instanță a unei probleme de învățare de consolidare. Practic avem două tipuri de sarcini: continuu și episodic.

Sarcini continue

Acestea sunt tipurile de sarcini care continuă pentru totdeauna. De exemplu, un agent RL care face tranzacționare automată Forex / Bursă.

0*Rpz3cfDnays7p4 e
Fotografie de Chris Liverani pe Unsplash

În acest caz, agentul trebuie să învețe cum să aleagă cele mai bune acțiuni și să interacționeze simultan cu mediul. Nu există punct de plecare și stare finală.

Agentul RL trebuie să continue să ruleze până când decidem să îl oprim manual.

Sarcină episodică

În acest caz, avem un punct de plecare și un punct final numit starea terminală. Acest lucru creează un episod: o listă de state (S), acțiuni (A), recompense (R).

Pentru exemplu, jucând un joc de contra greva, unde ne împușcăm adversarii sau suntem uciși de ei. Îi împușcăm pe toți și finalizăm episodul sau suntem uciși. Deci, există doar două cazuri pentru completarea episoadelor.

Explorarea și exploatarea se schimbă

Există un concept important al explorării și exploatării care se schimbă în învățarea prin întărire. Explorarea se referă la găsirea mai multor informații despre un mediu, în timp ce exploatarea exploatează informații deja cunoscute pentru a maximiza recompensele.

Exemplu de viață reală: Spuneți că mergeți în același restaurant în fiecare zi. Ești practic exploatând. Dar, pe de altă parte, dacă căutați un restaurant nou de fiecare dată înainte de a merge la oricare dintre ele, atunci este explorare. Explorarea este foarte importantă pentru căutarea recompenselor viitoare care ar putea fi mai mari decât recompensele apropiate.

1611164292 930 O scurta introducere in invatarea prin intarire

În jocul de mai sus, mouse-ul nostru robotizat poate avea o cantitate bună de brânză mică (+0,5 fiecare). Dar în partea de sus a labirintului există o sumă mare de brânză (+100). Așadar, dacă ne concentrăm doar pe cea mai apropiată recompensă, șoarecele nostru robot nu va ajunge niciodată la suma mare de brânză – doar va exploata.

Dar dacă șoarecele robotizat face un pic de explorare, poate găsi marea recompensă, adică brânza mare.

Acesta este conceptul de bază al compromis de explorare și exploatare.

Abordări ale învățării prin întărire

Să înțelegem acum abordările pentru rezolvarea problemelor de învățare cu întărire. Practic, există 3 abordări, dar vom lua doar 2 abordări majore în acest articol:

1. Abordare bazată pe politici

În învățarea de consolidare bazată pe politici, avem o politică pe care trebuie să o optimizăm. Politica definește practic cum se comportă agentul:

1611164292 705 O scurta introducere in invatarea prin intarire

Învățăm o funcție de politică care ne ajută să mapăm fiecare stat la cea mai bună acțiune.

Profundând în politici, împărțim în continuare politicile în două tipuri:

  • Determinat: o politică într-un anumit stat va reveni întotdeauna aceeași acțiune (a). Înseamnă că este pre-mapat ca S = (s) ➡ A = (a).
  • Stochastic: Oferă o distribuție a probabilității pe diferite acțiuni. adică Politica stochastică ➡ p (A = a | S = s)

2. Bazat pe valoare

În RL bazat pe valori, scopul agentului este de a optimiza funcția de valoare V (s) care este definit ca o funcție care ne spune recompensa maximă viitoare așteptată de agent pe fiecare stat.

Valoarea fiecărui stat este suma totală a recompensei pe care un agent RL se poate aștepta să o colecteze în viitor, de la un anumit stat.

0*kvtRAhBZO h77Iw1

Agentul va utiliza funcția de valoare de mai sus pentru a selecta ce stare să aleagă la fiecare pas. Agentul va lua întotdeauna statul cu cea mai mare valoare.

În exemplul de mai jos, vedem că la fiecare pas, vom lua cea mai mare valoare pentru a ne atinge obiectivul: 1 3 4 ➡ 6 curând…

1611164292 851 O scurta introducere in invatarea prin intarire
Labirint

Jocul Pong – Un studiu de caz intuitiv

1611164292 147 O scurta introducere in invatarea prin intarire

Să luăm un exemplu din viața reală a jocului de pong. Acest studiu de caz vă va introduce doar în intuiția lui Cum funcționează învățarea de întărire. Nu vom intra în detalii în acest exemplu, dar în articolul următor cu siguranță vom săpa mai adânc.

Să presupunem că îl învățăm pe agentul nostru RL să joace jocul Pong.

Practic, alimentăm în cadrele jocului (stări noi) algoritmul RL și lăsăm algoritmul să decidă unde să urce sau să coboare. Se spune că această rețea este o rețea de politici, despre care vom discuta în următorul nostru articol.

1611164293 547 O scurta introducere in invatarea prin intarire

Metoda folosită pentru a antrena acest algoritm se numește gradient de politică. Alimentăm cadre aleatorii din motorul de joc, iar algoritmul produce o ieșire aleatorie care oferă o recompensă și aceasta este alimentată înapoi algoritmului / rețelei. Aceasta este o proces iterativ.

O sa discutam gradienți de politică în articolul următor cu detalii mai mari.

1611164293 920 O scurta introducere in invatarea prin intarire
Mediu = Motor de joc și Agent = Agent RL

În contextul jocului, tabloul de scor acționează ca o recompensă sau se întoarce agentului. Ori de câte ori agentul tinde să înscrie +1, înțelege că acțiunea întreprinsă de acesta a fost suficient de bună în starea respectivă.

Acum îl vom antrena pe agent să joace jocul de pong. Pentru început, ne vom hrăni într-o grămadă de cadre de joc (state) la rețea / algoritm și lăsați algoritmul să decidă acțiunea. Acțiunile inițiale ale agentului vor fi evident rele, dar agentul nostru poate avea uneori norocul de a înscrie un punct și ar putea fi un eveniment aleatoriu. Dar, datorită acestui eveniment norocos aleatoriu, primește o recompensă și acest lucru îl ajută pe agent să înțeleagă că seria de acțiuni a fost suficient de bună pentru a obține o recompensă.

1611164293 705 O scurta introducere in invatarea prin intarire
Rezultate în timpul antrenamentului

Deci, în viitor, agentul va întreprinde acțiuni care vor aduce o recompensă față de o acțiune care nu o va face. Intuitiv, agentul RL înclină să joace jocul.

1611164293 927 O scurta introducere in invatarea prin intarire
Sursa: OLEGIF.com

Limitări

În timpul antrenamentului agentului, atunci când un agent pierde un episod, atunci algoritmul va elimina sau reduce probabilitatea de a întreprinde toate seriile de acțiuni care au existat în acest episod.

1611164294 35 O scurta introducere in invatarea prin intarire
Demarcarea roșie Afișează toate acțiunile întreprinse într-un episod pierdut

Dar dacă agentul ar fi performat bine de la începutul episodului, dar tocmai datorită ultimelor 2 acțiuni, agentul a pierdut jocul, nu are sens să renunți la toate acțiunile. Mai degrabă are sens dacă eliminăm doar ultimele 2 acțiuni care au dus la pierdere.

1611164294 371 O scurta introducere in invatarea prin intarire
Demarcarea verde arată toate acțiunile care, unde corectă și Demarcarea roșie sunt acțiunea care ar trebui eliminată.

Aceasta se numește Problema atribuirii creditului. Această problemă apare din cauza unui setare de recompense rare. Adică, în loc să obținem o recompensă la fiecare pas, obținem recompensa la sfârșitul episodului. Deci, agentul trebuie să afle care acțiuni au fost corecte și care acțiune efectivă a dus la pierderea jocului.

Deci, datorită acestei setări de recompense rare în RL, algoritmul este foarte ineficient în eșantion. Acest lucru înseamnă că trebuie alimentate exemple uriașe de instruire, pentru a instrui agentul. Faptul este că setările de recompensă rare nu reușesc în multe circumstanțe din cauza complexității mediului.

Deci, se numește ceva modelarea recompenselor care este folosit pentru a rezolva acest lucru. Dar, din nou, modelarea recompenselor suferă, de asemenea, de unele restricții, deoarece trebuie să proiectăm o funcție de recompensă personalizată pentru fiecare joc.

Notă de închidere

Astăzi, învățarea prin întărire este un domeniu de studiu interesant. S-au făcut dezvoltări majore în domeniu, dintre care învățarea profundă prin întărire este una.

Vom acoperi învățarea profundă de consolidare în articolele noastre viitoare. Acest articol acoperă o mulțime de concepte. Vă rugăm să vă luați propriul timp pentru a înțelege conceptele de bază ale învățării prin întărire.

Dar aș vrea să menționez că armarea nu este o cutie neagră secretă. Orice progrese pe care le vedem astăzi în domeniul învățării prin întărire sunt rezultatul unor minți strălucitoare care lucrează zi și noapte pe aplicații specifice.

Data viitoare vom lucra la un agent Q-learning și vom acoperi, de asemenea, câteva lucruri de bază în învățarea prin întărire.

Până când, atunci vă bucurați de AI? …

Important : Acest articol este prima parte a seriei Deep Reinforcement Learning, seria Complete va fi disponibilă atât pe formularele citibile în text, cât și pe Mediu și în Formular explicativ video pe canalul meu de pe YouTube.

Pentru o înțelegere mai profundă și mai intuitivă a învățării prin întărire, vă recomand să urmăriți videoclipul de mai jos:

Abonați-vă la canalul meu YouTube Pentru mai multe videoclipuri AI: ADL .

Dacă ți-a plăcut articolul meu, te rugăm să dai clic pe ? As rămân motivat să scriu lucruri și vă rog să mă urmați pe Medium &

1611164294 56 O scurta introducere in invatarea prin intarire
1611164294 902 O scurta introducere in invatarea prin intarire
1611164295 265 O scurta introducere in invatarea prin intarire

Dacă aveți întrebări, vă rugăm să ne anunțați într-un comentariu de mai jos sau Stare de nervozitate. Abonați-vă la canalul meu YouTube pentru mai multe videoclipuri tehnice: ADL .