de ADL

O introducere în Q-Learning: învățare prin întărire

O introducere in Q Learning invatare prin intarire
Fotografie de Daniel Cheung pe Unsplash.

Acest articol este a doua parte a seriei mele „Învățare profundă prin întărire”. Seria completă va fi disponibilă atât pe Mediu și în videoclipuri pe canalul meu YouTube.

În prima parte a seriei am învățat elementele de bază ale învățării prin întărire.

Q-learning este un algoritm de învățare bazat pe valori în învățarea prin întărire. În acest articol, aflăm despre Q-Learning și detaliile sale:

  • Ce este Q-Learning?
  • Matematica din spatele Q-Learning
  • Implementare folosind python

Q-Learning – o prezentare simplistă

Să spunem că a robot trebuie să traverseze o labirint și ajunge la punctul final. Sunt mine, iar robotul poate muta o singură țiglă pe rând. Dacă robotul pășește pe o mină, robotul este mort. Robotul trebuie să atingă punctul final în cel mai scurt timp posibil.

Sistemul de scor / recompensă este după cum urmează:

  1. Robotul pierde 1 punct la fiecare pas. Acest lucru se face astfel încât robotul să ia cea mai scurtă cale și să atingă obiectivul cât mai repede posibil.
  2. Dacă robotul calcă pe o mină, pierderea punctului este de 100 și jocul se termină.
  3. Dacă robotul primește putere ⚡️, câștigă 1 punct.
  4. Dacă robotul atinge scopul final, robotul obține 100 de puncte.

Acum, întrebarea evidentă este: Cum pregătim un robot pentru a atinge scopul final cu cea mai scurtă cale fără a păși pe o mină?

O introducere in Q Learning invatare prin intarire

Deci, cum rezolvăm acest lucru?

Vă prezentăm Q-Table

Q-Table este doar un nume de lux pentru un simplu tabel de căutare în care calculăm recompensele viitoare maxime așteptate pentru acțiune în fiecare stare. Practic, acest tabel ne va ghida către cea mai bună acțiune în fiecare stat.

1611593168 329 O introducere in Q Learning invatare prin intarire

Vor fi patru numere de acțiuni la fiecare țiglă non-margine. Când un robot se află într-o stare, acesta se poate deplasa în sus sau în jos sau la dreapta sau la stânga.

Deci, să modelăm acest mediu în tabelul nostru Q.

În Tabelul Q, coloanele sunt acțiunile, iar rândurile sunt stările.

1611593168 169 O introducere in Q Learning invatare prin intarire

Fiecare scor al tabelului Q va fi recompensa maximă viitoare așteptată pe care o va obține robotul dacă ia acțiunea respectivă în acea stare. Acesta este un proces iterativ, deoarece trebuie să îmbunătățim Q-Table la fiecare iterație.

Dar întrebările sunt:

  • Cum calculăm valorile tabelului Q?
  • Valorile sunt disponibile sau predefinite?

Pentru a afla fiecare valoare a tabelului Q, folosim Algoritm Q-Learning.

Matematică: algoritmul Q-Learning

Funcția Q

Funcția Q folosește ecuația Bellman și ia două intrări: state (s) și acțiune (A).

1611593168 116 O introducere in Q Learning invatare prin intarire

Folosind funcția de mai sus, obținem valorile lui Î pentru celulele din tabel.

Când începem, toate valorile din tabelul Q sunt zerouri.

Există un proces iterativ de actualizare a valorilor. Pe măsură ce începem să explorăm mediul înconjurător, funcția Q ne oferă aproximări din ce în ce mai bune prin actualizarea continuă a valorilor Q din tabel.

Acum, să înțelegem cum are loc actualizarea.

Introducerea procesului algoritmului Q-learning

1611593168 949 O introducere in Q Learning invatare prin intarire

Fiecare dintre cutiile colorate este un pas. Să înțelegem fiecare dintre acești pași în detaliu.

Pasul 1: inițializați Q-Table

Mai întâi vom construi un tabel Q. Există n coloane, unde n = numărul de acțiuni. Există m rânduri, unde m = numărul de stări. Vom inițializa valorile la 0.

1611593169 932 O introducere in Q Learning invatare prin intarire
1611593169 84 O introducere in Q Learning invatare prin intarire

