Sari la conținut

Q-learning

De la Wikipedia, enciclopedia liberă

Q-learning este un algoritm de învățare prin recompensă (reinforcement learning) care antrenează un agent să atribuie valori acțiunilor posibile, în funcție de starea curentă, fără a necesita un model al mediului (este model-free). Poate gestiona probleme cu tranziții și recompense stocastice, fără a necesita adaptări suplimentare.

De exemplu, într-un labirint sub formă de grilă, un agent învață să ajungă la o ieșire care valorează 10 puncte. La o intersecție, Q-learning ar putea atribui o valoare mai mare acțiunii de a merge spre dreapta decât spre stânga, dacă dreapta duce mai repede la ieșire, îmbunătățindu-și astfel alegerea prin testarea ambelor direcții în timp.

Pentru orice proces decizional Markovian finit (finite Markov decision process), Q-learning găsește o politică optimă în sensul maximizării valorii așteptate a recompensei totale pe oricare și toate pașii succesivi, începând din starea curentă.[2] Q-learning poate identifica o politică optimă de selecție a acțiunilor pentru orice astfel de proces decizional finit, cu condiția unui timp de explorare infinit și a unei politici parțial aleatorii.

„Q” se referă la funcția pe care algoritmul o calculează: recompensa așteptată – adică calitatea – unei acțiuni efectuate într-o stare dată.[1]

Învățarea prin întărire (Reinforcement Learning)

[modificare | modificare sursă]

Învățarea prin întărire implică un agent, un set de stări S, și un set A de acțiuni posibile pentru fiecare stare. Prin executarea unei acțiuni a∈A, agentul face tranziții între stări. Realizarea unei acțiuni într-o stare anume oferă agentului o recompensă (un scor numeric).

Scopul agentului este să maximizeze recompensa totală. Pentru a face acest lucru, agentul adaugă recompensa obținută în starea curentă la recompensa maximă posibilă din stările viitoare, influențând astfel acțiunea actuală prin potențialele recompense viitoare. Această recompensă potențială este o sumă ponderată a valorilor așteptate ale recompenselor tuturor pașilor viitori, începând din starea actuală.[2]

Să luăm ca exemplu procesul de îmbarcare într-un tren, unde recompensa este exprimată ca fiind negativul timpului total petrecut pentru îmbarcare (alternativ, costul îmbarcării este egal cu durata acesteia). O strategie este să intri imediat ce ușile trenului se deschid, minimizând timpul de așteptare inițial. Totuși, dacă trenul este aglomerat, vei înainta greu după ce ai intrat, deoarece alți pasageri vor încerca să coboare în același timp.

Imaginea ilustrează un tabel Q-Learning care reprezintă stările și acțiunile, inițial completat cu zerouri. Fiecare celulă din tabel este actualizată treptat în timpul antrenamentului, pe baza experiențelor agentului.

După un număr de pași Δt în viitor, agentul va decide următoarea acțiune. Ponderea acestei acțiuni se calculează ca γΔt, unde γ (factorul de reducere sau discount factor) este un număr între 0 și 1, adică 0≤γ≤1. Dacă γ<1, aceasta are efectul de a valora mai mult recompensele obținute mai devreme, reflectând importanța unui „început bun”. γ poate fi interpretat și ca probabilitatea de a reuși (sau de a supraviețui) la fiecare pas Δt.

Algoritmul utilizează o funcție care calculează calitatea unei combinații stare–acțiune:

.

Înainte de începerea procesului de învățare, funcția Q este inițializată cu o valoare fixă (aleasă de programator). Apoi, la fiecare moment de timp t, agentul:

  1. Alege o acțiune At​

Linia 35 ⟶ 34:

  1. Actualizează funcția Q

Actualizarea Q se face cu o variantă simplificată a ecuației Bellman, care folosește o medie ponderată între valoarea curentă și informația nouă:[3]

unde: Linia 42 ⟶ 41:

  • α este rata de învățare, cuprinsă între .

Componentele actualizării Q

[modificare | modificare sursă]
  • (1−α)⋅Q(St​,At​): valoarea actuală, ponderată cu (1 - rata de învățare)
  • α⋅Rt+1​: recompensa primită, ponderată cu rata de învățare
  • α⋅γ⋅maxa​Q(St+1​,a): valoarea estimată maximă din starea următoare, ponderată cu rata de învățare și factorul de reducere

Finalul unui episod

[modificare | modificare sursă]

