1 - MLCC (Machine Learning Crash Course)
L'apprentissage automatique permet d'extraire des informations significatives à partir de données, voire de transformer notre façon de raisonner en utilisant des statistiques plutôt que la logique pure. Google propose un cours intensif (MLCC) accessible à l'adresse : https://developers.google.com/machine-learning/crash-course/. Disponible en plusieurs langues, il compte 25 leçons et plus de 40 exercices, avec des démonstrations interactives pour faciliter la compréhension des concepts. La durée estimée est d'environ 15 heures (variable selon chacun).
Important : Cette durée ne couvre que le visionnage et la lecture, pas la véritable assimilation ni l'entraînement pratique. Un débutant peut nécessiter plusieurs fois ce temps pour maîtriser l'ensemble (visionnage, lecture, compréhension, exercices, approfondissement).
Le cours répond aux questions suivantes :
- En quoi l'apprentissage automatique diffère-t-il de la programmation traditionnelle ?
- Qu'est-ce que la perte (loss) et comment la mesurer ?
- Comment fonctionne la desecnte de gradient ?
- Comment évaluer l'efficacité de mon modèle ?
- Comment préparer mes données pour l'apprentissage automatique ?
- Comment construire un réseau de neurones profond ?
Glossaire de l'apprentissage automatique
- Glossaire officiel
- Version PDF : Télécharger
1.1 - Environnement d'exercice : exécution locale
Les exercices du MLCC sont disponibles ici : https://developers.google.com/machine-learning/crash-course/exercises
- Instructions pour exécution locale
- Téléchargement des exercices : mlcc-exercises_en.zip
- Installer Anaconda (inclut Jupyter Notebook), créer un environnement et exécuter les notebooks .ipynb.
Commandes utilisées
(base) > conda create -n mlcc pip python=3.6
(base) > conda activate mlcc
(mlcc) > pip --proxy="10.144.1.10:8080" install --ignore-installed --upgrade tensorflow matplotlib pandas sklearn scipy seaborn
(mlcc) > pip install --ignore-installed --upgrade tensorflow matplotlib pandas sklearn scipy seaborn -i https://mirrors.ustc.edu.cn/pypi/web/simple/
Exemple de création d'environnement
(base) C:\Users\utilisateur> conda create -n mlcc pip python=3.6
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: C:\Outils\Anaconda3\envs\mlcc
added / updated specs:
- pip
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
certifi-2019.3.9 | py36_0 156 KB defaults
pip-19.1.1 | py36_0 1.9 MB defaults
python-3.6.8 | h9f7ef89_7 20.3 MB defaults
setuptools-41.0.1 | py36_0 663 KB defaults
sqlite-3.28.0 | he774522_0 945 KB defaults
vs2015_runtime-14.15.26706 | h3a45250_4 2.4 MB defaults
wheel-0.33.2 | py36_0 57 KB defaults
wincertstore-0.2 | py36h7fe50ca_0 13 KB defaults
Total: 26.4 MB
Proceed ([y]/n)? y
... (installation details)
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(base) C:\Users\utilisateur> conda env list
# conda environments:
#
base * C:\Outils\Anaconda3
mlcc C:\Outils\Anaconda3\envs\mlcc
(base) C:\Users\utilisateur> conda activate mlcc
(mlcc) C:\Users\utilisateur> pip list
Package Version
------------ --------
certifi 2019.3.9
pip 19.1.1
setuptools 41.0.1
wheel 0.33.2
wincertstore 0.2
(mlcc) C:\Users\utilisateur> pip --proxy="10.144.1.10:8080" install --ignore-installed --upgrade tensorflow matplotlib pandas sklearn scipy seaborn
Collecting tensorflow
Downloading https://files.pythonhosted.org/packages/bf/58/34bfa8fa17f86333361172b3b502e805195180f19a7496ad0f6149138d55/tensorflow-1.13.1-cp36-cp36m-win_amd64.whl (63.1MB)
|████████████████████████████████| 63.1MB 598kB/s
Collecting matplotlib
...
Successfully installed absl-py-0.7.1 astor-0.7.1 cycler-0.10.0 gast-0.2.2 grpcio-1.20.1 h5py-2.9.0 joblib-0.13.2 keras-applications-1.0.7 keras-preprocessing-1.0.9 kiwisolver-1.1.0 markdown-3.1 matplotlib-3.0.3 mock-3.0.5 numpy-1.16.3 pandas-0.24.2 protobuf-3.7.1 pyparsing-2.4.0 python-dateutil-2.8.0 pytz-2019.1 scikit-learn-0.21.0 scipy-1.2.1 seaborn-0.9.0 setuptools-41.0.1 six-1.12.0 sklearn-0.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 termcolor-1.1.0 werkzeug-0.15.2 wheel-0.33.4
(mlcc) C:\Users\utilisateur> pip list
Package Version
-------------------- --------
absl-py 0.7.1
astor 0.7.1
certifi 2019.3.9
cycler 0.10.0
gast 0.2.2
grpcio 1.20.1
h5py 2.9.0
joblib 0.13.2
Keras-Applications 1.0.7
Keras-Preprocessing 1.0.9
kiwisolver 1.1.0
Markdown 3.1
matplotlib 3.0.3
mock 3.0.5
numpy 1.16.3
pandas 0.24.2
pip 19.1.1
protobuf 3.7.1
pyparsing 2.4.0
python-dateutil 2.8.0
pytz 2019.1
scikit-learn 0.21.0
scipy 1.2.1
seaborn 0.9.0
setuptools 41.0.1
six 1.12.0
sklearn 0.0
tensorboard 1.13.1
tensorflow 1.13.1
tensorflow-estimator 1.13.0
termcolor 1.1.0
Werkzeug 0.15.2
wheel 0.33.4
wincertstore 0.2
1.2 - Environnement d'exercice : exécution en ligne
- Colaboratory : https://colab.research.google.com/notebooks/welcome.ipynb
- Environnement Jupyter gratuit, s'exécute entièrement dans le cloud sans configuration préalable.
1.3 - Prérequis et travail préparatoire
Voir la page officielle : https://developers.google.com/machine-learning/crash-course/prereqs-and-prework
Prérequis
- Algèbre de base : variables, coefficients, équations linéaires, fonctions, histogrammes. Connaissances avancées comme logarithmes et dérivées sont un plus mais pas obligatoires.
- Programmation : maîtrise d'un langage de programmation, de préférence Python (fonctions, listes, dictionnaires, boucles, conditions). Les exercices utilisent TensorFlow en Python, aucune expérience TensorFlow requise.
Travail préparatoire
- Pandas : les exercices utilisent la bibliothèque Pandas. Suivre le tutoriel d'introduction si nécessaire.
- TensorFlow bas niveau : les exercices utilisent l'API haut niveau
tf.estimator. Pour ceux qui souhaitent comprendre les bases :- TensorFlow Hello World
- Concepts de programmation TensorFlow (tenseurs, instructions, graphes, sessions)
- Création et manipulation de tenseurs
1.4 - Concepts et outils principaux
Mathématiques
- Algèbre : variables, coefficients, fonctions, équations linéaires, logarithmes, fonction sigmoïde.
- Algèbre linéaire : tenseurs et rangs, multiplication de matrices.
- Trigonométrie : tanh (expliqué comme fonction d'activation).
- Statistiques : moyenne, médiane, valeurs aberrantes, écart-type, histogrammes.
- Calcul (optionnel) : notion de dérivée, gradient, dérivée partielle, règle de la chaîne (pour la rétropropagation).
Python (documentation)
- Base : définition et appel de fonctions (arguments positionnels et nommés), dictionnaires, listes, ensembles (création, accès, itération), boucles
for(y compris avec plusieurs variables), conditionsif/else, formatage de chaînes, types de base (int,float,bool,str),pass. - Intermédiaire : compréhensions de listes, fonctions lambda.
Bibliothèques Python tierces (pas besoin de les connaître à l'avance)
- Matplotlib : visualisation de données (pyplot, cm, gridspec).
- Seaborn : heatmaps (fonction heatmap).
- Pandas : manipulation de données (DataFrame).
- NumPy : mathématiques bas niveau (linspace, random, array, arange).
- Scikit-Learn : métriques d'évaluation (module metrics).
Bash
- Référence Bash : https://tiswww.case.edu/php/chet/bash/bashref.html
- Aide-mémoire Bash : Lien GitHub
- Introduction Shell interactive : http://www.learnshell.org/
2 - Prochaines étapes
2.1 - Guides ML de Google
https://developers.google.com/machine-learning/guides/ – Présentation pas à pas des bonnes pratiques pour résoudre des problèmes courants.
2.2 - Machine Learning Practica
Pratiques de ML chez Google : https://developers.google.com/machine-learning/practica/
- Classification d'images : Lien – Comprendre comment Google développe des modèles de classsification pour Google Photos, puis construire votre propre classificateur.
2.3 - Documentation officielle approfondie
Exemple avec TensorFlow :