# Optimització de la política proximal

L'optimització de polítiques proximals (PPO) és un algorisme d'aprenentatge de reforç (RL) per entrenar un agent intel·ligent. Concretament, és un mètode de gradient de polítiques, que s'utilitza sovint per a RL profund quan la xarxa de polítiques és molt gran.
El predecessor de PPO, Trust Region Policy Optimization (TRPO), es va publicar el 2015. Va abordar el problema d'inestabilitat d'un altre algorisme, el Deep Q-Network (DQN), mitjançant l'ús del mètode de la regió de confiança per limitar la divergència KL entre les polítiques antigues i noves. Tanmateix, TRPO utilitza la matriu hessiana (una matriu de segones derivades) per fer complir la regió de confiança, però la hessiana és ineficient per a problemes a gran escala.
PPO es va publicar el 2017. Es tractava essencialment d'una aproximació de TRPO que no requereix calcular l'hessià. La restricció de divergència KL es va aproximar simplement retallant el gradient de la política.
Des del 2018, PPO era l'algorisme RL predeterminat a OpenAI. PPO s'ha aplicat a moltes àrees, com ara controlar un braç robòtic, vèncer jugadors professionals a Dota 2 (OpenAI Five) i jugar a jocs Atari.

## TRPO

TRPO, el predecessor de PPO, és un algorisme de política. Es pot utilitzar per a entorns amb espais d'acció discrets o continus.
El pseudocodi és el següent:
* Entrada: paràmetres de política inicials θ$_0${\textstyle \theta _{0}}, paràmetres de la funció de valor inicial ϕ$_0${\textstyle \phi _{0}}
* Hiperparàmetres: límit de divergència KL δ{\textstyle \delta }, coeficient de retrocés α{\textstyle \alpha }, nombre màxim de passos enrere K{\textstyle K}
* per k=0, 1, 2, …{\textstyle k=0, 1, 2, \ldots } fer
** Recull un conjunt de trajectòries D$_k$={τ$_i$}{\textstyle {\mathcal {D}}_{k}=\left\{\tau _{i}\right\}} mitjançant l'execució de la política π$_k$=π(θ$_k$){\textstyle \pi _{k}=\pi \left(\theta _{k}\right)} en el medi ambient.
** Calculeu les recompenses pendents R$^^$$_t${\textstyle {\hat {R}}_{t}}.
** Calculeu estimacions d'avantatges, A$^^$$_t${\textstyle {\hat {A}}_{t}} (utilitzant qualsevol mètode d'estimació d'avantatges) basat en la funció de valor actual V$_{ϕk}${\textstyle V_{\phi _{k}}}.
** Estimar el gradient de la política com ${\hat {g}}_{k}=\left.{\frac {1}{\left|{\mathcal {D}}_{k}\right|}}\sum _{\tau \in {\mathcal {D}}_{k}}\sum _{t=0}^{T}\nabla _{\theta }\log \pi _{\theta }\left(a_{t}\mid s_{t}\right)\right|_{\theta _{k}}{\hat {A}}_{t}$
** Utilitzeu l'algoritme de gradient conjugat per calcular ${\hat {x}}_{k}\approx {\hat {H}}_{k}^{-1}{\hat {g}}_{k}$ on H$^^$$_k${\textstyle {\hat {H}}_{k}} és el Hessià de la divergència KL mitjana de la mostra.
** Actualitzeu la política fent retrocedir la cerca de línia amb $\theta _{k+1}=\theta _{k}+\alpha ^{j}{\sqrt {\frac {2\delta }{{\hat {x}}_{k}^{T}{\hat {H}}_{k}{\hat {x}}_{k}}}}{\hat {x}}_{k}$ on j∈{0, 1, 2, …K}{\textstyle j\in \{0, 1, 2, \ldots K\}} és el valor més petit que millora la pèrdua de mostra i satisfà la restricció de divergència KL de la mostra.
** Ajustar la funció de valor per regressió a l'error quadrat mitjà: $\phi _{k+1}=\arg \min _{\phi }{\frac {1}{\left|{\mathcal {D}}_{k}\right|T}}\sum _{\tau \in {\mathcal {D}}_{k}}\sum _{t=0}^{T}\left(V_{\phi }\left(s_{t}\right)-{\hat {R}}_{t}\right)^{2}$ normalment mitjançant algun algorisme de descens de gradient.

## PPO

