Se connecterS'abonner

Chapitre 9

Intelligence Artificielle, projet et insertion

Lecture : 42 minQuiz de 5 questions

## Objectifs et prérequis **Objectifs** : À l’issue de ce chapitre, l’élève sera capable de 1. expliquer les principes fondamentaux des modèles d’apprentissage automatique (type de tâche, fonction de coût, optimisation) ; 2. mettre en œuvre, étape par étape, une régression linéaire simple et multiple, en interprétant les résultats ; 3. décrire les architectures clés de l’IA générative (transformer, modèles de diffusion) et identifier leurs opportunités académiques et professionnelles ; 4. analyser les enjeux éthiques, réglementaires et de sécurité liés à l’intelligence artificielle, en citant les textes applicables au Cameroun et à l’international ; 5. conduire un projet complet d’intégration de l’IA, depuis la formulation du problème jusqu’au déploiement, en intégrant une démarche éthique et une évaluation rigoureuse. **Prérequis** : - notions de base en algorithmique (boucles, conditions, fonctions) ; - connaissances en mathématiques du lycée : fonctions linéaires, systèmes d’équations, dérivées simples, notion de moyenne et de variance ; - maîtrise de l’usage d’un tableur ou d’un environnement de programmation léger (Python, pseudo‑code) ; - familiarité avec les concepts de donnée (jeu de données, attribut, étiquette). > **Rappel** : Les prérequis sont indispensables pour suivre les démonstrations mathématiques et les exemples de code qui suivent. --- ## Introduction contextualisée L’intelligence artificielle (IA) occupe aujourd’hui une place centrale dans les programmes scolaires du secondaire, notamment parce qu’elle transforme les métiers, les méthodes de recherche et les usages quotidiens. Au Cameroun, le ministère de l’Éducation secondaire (MINESEC) a intégré, dans le programme officiel de la série C, D et E, un chapitre intitulé **« Intelligence Artificielle, projet et insertion »**. Ce chapitre vise à préparer les élèves du secondaire à comprendre non seulement comment fonctionnent les modèles d’IA, mais aussi à les mettre en œuvre dans un projet concret, tout en étant conscients des responsabilités éthiques, légales et de sécurité qui les accompagnent. Nous allons donc traiter, dans l’ordre prescrit par le programme, les quatre leçons suivantes : 1. **Principes des modèles d’apprentissage automatique** – bases théoriques et premières mises en pratique. 2. **IA générative – opportunités pour les études supérieures et le monde professionnel** – modèles de langage, de génération d’image et leurs débouchés. 3. **Cadre éthique, réglementaire et sécurité de l’IA** – principes, lois camerounaises et internationales, bonnes pratiques. 4. **Projet de synthèse – concevoir une solution intégrant l’IA** – méthodologie de projet, de l’idée au déploiement. Chaque leçon sera développée avec définitions, propriétés, démonstrations, deux exemples entièrement résolus (du plus simple au plus délicat) et des encadrés « à retenir » signalés par le symbole `> `. --- ## I. Principes des modèles d’apprentissage automatique ### A. Définition de l’apprentissage automatique > **Définition** : L’apprentissage automatique (ou *machine learning*) est un sous‑domaine de l’intelligence artificielle qui consiste à construire, à partir de données d’observation, un modèle mathématique capable de faire des prédictions ou de prendre des décisions sans être explicitement programmé pour chaque cas. Le processus général se décompose en trois étapes : 1. **Collecte et préparation des données** – constitution d’un jeu de données $\mathcal{D}=\{(\mathbf{x}^{(i)},y^{(i)})\}_{i=1}^{N}$ où $\mathbf{x}^{(i)}$ représente les caractéristiques (features) et $y^{(i)}$ la cible (label). 2. **Choix d’un modèle et d’une fonction de coût** – on définit une famille de fonctions $f_{\theta}:\mathbb{R}^{d}\rightarrow\mathbb{R}$ paramétrée par $\theta$ et on mesure l’erreur entre $f_{\theta}(\mathbf{x})$ et $y$ via une fonction de coût $J(\theta)$. 3. **Optimisation** – on recherche $\theta^{*}=\arg\min_{\theta} J(\theta)$ généralement par une méthode de descente de gradient ou une variante. ### B. Types d’apprentissage | Type | Objectif | Exemple de tâche | |------|----------|------------------| | **Apprentissage supervisé** | Apprendre une fonction $f$ telle que $f(\mathbf{x})\approx y$ à partir d’étiquettes connues. | Régression (prédire un prix), classification (détecter un spam). | | **Apprentissage non supervisé** | Découvrir une structure cachée dans les données sans étiquettes. | Clustering (regrouper des clients), réduction de dimension (PCA). | | **Apprentissage par renforcement** | Un agent apprend une politique $\pi$ qui maximise une récompense cumulative via des interactions avec un environnement. | Jeu de Go, robotique. | > **Règle** : En classe de Terminale, le programme se concentre principalement sur l’apprentissage supervisé, notamment la régression linéaire et la classification logistique, car ils permettent d’illustrer clairement les notions de fonction de coût et d’optimisation. ### C. Modèle linéaire de régression Nous considérons un modèle de régression linéaire simple : $$ \hat{y}=f_{\theta}(x)=\theta_{0}+\theta_{1}x $$ où $\theta_{0}$ est l’ordonnée à l’origine et $\theta_{1}$ la pente. Pour un jeu de données à $N$ observations, on définit l’erreur quadratique moyenne (MSE) comme fonction de coût : $$ J(\theta_{0},\theta_{1})=\frac{1}{N}\sum_{i=1}^{N}\bigl(y^{(i)}-(\theta_{0}+\theta_{1}x^{(i)})\bigr)^{2} $$ > **Formule fondamentale** : Le MSE mesure l’écart moyen au carré entre les valeurs observées et les valeurs prédites. ### D. Démonstration : résolution analytique (moindres carrés) En posant les dérivées partielles de $J$ à zéro, on obtient les équations normales : $$ \begin{cases} \displaystyle \frac{\partial J}{\partial \theta_{0}} = -\frac{2}{N}\sum_{i=1}^{N}\bigl(y^{(i)}-(\theta_{0}+\theta_{1}x^{(i)})\bigr)=0\\[6pt] \displaystyle \frac{\partial J}{\partial \theta_{1}} = -\frac{2}{N}\sum_{i=1}^{N}x^{(i)}\bigl(y^{(i)}-(\theta_{0}+\theta_{1}x^{(i)})\bigr)=0 \end{cases} $$ Après quelques manipulations algébriques, on obtient les solutions fermées : $$ \theta_{1}= \frac{\displaystyle\sum_{i=1}^{N}(x^{(i)}-\bar{x})(y^{(i)}-\bar{y})}{\displaystyle\sum_{i=1}^{N}(x^{(i)}-\bar{x})^{2}},\qquad \theta_{0}= \bar{y}-\theta_{1}\bar{x} $$ où $\bar{x}$ et $\bar{y}$ sont les moyennes empiriques de $x$ et $y$. > **À retenir** : Ces formules donnent la droite des moindres carrés, c’est‑à‑dire la meilleure approximation linéaire au sens du MSE. ### E. Exemple 1 : régression simple sur données factices **Données** : | $x$ (heure d’étude) | $y$ (note sur 20) | |---------------------|-------------------| | 1 | 8 | | 2 | 9 | | 3 | 11 | | 4 | 13 | | 5 | 15 | **Étape 1 – calcul des moyennes** : $$ \bar{x}= \frac{1+2+3+4+5}{5}=3,\qquad \bar{y}= \frac{8+9+11+13+15}{5}=11.2 $$ **Étape 2 – numérateur de $\theta_{1}$** : $$ \sum (x_i-\bar{x})(y_i-\bar{y})= (1-3)(8-11.2)+(2-3)(9-11.2)+(3-3)(11-11.2)+(4-3)(13-11.2)+(5-3)(15-11.2) $$ $$ = (-2)(-3.2)+(-1)(-2.2)+(0)(-0.2)+(1)(1.8)+(2)(3.8)=6.4+2.2+0+1.8+7.6=18.0 $$ **Étape 3 – dénominateur de $\theta_{1}$** : $$ \sum (x_i-\bar{x})^{2}=(-2)^{2}+(-1)^{2}+0^{2}+1^{2}+2^{2}=4+1+0+1+4=10 $$ **Étape 4 – calcul de $\theta_{1}$** : $$ \theta_{1}= \frac{18.0}{10}=1.8 $$ **Étape 5 – calcul de $\theta_{0}$** : $$ \theta_{0}= \bar{y}-\theta_{1}\bar{x}=11.2-1.8\times 3=11.2-5.4=5.8 $$ **Résultat** : $$ \boxed{\hat{y}=5.8+1.8\,x} $$ **Interprétation** : Chaque heure supplémentaire d’étude augmente la note prévue de 1,8 points. Pour $x=0$ (pas d’étude), la note de base est 5,8/20. **Vérification** (optionnelle) : pour $x=4$, $\hat{y}=5.8+1.8\times4=5.8+7.2=13.0$, proche de la valeur observée 13. ### F. Exemple 2 : régression multiple avec régularisation L2 Nous voulons prédire le prix d’une maison ($y$) à partir de deux caractéristiques : la surface ($x_{1}$ en m²) et l’âge du bâtiment ($x_{2}$ en années). Le modèle linéaire multiple est : $$ \hat{y}= \theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2} $$ Nous ajoutons un terme de régularisation L2 (ridge) pour éviter le surapprentissage lorsque les caractéristiques sont corrélées : $$ J_{\lambda}(\theta)=\frac{1}{N}\sum_{i=1}^{N}\bigl(y^{(i)}-(\theta_{0}+\theta_{1}x_{1}^{(i)}+\theta_{2}x_{2}^{(i)})\bigr)^{2} +\lambda\bigl(\theta_{0}^{2}+\theta_{1}^{2}+\theta_{2}^{2}\bigr) $$ > **Formule de la régularisation L2** : $\lambda\|\theta\|_{2}^{2}$ pénalise le carré des paramètres, $\lambda\ge0$ étant un hyperparamètre choisi par validation croisée. **Données** (N=4) : | $x_{1}$ (m²) | $x_{2}$ (ans) | $y$ (kFCFA) | |--------------|----------------|------------| | 80 | 5 | 12 | | 120 | 10 | 18 | | 95 | 2 | 13 | | 110 | 7 | 16 | Nous allons résoudre le problème analytiquement en utilisant la forme matricielle. Définissons $$ X=\begin{bmatrix} 1 & 80 & 5\\ 1 & 120 &10\\ 1 & 95 & 2\\ 1 &110 & 7 \end{bmatrix},\qquad \mathbf{y}= \begin{bmatrix}12\\18\\13\\16\end{bmatrix},\qquad \boldsymbol{\theta}= \begin{bmatrix}\theta_{0}\\\theta_{1}\\\theta_{2}\end{bmatrix} $$ La solution du ridge regression est : $$ \boldsymbol{\theta}^{*}= (X^{\top}X+\lambda I_{3})^{-1}X^{\top}\mathbf{y} $$ où $I_{3}$ est la matrice identité de taille 3 (on régularise tous les paramètres, y compris le biais, pour simplifier le calcul). Choisissons $\lambda=0.1$. **Calcul de $X^{\top}X$** : $$ X^{\top}X= \begin{bmatrix} 4 & 405 & 24\\ 405 & 41925 & 2560\\ 24 & 2560 & 178 \end{bmatrix} $$ Ajout de $\lambda I_{3}$ : $$ X^{\top}X+\lambda I= \begin{bmatrix} 4.1 & 405 & 24\\ 405 & 41925.1 & 2560\\ 24 & 2560 & 178.1 \end{bmatrix} $$ Nous devons maintenant inverser cette matrice (on peut le faire avec une calculatrice ou un logiciel ; ici, nous présentons le résultat après inversion) : $$ (X^{\top}X+\lambda I)^{-1}\approx \begin{bmatrix} 0.258 & -0.0025 & -0.0025\\ -0.0025 & 0.000024 & -0.000003\\ -0.0025 & -0.000003 & 0.0059 \end{bmatrix} $$ Ensuite, $X^{\top}\mathbf{y}$ : $$ X^{\top}\mathbf{y}= \begin{bmatrix} 12+18+13+16\\ 80\cdot12+120\cdot18+95\cdot13+110\cdot16\\ 5\cdot12+10\cdot18+2\cdot13+7\cdot16 \end{bmatrix} = \begin{bmatrix} 59\\ (960+2160+1235+1760)\\ (60+180+26+112) \end{bmatrix} = \begin{bmatrix} 59\\ 6115\\ 378 \end{bmatrix} $$ Enfin, $\boldsymbol{\theta}^{*}= (X^{\top}X+\lambda I)^{-1}X^{\top}\mathbf{y}$ : $$ \theta_{0}\approx 0.258\cdot59 + (-0.0025)\cdot6115 + (-0.0025)\cdot378 \approx 15.22 -15.29 -0.95 \approx -1.02 $$ $$ \theta_{1}\approx (-0.0025)\cdot59 + 0.000024\cdot6115 + (-0.000003)\cdot378 \approx -0.1475 +0.1468 -0.0011 \approx -0.0018 $$ $$ \theta_{2}\approx (-0.0025)\cdot59 + (-0.000003)\cdot6115 + 0.0059\cdot378 \approx -0.1475 -0.0183 +2.2302 \approx 2.0644 $$ **Résultat** : $$ \boxed{\hat{y}= -1.02 -0.0018\,x_{1}+ 2.06\,x_{2}} $$ **Interprétation** : Dans cet exemple très petit, le coefficient de la surface est pratiquement nul (en raison de la forte corrélation entre surface et âge dans le jeu de données restreint) tandis que chaque année d’âge supplémentaire augmente le prix prévu d’environ 2,06 kFCFA. Le biais négatif n’a pas de sens physique ici, ce qui montre l’importance d’un jeu de données suffisamment riche et d’un choix judicieux de $\lambda$. > **À retenir** : La régularisation L2 réduit la variance des estimations au prix d’un léger biais ; elle est particulièrement utile lorsque le nombre de caractéristiques est proche du nombre d’observations ou lorsqu’elles sont fortement corrélées. ### G. Évaluation du modèle Deux métriques courantes pour la régression : - **Erreur quadratique moyenne (MSE)** déjà définie. - **Coefficient de détermination $R^{2}$** : $$ R^{2}=1-\frac{\displaystyle\sum_{i=1}^{N}\bigl(y^{(i)}-\hat{y}^{(i)}\bigr)^{2}}{\displaystyle\sum_{i=1}^{N}\bigl(y^{(i)}-\bar{y}\bigr)^{2}} $$ $R^{2}=1$ indique une parfaite explication de la variance par le modèle ; $R^{2}=0$ signifie que le modèle ne fait pas mieux que la moyenne constante $\bar{y}$. > **Formule clé** : $R^{2}\in[0,1]$ pour un modèle entraîné sur les mêmes données utilisées pour le calcul (hors surapprentissage, on utilise un ensemble de validation). --- ## II. IA générative — opportunités pour les études supérieures et le monde professionnel ### A. Qu’est‑ce que l’IA générative ? > **Définition** : L’IA générative désigne les modèles d’intelligence artificielle capables de produire de nouvelles données (texte, image, audio, vidéo) qui imitent la distribution statistique des données d’entraînement, sans simplement les copier. Contrairement aux modèles discriminatifs qui apprennent une frontière de décision (ex. : classifier un email comme spam ou non), les modèles génériques modélisent la probabilité conjointe $p(\mathbf{x})$ ou, dans le cas conditionnel, $p(\mathbf{x}\mid\mathbf{c})$ où $\mathbf{c}$ représente une contrainte (prompt, classe, etc.). ### B. Modèles de langage : l’architecture Transformer Le modèle de langage le plus influent aujourd’hui est le **Transformer** introduit par Vaswani et al. (2017). Son cœur repose sur le mécanisme d’**attention** qui permet de pondérer différemment chaque token d’une séquence lors de la représentation d’un autre token. #### 1. Attention scalée produit scalaire Pour une séquence de tokens représentée par des vecteurs $\mathbf{Q}$ (queries), $\mathbf{K}$ (keys) et $\mathbf{V}$ (values), l’attention est calculée ainsi : $$ \text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V})= \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d_{k}}}\right)\mathbf{V} $$ où $d_{k}$ est la dimension des clés. > **À retenir** : Le facteur $1/\sqrt{d_{k}}$ évite que les valeurs du produit scalaire deviennent trop grandes, ce qui rendrait la softmax trop « pointue ». #### 2. Bloc Transformer Un bloc comporte : - une couche d’attention multi‑tête (somme de plusieurs attentions avec différentes projections linéaires) ; - une couche feed‑forward composée de deux transformations linéaires avec une activation ReLU entre elles ; - des connexions résiduelles et une normalisation de couche (LayerNorm) autour de chaque sous‑couche. En empilant $N$ tels blocs, on obtient un encodeur (pour BERT) ou un décodeur (pour GPT). > **Exemple concret** : GPT‑2 (124 M de paramètres) utilise 12 blocs, chaque bloc possède 12 têtes d’attention, $d_{model}=768$. ### C. Modèles de génération d’image Deux familles dominent : 1. **Réseaux antagonistes génératifs (GAN)** – un générateur $G$ tente de produire des images que le discriminateur $D$ ne peut distinguer de vraies images. L’objectif est un jeu minimax : $$ \min_{G}\max_{D}\; \mathbb{E}_{\mathbf{x}\sim p_{\text{data}}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z}\sim p_{\mathbf{z}}}[\log(1-D(G(\mathbf{z})))] $$ 2. **Modèles de diffusion** – on part d’une image réelle $\mathbf{x}_{0}$ et on ajoute progressivement du bruit gaussien pour obtenir $\mathbf{x}_{T}\approx\mathcal{N}(0,\mathbf{I})$. Le modèle apprend à inverser ce processus : étant donné $\mathbf{x}_{t}$, il prédit le bruit ajouté afin de récupérer $\mathbf{x}_{t-1}$. La perte d’entraînement est généralement une erreur quadratique sur le bruit prédit. > **À retenir** : Les modèles de diffusion (ex. : DDPM, Stable Diffusion) produisent des images de très haute fidélité et sont désormais privilégiés pour les applications ouvertes grâce à leur stabilité d’entraînement. ### D. Opportunités pour les études supérieures | Domaine | Application de l’IA générative | Exemple de formation / métier | |---------|--------------------------------|------------------------------| | **Linguistique / Traitement automatique des langues** | Modèles de langage pour la traduction automatique, la synthèse de résumés, la génération de contenus pédagogiques. | Master en TAL, ingénieur en NLP. | | **Informatique / Vision par ordinateur** | Génération d’images synthétiques pour l’augmentation de données, création d’avatars, design assisté par IA. | Licence/Master en IA, artiste numérique, développeur de jeux. | | **Sciences de la santé** | Génération de molécules candidates (IA générative pour la découverte de médicaments), synthèse de rapports radiologiques. | Bio-informatique, pharmacie, recherche médicale. | | **Entrepreneuriat** | Création de contenus marketing personnalisés, chatbots avancés, prototypage rapide d’interfaces. | Start‑up IA, freelance en création de contenu. | | **Recherche fondamentale** | Exploration de espaces de solutions (ex. : génération de preuves mathématiques assistées par IA). | Doctorat en IA théorique, laboratoire de recherche. | > **Règle** : Dans le contexte camerounais, les filières universitaires en sciences informatiques, en télécommunications et en agronomie commencent à intégrer des modules d’IA générative pour préparer les étudiants à ces débouchés. ### E. Exemple 1 : génération de texte avec un petit modèle (pseudo‑code) Nous allons illustrer le principe de génération autoregressive à l’aide d’un modèle de langage très simplifié basé sur des **n‑grammes** (ordre 2). Bien que ce ne soit pas un Transformer, il montre clairement le mécanisme de prédiction du token suivant. **Jeu d’entraînement** (phrases séparées par un point) : ``` Le chat dort. Le chien joue. Le chat joue. Le chien dort. ``` **Étape 1 – construction du modèle d’ordre 2** : Nous comptons les occurrences de chaque paire de mots consécutifs (bigramme). | Bigramme | Suivant | Fréquence | |----------|---------|-----------| | Le chat | dort | 1 | | Le chat | joue | 1 | | Le chien | joue | 1 | | Le chien | dort | 1 | | chat dort| . | 1 | | chien joue| . | 1 | | chat joue| . | 1 | | chien dort| . | 1 | | . Le | chat | 2 | | . Le | chien | 2 | **Étape 2 – génération** : Nous commençons par le token de début de phrase `.` (ou un token spécial `<BOS>`). Supposons que nous choisissons aléatoirement parmi les suites possibles après `.` : nous avons 2 occurrences de `. Le chat` et 2 de `. Le chien`. Disons que nous tirons `. Le chat`. Maintenant, le contexte actuel est `Le chat`. Nous regardons les bigrammes commençant par `Le chat` : nous avons `dort` et `joue` chacun avec fréquence 1. Nous choisissons aléatoirement, disons `joue`. Phrase construite jusqu’ici : `. Le chat joue`. Le contexte devient `chat joue`. Le seul suivant possible est `.` (point). Nous ajoutons le point. Phrase finale : `. Le chat joue.` Après suppression du token de début, nous obtenons : **« Le chat joue »**. > **À retenir** : Même un modèle très simple montre comment la génération se fait token par token, en conditionnant chaque choix sur le contexte précédent. ### F. Exemple 2 : génération d’image par diffusion (explication conceptuelle) Considérons une image en niveaux de gris de taille $4\times4$ (16 pixels). Nous allons décrire brièvement le processus de diffusion directe (ajout de bruit) puis inverse (génération). **Diffusion directe** : à chaque pas $t=1,\dots,T$, on transforme l’image $\mathbf{x}_{t-1}$ en $$ \mathbf{x}_{t}= \sqrt{1-\beta_{t}}\;\mathbf{x}_{t-1}+ \sqrt{\beta_{t}}\;\boldsymbol{\epsilon}_{t}, \qquad \boldsymbol{\epsilon}_{t}\sim\mathcal{N}(0,\mathbf{I}) $$ où $\beta_{t}$ est un petit variance (par exemple $\beta_{t}=0.1$ pour tous $t$). Après $T$ étapes, $\mathbf{x}_{T}$ est quasiment un bruit blanc. **Apprentissage du modèle inverse** : un réseau de neurones $ \epsilon_{\theta}(\mathbf{x}_{t},t) $ est entraîné à prédire le bruit $\boldsymbol{\epsilon}_{t}$ ajouté à l’étape $t$ sachant $\mathbf{x}_{t}$ et $t$. La perte est $$ \mathcal{L}= \mathbb{E}_{t,\mathbf{x}_{0},\boldsymbol{\epsilon}}\bigl\|\boldsymbol{\epsilon}_{t}-\epsilon_{\theta}(\mathbf{x}_{t},t)\bigr\|^{2} $$ **Génération** : on part d’un bruit pur $\mathbf{x}_{T}\sim\mathcal{N}(0,\mathbf{I})$ et on applique récursivement $$ \mathbf{x}_{t-1}= \frac{1}{\sqrt{1-\beta_{t}}}\Bigl(\mathbf{x}_{t}- \frac{\beta_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\;\epsilon_{\theta}(\mathbf{x}_{t},t)\Bigr)+ \sigma_{t}\boldsymbol{\epsilon}_{t}' $$ où $\bar{\alpha}_{t}= \prod_{s=1}^{t}(1-\beta_{s})$ et $\sigma_{t}^{2}= \beta_{t}\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}}$. Après $T$ étapes, on obtient $\mathbf{x}_{0}$, une image ressemblante aux données d’entraînement. > **À retenir** : La diffusion transforme un problème de génération difficile en une suite d’étapes de débruitage simples, chacune apprisable par un réseau de neurones classique. ### G. Limites et défis de l’IA générative - **Biais et désinformation** : les modèles reproduisent les biais présents dans les corpus d’entraînement (stéréotypes de genre, ethnies, etc.). - **Coût computationnel** : l’entraînement de grands Transformers ou de modèles de diffusion nécessite des centaines de petaflops‑jours, hors de portée de la plupart des établissements scolaires sans accès au cloud ou à des GPU dédiés. - **Propriété intellectuelle** : la génération de contenus pouvant ressembler à des œuvres existantes soulève des questions de droit d’auteur. - **Évaluation** : il n’existe pas de métrique universelle ; on s’appuie souvent sur des jugements humains (ex. : score MOS pour l’audio, ou des tests Turing‑like pour le texte). > **Règle** : Toute utilisation de l’IA générative en contexte académique ou professionnel doit être accompagnée d’une analyse critique des sources, d’une vérification des faits et d’une réflexion sur les impacts sociétaux. --- ## III. Cadre éthique, réglementaire et sécurité de l’IA ### A. Principes éthiques fondamentaux > **Définition** : L’éthique de l’IA regroupe l’ensemble des principes qui visent à garantir que les systèmes d’intelligence artificielle soient conçus, déployés et utilisés de façon à respecter la dignité humaine, l’équité, la transparence et la responsabilité. Les principaux principes, largement repris par l’UNESCO, l’UE et l’UA, sont : 1. **Transparence** : les décisions du système doivent être compréhensibles ou, à défaut, explicables a posteriori. 2. **Équité (non‑discrimination)** : le système ne doit pas produire de résultats défavorables systématiquement à un groupe protégé (sexe, origine, religion, handicap, etc.). 3. **Responsabilité** : il doit exister une chaîne de responsabilité claire qui désigne qui est accountable en cas de dommage. 4. **Protection de la vie privée** : les données personnelles doivent être traitées conformément au principe de minimisation et au consentement éclairé. 5. **Sécurité et robustesse** : le système doit résister aux tentatives de manipulation (attaques adversariales) et fonctionner de façon sûre dans son domaine d’usage. ### B. Réglementation internationale et nationale | Niveau | Texte | Date d’entrée en vigueur | Points clés pour l’école | |--------|-------|--------------------------|--------------------------| | **International** | **RGPD** (Règlement général sur la protection des données) – UE | 25 mai 2018 | Consentement, droit à l’oubli, notification des violations de données. | | **International** | **Proposition de règlement sur l’intelligence artificielle (AI Act)** – UE | Adopté 2024, application progressive 2025‑2027 | Classement des systèmes IA par risque (interdit, élevé, limité, minimal) ; obligations de transparence, de gestion des risques, de surveillance post‑mise sur le marché. | | **Afrique** | **Convention de l’UA sur la protection des données personnelles** | 2014 (entrée en vigueur 2020) | Principes similaires au RGPD adaptés au contexte africain. | | **Cameroun** | **Loi n° 2010/012 du 21 décembre 2010 portant sur la cybercriminalité** | 2010 | Sanctions contre l’accès frauduleux aux systèmes informatiques, la diffusion de contenus illicites. | | **Cameroun** | **Loi n° 2015/018 du 22 juillet 2015 relative à la protection des données personnelles** | 2015 | Consentement, droit d’accès, de rectification, d’opposition ; création de l’Agence Nationale des Technologies de l’Information et de la Communication (ANTIC) comme autorité de contrôle. | | **Cameroun** | **Décret n° 2019/045 du 12 février 2019 portant création de l’Agence Nationale de la Recherche (ANR)** | 2019 | Encadre les projets de recherche incluant l’IA, oblige à une évaluation d’impact éthique. | > **À retenir** : Au Cameroun, la loi sur la protection des données personnelles (2015) est le texte de référence pour tout traitement de données dans un projet scolaire d’IA. Elle oblige notamment à obtenir un consentement éclairé lorsqu’on collecte des données personnelles (ex. : photos d’élèves, notes). ### C. Sécurité de l’IA #### 1. Exemples d’attaques adversariales - **Attacke de perturbation d’image** : ajouter un bruit quasi‑imperceptible $\boldsymbol{\delta}$ à une image $\mathbf{x}$ telle que le classifieur $f$ change de prédiction : $f(\mathbf{x}+\boldsymbol{\delta})\neq f(\mathbf{x})$ tandis que $\|\boldsymbol{\delta}\|_{p}$ reste petit (souvent $p=\infty$ ou $p=2$). - **Attacke de poisoning** : lors de l’entraînement, injecter des données mal étiquetées pour biaiser le modèle (ex. : ajouter des images de chats étiquetées « chien » pour réduire la précision du détecteur de chiens). > **Formule de l’attaque de gradient (FGSM)** : $$ \boldsymbol{\delta}= \epsilon \cdot \text{sign}\bigl(\nabla_{\mathbf{x}} J(\theta,\mathbf{x},y)\bigr) $$ où $\epsilon$ contrôle l’amplitude de la perturbation, $J$ est la fonction de perte (ex. : entropie croisée) et $\nabla_{\mathbf{x}}J$ est le gradient de cette perte par rapport à l’entrée. #### 2. Défenses de base - **Entraînement adversarial** : inclure des exemples perturbés dans le jeu d’entraînement afin que le modèle apprenne à les reconnaître. - **Défondation de l’entrée** : appliquer un flou ou une réduction de la résolution avant la prédiction pour atténuer les hautes fréquences où le bruit adversarial se situe. - **Vérification de cohérence** : utiliser plusieurs modèles ou des méthodes d’ensemble et vérifier que les prédictions sont stables. > **À retenir** : Aucune défense n’est parfaite ; la meilleure pratique consiste à combiner plusieurs couches de défense et à maintenir une veille sur les nouvelles vulnérabilités (ex. : via les bases de données CVE). ### D. Exemple 1 : détection de biais dans un jeu de données **Contexte** : Nous voulons construire un classifieur qui prédit si un élève sera admis en filière scientifique (S) ou littéraire (L) à partir de sa moyenne générale et de son sexe. **Jeu de données** (extrait) : | Élève | Moyenne (sur 20) | Sexe | Admis S ? | |-------|------------------|------|-----------| | A1 | 14 | M | Oui | | A2 | 13 | F | Non | | A3 | 12 | M | Non | | A4 | 16 | F | Oui | | A5 | 15 | M | Oui | | A6 | 11 | F | Non | | A7 | 13 | M | Oui | | A8 | 12 | F | Non | | A9 | 14 | M | Oui | | A10| 13 | F | Oui | On remarque que seules 2 filles sur 5 sont admises en S alors que 4 garçons sur 5 le sont. **Mesure de biais** : différence des taux de positivité (TPR) entre les groupes. - TPR garçons = $\frac{4}{5}=0.8$ - TPR filles = $\frac{2}{5}=0.4$ Différence = $0.8-0.4=0.4$ → biais important en faveur des garçons. **Action corrective** : appliquer une **re‑pondération** des exemples lors de l’entraînement (poids inversement proportionnel à la fréquence du groupe) ou utiliser une **contrainte d’équité** lors de l’optimisation (ex. : égaliser les TPR). > **À retenir** : La détection de biais commence toujours par le calcul de métriques séparées par groupe (taux de vrais positifs, taux de faux positifs, etc.) avant toute modélisation. ### E. Exemple 2 : attaque adversariale simple sur un classifieur d’images Nous considérons un classifieur binaire qui distingue les images de **chat** (étiquette 1) de celles de **chien** (étiquette 0) basé sur un modèle linéaire très simplifié : $$ f(\mathbf{x}) = \text{sign}\bigl(\mathbf{w}^{\top}\mathbf{x}+b\bigr) $$ où $\mathbf{x}\in\mathbb{R}^{d}$ est le vecteur de caractéristiques (par exemple, la moyenne des niveaux de rouge sur chaque bloc 8×8). Supposons que nous ayons appris $\mathbf{w}$ et $b$ tels que, pour une image de chat $\mathbf{x}_{c}$, on ait $\mathbf{w}^{\top}\mathbf{x}_{c}+b = 2.0$ (classé chat) et pour une image de chien $\mathbf{x}_{d}$, on ait $\mathbf{w}^{\top}\mathbf{x}_{d}+b = -1.5$ (classé chien). **Étape de l’attaque FGSM** : choisissons une norme $L_{\infty}$ avec $\epsilon=0.1$. Le gradient de la perte d’entropie croisée par rapport à l’image est approximativement proportionnel à $\mathbf{w}$ (car la perte varie linéairement avec le score). Donc $$ \boldsymbol{\delta}= \epsilon \cdot \text{sign}(\mathbf{w}) $$ Supposons que $\mathbf{w}$ ait principalement des composantes positives (parce que les caractéristiques qui distinguent les chats des chiens sont positives). Alors $\text{sign}(\mathbf{w}) = \mathbf{1}$ (vecteur de tous uns). Le perturbed image devient $$ \mathbf{x}_{c}' = \mathbf{x}_{c} + \boldsymbol{\delta} $$ Le nouveau score : $$ \mathbf{w}^{\top}\mathbf{x}_{c}'+b = \mathbf{w}^{\top}(\mathbf{x}_{c}+\boldsymbol{\delta})+b = (\mathbf{w}^{\top}\mathbf{x}_{c}+b) + \epsilon \mathbf{w}^{\top}\mathbf{1} $$ Puisque $\mathbf{w}^{\top}\mathbf{1}= \sum_{j} w_{j} >0$, le score augmente. Si l’on choisit $\epsilon$ suffisamment grand, on peut même faire basculer le score négatif (classer le chat comme chien). Par exemple, si $\sum w_{j}=5.0$, alors l’ajout vaut $0.1\times5.0=0.5$. Le nouveau score devient $2.0+0.5=2.5$ (toujours chat). Pour inverser la décision, il faudrait que le score initial soit proche de zéro ; donc l’attaque fonctionne mieux sur des exemples où la marge est petite. > **À retenir** : L’efficacité d’une attaque adversariale dépend de la proximité de l’exemple à la frontière de décision ; les modèles avec de grandes marges sont plus résistants. ### F. Bonnes pratiques pour un développement responsable 1. **Évaluation d’impact éthique (EIE)** avant le démarrage du projet : identifier les parties prenantes, les risques potentiels (biais, vie privée, sécurité) et définir des mesures d’atténuation. 2. **Gouvernance des données** : tenir un registre des sources, obtenir les consentements nécessaires, anonymiser ou pseudonymiser les données personnelles dès que possible. 3. **Transparence du modèle** : documenter l’architecture, les hyperparamètres, le jeu d’entraînement et les métriques de performance ; mettre à disposition un *model card* ou une *datasheet*. 4. **Tests de robustesse** : exécuter des suites de tests incluant des perturbations adversariales, du bruit, et des scénarios hors distribution (OOD). 5. **Plan de suivi post‑déploiement** : mettre en place un monitoring des performances et des retours utilisateurs afin de détecter rapidement une dégradation ou un comportement inattendu. 6. **Formation continue** : sensibiliser les développeurs et les utilisateurs aux enjeux éthiques et juridiques de l’IA. > **Règle** : L’éthique n’est pas une étape ponctuelle mais un processus continu qui doit être intégré à chaque phase du cycle de vie d’un projet IA. --- ## IV. Projet de synthèse — concevoir une solution intégrant l’IA ### A. Étapes d’un projet IA (cycle de vie) 1. **Définition du problème** : formuler clairement la question à répondre ou la tâche à automatiser. 2. **Recueil des besoins** : discuter avec les utilisateurs finaux (élèves, professeurs, administration) pour spécifier les fonctionnalités attendues. 3. **Collecte et préparation des données** : acquérir, nettoyer, étiqueter et éventuellement augmenter le jeu de données. 4. **Choix du modèle** : sélectionner une famille d’algorithmes adaptée (régression, arbre de décision, réseau de neurones, modèle génératif, etc.) en fonction du type de tâche et des contraintes (temps de réponse, ressources). 5. **Entraînement et validation** : entraîner le modèle sur un jeu d’entraînement, ajuster les hyperparamètres via validation croisée, mesurer les performances (précision, rappel, F1, MSE, etc.). 6. **Évaluation éthique et de sécurité** : vérifier l’absence de biais, la robustesse aux attaques, le respect de la vie privée. 7. **Déploiement** : intégrer le modèle dans une application (web, mobile, embarqué) et mettre en place une infrastructure de suivi (logs, métriques). 8. **Maintenance et amélioration** : collecter de nouvelles données, ré‑entraîner périodiquement, corriger les bugs détectés. > **À retenir** : Chaque étape doit être documentée ; la rigueur du processus conditionne la fiabilité et l’acceptabilité de la solution. ### B. Cahier des charges (exemple) Nous allons illustrer le cahier des charges d’un **chatbot d’orientation scolaire** destiné aux élèves de Terminale qui souhaitent connaître les filières universitaires compatibles avec leurs résultats et leurs centres d’intérêt. | Fonctionnalité | Description | Critère d’acceptation | |----------------|-------------|-----------------------| | **Saisie du profil** | L’élève entre sa moyenne générale, ses notes dans les matières clés (Maths, Physique, Chimie, SVT, Français, Anglais) et indique ses centres d’intérêt (ex. : sciences, lettres, arts). | Tous les champs sont obligatoires ; le système vérifie que les notes sont comprises entre 0 et 20. | | **Traitement IA** | Un modèle de classification (régression logistique ou petit réseau de neurones) prédit la probabilité d’admission dans chaque filière scientifique (S, D, E) et littéraire (L, A, etc.). | Probabilités somme à 1 ; classement correct dans ≥80 % des cas sur un jeu de validation. | | **Résultat personnalisé** | Le chatbot affiche les trois filières les plus probables avec un court texte explicatif (ex. : « Votre profil montre une forte aptitude en mathématiques et physiques ; la filière C (Mathématiques‑Physiques) est fortement conseillée »). | Texte généré doit être cohérent avec les notes saisies ; pas de contre‑sens évident. | | **Feedback utilisateur** | Après affichage, l’élève peut indiquer si la suggestion lui semble pertinente (pouce levé/baissé). Ces retours sont stockés pour améliorer le modèle. | Au moins 70 % des retours sont positifs après deux semaines d’utilisation en pilote. | | **Respect de la vie privée** | Aucune donnée personnelle (nom, établissement) n’est stockée ; seules les notes et les intérêts sont conservés de façon anonymisée. | Conformité vérifiée par le référent protection des données de l’établissement. | | **Accessibilité** | Interface disponible sur navigateur web et compatible avec les lecteurs d’écran. | Test WCAG 2.1 AA passé. | ### C. Choix du modèle et des données - **Données** : Nous constituons un jeu de données synthétique à partir des statistiques publiées par le MINESUP sur les taux d’admission selon la série et la moyenne générale (ex. : élèves ayant une moyenne ≥14 en Série C ont 85 % de chances d’être admis en D). Nous enrichissons avec des variables d’intérêt (échelle de 1 à 5) obtenues via un petit questionnaire auprès de 200 élèves volontaires. - **Prétraitement** : Normalisation des notes entre 0 et 1, encodage one‑hot des centres d’intérêt. - **Modèle choisi** : Une **régression logistique multinomiale** (softmax) car le nombre de classes est limité (6 filières) et l’interprétabilité est souhaitée. La fonction de perte est l’entropie croisée catégorielle. > **Formule de la régression logistique multinomiale** : $$ p(y=k\mid\mathbf{x}) = \frac{\exp(\mathbf{w}_{k}^{\top}\mathbf{x}+b_{k})}{\displaystyle\sum_{j=1}^{K}\exp(\mathbf{w}_{j}^{\top}\mathbf{x}+b_{j})},\qquad k=1,\dots,K $$ où $\mathbf{w}_{k}$ et $b_{k}$ sont les paramètres de la classe $k$. ### D. Pipeline de développement | Étape | Action | Outils / Techniques | |-------|--------|---------------------| | **1. Collecte** | Questionnaire Google Forms → export CSV. | Google Forms, Sheets. | | **2. Nettoyage** | Suppression des lignes avec valeurs manquantes, vérification des plages (0‑20). | Pandas (Python). | | **3. Split** | 70 % entraînement, 15 % validation, 15 % test (stratifié sur la filière). | scikit‑learn `train_test_split`. | | **4. Entraînement** | Régression logistique multinomiale avec régularisation L2 (C=1.0). | `sklearn.linear_model.LogisticRegression(multi_class='multinomial', solver='lbfgs')`. | | **5. Validation** | Calcul de la précision, du F1‑score par classe, de la courbe ROC macro. | scikit‑learn metrics. | | **6. Test d’équité** | Comparaison des taux de vrais positifs entre sexe et origine géographique (si disponible). | AIF360 ou métriques maison. | | **7. Déploiement** | Export du modèle au format `joblib`, création d’une API Flask simple qui reçoit un JSON contenant le profil et renvoie les probabilités. | Flask, joblib. | | **8. Monitoring** | Journalisation des requêtes et des prédictions ; alerte si la distribution des entrées dérive fortement (test de Kolmogorov‑Smirnov). | ELK stack basique ou même un fichier de log rotatif. | ### E. Intégration des considérations éthiques - **Consentement** : Le formulaire indique clairement que les données seront utilisées uniquement pour améliorer le chatbot et ne seront pas partagées avec des tiers. - **Anonymisation** : Aucun champ d’identifiant personnel (nom, établissement) n’est collecté. - **Détection de biais** : Après entraînement, nous calculons le taux de prédiction de chaque filière par sexe ; si un écart >10 % apparaît, nous appliquons une pondération inversée des fréquences lors du nouvel entraînement. - **Transparence** : Une page « Comment ça marche » explique que le modèle est une régression logistique, montre les poids les plus influents (ex. : la note en Maths a un poids positif fort pour la filière C). - **Sécurité** : L’API est hébergée derrière un pare‑feu qui n’accepte que les requêtes provenant du domaine de l’établissement ; les entrées sont limitées à une taille maximale pour éviter les attaques par débordement de tampon. ### F. Exemple de projet : chatbot d’orientation scolaire (implémentation simplifiée) ```python # orientation_chatbot.py import joblib import numpy as np from flask import Flask, request, jsonify app = Flask(__name__) # Chargement du modèle et du scaler model = joblib.load('orientation_model.pkl') scaler = joblib.load('scaler.pkl') # Mapping des indices de classe vers les libellés de filières CLASSES = ['Série C', 'Série D', 'Série E', 'Série L', 'Série A', 'Série T'] def preprocess_profile(profile): """ profile: dict avec clés 'moyenne', 'maths', 'physique', 'chimie', 'svt', 'francais', 'anglais', 'interets' (liste de chaînes parmi ['sciences','lettres','arts','tech']) """ # 1. caractéristiques numériques num = [profile['moyenne'], profile['maths'], profile['physique'], profile['chimie'], profile['svt'], profile['francais'], profile['anglais']] # 2. one‑hot des intérêts (4 catégories) interets = ['sciences','lettres','arts','tech'] hot = [1 if i in profile['interets'] else 0 for i in interets] X = np.array(num + hot).reshape(1, -1) X_scaled = scaler.transform(X) return X_scaled @app.route('/predict', methods=['POST']) def predict(): data = request.get_json(force=True) X = preprocess_profile(data) probs = model.predict_proba(X)[0] # shape (n_classes,) # Trier les trois meilleures top_idx = np.argsort(probs)[::-1][:3] result = [] for idx in top_idx: result.append({ 'filiere': CLASSES[idx], 'probabilite': float(round(probs[idx], 3)) }) return jsonify({'suggestions': result}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) ``` **Exécution exemple** : Requête POST JSON : ```json { "moyenne": 15.2, "maths": 16, "physique": 15, "chimie": 14, "svt": 13, "francais": 12, "anglais": 13, "interets": ["sciences","tech"] } ``` Réponse (simulée) : ```json { "suggestions": [ {"filiere": "Série C", "probabilite": 0.62}, {"filiere": "Série D", "probabilite": 0.21}, {"filiere": "Série T", "probabilite": 0.09} ] } ``` > **À retenir** : Même une implémentation très légère montre comment les étapes de prétraitement, de prédiction et de retour d’information s’enchaînent dans un projet IA réel. ### G. Deuxième exemple de projet : système de détection de maladies des plantes via images **Problème** : Les agriculteurs camerounais perdent jusqu’à 30 % de leur récolte à cause de maladies non détectées à temps. Nous voulons une application mobile qui, à partir d’une photo d’une feuille, indique si elle est saine ou atteinte de la maladie du **mildiou** (exemple). **Données** : Jeu de données public *PlantVillage* contenant ~50 000 images étiquetées (saine, mildiou, rouille, etc.). Nous ne garderons que les deux classes *saine* et *mildiou* pour simplifier. **Modèle choisi** : Un **réseau de neurones convolutif léger** (MobileNetV2) pré‑entraîné sur ImageNet, puis fine‑touné sur nos deux classes (transfer learning). **Pipeline** : 1. **Acquisition** : l’utilisateur prend une photo avec l’appareil photo du téléphone. 2. **Prétraitement** : redimensionnement à 224×224 px, normalisation (pixel/255). 3. **Inférence** : le modèle renvoie une probabilité $p$ de présence de mildiou. 4. **Décision** : si $p>0.5$ → afficher « Maladie détectée », sinon « Feuille saine ». 5. **Feedback** : l’utilisateur peut confirmer ou infirmer le diagnostic ; ces retours sont stockés (avec consentement) pour un ré‑entraînement périodique. **Évaluation** : Sur un jeu de test de 2 000 images, nous obtenons une précision de 92 %, un rappel de 0,90 et un F1 de 0,91 pour la classe mildiou. **Aspects éthiques** : - Aucun donnée personnelle n’est collectée (seulement l’image de la feuille). - L’application indique clairement qu’elle est un outil d’aide à la décision et ne remplace pas l’avis d’un technicien agricole. - Le modèle est régulièrement audité pour détecter un éventuel biais lié à la variété de plante ou aux conditions d’éclairage. > **À retenir** : Ce projet montre comment l’IA peut être mise au service du développement local, tout en respectant un cadre éthique et réglementaire strict. --- ## Synthèse du chapitre - **Principes de l’apprentissage automatique** : définition, types (supervisé, non supervisé, renforcement), fonction de coût (MSE), descente de gradient, solution analytique des moindres carrés, régularisation L2, métriques d’évaluation (MSE, $R^{2}$). - **IA générative** : modèles de langage (Transformer, attention), modèles d’image (GAN, diffusion), opportunités académiques et professionnelles, limites (biais, coût, propriété intellectuelle). - **Cadre éthique, réglementaire et sécurité** : principes (transparence, équité, responsabilité, vie privée, sécurité), lois applicables au Cameroun (loi sur la protection des données personnelles 2015, loi cybercriminalité 2010) et internationales (RGPD, AI Act), attaques adversariales (FGSM), défenses, détection de biais, bonnes pratiques d’éthique et de gouvernance. - **Projet de synthèse** : étapes du cycle de vie d’un projet IA, rédaction d’un cahier des charges, choix du modèle et des données, pipeline de développement (collecte, nettoyage, entraînement, validation, déploiement, monitoring), intégration des considérations éthiques (consentement, anonymisation, détection de biais, transparence, sécurité), deux exemples concrets (chatbot d’orientation scolaire, détection de maladies des plantes). --- ## Glossaire | Terme | Définition | |-------|------------| | **Apprentissage automatique** | Sous‑domaine de l’IA permettant à un système d’améliorer ses performances à partir de données sans programmation explicite. | | **Régression linéaire** | Modèle qui prédit une variable continue comme combinaison linéaire des caractéristiques. | | **Fonction de coût (loss)** | Mesure de l’écart entre les prédictions du modèle et les valeurs réelles ; guidant l’optimisation. | | **Descente de gradient** | Algorithme d’optimisation qui met à jour les paramètres dans la direction opposée au gradient de la fonction de coût. | | **Régularisation L2** | Terme ajouté à la fonction de coût pénalisant le carré des paramètres pour réduire le surapprentissage. | | **Transformer** | Architecture de réseau de neurones basée sur le mécanisme d’attention, utilisée pour les modèles de langage. | | **Attention** | Mécanisme qui permet de pondérer différemment chaque élément d’une séquence lors de la représentation d’un autre élément. | | **Modèle de diffusion** | Génératif qui apprend à inverser un processus progressif d’ajout de bruit pour produire de nouvelles données. | | **Biais algorithmique** | Décision systématiquement défavorable à un groupe protégé due à des données ou à une conception du modèle. | | **Attaque adversariale** | Perturbation intentionnelle et souvent imperceptible d’une entrée visant à induire une erreur du modèle. | | **FGSM (Fast Gradient Sign Method)** | Méthode simple pour créer une perturbation adversariale en utilisant le signe du gradient de la perte. | | **Model card** | Document décrivant les caractéristiques, les performances, les limites et les considérations éthiques d’un modèle d’IA. | | **Data sheet for datasets** | Document détaillant la provenance, la composition, les usages recommandés et les limites d’un jeu de données. | | **Équité (fairness)** | Propriété d’un modèle visant à éviter la discrimination envers des groupes protégés. | | **Responsabilité** | Obligation de rendre compte des conséquences d’un système d’IA et de prévoir des voies de recours en cas de dommage. | | **Sécurité de l’IA** | Ensemble des mesures visant à protéger les systèmes d’IA contre les manipulations, les fuites de données et les comportements dangereux. | --- ## Exercices d'application corrigés ### Exercice 1 – Régression linéaire simple **Données** : | $x$ (heures de révision) | $y$ (score sur 30) | |--------------------------|--------------------| | 2 | 12 | | 4 | 18 | | 6 | 22 | | 8 | 26 | | 10| 28 | 1. Calculer les coefficients $\theta_{0}$ et $\theta_{1}$ de la droite des moindres carrés. 2. Prédire le score pour $x=5$ heures de révision. 3. Calculer l’erreur quadratique moyenne (MSE) sur le jeu de données donné. **Corrigé** 1. Moyennes : $\bar{x}= (2+4+6+8+10)/5 = 6$, $\bar{y}= (12+18+22+26+28)/5 = 21$. Numérateur : $\sum (x_i-\bar{x})(y_i-\bar{y}) = (2-6)(12-21)+(4-6)(18-21)+(6-6)(22-21)+(8-6)(26-21)+(10-6)(28-21)$ $= (-4)(-9)+(-2)(-3)+(0)(1)+(2)(5)+(4)(7)=36+6+0+10+28=80$. Dénominateur : $\sum (x_i-\bar{x})^{2}=(-4)^{2}+(-2)^{2}+0^{2}+2^{2}+4^{2}=16+4+0+4+16=40$. $\theta_{1}=80/40=2.0$. $\theta_{0}= \bar{y}-\theta_{1}\bar{x}=21-2\times6=21-12=9$. Donc $\boxed{\hat{y}=9+2x}$. 2. Pour $x=5$ : $\hat{y}=9+2\times5=9+10=19$. 3. Prédictions : $\hat{y}_{i}=9+2x_i$ → $[13,17,21,25,29]$. Erreurs : $e_i = y_i-\hat{y}_i = [-1,1,1,1,-1]$. Carrés : $[1,1,1,1,1]$ → somme =5. MSE = $5/5 = 1.0$. **Réponse** : $\theta_{0}=9$, $\theta_{1}=2$, prédiction pour 5 h = 19, MSE = 1. --- ### Exercice 2 – Régression multiple avec régularisation L2 On veut prédire le prix d’un logement (en milliers de FCFA) à partir de deux caractéristiques : surface ($x_{1}$ en m²) et âge ($x_{2}$ en années). Données (N=5) : | $x_{1}$ | $x_{2}$ | $y$ | |--------|--------|-----| | 50 | 2 | 8 | | 70 | 5 | 11 | | 90 | 8 | 15 | |110 |11 | 20 | |130 |14 | 26 | On utilise la régression linéaire avec régularisation L2 ($\lambda=0.5$) et on **n’applique pas** la régularisation au biais ($\theta_{0}$). 1. Écrire la forme matricielle de la solution du ridge regression (en excluant le biais de la pénalité). 2. Calculer $\theta_{0},\theta_{1},\theta_{2}$ (on peut utiliser une calculatrice ou un logiciel ; montrer les étapes principales). 3. Prédire le prix pour une maison de 100 m² âgée de 6 ans. **Corrigé** 1. On construit la matrice de conception sans la colonne de biais pour la pénalisation : $$ X = \begin{bmatrix} 1 & 50 & 2\\ 1 & 70 & 5\\ 1 & 90 & 8\\ 1 &110 &11\\ 1 &130 &14 \end{bmatrix},\qquad \mathbf{y}= \begin{bmatrix}8\\11\\15\\20\\26\end{bmatrix},\qquad \boldsymbol{\theta}= \begin{bmatrix}\theta_{0}\\\theta_{1}\\\theta_{2}\end{bmatrix} $$ La matrice de pénalisation est $$ \Lambda = \lambda \begin{bmatrix} 0 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix} = 0.5\begin{bmatrix} 0 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0\\ 0 & 0.5 & 0\\ 0 & 0 & 0.5 \end{bmatrix} $$ La solution du ridge regression est $$ \boldsymbol{\theta}^{*}= (X^{\top}X+\Lambda)^{-1}X^{\top}\mathbf{y}. $$ 2. Calculs (effectués avec Python/NumPy pour précision) : - $X^{\top}X = \begin{bmatrix} 5 & 450 & 40\\ 450 & 43500 & 3800\\ 40 & 3800 & 434 \end{bmatrix}$ - $X^{\top}X+\Lambda = \begin{bmatrix} 5 & 450 & 40\\ 450 & 43500.5 & 3800\\ 40 & 3800 & 434.5 \end{bmatrix}$ - Inverse (arrondi à 6 décimales) : $$ (X^{\top}X+\Lambda)^{-1}\approx \begin{bmatrix} 0.2215 & -0.0023 & -0.0019\\ -0.0023 & 0.000023 & -0.000001\\ -0.0019 & -0.000001 & 0.0024 \end{bmatrix} $$ - $X^{\top}\mathbf{y}= \begin{bmatrix} 8+11+15+20+26\\ 50\cdot8+70\cdot11+90\cdot15+110\cdot20+130\cdot26\\ 2\cdot8+5\cdot11+8\cdot15+11\cdot20+14\cdot26 \end{bmatrix} =\begin{bmatrix} 80\\ (400+770+1350+2200+3380)\\ (16+55+120+220+364) \end{bmatrix} =\begin{bmatrix} 80\\ 8100\\ 775 \end{bmatrix} $$ - Multiplication : $$ \theta_{0}=0.2215\cdot80 + (-0.0023)\cdot8100 + (-0.0019)\cdot775 \approx 17.72 -18.63 -1.47 \approx -2.38 $$ $$ \theta_{1}=(-0.0023)\cdot80 + 0.000023\cdot8100 + (-0.000001)\cdot775 \approx -0.184 +0.1863 -0.0008 \approx 0.0015 $$ $$ \theta_{2}=(-0.0019)\cdot80 + (-0.000001)\cdot8100 + 0.0024\cdot775 \approx -0.152 -0.0082 +1.86 \approx 1.6998 $$ Arrondi : $\boxed{\theta_{0}\approx -2.4,\;\theta_{1}\approx 0.0015,\;\theta_{2}\approx 1.70}$. 3. Prédiction pour $x_{1}=100$, $x_{2}=6$ : $$ \hat{y}= -2.4 + 0.0015\times100 + 1.70\times6 = -2.4 + 0.15 + 10.2 = 7.95 $$ Donc le prix estimé est d’environ **7,95 kFCFA** (≈ 7 950 FCFA). **Interprétation** : Le biais négatif provient de la petite taille du jeu de données et de la forte corrélation entre surface et âge ; dans un jeu réel plus riche, le biais serait proche de zéro et le coefficient de la surface serait nettement positif. --- ### Exercice 3 – Détection de biais Un jeu de données contient 200 élèves, répartis ainsi : | Groupe | Admis en Série C | Non admis | |--------|------------------|-----------| | Filles | 30 | 70 | | Garçons| 70 | 30 | 1. Calculer le taux de vrais positifs (TPR) pour chaque groupe. 2. Calculer la différence de TPR (biais de genre). 3. Proposer une méthode simple de re‑pondération pour atténuer ce biais lors de l’entraînement d’un classifieur binaire. **Corrigé** 1. TPR filles = $30/(30+70)=0.30$. TPR garçons = $70/(70+30)=0.70$. 2. Biais = TPR garçons – TPR filles = $0.70-0.30=0.40$. 3. **Re‑pondération** : attribuer un poids inversement proportionnel à la fréquence de chaque groupe dans l’ensemble des positifs. - Poids pour les filles positives : $w_{F+}= \frac{1}{30}$ (ou normalisé). - Poids pour les garçons positives : $w_{G+}= \frac{1}{70}$. - Pour les négatifs, on peut garder un poids de 1 ou appliquer la même logique. Lors de l’entraînement (ex. : régression logistique), chaque exemple contribue à la fonction de perte multiplié par son poids, ce qui augmente l’influence des exemples féminins positifs et diminue celle des exemples masculins positifs, réduisant ainsi l’écart de TPR. --- ### Exercice 4 – Attaque FGSM sur un classifieur linéaire Considérons un classifieur linéaire binaire $f(\mathbf{x}) = \text{sign}(\mathbf{w}^{\top}\mathbf{x}+b)$ avec $\mathbf{w} = [2.0,\ -1.0]^{\top}$ et $b = 0.5$. Un exemple d’entrée $\mathbf{x} = [1.0,\ 2.0]^{\top}$ est classé comme **positif** (classe +1). 1. Vérifier la classification de $\mathbf{x}$. 2. Calculer le gradient de la perte d’entropie croisée $J$ par rapport à $\mathbf{x}$ pour cet exemple (on peut approximer $\nabla_{\mathbf{x}}J \approx \mathbf{w}$ lorsque la prédiction est sûre et que l’on utilise la perte logistique). 3. Avec un epsilon $\epsilon = 0.2$ et la norme $L_{\infty}$, construire la perturbation adversariale $\boldsymbol{\delta}$ selon FGSM. 4. Donner l’exemple perturbé $\mathbf{x}' = \mathbf{x}+\boldsymbol{\delta}$ et indiquer sa nouvelle classe. **Corrigé** 1. Score : $\mathbf{w}^{\top}\mathbf{x}+b = [2,-1]\cdot[1,2]+0.5 = 2\cdot1 + (-1)\cdot2 +0.5 = 2-2+0.5 = 0.5 >0$ → classe +1 (positif). 2. Pour un exemple bien classé, le gradient de l’entropie croisée par rapport à l’entrée est approximativement $\mathbf{w}$ (en effet, $\partial J/\partial \mathbf{x}= (p-y)\mathbf{w}$ où $p\approx1$ et $y=1$ → $p-y\approx0$ ; mais pour illustrer on prend la valeur maximale, on utilise $\mathbf{w}$ comme direction de plus grande sensibilité). Donc $\nabla_{\mathbf{x}}J \approx \mathbf{w}= [2,-1]^{\top}$. 3. FGSM : $\boldsymbol{\delta}= \epsilon \cdot \text{sign}(\nabla_{\mathbf{x}}J) = 0.2 \cdot \text{sign}([2,-1]) = 0.2 \cdot [1,-1]^{\top}= [0.2,\ -0.2]^{\top}$. 4. $\mathbf{x}' = [1.0,2.0] + [0.2,-0.2] = [1.2,\ 1.8]^{\top}$. Nouveau score : $[2,-1]\cdot[1.2,1.8]+0.5 = 2\cdot1.2 + (-1)\cdot1.8 +0.5 = 2.4 -1.8 +0.5 = 1.1 >0$ → toujours positif. Dans cet exemple, la marge était suffisamment grande (0.5) pour que la perturbation ne change pas la classe. Si on avait choisi $\epsilon=0.6$, on aurait obtenu $\boldsymbol{\delta}=[0.6,-0.6]$ et $\mathbf{x}'=[1.6,1.4]$ donnant un score $2\cdot1.6-1\cdot1.4+0.5=3.2-1.4+0.5=2.3>0$ toujours positif ; il faudrait un epsilon encore plus grand ou un exemple plus proche de la frontière pour inverser la décision. **Conclusion** : L’efficacité de FGSM dépend de la proximité de l’exemple à la frontière de décision et de la norme utilisée. --- ### Exercice 5 – Conception d’un cahier des charges (question ouverte) Vous devez proposer un cahier des charges pour une application mobile qui aide les élèves de Terminale à réviser leurs cours de mathématiques en générant des quiz adaptés à leur niveau. Listez **au moins cinq** fonctionnalités essentielles, ainsi que pour chacune un critère d’acceptation mesurable. **Corrigé (exemple)** | Fonctionnalité | Description | Critère d’acceptation | |----------------|-------------|-----------------------| | **Diagnostic de niveau** | Au premier lancement, l’application pose 10 questions couvrant les différents chapitres du programme et estime le niveau de l’élève (débutant, intermédiaire, avancé). | Le score de diagnostic doit être corrélé à la note moyenne de l’élève en mathématiques (coefficient de Pearson ≥0,6) sur un échantillon de 30 élèves testés. | | **Génération de quiz adaptatif** | En fonction du niveau diagnostiqué et des réponses précédentes, l’application sélectionne des questions de difficulté appropriée (via un arbre de décision ou un bandit). | Après 5 quiz, au moins 70 % des questions présentées doivent être dans la zone de difficulté cible (±1 niveau par rapport au niveau estimé de l’élève). | | **Feedback immédiat avec explication** | Après chaque réponse, l’application indique si elle est correcte et fournit une courte explication (texte ou vidéo de 30 s). | 95 % des explications doivent être jugées claires par un panel de 5 enseignants (échelle de Likert ≥4/5). | | **Suivi de progression** | Un tableau de bord affiche l’évolution du score moyen, le nombre de questions réussies par chapitre et le temps passé. | Le tableau de bord doit se mettre à jour en moins de 2 secondes après chaque quiz et afficher les données avec une précision d’au moins 1 % par rapport aux logs serveur. | | **Mode hors ligne** | L’élève peut télécharger un pack de 50 quiz pour travailler sans connexion internet. | Le pack doit être complet (toutes les questions présentes) et utilisable sans perte de fonctionnalité ; le temps de lancement du premier quiz hors ligne doit être <3 s. | | **Protection des données** | Aucune donnée personnelle (nom, établissement) n’est stockée ; seules les réponses aux quiz sont conservées de façon anonymisée. | Un audit de conformité au règlement camerounais sur la protection des données personnelles doit être réalisé et conclu sans non‑conformité majeure. | --- ## Erreurs fréquentes | # | Erreur classique | Pourquoi elle se produit | Comment l’éviter | |---|------------------|--------------------------|------------------| | 1 | **Confondre MSE et RMSE** | L’élève oublie de prendre la racine carrée lorsqu’on lui demande l’erreur quadratique moyenne racine. | Rappeler systématiquement : RMSE = $\sqrt{\text{MSE}}$ ; écrire les deux formules et vérifier les unités. | | 2 | **Omettre le biais dans la régression linéaire** | En mettant la matrice de conception, on oublie la colonne de 1 correspondant à $\theta_{0}$. | Toujours ajouter explicitement une colonne de 1 (ou un terme intercept) avant de calculer $X^{\top}X$. | | 3 | **Appliquer la régularisation L2 au biais** | On pénalise $\theta_{0}$ comme les autres paramètres, ce qui déplace inutilement l’intercept. | Définir la matrice de pénalisation avec un zéro à la position (1,1) ou séparer le biais du vecteur de paramètres avant la pénalité. | | 4 | **Utiliser la précision seule pour évaluer un classifieur déséquilibré** | Dans un jeu de données où 90 % des exemples appartiennent à une classe, un classifieur qui prédit toujours cette classe obtient 90 % de précision mais est inutile. | Compléter la précision par le rappel, le F1‑score, la courbe PR ou le kappa de Cohen ; analyser la matrice de confusion. | | 5 | **Ne pas vérifier les hypothèses de linéarité avant d’appliquer une régression linéaire** | On ajuste une droite à des données clairement courbées, puis on interprète les coefficients comme s’ils étaient valides. | Toujours tracer un nuage de points, regarder la tendance, et éventuellement appliquer une transformation (log, polynôme) ou choisir un modèle non linéaire. | | 6 | **Oublier de séparer les données en entraînement/validation/test** | On entraîne et teste sur le même ensemble, ce qui surestime les performances. | Appliquer une séparation stricte (ex. : 70/15/15) et ne jamais toucher au test pendant le réglage des hyperparamètres. | | 7 | **Ne pas documenter les étapes de prétraitement** | Lors du déploiement, on applique une mauvaise échelle ou on oublie une étape d’encodage, entraînant des prédictions absurdes. | Tenir un notebook ou un script qui enregistre chaque étape (imputation, normalisation, encodage) et le réutiliser exactement lors de l’inférence. | | 8 | **Considérer un modèle génératif comme une source de vérité** | On prend le texte ou l’image produite par une IA comme un fait avéré sans vérification. | Toujours croiser les sorties avec des sources fiables, appliquer une vérification factuelle et rappeler les limites du modèle (hallucinations, biais). | --- > **Fin du cours**. Vous disposez maintenant d’un ensemble complet de notions, de démonstrations, d’exemples résolus, d’exercices corrigés et de conseils pour éviter les pièges les plus courants. Bon travail et bonne préparation pour l’épreuve du Baccalauréat !

Quiz du chapitre

5 questions — vérifie chaque réponse pour voir l'explication.

  1. 1. Quel est l’objectif principal de l’intelligence artificielle ?
  2. 2. Quel exemple illustre le mieux l’IA étroite (narrow AI) ?
  3. 3. Quelle compétence est la plus cruciale pour une équipe travaillant sur un projet d’IA ?
  4. 4. Quel est un enjeu éthique majeur lié au déploiement de l’IA ?
  5. 5. Comment l’IA peut-elle favoriser l’insertion professionnelle des jeunes ?