TP — Séance 6 — L’IA qui apprend
Une livraison à Saint-Louis, apprise puis planifiée, et le mil de Kaolack
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.ipynbLes 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\).
- Compléter
bougerettransitions. 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 ? - Observer la vérification des sommes. Expliquer pourquoi un mur est traité comme un bord.
Étape 2 : l’itération sur les valeurs
- Compléter
q_valeuret la mise à jour deiteration_valeurs. Observer le nombre d’itérations et \(V^*\) au départ. - 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
- Compléter
politique. Observer la politique : quel chemin le livreur suit-il depuis Sor ? Expliquer la flèche de la case \((2,3)\). - 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\).
- 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
- Compléter
choisir(stratégie \(\varepsilon\)-gloutonne) et la règle de mise à jour dansq_learning. - 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à.
- 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.
- 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\).
- 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. - Expliquer ces quatre comportements par le facteur \(1-\eta\frac{2}{5}\sum_ix_i^2\) et retrouver le taux maximal affiché.
- Compléter
gradient2pour 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
- 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é.
- 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
- Code de départ du TP (ZIP, 4 Ko)