ESIROI · Maquettes Connexion
AccueilITS7 · UE7-DATA
ESI-SPI-CI-IN4-S7-UE5-EC2

Apprentissage automatique

FR EN ⬇ PDF
RéférentCompte tenu de la centralité des algorithmes d'apprentissage automatique dans de nombreuses tâches de science des données, les scientifiques des données doivent être conscients d'un large éventail d'approches d'apprentissage automatique, ainsi que de la longue histoire du domaine. Un data scientist doit savoir où chercher les techniques possibles pour les appliquer à de nouveaux problèmes. Un data scientist doit également être conscient des concepts transversaux, tels que la nécessité d'évaluer performances et classes générales de défis rencontrés dans l'apprentissage automatique. Ce cours donne aussi bien l'aperçu que les notions techniques necessaires.
ECTS1
CM / TD / TP4 / 12 / 8
Typematiere

Viable
Viable100%
Complète86%
Manque pour « complète »
  • But du cours
  • Version EN relue

Acquis d'apprentissage visés

  • Identifier et choisir la famille d’algorithmes d’apprentissage automatique adaptée à un problème donné (supervisé, non supervisé, deep learning) en justifiant ce choix par des critères objectifs
  • Implémenter, entraîner et évaluer des modèles de classification et de régression en appliquant les bonnes pratiques : séparation train/test/validation, validation croisée, réglage des hyperparamètres
  • Analyser et interpréter les performances d’un modèle à l’aide de métriques appropriées (précision, recall, F1, AUROC, RMSE, R2R^2) et diagnostiquer les problèmes de biais et de variance
  • Appliquer des algorithmes d’apprentissage non supervisé pour la réduction de dimensionnalité (PCA, ICA, NMF) et le clustering (k-means, GMM, clustering hiérarchique) sur des jeux de données réels
  • Appliquer les méthodes d’analyse des données multimédia (images, signaux) à l’aide de modèles d’apprentissage appropriés
  • Concevoir, développer et intégrer des outils et des applications exploitant des modèles d’apprentissage automatique pour la valorisation des données

Prérequis

  • Probabilités et variables aléatoires (S5) : distributions de probabilité, espérance, variance, loi des grands nombres — fondements des modèles probabilistes (Naive Bayes, GMM, régression).
  • Processus stochastiques (S6) : modélisation de séries temporelles et de signaux aléatoires — utiles pour les modèles séquentiels et le deep learning.
  • Fouille de données (S6) : prétraitement des données, règles d’association, introduction au clustering — base directe de ce cours.
  • Compétences transversales attendues :
  • Programmation Python (numpy, pandas, matplotlib) à un niveau intermédiaire
  • Notions d’algèbre linéaire (vecteurs, matrices, valeurs propres) et de calcul différentiel (gradient)
  • Compréhension des structures de données et algorithmique de base
  • Lecture de documentation technique et d’articles scientifiques en anglais

Programme

  • Bases de l’apprentissage automatique :
  • Panorama des paradigmes : apprentissage supervisé, non supervisé, par renforcement et apprentissage profond.
  • Apprentissage symbolique vs numérique ; approches statistiques vs structurelles/syntaxiques.
  • Apprentissage comme problème d’optimisation ; exploration des données par le machine learning.
  • Défis transversaux : qualité des données, régularisation, généralisation, malédiction de la dimensionnalité.
  • Apprentissage supervisé :
  • Tâches de régression et de classification : cas d’usage et critères de choix.
  • Compromis biais/variance ; complexité du modèle et capacité de généralisation.
  • Protocoles d’évaluation : séparation train/test/validation, validation croisée, réglage des hyperparamètres.
  • Métriques de classification : précision, recall, F1, AUROC, matrice de confusion ; métriques de régression : RMSE, MAE, R2R^2.
  • Algorithmes fondamentaux : régression linéaire et logistique, KNN, Naive Bayes, arbres de décision.
  • Extensions et méthodes d’ensemble : bagging, boosting, forêts aléatoires, caractéristiques polynomiales.
  • Diagnostic d’un modèle : biais élevé vs variance élevée ; stratégies de sélection et d’ingénierie des features.
  • Classification multiclasse ; algorithme avancé : SVM (Support Vector Machine).
  • Apprentissage non supervisé :
  • Tâches principales : clustering et réduction de dimensionnalité.
  • Algorithmes de clustering : k-means, clustering hiérarchique (connectivité vs centroïde), DBSCAN, Gaussian Mixture Models (GMM).
  • Algorithmes de réduction de dimensionnalité : PCA (analyse en composantes principales), ICA (analyse en composantes indépendantes), NMF (factorisation matricielle non négative).
  • Évaluation des résultats en apprentissage non supervisé : indices de silhouette, inertie, interprétation des composantes.
  • **Apprentissage profond (Deep Learning) — introduction :**
  • Réseaux de neurones artificiels : architecture, fonction d’activation, rétropropagation.
  • Réseaux convolutifs (CNN) pour l’analyse d’images ; réseaux récurrents (RNN/LSTM) pour les signaux et séries temporelles.
  • Outils et frameworks : TensorFlow, PyTorch, Keras.
  • Défis pratiques et mise en œuvre :
  • Prétraitement des données : normalisation, gestion des valeurs manquantes, encodage des variables catégorielles.
  • Pipelines d’apprentissage automatique avec scikit-learn.
  • Interprétabilité des modèles : SHAP, importance des features.
  • Déploiement d’un modèle : API de prédiction, bonnes pratiques de MLOps.

Modalités d'évaluation

Contrôles continus et travaux pratiques évalués.

Bibliographie

  • Barra, V., Miclet, L. et Cornuéjols, A. - Apprentissage artificiel — Concepts et algorithmes, de Bayes et Hume au Deep Learning - Éditions Eyrolles, 4^(e) éd.
  • Aurélien Géron - Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow - O’Reilly, 3^(e) éd., 2022
  • Christopher M. Bishop - Pattern Recognition and Machine Learning - Springer, 2006
  • Ian Goodfellow, Yoshua Bengio & Aaron Courville - Deep Learning - MIT Press, 2016 : <https://www.deeplearningbook.org>
  • Documentation scikit-learn : <https://scikit-learn.org/stable/>
  • Documentation TensorFlow / Keras : <https://www.tensorflow.org/api_docs>
  • Documentation PyTorch : <https://pytorch.org/docs/stable/>
  • Kaggle — Jeux de données et compétitions ML : <https://www.kaggle.com>
  • Papers With Code — État de l’art en ML : <https://paperswithcode.com>

Supports

Diaporamas, fiches de travaux dirigés et de travaux pratiques.