Un episod se încheie când agentul ajunge într-o stare finală St+1​. Totuși, Q-learning poate învăța și în sarcini ne-episodice, datorită proprietății de convergență a seriilor infinite. Dacă γ<1, valorile Q rămân finite, chiar dacă există bucle infinite în problemă.

Pentru toate stările finale sf​, valorile Q(sf​,a) nu sunt actualizate, ci sunt setate direct la valoarea recompensei r observate în acea stare. În majoritatea cazurilor, se poate considera că Q(sf​,a)=0.

Influența variabilelor

[modificare | modificare sursă]

Linia 75 ⟶ 74: Dacă γ≥1, valorile acțiunilor pot diverge.

Pentru γ=1, dacă nu există o stare finală sau agentul nu ajunge niciodată la una, toate traseele posibile devin infinit de lungi, iar utilitățile obținute din recompense aditive (nediscountate) devin, în general, infinite.[4]

Chiar și cu un factor de reducere doar ușor mai mic decât 1, învățarea funcției Q poate duce la propagarea erorilor și instabilități, mai ales atunci când funcția de valoare este aproximată cu o rețea neuronală artificială.

În acest caz, pornirea cu un factor de reducere mai mic și creșterea sa progresivă accelerează procesul de învățare.[5]

Condiții inițiale (Q₀)

[modificare | modificare sursă]

Deoarece Q-learning este un algoritm iterativ, el presupune implicit o condiție inițială înainte de prima actualizare.

Valori inițiale ridicate – cunoscute drept „condiții inițiale optimiste” – pot încuraja explorarea: indiferent de acțiunea selectată, regula de actualizare o va penaliza (va scădea valoarea), ceea ce face ca alte acțiuni să devină mai atractive în alegerile viitoare.[6]

Prima recompensă r poate fi folosită pentru a reseta condițiile inițiale.[7] Prima recompensă r poate fi folosită pentru a reseta condițiile inițiale.

Potrivit acestei idei, prima dată când o acțiune este aleasă, recompensa obținută este folosită pentru a seta valoarea funcției Q. Linia 92 ⟶ 91: Aceasta permite o învățare imediată în cazul în care recompensele sunt fixe și deterministe.

Un model care include resetarea condițiilor inițiale (RIC) se așteaptă să prezică mai bine comportamentul participanților decât un model care presupune condiții inițiale arbitrare (AIC).[7]

RIC pare a fi consisten cu comportamentul uman observat în experimente repetate cu alegeri binare.[7]

Linia 102 ⟶ 101:

Aproximarea funcțiilor

[modificare | modificare sursă]

Q-learning poate fi combinat cu aproximarea funcțiilor.[8] Q-learning poate fi combinat cu aproximarea funcțiilor.

Aceasta permite aplicarea algoritmului la probleme mai mari, chiar și atunci când spațiul stărilor este continuu.[9]

  • O soluție este folosirea unei rețele neuronale artificiale adaptate ca aproximator de funcție.
  • O altă posibilitate este integrarea Interpolării Regulilor Fuzzy (FRI) și utilizarea de baze de reguli fuzzy rare, în locul tabelelor Q discrete sau rețelelor neuronale. Avantajul acestei metode este că oferă o formă de reprezentare a cunoștințelor ușor de înțeles pentru oameni.[10]

Aproximarea funcțiilor poate accelera învățarea în probleme finite, deoarece algoritmul poate generaliza experiențele anterioare la stări nevizitate anterior. Linia 121 ⟶ 120:

Acestea formează un vector cu patru elemente, care codifică o fotografie a stării în acel moment. Problema este că există infinit de multe stări posibile. Linia 127 ⟶ 126: Pentru a reduce spațiul de căutare, valorile pot fi împărțite în intervale (bucket-uri).

De exemplu, distanța exactă a degetului față de poziția inițială (de la -∞ la +∞) nu este stocată, ci doar dacă este departe sau aproape (Aproape, Departe).[11]

Q-learning a fost introdus de Chris Watkins în 1989.[12]

O demonstrație de convergență a fost prezentată de Watkins și Peter Dayan în 1992.[13]

Watkins aborda problema „Învățării din recompense întârziate”, titlul tezei sale de doctorat. Cu opt ani mai devreme, în 1981, aceeași problemă — sub denumirea de „învățare prin întărire întârziată” — fusese rezolvată prin sistemul Crossbar Adaptive Array (CAA) al lui Bozinovski.[14][15]

