Examen IA — MI FI
Quatre exercices : jeux à deux joueurs (Minimax + alpha-beta), Deep Learning I (Convnet MNIST Keras), Deep Learning II (RNN analyse de sentiment), apprentissage par renforcement (Q-Learning grille 2x3). Durée 2h, calculatrices autorisées, sans documents.
i. Le sujet
ii. Analyse du sujet
| Exo | Thème | Chapitres | Type |
|---|---|---|---|
| 1 | Jeux à deux joueurs | Minimax + alpha-beta | Construction d'arbre + déroulement algo + analyse |
| 2 | Deep Learning I (Convnet) | CM2 | Analyse de code Keras (MNIST), hyperparamètres vs paramètres, calcul de params par couche |
| 3 | Deep Learning II (RNN) | CM3 | Dimensionnement d'un RNN pour analyse de sentiment (3 classes, 40 mots, vecteur 50, couche cachée 64) |
| 4 | Apprentissage par renforcement | CM4 | Modélisation MDP sur grille 2x3, Q-Learning, stratégie optimale, exploration/exploitation |
- L'exercice 1 (Minimax / alpha-beta) porte sur du contenu hors programme GI 2026 (CM1/CM6). Il est spécifique à MI FI.
- Pas de NLP (CM5) dans ce sujet, contrairement à l'annale GSI FI 2024-2025.
- CM2 + CM3 + CM4 sont bien les 3 piliers confirmés de l'examen IA.
- Le format de l'exo RNN (analyse de sentiment, 3 classes) correspond au scénario many-to-one du cours.
1. Jeux à deux joueurs
Arbre de jeu à 5 niveaux (racine=Max, feuilles=niveau 5). Chaque noeud non terminal a exactement 2 fils. Feuilles (gauche à droite) : 3, -5, -6, 7, 7, 8, 8, -3, -4, 6, 8, -3, 3, 2, -1, 5.
- Minimax : Max choisit le max de ses fils, Min le min. Remonter de bas en haut.
- Signification des feuilles : valeurs d'utilité estimées par une heuristique (positif = favorable à Max).
- Alpha-beta : couper les branches inutiles. $\alpha \le v \le \beta$. Si $\alpha \ge \beta$ : coupure.
- Mesure d'amélioration : compter les noeuds évalués avec vs sans élagage.
2. Deep Learning I (Convnet)
Code Keras donné : MNIST (28x28, 1 canal), architecture Conv2D(32, 5x5, sigmoid, same) + MaxPool(2,2) + Conv2D(64, 5x5, sigmoid, same) + MaxPool(2,2) + Flatten + Dense(100, sigmoid) + Dense(nb_classes, softmax).
to_categorical: one-hot encoding (vecteur de probabilités cible pour la cross-entropie).- Hyperparamètres (choisis avant l'entraînement) : nb filtres, taille filtre, nb couches, taux d'apprentissage, epochs, batch_size.
- Paramètres (appris pendant l'entraînement) : poids des filtres + biais, poids des couches denses.
- Calcul de params Conv2D(32, 5x5) sur 1 canal : $32 \times (5 \times 5 \times 1 + 1) = 832$.
- Conv2D(64, 5x5) sur 32 canaux : $64 \times (5 \times 5 \times 32 + 1) = 51\,264$.
- Couche de sortie : 10 neurones (10 chiffres), softmax pour distribution de probabilités sur les classes.
3. Deep Learning II (RNN)
RNN pour analyse de sentiment : 3 classes (positif, négatif, neutre). Textes de 40 mots, chaque mot = vecteur de taille 50. Couche cachée de taille 64.
- Entrée : $n = 50$ (taille du vecteur mot). Séquence $T = 40$.
- Sortie : $p = 3$ (positif, négatif, neutre) avec softmax (classification multi-classes).
- Couche cachée : $m = 64$.
- Params RNN :
- $U$ : $m \times n = 64 \times 50 = 3\,200$ (entrée vers hidden)
- $V$ : $m \times m = 64 \times 64 = 4\,096$ (hidden vers hidden)
- $B^h$ : $m = 64$ (biais hidden)
- $W$ : $p \times m = 3 \times 64 = 192$ (hidden vers sortie)
- $B^o$ : $p = 3$ (biais sortie)
- Total : $3\,200 + 4\,096 + 64 + 192 + 3 = \mathbf{7\,555}$
- Architecture : many-to-one (on ne garde que la dernière sortie $H^T$ pour classifier).
4. Apprentissage par renforcement
Grille 2x3 : objectif (vert) et piège (rouge). Modélisation MDP + Q-Learning.
- MDP : $S$ = 6 cases, $A$ = {haut, bas, gauche, droite}, $T$ = déterministe (murs = rester), $R$ = +1 objectif / -1 piège / 0 sinon, $\gamma$ à choisir.
- Q-Learning : $Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)]$.
- Sortie de l'algo : table $Q(s,a)$ pour chaque paire (état, action).
- Stratégie optimale : $\pi^*(s) = \text{argmax}_a\, Q^*(s,a)$. Construire à la main = suivre les flèches max.
- Exploration / Exploitation : $\varepsilon$-greedy. Avec proba $\varepsilon$ action aléatoire (explore), sinon action argmax $Q$ (exploite).
* Notions ré-activées
- Minimax : Max maximise, Min minimise. Valeur remontée de bas en haut
- Alpha-beta : $\alpha \le v \le \beta$. Coupure si $\alpha \ge \beta$. Réduit le nombre de noeuds explorés
- to_categorical = one-hot encoding pour la cross-entropie
- Hyperparamètres (choisis) vs paramètres (appris)
- Params Conv2D = $F \times (m \times m \times c + 1)$
- Taille sortie conv
same= entrée (préserve les dimensions) - MaxPool(2,2) divise chaque dimension par 2
- Flatten : $H \times W \times C \to H \cdot W \cdot C$ (vecteur 1D)
- Dense : params = $(in + 1) \times out$
- RNN : $H^t = \tanh(U \cdot X^t + V \cdot H^{t-1} + B^h)$
- Params RNN = $U(m \times n) + V(m \times m) + B^h(m) + W(p \times m) + B^o(p)$
- Many-to-one : seule $H^T$ (dernier pas) alimente la couche de sortie
- Softmax pour classification multi-classes ($p \ge 3$)
- Q-Learning = model-free, off-policy. MAJ : $Q \leftarrow Q + \alpha(r + \gamma \max Q' - Q)$
- $\varepsilon$-greedy : $\varepsilon \to 0$ = exploitation, $\varepsilon \to 1$ = exploration