2017 - Deep Learning

2017 - Deep Learning

  • Olivier Grisel
  • Xavier Dupré

Réseaux de neurones

  • À la mode des les années 1990
  • Boîte noire

Réputés compliqués à mettre en oeuvre

  • Peu résistants aux entrées hétérogènes
  • 1 couche, 2 couches., 3 couches ?
  • Compliqué à interpréter
  • Converge lentement ou diverge rapidement

Mille Feuilles : meilleur apprentissage

  • Couche de convolution
  • Beaucoup de coefficients, seulement quelques uns de libres
  • Une couche fait peu de choses, beaucoup de couches font...

Conception haut niveau

Assemblage de modules (couches) différentiables:

Déscente de gradient pour ajuster les paramètres de tous les modules à la fois

A chaque problème son modèle

  • Réutilisation des mêmes modules de base
  • Topologies souvent similaires
  • Mêmes algorithmes d'optimisation
  • Différents datasets

Des compétitions et des modèles plus performants

Classification d'images avant 2012

Classification d'images après 2012

Pourquoi 2012 ?

  • Beaucoup d'images avec des labels
  • Puissance de calcul vectoriel (GPU)
  • Implémentations Open Source

MS COCO Object Detection

Mask R-CNN

Featurization - Transfer Learning

  • Modèle appris sur des millions d'images
  • Couches intermédiaire meilleures features que l'image brute dans d'autres problèmes

Demo Jupyter / Keras / Azure / GPU

Une fonction d'erreur adéquate

Interprétation

  • Couche à petit pas
  • Interprétation imprévisible bien que presque sensée

Le gradient pour contrôler

Modéliser des données séquentielles

  • Transcrire la parole en texte écrit
  • Traduire d'une langue à l'autre
  • RNN, LSTM

Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation arXiv: 1609.08144

Utiliser la réaction qui suit la prédiction

DL dans le nuage

DL dans le nuage

  • Azure Deep Learning Data Science VM
  • Linux ou Windows
  • Distribution Python: Anaconda
  • Dev interactif avec Jupyter notebooks
  • DL libs: Keras, Tensorflow, CNTK, Caffe2, PyTorch, Chainer...
  • DS tools: R, scikit-learn, xgboost, spark...

Limites de la VM DL

  • Gestion manuelle
  • 1 VM par utilisateur
  • Ne pas oublier de l'éteindre ou sinon: $$$
  • Solution 0 : Arrêt automatique de la VM (timeout)
  • Solution 1 : JupyterHub + kubernetes avec autoscaling
  • Solution 2 : Azure Batch AI

Frameworks pour le Deep Learning

CTNKMicrosoft
TensorFlowGoogle
torch / PyTorchFacebook
Caffe2Facebook
MXNetApache + Amazon
paddlepaddleBaidu
......

Forces

CTNKIntégration avec Azure, mise en production pour ses clients facilité
TensorFlowGrande communauté = nombreux exemples
PyTorch, Chainer, MXNet Gluon...Design, flexibilité, structure dynamique
KerasFrontend high level pour Tensorflow, CNTK, MXNet...

Deep Learning Embarqué

  • ONNX : conversion de modèle dans un langage commun (PyTorch, Caffe2, bientôt CNTK)
  • coremltools : modèle ML exécuté dans un téléphone (iOS)
  • TensorFlow Mobile : Android, iOS, Raspberry Pi

Aujourd'hui

Pas pour tout de suite