Introduction au Machine Mearning et au Deep Learning

CNRS Formation, 2020

Objectifs

  • Maitriser les principaux algorithmes de machine learning et deep learning pour l’apprentissage supervisé
  • Comprendre les concepts et fonctionnement des algorithmes
  • Etre capable de les mettre en oeuvre avec Python
  • Etre capable de choisir les algorithmes de machine learning selon les cas d’usages
  • Savoir évaluer les performances des algorithmes de machine learning

Public

  • Chercheurs et ingénieurs en lien avec des problématiques liées à la science des données, allant de la science expérimentales aux sciences humaines, data-miners, informaticiens, développeurs et statisticiens intéressés par l’état de l’art en science des données

Prérequis

  • Connaissance d’au moins un langage de programmation ; connaissance de bases en probabilités et statistiques

Programme

  • Introduction à l’apprentissage supervisé : régression et classification binaire, métriques d’évaluation classiques, cross-validation, problème d’overfitting

  • Méthodes linéaires et non-linéaires : naïve Bayes, régression logistique, arbres de décision, CART, Gradient Boosting, Random Forests. Méthodes de régularisation ridge, lasso, problèmes en grande dimension

  • Deep learning : feed-forward neural networks, convolutional neural networks, back-propagation, algorithmes stochastiques pour l’entrainement, early stopping, méthodes d’initialisation, régularisation dropout, mise en oeuvre avec tensorflow et keras

Format

  • Alternance de cours (50%) et d’ateliers de mise en pratique (50%)

Equipements

  • Il est demandé aux stagiaires de venir avec leurs propres ordinateurs sur lesquels les logiciels et outils (open sources et gratuits) nécessaires à la formation seront préalablement installés.

Logiciels à installer avant la formation

La façon la plus simple, rapide et clé en main est d’utiliser l’image docker de la formation, mais vous pouvez également installer directement les outils nécessaires sur votre machine, ou utiliser votre environement de travail Python habituel si vous en avez un (idéalement Python 3.6). Les séances de travail de l’après midi seront entièrement sur machine, la formation se base sur un ensemble d’outils open-source et gratuits, issus du “stack” data-science de Python.

Très important. Il faut donc venir avec vos laptops, sur lesquels vous aurez préalablement installé les outils.

Utilisation de l’image docker de la formation (recommandé)

Téléchargez tout le matériel pédagogique (voir en bas) et mettez le tout dans un répertoire de votre ordinateur. On va supposer que le chemin complet vers ce répertoire est <PATH> dans la suite, par exemple quelque chose comme C:\Users\karin\Documents\Formation Cnrs sous windows ou /Users/stephane.gaiffas/formation_cnrs sous Mac OS.

Sous Windows 10

  1. Suivez les étapes décrites dans ces slides : docker_windows10.pdf

Sous Mac OS

  1. Téléchargez, installez et lancez docker sur votre machine : https://www.docker.com/get-started.

  2. Créez vous un compte sur docker hub (si vous n’en avez pas) sur https://hub.docker.com.

  3. Ouvrez un terminal. Tapez la commande

    docker login
    

    et renseignez le username et password que vous utilisez avec https://hub.docker.com.

  4. Tapez la commande

    docker run -dt -v <Path>:/formation_cnrs -p 4444:8888 stephanegaiffas/formation_cnrs
    

    <Path> est le chemin complet vers votre repertoire qui contient le matériel pédagogique. Ne changez rien d’autre à cette ligne de commande. Cette commande peut prendre un peu de temps : la première fois que vous la lancerez, elle téléchargera l’image docker de la formation (un peu plus de 2Go, qui contient tous les outils que nous utiliserons, pré-installés dans un conteneur Python:3.6 sous linux).

    Attention ! Il faut donc absolument faire cela avant le début de la formation cela peut prendre jusqu’à une heure de temps de téléchargement et d’installation !

  5. Ouvez votre navigateur web préféré (Safari, Chrome, etc.) et allez sur la page http://localhost:4444. Vous devriez alors voir le jupyter notebook avec le contenu de votre répertoire <PATH>. Si c’est le cas, tout est bon !

Installation directe via la distribution Anaconda Python 3.7

Il est fortement recommandé d’utiliser l’image docker de la formation. Si vous ne pouvez / voulez pas, suivez les étapes suivantes

  1. Installer la distribution Anaconda Python 3.7 sur votre machine sur https://www.anaconda.com

  2. Ouvrir une console / terminal (sous windows cela s’appelle “Conda Prompt”) et tapez

    conda create -n py36 python=3.6 anaconda
    

    pour créer un environement Python 3.6. En effet par défaut Anaconda utilise Python 3.7, sous lequel tensorflow a encore quelques problèmes.

  3. Activez cet environement en tapant sous windows:

    activate py36
    

    ou sous Mac OS / Linux:

    source activate py36
    

    ce qui active l’environement. Il faut alors télécharger ce fichier : requirements.txt dans votre répertoire <PATH>. Ce fichier liste tous les packages à installer avec leurs versions précise. Depuis le terminal, allez dans votre répertoire <PATH> (avec cd sous Mac OS) et tapez

    conda install pip
    pip install -r requirements.txt
    

    Cette commande va installer toutes les librairies utilisées lors de la formation.

  4. Tapez

    jupyter notebook
    

    dans le terminal, cela devrait ouvrir un navigateur avec le jupyter notebook ouvert, et vos fichiers de travail accessibles.

Matériel pédagogique

Introduction à Python, numpy, et pandas

Des slides introductifs au langage Python et à les principales librairies pour la science des données en Python.

Slides des matinées

Slides des après-midi

Notebooks

Notebooks corrigés

Fichiers de données

Vous pouvez les télécharger directement depuis les notebooks, mais ils sont disponibles aussi ici

Références

Références appliquées avec exemples

  • Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems, Aurelien Geron, O’Reilly
  • Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, W. McKinney, O’Reilly
  • Deep Learning with Python, Francois Chollet, Manning

Références plus théoriques

  • Machine Learning, K.M. Murphy, MIT Press
  • Foundations of Machine Learning, M. Mohri, A. Rostamizadeh and A. Talwalkar, MIT Press
  • Deep Learning, I. Goodfellow and Y. Bengio and A. Courville, MIT Press
  • Statistics for High-Dimensional Data: Methods, Theory and Applications, P. Bühlmann, S. van de Geer, Springer-Verlag
  • Pattern Recognition and Machine Learning, C. Bishop, Springer