În exemplul nostru de robot, avem patru acțiuni (a = 4) și cinci stări (s = 5). Deci, vom construi un tabel cu patru coloane și cinci rânduri.

Pașii 2 și 3: alegeți și efectuați o acțiune

Această combinație de pași se face pentru o perioadă de timp nedefinită. Aceasta înseamnă că acest pas rulează până când oprim antrenamentul sau bucla de antrenament se oprește așa cum este definit în cod.

Vom alege o acțiune (a) în stat (e) pe baza Tabelului Q. Dar, așa cum am menționat anterior, când episodul începe inițial, fiecare valoare Q este 0.

Așadar, acum intră în joc conceptul de compromis de explorare și exploatare. Acest articol are mai multe detalii.

Vom folosi ceva numit strategie lacomă epsilon.

La început, ratele de epsilon vor fi mai mari. Robotul va explora mediul și va alege la întâmplare acțiuni. Logica din spatele acestui lucru este că robotul nu știe nimic despre mediu.

Pe măsură ce robotul explorează mediul, rata epsilon scade și robotul începe să exploateze mediul.

În timpul procesului de explorare, robotul devine progresiv mai încrezător în estimarea valorilor Q.

Pentru exemplul robotului, există patru acțiuni din care să alegeți: sus, jos, stânga și dreapta. Începem instruirea acum – robotul nostru nu știe nimic despre mediu. Deci robotul alege o acțiune aleatorie, să spunem corect.

1611593169 822 O introducere in Q Learning invatare prin intarire

Acum putem actualiza valorile Q pentru a fi la început și pentru a vă deplasa la dreapta folosind ecuația Bellman.

Pașii 4 și 5: evaluați

Acum am luat o acțiune și am observat un rezultat și o recompensă. Trebuie să actualizăm funcția Q (s, a).

1611593169 477 O introducere in Q Learning invatare prin intarire

În cazul jocului robot, a repeta structura de scor / recompensă este:

  • putere = +1
  • A mea = -100
  • Sfârșit = +100
1611593169 887 O introducere in Q Learning invatare prin intarire
1611593170 831 O introducere in Q Learning invatare prin intarire

Vom repeta acest lucru din nou și din nou până când învățarea este oprită. În acest fel, tabelul Q va fi actualizat.

Implementarea Python a Q-Learning

Conceptul și implementarea codului sunt explicat în videoclipul meu.

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

În sfârșit … să recapitulăm

  • Q-Learning este un algoritm de învățare de consolidare bazat pe valori, care este utilizat pentru a găsi politica optimă de selecție a acțiunii utilizând o funcție Q.
  • Scopul nostru este de a maximiza funcția de valoare Q.
  • Tabelul Q ne ajută să găsim cea mai bună acțiune pentru fiecare stat.
  • Ajută la maximizarea recompensei așteptate prin selectarea celor mai bune acțiuni posibile.
  • Q (stare, acțiune) returnează recompensa viitoare așteptată a acțiunii respective în acea stare.
  • Această funcție poate fi estimată folosind Q-Learning, care actualizează iterativ Q (s, a) folosind Ecuația lui Bellman.
  • Inițial explorăm mediul și actualizăm Q-Table. Când Q-Table este gata, agentul va începe să exploateze mediul și va începe să ia măsuri mai bune.

Data viitoare vom lucra la un exemplu profund de Q-learning.

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

Important: După cum sa menționat anterior, acest articol este a doua parte a seriei mele „Deep Reinforcement Learning”. Seria completă va fi disponibilă atât în ​​articole despre Mediu și în videoclipuri pe canalul meu YouTube.

Dacă ți-a plăcut articolul meu, vă rugăm să faceți clic pe? to ajută-mă să rămân motivat să scriu articole. Vă rog să mă urmați pe Medium și alte rețele sociale:

1611593170 194 O introducere in Q Learning invatare prin intarire
1611593170 427 O introducere in Q Learning invatare prin intarire
1611593170 430 O introducere in Q Learning invatare prin intarire

Dacă aveți întrebări, vă rugăm să ne anunțați într-un comentariu de mai jos sau pe Stare de nervozitate.

Aboneaza-te la canalul meu YouTube pentru mai multe videoclipuri tehnologice.