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ă.Melo, Francisco S. „Convergence of Q-learning: a simple proof” (PDF). Arhivat din original (PDF) la 18 noiembrie 2017. Accesat la 18 ianuarie 2026. 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ă.

Învățarea prin întărire (Reinforcement Learning) Î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ă.

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.

Algoritm miniatura|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.|552x552pxDupă 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:

Alege o acțiune At​ Linia 35 ⟶ 34: 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ă:

unde: Linia 42 ⟶ 41: α este rata de învățare, cuprinsă între .

Componentele actualizării Q

(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 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 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.

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.

Condiții inițiale (Q₀) 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.

Prima recompensă r poate fi folosită pentru a reseta condițiile inițiale. 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).

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

Implementare Linia 102 ⟶ 101:

Aproximarea funcțiilor Q-learning poate fi combinat cu aproximarea funcțiilor. 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.

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.

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: viteza acestuia, unghiul bățului, viteza unghiulară a bățului.

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).

Istoric Q-learning a fost introdus de Chris Watkins în 1989. O demonstrație a convergenței a fost prezentată de Watkins și Peter Dayan în 1992, bazându-se pe teza de doctorat a lui Watkins, Learning from Delayed Rewards. 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.

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:

În starea s, se execută acțiunea a; Linia 147 ⟶ 146: 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.

În 2014, Google DeepMind a patentat 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.

Variante

Deep Q-learning 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. 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ă.

Double Q-learning Î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 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), așa cum se întâmplă în algoritmul DQN, rezultând Double DQN, care depășește performanțele algoritmului DQN original. Alte variante