El pseudocodi és el següent:
* Entrada: paràmetres de política inicials θ$_0${\textstyle \theta _{0}}, paràmetres de la funció de valor inicial ϕ$_0${\textstyle \phi _{0}}
* per k=0, 1, 2, …{\textstyle k=0, 1, 2, \ldots } fer
** Recull un conjunt de trajectòries D$_k$={τ$_i$}{\textstyle {\mathcal {D}}_{k}=\left\{\tau _{i}\right\}} mitjançant l'execució de la política π$_k$=π(θ$_k$){\textstyle \pi _{k}=\pi \left(\theta _{k}\right)} en el medi ambient.
** Calculeu les recompenses pendents R$^^$$_t${\textstyle {\hat {R}}_{t}}.
** Calculeu estimacions d'avantatges, A$^^$$_t${\textstyle {\hat {A}}_{t}} (utilitzant qualsevol mètode d'estimació d'avantatges) basat en la funció de valor actual V$_{ϕk}${\textstyle V_{\phi _{k}}}.
** Actualitzeu la política maximitzant l'objectiu de PPO-Clip: $\theta _{k+1}=\arg \max _{\theta }{\frac {1}{\left|{\mathcal {D}}_{k}\right|T}}\sum _{\tau \in {\mathcal {D}}_{k}}\sum _{t=0}^{T}\min \left({\frac {\pi _{\theta }\left(a_{t}\mid s_{t}\right)}{\pi _{\theta _{k}}\left(a_{t}\mid s_{t}\right)}}A^{\pi _{\theta _{k}}}\left(s_{t},a_{t}\right),\quad g\left(\epsilon ,A^{\pi _{\theta _{k}}}\left(s_{t},a_{t}\right)\right)\right)$ normalment mitjançant un ascens de gradient estocàstic amb Adam.
** Ajustar la funció de valor per regressió a l'error quadrat mitjà: $\phi _{k+1}=\arg \min _{\phi }{\frac {1}{\left|{\mathcal {D}}_{k}\right|T}}\sum _{\tau \in {\mathcal {D}}_{k}}\sum _{t=0}^{T}\left(V_{\phi }\left(s_{t}\right)-{\hat {R}}_{t}\right)^{2}$ normalment mitjançant algun algorisme de descens de gradient.
Com tots els mètodes de gradient de política, PPO s'utilitza per entrenar un agent RL les accions del qual estan determinades per una funció de política diferenciable per ascens de gradient.
Intuïtivament, un mètode de gradient de polítiques fa petits passos d'actualització de polítiques, de manera que l'agent pot aconseguir recompenses cada cop més altes a l'expectativa.
Els mètodes de gradient de la política poden ser inestables: una mida de pas massa gran pot dirigir la política en una direcció subòptima, tenint així poques possibilitats de recuperació; una mida de pas massa petita redueix l'eficiència general.
Per resoldre la inestabilitat, PPO implementa una funció de clip que limita l'actualització de polítiques d'un agent perquè sigui massa gran, de manera que es poden utilitzar mides de pas més grans sense afectar negativament el procés d'ascens del gradient.

### Conceptes bàsics

Per començar el procés d'entrenament PPO, l'agent es configura en un entorn per dur a terme accions basades en la seva entrada actual. En la fase inicial de la formació, l'agent pot explorar lliurement solucions i fer un seguiment del resultat. Més tard, amb una certa quantitat de mostres de transició i actualitzacions de polítiques, l'agent seleccionarà una acció a realitzar mitjançant un mostreig aleatori de la distribució de probabilitat. $P(A|S)$ generada per la xarxa de polítiques. Les accions que tenen més probabilitats de ser beneficioses tindran la major probabilitat de ser seleccionades de la mostra aleatòria. Després que un agent arriba a un escenari diferent (un nou estat) actuant, es recompensa amb una recompensa positiva o una recompensa negativa. L'objectiu d'un agent és maximitzar el senyal de recompensa acumulat a través de seqüències d'estats, coneguts com a episodis.

## Avantatges
### Simplicitat

PPO s'aproxima al que fa TRPO, amb un càlcul considerablement menor. Utilitza l'optimització de primer ordre (la funció de clip) per limitar l'actualització de polítiques, mentre que TRPO utilitza restriccions de divergència KL (optimització de segon ordre). En comparació amb TRPO, el mètode PPO és relativament fàcil d'implementar i requereix menys recursos computacionals i temps. Per tant, és més barat i eficient utilitzar PPO en problemes a gran escala.

### Estabilitat

Mentre que altres algorismes de RL requereixen una sintonització d'hiperparàmetres, PPO comparativament no requereix tant (0,2 per a epsilon es pot utilitzar en la majoria dels casos). A més, PPO no requereix tècniques d'optimització sofisticades. Es pot practicar fàcilment amb marcs d'aprenentatge profund estàndard i generalitzar-se a una àmplia gamma de tasques.

### Eficàcia de la mostra

L'eficiència de la mostra indica si els algorismes necessiten més o menys dades per formar una bona política. PPO va aconseguir l'eficiència de la mostra a causa de l'ús d'objectius substitutius. L'objectiu substitut permet a PPO evitar que la nova política s'allunyi massa de la política antiga; la funció de clip regularitza l'actualització de polítiques i reutilitza les dades de formació. L'eficiència de la mostra és especialment útil per a tasques complicades i de gran dimensió, on la recollida i el càlcul de dades poden ser costosos.

## Referències

* ↑ «Proximal Policy Optimization Algorithms» (en anglès). [Consulta: 16 febrer 2025].
* ↑ Schulman, John; Levine, Sergey; Moritz, Philipp; Jordan, Michael; Abbeel, Pieter Proceedings of the 32nd International Conference on International Conference on Machine Learning - Volume 37 [Lille, France], 06-07-2015, pàg. 1889–1897.
* ↑ «Proximal Policy Optimization — Spinning Up documentation» (en anglès). [Consulta: 16 febrer 2025].
* ↑ «Trust Region Policy Optimization — Spinning Up documentation». spinningup.openai.com. [Consulta: 21 gener 2025].
* ↑ «Proximal Policy Optimization — Spinning Up documentation» (en anglès). spinningup.openai.com. [Consulta: 21 gener 2025].