Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Aprenentatge per reforç

Material d’ampliació: no forma part del recorregut principal d’aquest bloc.

Què és l’aprenentatge per reforç?

Imagina que has de programar un helicòpter autònom. Cada dècima de segon reps l’estat del vehicle (posició, orientació, velocitat) i has de decidir com moure els dos comandaments per mantenir-lo estable. Quina és l’acció correcta en cada moment? Ningú no ho sap del cert, i per tant no tenim un dataset amb la resposta per a cada situació, com caldria en l’aprenentatge supervisat.

L’aprenentatge per reforç (reinforcement learning, RL) resol el problema d’una altra manera: no li diem al sistema què ha de fer, sinó com de bé ho està fent. És com ensinistrar un gos: quan fa una cosa bé, rep un premi; quan la fa malament, no. Amb el temps aprèn quins comportaments porten a més premis.

Els elements bàsics són:

  • Un agent: el sistema que pren decisions (l’helicòpter, un robot, un programa que juga).
  • Un estat \(s\): una fotografia de la situació en un instant concret. Per a l’helicòpter, la posició, l’orientació i la velocitat.
  • Una acció \(a\): el que l’agent decideix fer en aquell estat.
  • Una recompensa (reward): un número que diu si l’agent ho està fent bé. Per exemple, +1 per cada segon de vol estable i -1000 si s’estavella.
  • Una política \(\pi\): la regla que, per a cada estat, diu quina acció prendre, \(\pi(s) = a\). És el que volem aprendre.

La idea clau: no cal especificar l’acció correcta a cada estat. N’hi ha prou de definir la recompensa, i l’algoritme aprèn sol quines accions la fan més gran. Un robot amb potes, per exemple, pot aprendre a caminar sense que ningú li programi com moure-les: només rep recompensa quan avança.

Aplicacions

  • Robòtica i control: drons, braços robòtics, robots amb potes.
  • Jocs: dels escacs i el Go (AlphaGo) als videojocs.
  • Optimització de sistemes: gestió d’energia, logística, recomanacions que maximitzen la satisfacció a llarg termini.
  • Ajust dels LLMs: després del preentrenament, els models de llenguatge s’ajusten amb aprenentatge per reforç. Amb RLHF (reinforcement learning from human feedback) la recompensa ve d’un model entrenat amb preferències humanes. Amb RLVR (reinforcement learning with verifiable rewards) ve d’una comprovació automàtica, per exemple si la resposta a un problema de matemàtiques és correcta. És una part important de com s’entrenen els models de raonament actuals. Ho expliquem a Transformers i Models de Llenguatge.

Un exemple: el rover de Mart

Farem servir un exemple molt simplificat. Un rover (vehicle d’exploració) es mou per una línia de sis posicions. Cada posició és un estat, de l’1 al 6, i el rover comença a l’estat 4.

Alguns estats són interessants per a la ciència i donen recompensa:

Estat123456
Recompensa \(R(s)\)100000040

A cada pas, el rover només pot fer dues accions: anar a l’esquerra (←) o a la dreta (→). Quan arriba a l’estat 1 o al 6, el dia s’acaba: són estats terminals, i després ja no hi ha més moviments ni recompenses.

Si va a l’esquerra des de l’estat 4, passa pels estats 4, 3, 2 i 1, i rep les recompenses 0, 0, 0 i 100. Si va a la dreta, passa pels estats 4, 5 i 6, i rep 0, 0 i 40.

A cada pas passa sempre el mateix: l’agent és en un estat \(s\), pren una acció \(a\), rep la recompensa \(R(s)\) de l’estat on és i arriba a un nou estat \(s’\). Per exemple, \((4, \leftarrow, 0, 3)\). Aquest quartet (estat, acció, recompensa, nou estat) és la peça bàsica de tots els algoritmes d’aprenentatge per reforç.

El retorn

Quina opció és millor: 100 punts a tres passos o 40 punts a dos? Per comparar-les sumem les recompenses, però donant menys valor a les que arriben més tard.

Analogia: tens un bitllet de 5 € als peus i un de 10 € a mitja hora caminant. Tot i que 10 > 5, la recompensa immediata és temptadora. El mateix passa amb els diners: 1 € avui val més que 1 € d’aquí a un any.

El retorn \(G\) és la suma de les recompenses, cadascuna multiplicada per un factor de descompte \(\gamma\) (gamma) tantes vegades com passos hagin calgut per obtenir-la:

\[ G = R_1 + \gamma R_2 + \gamma^2 R_3 + \gamma^3 R_4 + \cdots \]

  • R₁, R₂, R₃…: les recompenses de cada pas, per ordre
  • γ: el factor de descompte, un número entre 0 i 1

En paraules senzilles: la primera recompensa compta sencera, la segona es multiplica per γ, la tercera per γ², i així successivament. Com més lluny, menys val.

Exemple: anant a l’esquerra des de l’estat 4, amb \(\gamma = 0.5\):

