Débuter avec l'apprentissage automatique : le cours intensif de Google

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

1.1 - Environnement d'exercice : exécution locale

Les exercices du MLCC sont disponibles ici : https://developers.google.com/machine-learning/crash-course/exercises

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

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

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), conditions if/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

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.

  • Règles de l'apprentissage automatique : Lien
  • Classification de texte : Lien

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 :

Étiquettes: machine-learning google mlcc TensorFlow Python

Publié le 12 juillet à 03h55