Matricea de memorie W=‖w(a,s)‖ era echivalentă cu ceea ce avea să devină mai târziu tabela Q în Q-learning. Linia 140 ⟶ 139: Arhitectura CAA a introdus pentru prima dată termenul de „evaluare a stării” în învățarea prin întărire.

Algoritmul de învățare crossbar, exprimat în pseudocod matematic în articolul original, efectua următorii pași la fiecare iterație:

  1. În starea s, se execută acțiunea a;

Linia 147 ⟶ 146:

  1. Se actualizează valoarea în rețea: w′(a,s)=w(a,s)+v(s′).

Termenul „întărire secundară” este împrumutat din teoria învățării la animale, fiind utilizat pentru a modela valorile stărilor prin propagare inversă:

Valoarea stării v(s′) a unei situații rezultate este propagată înapoi la stările anterioare. Linia 155 ⟶ 154: Graficele de demonstrare a învățării prin întărire întârziată conțineau stări dezirabile, nedorite și neutre, evaluate prin funcția de evaluare a stării.

Acest sistem de învățare a fost un predecesor direct al algoritmului Q-learning.[16]

În 2014, Google DeepMind a patentat[17] o aplicație a Q-learning în învățarea profundă (deep learning), intitulată „deep reinforcement learning” sau „deep Q-learning”, capabilă să joace jocuri Atari 2600 la un nivel comparabil cu cel al experților umani.

Deep Q-learning

[modificare | modificare sursă]

Sistemul DeepMind a folosit o rețea neuronală convoluțională profundă, cu straturi de filtre convoluționale distribuite (tiled), pentru a imita efectele câmpurilor receptive.

Învățarea prin întărire devine instabilă sau divergentă atunci când se folosește un aproximator de funcție neliniar, cum este o rețea neuronală, pentru a reprezenta Q.

Această instabilitate apare din cauza:

  • corelațiilor prezente în secvența de observații;
  • faptului că modificări mici ale lui Q pot schimba semnificativ politica agentului și distribuția datelor;
  • existenței de corelații între Q și valorile-țintă.

Această metodă poate fi utilizată pentru căutare stocastică în diverse domenii și aplicații.[2][18] Această metodă poate fi utilizată pentru căutare stocastică în diverse domenii și aplicații.

Tehnica a utilizat replay al experienței (experience replay) — un mecanism inspirat biologic, care selectează aleatoriu acțiuni anterioare în loc să folosească doar cea mai recentă acțiune.

Aceasta elimină corelațiile din secvențele de observații și netezește schimbările din distribuția datelor. Actualizările iterative ajustează Q către valori-țintă care sunt actualizate periodic, reducând astfel corelațiile cu valoarea-țintă.[19]

Double Q-learning

[modificare | modificare sursă]

În Q-learning clasic, valoarea acțiunii maxime viitoare este evaluată folosind aceeași funcție Q ca și cea utilizată pentru selectarea acțiunii curente.

În medii zgomotoase, acest lucru poate duce la supraestimarea valorilor acțiunilor, ceea ce încetinește învățarea.

Pentru a corecta acest comportament, a fost propusă o variantă numită Double Q-learning.

Double Q-learning[20] este un algoritm off-policy de învățare prin întărire, în care separarea politicii de evaluare a valorii față de politica de alegere a acțiunii reduce erorile de estimare.

În practică, se antrenează două funcții de valoare separate, notate:

  • QA
  • QA
  • QB
  • QB

Acestea sunt antrenate simetric și independent, folosind experiențe separate.

Pasul de actualizare în Double Q-learning este astfel modificat pentru a reduce părtinirile din estimarea valorilor maxime. Linia 198 ⟶ 197:

și

Acum, valoarea estimată a viitorului (atenuat prin factorul de reducere) este evaluată folosind o politică diferită, ceea ce rezolvă problema supraestimării. Acest algoritm a fost ulterior modificat în 2015 și combinat cu învățarea profundă (deep learning),[21] așa cum se întâmplă în algoritmul DQN, rezultând Double DQN, care depășește performanțele algoritmului DQN original.[22]

Alte variante

[modificare | modificare sursă]

Delayed Q-learning este o implementare alternativă a algoritmului Q-learning online, cu învățare probabil aproximativ corectă (PAC – Probably Approximately Correct).[23] Greedy GQ este o variantă a Q-learning destinată utilizării în combinație cu aproximația funcțională (liniară).[24] Avantajul Greedy GQ este că convergența este garantată, chiar și atunci când aproximația funcțională este folosită pentru a estima valorile acțiunilor. Distributional Q-learning este o variantă a Q-learning care caută să modeleze distribuția recompenselor (returns) în loc de valoarea așteptată a fiecărei acțiuni. S-a observat că această metodă facilitează estimarea prin rețele neuronale profunde și poate permite metode alternative de control, cum ar fi controlul sensibil la risc.[25]