\[ G = 0 + 0.5 \cdot 0 + 0.5^2 \cdot 0 + 0.5^3 \cdot 100 = 12.5 \]

A la pràctica es fan servir valors molt propers a 1 (0.9, 0.99), però aquí farem servir 0.5 perquè els números es vegin millor.

El descompte fa l’agent una mica impacient: prefereix les recompenses aviat. Amb recompenses negatives passa al revés: prefereix ajornar-les, igual que nosaltres preferim pagar més tard.

Polítiques

Una política diu quina acció prendre a cada estat. Vegem el retorn de cada estat amb tres polítiques diferents (\(\gamma = 0.5\)):

Estat123456
Recompensa100000040
Retorn si sempre ←100502512.56.2540
Retorn si sempre →1002.55102040
Retorn si ← als estats 2, 3, 4 i → al 5100502512.52040

La tercera política és la millor a tots els estats: no cal anar sempre cap al mateix costat, sinó triar a cada estat. L’objectiu de l’aprenentatge per reforç és trobar la política que dona el retorn més gran des de qualsevol estat.

Aquest plantejament s’anomena procés de decisió de Markov (Markov decision process, MDP). “Markov” vol dir que el futur només depèn de l’estat actual, no de com hi hem arribat.

La funció Q

Per trobar la millor política, els algoritmes d’aprenentatge per reforç calculen la funció valor estat-acció, o funció Q:

\(Q(s, a)\) és el retorn que obtens si comences a l’estat \(s\), prens l’acció \(a\) una vegada i, a partir d’aquí, et comportes de la millor manera possible.

Exemple: \(Q(2, \rightarrow)\). Des de l’estat 2 anem a la dreta (estat 3), i després ja ens comportem bé: tornem a l’esquerra cap a l’estat 1. Les recompenses són 0, 0, 0, 100, i el retorn és:

\[ Q(2, \rightarrow) = 0 + 0.5 \cdot 0 + 0.5^2 \cdot 0 + 0.5^3 \cdot 100 = 12.5 \]

En canvi, \(Q(2, \leftarrow) = 0 + 0.5 \cdot 100 = 50\). Calculant-ho per a tots els estats i accions:

Estat123456
\(Q(s, \leftarrow)\)100502512.56.2540
\(Q(s, \rightarrow)\)10012.56.25102040
Millor acció←←←→

Si coneixem Q, la millor política és immediata: a cada estat, tria l’acció amb la Q més gran (en negreta a la taula). Ho escrivim \(\pi(s) = \arg\max_a Q(s, a)\).

L’equació de Bellman

Com es calcula Q sense provar totes les seqüències possibles? L’equació de Bellman la descompon en un sol pas:

\[ Q(s, a) = R(s) + \gamma \max_{a’} Q(s’, a’) \]

  • R(s): la recompensa de l’estat actual
  • s’: l’estat on arribes després de fer l’acció a
  • max Q(s’, a’): el millor valor que pots obtenir des de s’, triant la millor acció a’

En paraules senzilles: el valor d’una acció és la recompensa d’ara més el valor (descomptat) del millor que pots fer des d’on arribes. Als estats terminals, \(Q(s, a) = R(s)\).

Exemple: \(Q(2, \rightarrow)\). L’estat següent és el 3, on la millor acció val \(\max(25, 6.25) = 25\):

\[ Q(2, \rightarrow) = R(2) + 0.5 \cdot 25 = 0 + 12.5 = 12.5 \]

És el mateix resultat que abans, però calculat amb un sol pas.

Per què funciona

Si substituïm \(Q(s’, a’)\) per la mateixa equació, i així successivament, apareix la suma de recompenses descomptades:

\[ Q(s, a) = R(s) + \gamma R(s’) + \gamma^2 R(s’‘) + \gamma^3 R(s’‘’) + \cdots \]

que és exactament la definició del retorn. L’equació de Bellman només diu que no cal calcular tota la suma: n’hi ha prou de saber el valor de l’estat següent.

Entorns estocàstics

Al món real, les accions no sempre fan el que esperem. El rover pot intentar anar a l’esquerra i, per culpa d’una roca, acabar a la dreta. Si això passa, per exemple, un 10% de les vegades, l’entorn és estocàstic (aleatori).

Com que el retorn ja no és un sol valor, el que volem maximitzar és el retorn esperat, la mitjana de tots els resultats possibles. L’equació de Bellman fa servir la mitjana del valor de l’estat següent:

\[ Q(s, a) = R(s) + \gamma , \mathbb{E}\left[ \max_{a’} Q(s’, a’) \right] \]

  • 𝔼: el valor esperat, la mitjana ponderada per la probabilitat de cada estat següent

Com més aleatori és l’entorn, menys control tenim i més baixos són els retorns esperats.

Després

En aquest exemple hi ha 6 estats i 2 accions, i podem escriure Q en una taula. Un helicòpter o un mòdul lunar tenen infinits estats possibles. A Aprenentatge per reforç profund veurem com una xarxa neuronal pot aprendre la funció Q en aquests casos.

Referències

Last change: , commit: cc6333d