Intelligence Artificielle
Machine learning, reseaux de neurones et applications embarquees
Objectifs pedagogiques
- Comprendre les principes fondamentaux du machine learning
- Differencier apprentissage supervise, non supervise et par renforcement
- Decouvrir le fonctionnement des reseaux de neurones
- Identifier les applications de l'IA dans les systemes embarques (TinyML)
Introduction : Qu'est-ce que l'IA ?
Exemple concret : Reconnaissance vocale embarquee
"OK Google" ou "Alexa" : comment votre enceinte detecte-t-elle ces mots magiques sans connexion Internet ? Grace a un modele de machine learning embarque qui analyse le son en temps reel et reconnait des patterns specifiques. C'est du TinyML.
L'Intelligence Artificielle (IA) est un domaine de l'informatique qui vise a creer des systemes capables de realiser des taches qui necessitent normalement l'intelligence humaine : reconnaissance d'images, comprehension du langage, prise de decision...
Hierarchie des concepts
Intelligence Artificielle
Systemes "intelligents"
Machine Learning
Apprentissage a partir de donnees
Deep Learning
Reseaux de neurones profonds
1Types d'Apprentissage Automatique
Les 3 paradigmes du Machine Learning
Supervise
Donnees etiquetees (X → Y)
- Classification (chat/chien)
- Regression (prix maison)
image → "chien"
Non supervise
Donnees non etiquetees
- Clustering (groupes)
- Reduction de dimension
clients → groupe B
Par renforcement
Recompenses/punitions
- Jeux (AlphaGo, echecs)
- Robotique, navigation
action → -5 points
Classification vs Regression
| Type | Sortie | Exemple | Algorithmes |
|---|---|---|---|
| Classification | Categorie discrete | Spam / Non-spam | kNN, SVM, Arbres |
| Regression | Valeur continue | Prix = 250 000 euros | Lin. Reg., Poly. Reg. |
Exemple : Classification k-NN
// k-Nearest Neighbors - idee simple mais puissante
// Pour classifier un nouveau point :
1. Calculer la distance avec tous les points du dataset
2. Trouver les k plus proches voisins
3. Vote majoritaire : la classe la plus frequente gagne
// Exemple avec k=3 :
Nouveau point (5,3)
3 voisins : [chat, chat, chien]
→ Prediction : "chat" (2 voix contre 1)
Distance euclidienne : d = sqrt((x2-x1)² + (y2-y1)²). C'est la formule de Pythagore appliquee pour mesurer la "proximite" entre deux points de donnees.
2Reseaux de Neurones Artificiels
Le neurone artificiel (Perceptron)
Un neurone artificiel est une fonction mathematique qui prend des entrees (x1, x2...), les multiplie par des poids (w1, w2...), ajoute un biais, et applique une fonction d'activation pour produire une sortie.
Schema d'un neurone
Σ + b
f()
y = f(w1*x1 + w2*x2 + w3*x3 + b)
Fonctions d'activation
| Fonction | Formule | Sortie | Usage |
|---|---|---|---|
| Sigmoid | 1/(1+e^-x) | [0, 1] | Probabilites |
| ReLU | max(0, x) | [0, +∞] | Couches cachees |
| Softmax | e^xi / Σe^xj | [0, 1], Σ=1 | Multi-classe |
Reseau multicouche (MLP)
// Architecture typique d'un reseau de neurones
Couche d'entree (input layer)
→ Recoit les donnees brutes (ex: 784 pixels pour image 28x28)
Couches cachees (hidden layers)
→ Extraient des caracteristiques de plus en plus abstraites
→ Plus il y a de couches = "deep" learning
Couche de sortie (output layer)
→ Prediction finale (ex: 10 neurones pour chiffres 0-9)
Entrainement : Backpropagation
- Forward pass : Calculer la prediction avec les poids actuels
- Loss : Mesurer l'erreur (ex: ecart entre prediction et verite)
- Backward pass : Calculer le gradient de l'erreur par rapport a chaque poids
- Update : Ajuster les poids dans la direction qui reduit l'erreur
w_nouveau = w_ancien - learning_rate * gradient
Epochs et batch : Un epoch = un passage complet sur toutes les donnees. On decoupe souvent en mini-batches (ex: 32 images) pour accelerer l'entrainement.
3Applications de l'IA en STI2D
Domaines d'application
Vision par ordinateur
- Detection d'objets (YOLO)
- Reconnaissance faciale
- Controle qualite industriel
- Vehicules autonomes
Traitement du langage (NLP)
- Chatbots, assistants vocaux
- Traduction automatique
- Analyse de sentiment
- Resume de texte
Maintenance predictive
- Detection d'anomalies
- Prediction de pannes
- Optimisation des operations
- Surveillance vibratoire
Robotique et automatisme
- Navigation autonome
- Manipulation d'objets
- Drones intelligents
- Cobots (robots collaboratifs)
Exemple concret : Classification de gestes
// Detection de gestes avec accelerometre (Arduino)
// Donnees : acceleration X, Y, Z pendant 1 seconde
1. Collecte de donnees
- Enregistrer 50 exemples du geste "cercle"
- Enregistrer 50 exemples du geste "croix"
- Enregistrer 50 exemples de "repos"
2. Extraction de features
- Moyenne, variance, max, min de chaque axe
- → 12 features par exemple
3. Entrainement (sur PC)
- Algorithme : Random Forest ou petit reseau de neurones
- Precision visee : >95%
4. Deploiement sur Arduino
- Exporter le modele en C (TensorFlow Lite)
- Inference en temps reel sur microcontroleur
4TinyML : L'IA sur Microcontroleur
Qu'est-ce que TinyML ?
TinyML (Tiny Machine Learning) permet d'executer des modeles de machine learning sur des microcontroleurs avec seulement quelques Ko de RAM. L'inference se fait localement, sans cloud, avec latence minimale et respect de la vie privee.
Comparaison Cloud vs Edge vs TinyML
| Aspect | Cloud ML | Edge ML | TinyML |
|---|---|---|---|
| Materiel | Serveurs GPU | Raspberry Pi, Jetson | Arduino, ESP32 |
| RAM | Go - To | Mo - Go | Ko - Mo |
| Latence | 100ms - secondes | 10-100 ms | <10 ms |
| Connectivite | Requise | Optionnelle | Non requise |
| Consommation | kW | Watts | mW |
Outils TinyML
TensorFlow Lite Micro
- Framework de reference Google
- Modeles optimises pour MCU
- Support Arduino, ESP32, STM32
Edge Impulse
- Plateforme en ligne gratuite
- Collecte → Entrainement → Deploy
- Export vers Arduino/ESP32
// Workflow TinyML typique
1. Collecte de donnees
Edge Impulse Data Acquisition ou script Python
2. Entrainement dans le cloud
TensorFlow/Keras → modele .h5
3. Conversion et optimisation
TensorFlow Lite Converter
Quantification INT8 (reduit taille x4)
4. Deploiement
Modele .tflite → tableau C → Arduino
Inference avec TFLite Micro
Applications TinyML
- Wake word detection : "OK Google" local
- Reconnaissance de gestes : accelerometre
- Detection d'anomalies : vibrations machine
- Comptage de personnes : camera basse resolution
Resume en 5 points cles
- 1Le Machine Learning apprend des patterns a partir de donnees (supervise, non supervise, renforcement).
- 2Un neurone artificiel calcule y = f(Σwi*xi + b) avec une fonction d'activation non-lineaire.
- 3La backpropagation ajuste les poids en propagant l'erreur a rebours dans le reseau.
- 4TinyML permet l'inference IA sur microcontroleur sans cloud (latence <10ms).
- 5Edge Impulse et TensorFlow Lite Micro facilitent le deploiement sur Arduino/ESP32.
Mini-Quiz
Question 1 : Quel type d'apprentissage utilise des donnees etiquetees ?
a) Non supervise
b) Supervise
c) Par renforcement
Reponse : b) L'apprentissage supervise utilise des paires (entree, sortie attendue)
Question 2 : Quelle fonction d'activation est la plus utilisee dans les couches cachees ?
a) Sigmoid
b) ReLU
c) Softmax
Reponse : b) ReLU (max(0,x)) est simple, rapide et evite le probleme de gradient vanishing
Question 3 : Quel est l'avantage principal de TinyML ?
a) Plus precise que le cloud
b) Inference locale sans connexion Internet
c) Modeles plus gros
Reponse : b) TinyML permet l'IA embarquee, locale, temps reel et respectueuse de la vie privee