Învățare multi-agent

[modificare | modificare sursă]

Q-learning a fost propus și în contextul multi-agent (vezi Secțiunea 4.1.2 din "[26]"). O abordare constă în a presupune că mediul este pasiv.[27] Littman propune algoritmul minimax Q-learning.[28]

Algoritmul Q-learning standard (folosind un Q-table) se aplică doar pentru spații de acțiuni și stări discrete. Discretizarea acestor valori duce la învățare ineficientă, în mare parte din cauza blestemului dimensionalității (curse of dimensionality). Totuși, există adaptări ale Q-learning care încearcă să rezolve această problemă, cum ar fi Wire-fitted Neural Network Q-Learning.[29]

  1. ^ „Wayback Machine”. neuro.cs.ut.ee. Accesat în . 
  2. ^ a b Eroare la citare: Etichetă <ref> invalidă; niciun text nu a fost furnizat pentru referințele numite :0
  3. ^ Thomas G. Dietterich. „Hierarchical Reinforcement Learning with the MAXQ Value Function Decomposition”. Cornell University. Accesat în 15 Iulie 2025.  Verificați datele pentru: |access-date= (ajutor)
  4. ^ Russell, Stuart J.; Norvig, Peter; Davis, Ernest (), Artificial intelligence: a modern approach, Prentice Hall series in artificial intelligence (ed. 3rd ed), Prentice Hall, ISBN 978-0-13-604259-4, accesat în  
  5. ^ Francois-Lavet, Vincent; Fonteneau, Raphael; Ernst, Damien (2014-12), Using approximate dynamic programming for estimating the revenues of a hydrogen-based high-capacity storage device, IEEE, pp. 1–8, doi:10.1109/adprl.2014.7010624, accesat în 15 iulie 2025  Verificați datele pentru: |date= (ajutor)
  6. ^ „2.7 Optimistic Initial Values”. webdocs.cs.ualberta.ca. Arhivat din original la . Accesat în . 
  7. ^ a b c Shteingart, Hanan; Neiman, Tal; Loewenstein, Yonatan (), „The role of first impression in operant learning.”, Journal of Experimental Psychology: General (în engleză), 142 (2), pp. 476–488, doi:10.1037/a0029550, ISSN 1939-2222, accesat în  
  8. ^ Wiering, Marco; Otterlo, Martijn van (), Reinforcement Learning: State-of-the-Art (în engleză), Springer Science & Business Media, ISBN 978-3-642-27645-3, accesat în  
  9. ^ Tesauro, Gerald (), „Temporal difference learning and TD-Gammon”, Commun. ACM, 38 (3), pp. 58–68, doi:10.1145/203330.203343, ISSN 0001-0782, accesat în  
  10. ^ Vincze, David (2017-01), Fuzzy rule interpolation and reinforcement learning, IEEE, pp. 000173–000178, doi:10.1109/SAMI.2017.7880298, ISBN 978-1-5090-5655-2, accesat în 15 iulie 2025  Verificați datele pentru: |date= (ajutor)
  11. ^ Krishnan, Srivatsan; Wan, Zishen; Bhardwaj, Kshitij; Whatmough, Paul; Faust, Aleksandra; Neuman, Sabrina; Wei, Gu-Yeon; Brooks, David; Reddi, Vijay Janapa (2022-10), Automatic Domain-Specific SoC Design for Autonomous Unmanned Aerial Vehicles, IEEE, doi:10.1109/micro56248.2022.00033, accesat în 15 iulie 2025  Verificați datele pentru: |date= (ajutor)
  12. ^ Watkins, Christopher John Cornish Hellaby. (1989), Learning from delayed rewards., accesat în 2025-07-15]  Verificați datele pentru: |access-date= (ajutor)
  13. ^ Watkins, Christopher J. C. H.; Dayan, Peter (), „Q-learning”, Machine Learning (în engleză), 8 (3), pp. 279–292, doi:10.1007/BF00992698, ISSN 1573-0565, accesat în  
  14. ^ Dobnikar, Andrej; Steele, Nigel C.; Pearson, David W.; Albrecht, Rudolf F. (), Artificial Neural Nets and Genetic Algorithms: Proceedings of the International Conference in Portorož, Slovenia, 1999 (în engleză), Springer Science & Business Media, ISBN 978-3-211-83364-3, accesat în  
  15. ^ Trappl, Robert (), Cybernetics and Systems Research: Proceedings of the Sixth European Meeting on Cybernetics and Systems Research (în engleză), North Holland, ISBN 978-0-444-86488-8, accesat în  
  16. ^ Omidvar, Omid; Elliott, David L. (), Neural Systems for Control (în engleză), Elsevier, ISBN 978-0-08-053739-9, accesat în  
  17. ^ Volodymyr MNIH; Koray KAVUKCUOGLU. „METHODS AND APPARATUS FOR REINFORCEMENT LEARNING”. 
  18. ^ Matzliach, Barouch; Ben-Gal, Irad; Kagan, Evgeny (2022-08), „Detection of Static and Mobile Targets by an Autonomous Agent with Deep Q-Learning Abilities”, Entropy (în engleză), 24 (8), p. 1168, doi:10.3390/e24081168, accesat în 15 iulie 2025  Verificați datele pentru: |date= (ajutor)
  19. ^ Mnih, Volodymyr; Kavukcuoglu, Koray; Silver, David; Rusu, Andrei A.; Veness, Joel; Bellemare, Marc G.; Graves, Alex; Riedmiller, Martin; Fidjeland, Andreas K. (2015-02), „Human-level control through deep reinforcement learning”, Nature (în engleză), 518 (7540), pp. 529–533, doi:10.1038/nature14236, ISSN 0028-0836, accesat în 15 iulie 2025  Verificați datele pentru: |date= (ajutor)
  20. ^ Hasselt, Hado (), Double Q-learning, 23], Curran Associates, Inc., accesat în  
  21. ^ Van Hasselt, Hado; Guez, Arthur; Silver, David (), „Deep Reinforcement Learning with Double Q-Learning”, Proceedings of the AAAI Conference on Artificial Intelligence, 30 (1), doi:10.1609/aaai.v30i1.10295, ISSN 2374-3468, accesat în  
  22. ^ Hado van Hasselt; Arthur Guez; David Silver. „Deep Reinforcement Learning with Double Q-learning”. Cornell University. Accesat în 15 Iulie 2025.  Verificați datele pentru: |access-date= (ajutor)
  23. ^ Strehl, Alexander L.; Li, Lihong; Wiewiora, Eric; Langford, John; Littman, Michael L. (), PAC model-free reinforcement learning, ACM Press, pp. 881–888, doi:10.1145/1143844.1143955, accesat în  
  24. ^ Sutton, Richard S.; Maei, Hamid Reza; Precup, Doina; Bhatnagar, Shalabh; Silver, David; Szepesvári, Csaba; Wiewiora, Eric (), Fast gradient-descent methods for temporal-difference learning with linear function approximation, ACM, pp. 993–1000, doi:10.1145/1553374.1553501, accesat în  
  25. ^ Hessel, Matteo; Modayil, Joseph; Hasselt, Hado van; Schaul, Tom; Ostrovski, Georg; Dabney, Will; Horgan, Dan; Piot, Bilal; Azar, Mohammad (), „Rainbow: Combining Improvements in Deep Reinforcement Learning”, Proceedings of the AAAI Conference on Artificial Intelligence (în engleză), 32 (1), doi:10.1609/aaai.v32i1.11796, ISSN 2374-3468, accesat în  
  26. ^ Shoham, Yoav; Powers, Rob; Grenager, Trond (), „If multi-agent learning is the answer, what is the question?”, Artif. Intell., 171 (7), pp. 365–377, doi:10.1016/j.artint.2006.02.006, ISSN 0004-3702, accesat în  
  27. ^ Sen, Sandip; Sekaran, Mahendra; Hale, John (), Learning to coordinate without sharing information, AAAI'94, AAAI Press, pp. 426–431, doi:10.5555/2891730.2891796, accesat în  
  28. ^ Littman, Michael L. (), Markov games as a framework for multi-agent reinforcement learning, ICML'94, Morgan Kaufmann Publishers Inc., pp. 157–163, doi:10.5555/3091574.3091594, ISBN 978-1-55860-335-6, accesat în  
  29. ^ Gaskett, Chris; Wettergreen, David; Zelinsky, Alexander (), „Q-Learning in Continuous State and Action Spaces”, Lecture Notes in Computer Science, Springer Berlin Heidelberg, pp. 417–428, ISBN 978-3-540-66822-0, accesat în