\section{Chapitre 21: Apprentissage par renforcement}
\label{sec:ch21}

\subsection{Introduction}
\label{sec:ch21intro}

\begin{itemize}
\item Apprend par expérience, agit dans l'environnement
\item Ne connait pas les probabilités de transition
\item Récompense ou pénalité, sans connaître la fonction
\item Apprendre la suite d'action qui donne la plus grande somme espérée de récompoenses escomptées.
\end{itemize}

Définition du problème:
\begin{itemize}
\item Ensemble $S$ d'états
\item Ensemble $A$ d'actions
\item À chaque étape $t$:
  \begin{itemize}
  \item Perçoit $s_t$
  \item Choisit et exécute $a_t$
  \item Reçoit $r_t=r(s_t,a_t)$ et produit $s_{t+1}=\delta(s_t,a_t)$. Ces fonctions sont inconnues.
  \end{itemize}
\end{itemize}

\subsection{Renforcement passif}
\label{sec:ch21renforcementpassif}

Objectif:
\begin{itemize}
\item Apprendre une politique $\pi: S \mapsto A$.
\item La somme des récompenses pour une politique $\pi$ et un état de départ $s_t$:
  \begin{align}
    V^{\pi}(s_t) &\equiv r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \ldots\\
                 &\equiv \sum_{i=0}^{\infty} \gamma^ir_{t+i}
  \end{align}
\item L'agent maximise
  \begin{align}
    \pi^{\star} &\equiv \argmax_{\pi}V^{\pi}(s), \forall s
  \end{align}
\end{itemize}

\subsection{Programmation dynamique adaptative}
\label{sec:ch21estdirecte}

La politique est fixe. L'agent découvre l'utilité espérée pour chacun des états. Cette méthode converge lentement, car elle ne considère par l'interaction entre les états. Ceci équivaut aux équations de Bellman pour une politique fixée.

On calcule le modèle de transition à partir des traces effectueés.

\begin{align}
  U^\pi(s) = R(s) + \gamma \sum_{s^{\prime}}T(s,a,s^{\prime})U^\pi(s^{\prime})
\end{align}

\subsection{Différence temporelle (TD-learning)}
\label{sec:ch21td}

Ajuster la valeur des états en fonction des transitions effectuées.
\begin{itemize}
\item Sortie désirée: $R(s)+ \gamma U^{\pi}(s^{\prime})$
\item Sortie actuelle: $U^{\pi}(s)$
\end{itemize}

Ce qui nous donne, avec un taux d'apprentissage $\alpha$:

\begin{align}
  U^{\pi}(s) &\leftarrow U^{\pi}(s) + \alpha(R(s)+\gamma U^{\pi}(s^{\prime})-U^{\pi}(s))\\
             &\leftarrow (1-\alpha)U^{\pi}(s) + \alpha(R(s)+\gamma U^{\pi}(s^{\prime}))
\end{align}

\subsection{Apprentissage par renforcement actif}
\label{sec:ch21actif}

L'agent choisit les actions, la politique n'est pas fixée

\begin{align}
  Q^{\star}(s,a) &= \sum_{s^{\prime}}T(s,a,s^{\prime})[R(s,a,s^{\prime})+\gamma U^{\star}(s^{\prime})]\\
                 &= \sum_{s^{\prime}}T(s,a,s^{\prime})[R(s,a,s^{\prime})+\gamma \max_{a^{\prime}}Q^{\star}(s^{\prime},a^{\prime})]
\end{align}

Comme nous ne connaissons pas $T$ ou $R$, nous ne pouvons pas utiliser un algorithme d'itération de la valeur. Nous allons alors apprendre $Q$.

La politique optimale sera $\pi^{\star}(s) = \argmax_{a}Q^{\star}(s,a)$. On met à jour $Q(s,a)$ de manière similaire au TD-learning:
\begin{align}
  Q(s,a) \leftarrow Q(s,a) + \alpha(r+\gamma \max_{a^{\prime}}Q(s^{\prime},a^{\prime})-Q(s,a))
\end{align}

\subsubsection{Stratégies d'exploration}
\label{sec:ch21epsilon}

\begin{itemize}
\item \textbf{Epsilon-Greedy}: Prend la meilleur action avec probabilité $1-\epsilon$ et une action aléatoire avec probabilité $\epsilon$.
\item \textbf{Fonction d'exploration}: Maximiser $f(q,n) = Q(s,a)+n(s,a)$ où $n(s,a) = \frac{k}{n}$ est un bonus à l'exploration: $k$ est constant et $n$ est un compteur de visites sur l'état $s$.
\item Action aléatoire pondérée: On choisit aléatoirement une action, mais en pondérant selon les valeurs de $Q$. Par exemple:
  \begin{align}
    P(a_i|s) = \frac{k^{\hat{Q}(s,a_i)}}{\sum_j \hat{Q}(s,a_j}
  \end{align}
  Plus $k$ est grand, plus on favorise les valeurs de $Q$ élevées.
  
\end{itemize}

\subsubsection{Fonction d'approximation}
\label{sec:ch21approx}

Si le nombre de $Q$-valeurs est grand, on ne peut pas les emmagasiner. On voudra alors les approximer par une fonction. Par exemple, une fonction linéaire pondérée par un ensemble de caractéristiques.
\begin{align}
  Q(s,a) &= \sum_{i=1}^n f_i(s,a)w_i
\end{align}
On apprendra plutôt les valeurs des paramètres $w_i$








%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End:
