Cours 9SIN

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 → "chat"
image → "chien"

Non supervise

Donnees non etiquetees

  • Clustering (groupes)
  • Reduction de dimension
clients → groupe A
clients → groupe B

Par renforcement

Recompenses/punitions

  • Jeux (AlphaGo, echecs)
  • Robotique, navigation
action → +10 points
action → -5 points

Classification vs Regression

TypeSortieExempleAlgorithmes
ClassificationCategorie discreteSpam / Non-spamkNN, SVM, Arbres
RegressionValeur continuePrix = 250 000 eurosLin. 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

x1 --w1→
x2 --w2→
x3 --w3→

Σ + b

f()

y (sortie)

y = f(w1*x1 + w2*x2 + w3*x3 + b)

Fonctions d'activation

FonctionFormuleSortieUsage
Sigmoid1/(1+e^-x)[0, 1]Probabilites
ReLUmax(0, x)[0, +∞]Couches cachees
Softmaxe^xi / Σe^xj[0, 1], Σ=1Multi-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

  1. Forward pass : Calculer la prediction avec les poids actuels
  2. Loss : Mesurer l'erreur (ex: ecart entre prediction et verite)
  3. Backward pass : Calculer le gradient de l'erreur par rapport a chaque poids
  4. 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

AspectCloud MLEdge MLTinyML
MaterielServeurs GPURaspberry Pi, JetsonArduino, ESP32
RAMGo - ToMo - GoKo - Mo
Latence100ms - secondes10-100 ms<10 ms
ConnectiviteRequiseOptionnelleNon requise
ConsommationkWWattsmW

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

  1. 1Le Machine Learning apprend des patterns a partir de donnees (supervise, non supervise, renforcement).
  2. 2Un neurone artificiel calcule y = f(Σwi*xi + b) avec une fonction d'activation non-lineaire.
  3. 3La backpropagation ajuste les poids en propagant l'erreur a rebours dans le reseau.
  4. 4TinyML permet l'inference IA sur microcontroleur sans cloud (latence <10ms).
  5. 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

Scientia