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
- Suivez les étapes décrites dans ces slides : docker_windows10.pdf
Sous Mac OS
Téléchargez, installez et lancez docker sur votre machine : https://www.docker.com/get-started.
Créez vous un compte sur docker hub (si vous n’en avez pas) sur https://hub.docker.com.
Ouvrez un terminal. Tapez la commande
docker login
et renseignez le username et password que vous utilisez avec https://hub.docker.com.
Tapez la commande
docker run -dt -v <Path>:/formation_cnrs -p 4444:8888 stephanegaiffas/formation_cnrs
où
<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 !
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
Installer la distribution Anaconda Python 3.7 sur votre machine sur https://www.anaconda.com
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 utilisePython 3.7
, sous lequel tensorflow a encore quelques problèmes.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>
(aveccd
sous Mac OS) et tapezconda install pip pip install -r requirements.txt
Cette commande va installer toutes les librairies utilisées lors de la formation.
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
, scipy
et pandas
Des notebooks introductifs au langage Python
et à les principales librairies pour la science des données en Python
.
- notebook01_python.ipynb
- notebook02_numpy.ipynb
- notebook03_scipy.ipynb
- notebook04_pandas.ipynb et images utilisées dans ce notebook: notebook04_pandas.png notebook04_series-dataframe.png et le jeu de données tips.csv
- notebook05_sklearn.ipynb
Slides des matinées
Slides des après-midi
Notebooks
- day1_nlp_corrige.ipynb
- day1_score_corrige.ipynb
- day2_courbe_charge_corrige.ipynb
- day2_machine_learning_corrige.ipynb
- day3_deep_learning_corrige.ipynb
Fichiers de données
Vous pouvez les télécharger directement depuis les notebooks, mais ils sont disponibles aussi ici
- day1_score.csv.gz
- test_nlp.pkl.gz
- train_nlp.pkl.gz
- Courbes_Charge08.csv
- MNIST.pickle.zip
- notMNIST_100.pkl.gz
- fashionMNIST.pickle.zip
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