TP — Séance 6 — L’IA qui apprend

Une livraison à Saint-Louis, apprise puis planifiée, et le mil de Kaolack

TP de la séance 6 d’Introduction à l’intelligence artificielle : décider et apprendre : utilité, processus de décision markoviens, Q-learning, descente de gradient.
Auteur

Dr. El Hadji Bassirou TOURÉ · DMI/FST/UCAD

ImportantObjectif

Programmer les outils de la séance et les appliquer à des données nouvelles : les transitions d’un MDP avec des murs, l’itération sur les valeurs et la politique optimale, l’effet du facteur d’actualisation et du coût par pas ; un agent Q-learning comparé à la politique planifiée ; la descente de gradient sur un rendement agricole, à un puis à deux paramètres. Durée : une séance de TP (2 à 3 heures).

Mise en place

Le code de départ est le notebook TP_S06_depart.ipynb, dans l’archive TP_S06_code_depart.zip. Il demande Python 3.10 ou plus récent et matplotlib.

unzip TP_S06_code_depart.zip
cd code_depart
jupyter lab TP_S06_depart.ipynb

Les cellules marquées # A COMPLETER contiennent des ... à remplacer par le code demandé ; la cellule qui suit affiche les résultats que la fiche interroge. Les fonctions reprennent celles du cours (bouger, transitions, q_valeur, iteration_valeurs, politique, agir, q_learning, cout, gradient). À rendre : le notebook exécuté, avec les réponses aux questions dans des cellules de texte.

Étape 1 : le monde de Saint-Louis

Un livreur part de la gare de Sor, sur le continent, à l’est, case \((3,4)\), et doit rejoindre le marché de Ndar, sur l’île, à l’ouest, case \((0,0)\) (\(+1\), terminal), dans une grille de 4 lignes et 5 colonnes. Deux cases en travaux, \((1,3)\) et \((2,1)\), sont infranchissables ; deux cases au bord du fleuve, \((1,1)\) et \((2,2)\), coûtent \(-1\) et arrêtent l’épisode. Chaque arrivée dans une autre case coûte \(-0{,}02\) ; le mouvement voulu réussit avec 0,8, avec 0,1 de glissade de chaque côté ; \(\gamma=0{,}9\).

  1. Compléter bouger et transitions. Observer les trois exemples affichés : pourquoi la case \((1,4)\), en allant à gauche, reste-t-elle sur place avec la probabilité 0,8 ? Pourquoi \((3,0)\) apparaît-elle deux fois dans le troisième ?
  2. Observer la vérification des sommes. Expliquer pourquoi un mur est traité comme un bord.

Étape 2 : l’itération sur les valeurs

  1. Compléter q_valeur et la mise à jour de iteration_valeurs. Observer le nombre d’itérations et \(V^*\) au départ.
  2. Observer la grille des valeurs. Expliquer pourquoi la valeur de \((0,1)\) égale celle de \((1,0)\), et pourquoi \((3,3)\) vaut moins que \((3,4)\), plus loin du marché.

Étape 3 : la politique, le facteur d’actualisation et le coût par pas

  1. Compléter politique. Observer la politique : quel chemin le livreur suit-il depuis Sor ? Expliquer la flèche de la case \((2,3)\).
  2. Observer la cellule des trois valeurs de \(\gamma\) (0,5 ; 0,9 ; 0,99) : nombre d’itérations, \(V^*\) au départ, cases dont l’action change. Expliquer les cases \((3,2)\) et \((3,3)\) pour \(\gamma=0{,}99\).
  3. Modifier le coût par pas (0 ; \(-0{,}02\) ; \(-0{,}5\)) et observer la politique. Expliquer pourquoi, avec \(-0{,}5\), la case \((2,3)\) envoie le livreur dans le fleuve.

Étape 4 : le Q-learning

  1. Compléter choisir (stratégie \(\varepsilon\)-gloutonne) et la règle de mise à jour dans q_learning.
  2. Observer, après 5000 épisodes (graine 6), le nombre de cases où la politique apprise coïncide avec celle de l’étape 3, et les cases qui diffèrent. Expliquer pourquoi ces cases-là.
  3. Observer la courbe du gain actualisé moyen par paquet de 250 épisodes et la comparer à \(V^*\) au départ. Expliquer pourquoi elle reste en dessous.
  4. Modifier le taux d’apprentissage (\(\alpha=0{,}02\) puis \(0{,}3\)) et expliquer les résultats.

Étape 5 : la descente de gradient sur le mil de Kaolack

Cinq années de relevés à Kaolack donnent la pluie (en centaines de millimètres) et le rendement du mil (en tonnes par hectare) : \((3~;~0{,}6)\), \((4~;~0{,}7)\), \((5~;~1{,}0)\), \((6~;~1{,}1)\), \((8~;~1{,}5)\). Le modèle est rendement \(=w\times\)pluie, la perte \(J(w)=\frac15\sum_i(y_i-wx_i)^2\).

  1. Compléter gradient. Observer \(J(0)\) et \(J'(0)\), puis les résultats de dix pas pour \(\eta=0{,}005\) ; 0,02 ; 0,03 ; 0,035.
  2. Expliquer ces quatre comportements par le facteur \(1-\eta\frac{2}{5}\sum_ix_i^2\) et retrouver le taux maximal affiché.
  3. Compléter gradient2 pour le modèle à deux paramètres, rendement \(=w\times\)pluie\(+b\). Observer le résultat de la descente et le comparer à la solution des moindres carrés.

Étape 6 : le Q-learning comme descente de gradient

  1. Observer la cellule qui compare un pas de gradient sur \(\frac12(\text{cible}-q)^2\), dérivée calculée numériquement, et la règle du Q-learning. Expliquer l’égalité.
  2. Expliquer en quelques lignes ce que change le remplacement de la table \(Q\) par un réseau de neurones \(Q_{\boldsymbol\theta}\).

Pour cette séance

Le cours

Les slides

À lire en ligne

À télécharger

Retour au sommet