Section 7.3 Programmation dynamique
La programmation dynamique est une approche permettant de résoudre des problèmes de type MDP de façon plus efficace que les méthodes de recherche dans le cadre du modèle parfait.
La programmation dynamique ne fait pas partie des méthodes de reforcement. Cependant elle est intéressante et introduit des outils essentiel pour les méthodes de renforcement.
Subsection 7.3.1 Fonction valeur et équation de Bellman
On va introduire une théorie caractérisant les politiques optimales. Cela permettra par la suite de proposer des algorithmes.
Subsubsection 7.3.1.1 Fonction valeur et politique optimale
Afin de construire une relation d'ordre sur les politiques on souhaite évaluer une politique. Pour cela on introduit une notion fondamentale: La fonction valeur. La >fonction valeur associée à une politique \(\pi\) et un etat \(s\) est donnée par La fonction valeur état-action ou la Q-fonction associée à une politique \(\pi\) et un etat \(s\) est donnée par
Définition 7.14. Fonction valeur.
Définition 7.15. Q-Fonction.
dans le cas déterministe et
dans le cas stochastique. Une politique déterministe \(\mu(.)\) est dite gloutonne si elle satisfait : La relation d'ordre sur les politiques par Une politique \(\pi^*\) est dite optimale si elle satisfait: avec la fonction valeur optimale On peut aussi définir la fonction Q optimale: Soit \(\pi_1 \in \Pi^{ha}\) une politique aléatoire histoire-dépendante. Pour chaque état initial \(x\in S\text{,}\) il existe alors une politique aléatoire markovienne \(\pi_2 \in \Pi^{ma}\) telle que
Définition 7.16. Politique Gloutonne.
Définition 7.17.
Définition 7.18. Politique optimale.
Définition 7.19. Q-fonction optimale.
Proposition 7.20.
Preuve.
On considère \(\pi_1\) une politique histoire-dépendante et \(s_i\) un état initial. Soit \(\pi_2\) une politique Markovienne. On définit cette politique à partir de \(\pi_1\text{.}\) On obtient donc
donc \(P^{\pi_2}(a_{t+k}=a\mid \mid s_{t+k}=s) = P^{\pi_1}(a_{t+k}=a\mid \mid s_{t+k}=s, s_t=s_i)\text{.}\) On souhaite maintenant montre par récurrence que
Pour \(k=0\) c'est évident. On suppose que c'ets vrai pour \(k-1\text{.}\) On considère maintenant
puisque on suppose que (7.1) vrai au temps \(t+k-1\text{,}\) on a donc
et donc
Ensuite on remarque que:
et
les égalités précedentes donnent donc
ce qui conclut la preuve par récurrence de (7.1). Ensuite on remarque la fonction valeur associée a une politique \(\pi\) s'écrit:
et
On voit donc que l'égalité des probabilités (7.1) permet d'obtenir l'égalité des fonctions valeurs.
Subsubsection 7.3.1.2 Equation de Bellmann
Dans cette sous-section on souhaite exhiber une équation satisfaite par la politique optimale. On va d'abord caractériser les politiques stationnaires par une 1ère équation avant de construire l'équation de Bellman caractérisant la fonction valeur optimale et les politiques optimales.
Définition 7.21.
On se place dans le cadre horinzon infini amorti. Soit \(\pi\in D^{am}\) une politique Markovienne aléatoire stationnaire. On définit l'opérator \(L_{\pi}\) sur les fonctions valeurs définies par
avec
dans le cas stochastique et
dans le cas déterministe.
Maintenant on va relier cette opérateur à une politique stationnaire dans le cas \(\gamma \lt 1\text{.}\) En pratique les futurs résultats sont aussi utilisé pour \(\gamma=1\text{.}\) Soient \(\gamma \lt 1\) et \(\pi \in D^{ma}\) une politique stationnaire markovienne stationnaire. Alors la fonction valeur \(V^{\pi}\) est l'unique solution de l'équation \(V^{\pi} = L_{\pi} V^{\pi}\text{,}\) ce qui équivaut à
Théorème 7.22.
Preuve.
On considère la fonction valeur au temps initial:
Si la politique est \(\mathbb{E}^{\pi}\left[r_1\mid s_0=s\right]=R(s,\pi(s))=r_{\pi}(s)\text{.}\) Si la politique est stochastique, en utilisant la définition de l'espérance pour une variable aléatoire discrète on a:
Dans ce cas: on a une variable aléatoire qui décrit les récompenses pour un état \(s\text{,}\) la politique \(\pi\) donne les probabilités des valeurs possibles et \(r(.,.)\) donne les possibles valeurs. On a donc
On souhaite maintenant estimer \(\mathbb{E}^{\pi}\left[r_2+\gamma^1 r_3 + ... \mid s_0=s\right]\text{,}\) qui correspond à l'espérance des récompenses avec comme première état \(s\text{.}\) La récompense cumulée dépend du 1er état seulement à travers la transition entre le 1er état et le second état \(s^{'}\text{,}\) donc:
avec \(\mathbb{P}^{\pi}\) définit au dessus à l'aide de la politique et des probabilités de transition \(p(.\mid.,.)\text{.}\) Pour finir la preuve il suffit de noter que \(\mathbb{E}^{\pi}\left[r_2+\gamma^1 r_3 + ... \mid s_1=s^{'}\right]= V_{\pi}(s^{'})\text{.}\) On a donc prouvé que \(V_{\gamma}^{\pi}\) satisfait l'équation vectorielle:
Maintenant on finira la preuve en montrant l'unicité. Pour ca on réécrit l'opérateur sous la forme suivante:
Puisque \(\mathbb{P}^{\pi}\) est une matrice de probabilité, toute les valeurs propres de module inférieur ou égal à 1. Si \(\gamma\lt 1\) on a donc que toute les valeurs propres de \(\gamma \mathbb{P}^{\pi}\) sont de modules strictement inférieur à 1. En diagonalisant la matrice \(\left( I_d -\gamma \mathbb{P}^{\pi}\right)\) dans la base de \(\mathbb{P}^{\pi}\) on obtient que toutes les valeurs propres sont strictement positives et donc l'opérateur est inversible.
Corollaire 7.23.
On peut caractériser la Q-fonction sous la forme:
Preuve.
Les calculs sont les mêmes que précédement. On ne considère juste pas qua la 1ère action est donnée par la politique.
Corollaire 7.24.
On peut réécrire la caractérisation de la fonction valeur et de la Q fonction sous la forme:
pour la fonction valeur et
ce qui équivaut à:
avec \(s_{t+1}\) le nouvel état découlant de \((s,a)\) et \(a_{t+1}\) l'action suivante donnée par la politique.
Preuve.
On rappelle que \(V = L_{\pi} V\text{.}\) On détaille cela:
Lorsqu'on redéveloppe on obtient
On réconnait les formules d'espérance on a donc
et
Le principe est le même pour la fonction \(Q\text{.}\) On rappelle juste que \(a_{t+1}\) est donnée par la politique donc \(V^{\pi}(s_{t+1})=Q^{\pi}(s_t,a_t)\text{.}\)
Théorème 7.25. Point fixe de Banach.
Soient U un espace de Banach et \(T\) une contraction sur \(U\) (\(\parallel Tu - Tv\parallel \leq \lambda \parallel u-v\parallel\) avec \(0\leq\lambda \leq 1\)). Alors
il existe un unique \(u\) tel que \(Tu =u\text{,}\)
-
Pour tout \(u_0\) la suite \(u_n\) définie par
\begin{equation*} u_{n+1}=T u_n \end{equation*}converge vers \(u^*\text{.}\)
Définition 7.26. Equation d'optimalité de Bellmann.
Soit \(V\) une fonction valeur on définit l'opérateur \(L\) sur les fonctions valeur:
C'est équivalent à
ce qui est équivalent à
avec \(\mu^*(s) = \operatorname{argmax}_{\mu \in D^m} = a^*\) ou \(a^* = \operatorname{argmax}_{a} \left( r(s,a)+ \gamma \sum_{s^{'}}P(s^{'} | s,a) V(s^{'})\right)\text{.}\) Cela justifie l'équivalence entre les deux formulations. On rappelle que dans cette définition la vonction valeur n'est pas liée à une politique.
On suppose que l'on maximise le critère d'horizon infini amorti. Pour \(\gamma \lt 1\text{,}\) la fonction valeur \(V^{\pi^*}(.) \in \mathcal{V}\) de la politique optimal \(\pi^*\) est l'unique solution de l'équation de Bellman:
Théorème 7.27. Equation d'optimalité de Bellmann.
Preuve.
TOOO DOO / refaire.\\ Dans un 1er temps on va vérifier que la politique optimale si, elle existe satisfait l'équation de Bellman avant de montrer qu'il existe une unique solution. On suppose donc que \(\pi^*\) existe par définition de la politique optimale:
Toutes les politiques \(\pi\) peuvent être réécrite comme un couple \((\mathbf{a},\pi^{'})\) avec \(a\) la 1ère action appliquée et \(\pi^{'}\) la politique pour les actions suivante. Dans ce cas on obtient
Puisque \(a\) est la 1ère action de la politique \(\pi\) on a \(r_{\pi}(s)=\sum_{a^{'}}\pi(a^{'} \mid s)r(s,a^{'})=r(s,a)\) puisque \(\pi(a^{'} \mid s)=1\) pour \(a^{'}=a\) et zéro sinon par construction. De la mêm façon:
On a donc
Puisque \(r(s,a)\) et \(P(s^{'} \mid a ,s)\) ne dépendent pas de \(\pi^{'}\) et que \(V_{\gamma}^{\pi^{'}}(s^{'})\) ne dépend pas de \(a\text{,}\) on obtient
ce qui donne par définition de la fonction valeur optimale:
fin TODO \\\\\\\ Maintenant on qu'on à montré que la politique optimale satisfait $V=LV$ on va montré que cette équation admet une unique solution. On remarque qu'il s'agit d'un problème de point fixe dans un espace de Banach, on peut donc appliquer de théorème de point-fixe. Pour cela on doit montrer que l'application \(L\) est contractante pour la norme \(L^\infty\text{.}\) On commence par regarder:
Puisque le maximum des valeurs absolues défini une norme on peut donc utilise la propriété \(\parallel \mathbf{x} \parallel-\parallel \mathbf{y} \parallel \lt \parallel \mathbf{x}-\mathbf{y} \parallel\text{.}\) On a donc
Puisque la fonction valeur ne dépend pas de l'action on a:
Puisque la précédente relation est vrai pour tous les états on obtient le résultat final:
Corollaire 7.28.
Une politique stationnaire est dit optimale si et ssi sa fonction valeur satisfait l'équation de Bellman ce qui équivaut à
Preuve.
On commence par trouver l'implication de: (7.5) vers optimalité. L'équation (7.5) équivaut à \(L V^* = L_{\pi}V^*\) car \(L\) correspond à \(L_{\pi}\) quand \(\pi = \operatorname{argmax}_{\pi} V^*\text{.}\) On suppose que \(\pi\) satisfait (7.5) donc
et par unicité de l'équation \(V = L_{\pi} V\) on a \(V_{\pi} =V^*\text{.}\) Donc si \(\pi\) dans (1) alors \(V_{\pi}=V^*\text{.}\) Maintenant on va démontrer l'implication: Optimalité vers (7.5). On a donc \(V_{\pi}=V^*\text{.}\) Puisque \(V_{\pi} = L_{\pi} V_{\pi}\) on a \(V^* = L_{\pi} V^*\text{.}\) Puisqu'elle est optimale \(L_{\pi}=L\) donc \(V^* = L V^*\text{.}\)
Pour finir on souhaite obtenir les mêmes caractérisation pour la Q-fonction. On remarque que par définition:
et pour la politique optimale gloutonne
on voit donc que l'on obtient immédiatement le corollaire suivant.
Corollaire 7.29.
On suppose que l'on maximise le critère d'horizon infini amorti. Pour \(\gamma \lt 1\text{,}\) la Q-fonction \(Q^{\pi^*}(.,.)\) de la politique optimale \(\pi^*\) est l'unique solution de l'équation de Bellman:
avec l'opérateur
Corollaire 7.30.
On peut réécrire la caractérisation de la Q fonction optimale sous la forme:
avec \(s_{t+1}\) le nouvel état découlant de \((s,a)\text{.}\)
L'ensemble de ses résultats nous donne des caratérisations récurrentes des politiques, politiques optimales et des Q fonctions. Ces caractérisations récurrentes vont permettent de calculer de façon plus efficac ces quantités.
Subsection 7.3.2 Programmation dynamique et algorithmes
Les algorithmes de programmation dynamique utilise la caratérisation des politiques et la formule de Bellman afin de proposer des algorithmes plus efficace qu'une recherche exhaustive.
Subsubsection 7.3.2.1 Méthode itérative sur les valeurs
La formule de Bellman peut se voir comme un problème de point fixe linéaire de taille \(\mid S\mid\) le nombre d'états. La façon la plus naturelle de construire la politique optimale est de résoudre le problème de point fixe précédemment introduit à l'aide d'une méthode de Picard. La convergence est assurée par le théorème de point fixe. En appliquant cette simple méthologie on obtient un algorithme qui construit la fonction valeur de façon itératif avant de calculer la politique associée.
Algorithm 7.31. Algorithme de Picard sur les valeurs.
Initialiser \(V_0\) la fonction valeur initiale
\(\displaystyle n= 0\)
-
Tant que \(\mid V_{n+1}-V_n\mid \gt \varepsilon\)
-
\(\forall s \in S\) on calcul
\(\displaystyle V_{n+1}=\operatorname{max}_{a} \left( r(s,a) + \gamma \sum_{s^{'}}P(s^{'} | s,a) V_n(s^{'})\right)\)
-
-
\(\forall s \in S\) on calcul
\(\displaystyle \pi(s)= \operatorname{argmax}_{a} \left( r(s,a) + \gamma \sum_{s^{'}}P(s^{'} | s,a) V_n(s^{'})\right)\)
Une fois la fonction valeur calculée, on voit bien que le politique est obtenue à partir de l'équation de Bellman sur la fonction valeur finale. A chaque itération le nombre d'opération est en \(O(\mid S\mid^2 \mid A \mid)\text{.}\) La complexité est la même pour le calcul de la politique. Dans l'algorithme précédent on calcul une fonction valeur \(V_n\) puis on construit une politique \(\pi_n\) en utilisant une politique dite gloutonne donc utilisant \(V_n\text{.}\) En faisant cela on espère que la fonction valeur \(V_{\pi^n}\) de notre politique est bien proche de la fonction valeur optimale \(V^*\text{.}\) En pratique il n'y a pas de raison que \(V_{\pi^n}\) soit égal à \(V_n\) on souhaite donc quantifier l'erreur entre \(V_{\pi^n}\) et \(V^*\text{.}\) La politique gloutonne \(V_{\pi^n}\) obtenu à partir de \(V_n\) satisfait
Lemme 7.32.
Preuve.
On part donc de \(\parallel V^{*} - V^{\pi^n}\parallel_{\infty}\) et on développe:
On a utilisé que \(L V^{*} = V^*\) par définition de la fonction valeur optimale et \(L_{\pi} V^{\pi^n} = V^{\pi^n}\) (caractérisation des politiques). Puisque \(\pi_n\) est gloutonne \(L_{\pi} V^n = L V_n\text{.}\) On a donc
on a donc
ce qui permet de conclure.
Subsubsection 7.3.2.2 Méthode itérative sur la politique
Une seconde famille de méthode est formée des algorithmes ou on itére pas seulement sur la fonction valeur mais aussi, voir seulement, sur la politique en elle même. Pour cela l'idée est simplement de construire la fonction valeur puis directement après la politique a chaque itération. On parle d'un processus d'évaluation/amélioration:
Initialiser \(\mu_0\) la politique initiale \(\displaystyle n= 0\) Tant que \(\mid \mu_{n+1}-\mu_n\mid \gt \varepsilon\) \(\forall s \in S\) on calcul \(\forall s \in S\) on calcul Soit \(\mu,\mu^+ \in D^{m}\) des politiques Markoviennes stationnaires déterministes. Si alors \(\mu^+ \geq \mu\text{.}\) Si \(\mu^+ \geq \mu\) alors \(\mu = \mu^*\)
Algorithm 7.33. Algorithme d'itération sur les politiques.
Proposition 7.34.
Preuve.
On considère
donc
et puisqu'on a, la phase d'évaluation \(r_{\mu} +\gamma \mathbb{P}_{\mu} V^{\mu} = V^{\mu}\) donc
Ensuite on fait intervenir la nouvelle politique:
La phase d'évaluation donnera \(r_{\mu^+} +\gamma \mathbb{P}_{\mu^+} V^{\mu^+} = V^{\mu^+}\) et donc
ce qui équivaut à
La matrice étant inversible on obtient \(V^{\mu^+} \gt V^{\mu}\text{.}\) L'égalité est possible si
On retrouve l'équation de Bellman et donc par conséquent \(V^{\mu}=V^*\text{.}\)
Algorithm 7.35. Algorithme modifié d'itération sur les politiques.
Initialiser \(V_0\) avec \(LV_0 \geq V_0\text{,}\) \(flag = 0\text{,}\) \(n = 0\)
-
Tant que flag\(=0\)
-
\(\forall s \in S\) on calcul
\(\displaystyle \pi_{n+1}(s)= \operatorname{argmax}_{a} \left( r(s,a) + \gamma \sum_{s^{'}}P(s^{'} \mid s,a) V_n(s^{'})\right)\)
\(\displaystyle V_n^0 = \operatorname{max}_{a} \left( r(s,a)+ \gamma \sum_{s^{'}}P(s^{'} \mid s,a) V_n(s^{'})\right)\)
\(\displaystyle m=0\)
Si \(\mid V_n^0-V_n\mid \leq \epsilon\) alors \(flag=1\text{.}\)
-
Sinon: tant que \(\mid V_n^{m+1}-V_n^{m}\mid \leq \delta\)
-
\(\forall s \in S\)
- \begin{equation*} V_{n}^{m+1}=\operatorname{max}_{a} \left( r(s,a) + \gamma \sum_{s^{'}}P(s^{'} \mid s,a) V_n^m(s^{'})\right) \end{equation*}
\(\displaystyle m++\)
-
\(\displaystyle V_n= V_n^m\)
\(\displaystyle n=n+1\)
-
Les méthodes présentées ici sont très coûteuses puisque on parcours l'ensemble des états et des actions à chaque itérations. De plus ces algorithmes ne sont utilisable que dans les cas des modèles parfaits. Dans la plupart des applications les algorithmes de Programmation dynamique ne sont pas réellement utilisable. Dans le chapitre suivant nous allons introduire des méthodes permettant de lever ces contraintes. Il s'agit du coeur de l'apprentissage par renforcement.