Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry

 
CONTINUER À LIRE
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Librairies et outils pour
    le deep learning
Thierry Urruty, Pascal Bourdon, Mathieu
         Naudin, Philippe Carre

  Laboratoire XLIM, UMR CNRS 7252
        Université de Poitiers
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Objectifs de cette présentation

• Lister / enumérer un ensemble (non exhaustif)
  de frameworks de deep learning
  – Avantages et inconvénients ?
• Proposer de comprendre quelques différences
  dans le choix de son framework
• Proposer des outils programmer, partager,
  comprendre et visualiser

• Sources principales : Wikipédia et les sites des
  frameworks

                                                     2
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Frameworks existants (non exhaustifs)

•   Et Open source
     –   Torch, PyTorch
     –   Theano
     –   Caffe, Caffe2
     –   Chainer
     –   MXNet
     –   DeepLearning4j
     –   Tensorflow

    Source : Andrej Karpathy@karpathy
    « Unique mentions of deep learning frameworks in arxiv papers (full text)
    over time, based on 43K ML papers over last 6 years”

                                                                                3
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Frameworks existants (non exhaustifs)

Source : Andrej Karpathy@karpathy
« Unique mentions of deep learning frameworks in arxiv papers (full text)
over time, based on 43K ML papers over last 6 years”

                                                                            4
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Frameworks existants (non exhaustifs)

•   Et Open source
     –   Torch, PyTorch
     –   Theano
     –   Caffe, Caffe2
     –   Chainer
     –   MXNet
     –   DeepLearning4j
     –   Tensorflow

    Source : Jeff Hale https://towardsdatascience.com/deep-learning-
    framework-power-scores-2018-23607ddf297a

                                                                       5
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Torch

• Année et Créateur : 2002, Ronan Collobert,
  Samy Bengio, Johny Mariéthoz (IDIAP RI)
• Type de licence : BSD
• OS : Linux, macOS, et Windows, Android, iOS
• Langage : C, Lua
• Interface : Lua, LuaJIT, C, C++
• OpenMP, OpenCL, CUDA
• Torch 7 actuellement, développement arrêté

                                                6
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Theano

• Année et Créateur : 2007 by Université de
  Montréal
• Type de licence : BSD
• OS : Linux, macOS, et Windows
• Langage : Python
• Interface : Python (Keras)
• Cuda, OpenMP
• Version 1.0.0, 15/11/2017
depuis le développement est arrêté, maintenance
continue

                                              7
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Caffe

• Année et Créateur : 2013 by berkeley Vision
  and Learning center
• Type de licence : BSD
• OS : Linux, macOS, et Windows
• Langage : C++
• Interface : Python, Matlab, C++
• Cuda et OpenMP

                                                8
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Chainer

• Année et Créateur : 2015 by Preferred
  Networks, Japan
• Type de licence : BSD
• OS : Linux, macOS
• Langage : Python
• Interface : Python
• Cuda et OpenMP

                                          9
Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
Pytorch

•   Année et Créateur : 2016 by Facebook
•   Type de licence : BSD
•   OS : Linux, macOS, et Windows
•   Langage : Python, C++, C, CUDA
•   Interface : Python, C++
•   OpenMP, OpenCL, CUDA
•   Version 1.3.1
•   Rejoint par Caffe et Chainer

     Programmation impérative
     Débogage facilité
     Graphe de modèle dynamique
     Efficacité : quantification paramètres

                                              10
MXNet

• Année : 2015, par Apache Sofware Foundation
• Type de licence : Apache 2.0
• OS : multi plateformes
• Langage : C++
• Interface : C++, Python, Julia, Matlab, R,
  javascrip, Go, Perl, Scala
• Cuda, OpenMP, OpenCL prévu
• Version 1.5.0
    Programmation hybride : impérative et symbolique par
    création de graphes
    Efficacité sur les opérations mathématiques => GPUs

                                                           11
Microsoft Cognitive Toolkit (CNTK)

•   Année et Créateur : 2016, par Microsoft Research
•   Type de licence : MIT Licence
•   OS : Linux, Windows
•   Langage : C++
•   Interface : C++, Python (Keras),
•   Cuda, OpenMP
•   Version 2.7.0

    Utilise le format ONNX (Open NN eXchange)
    Représentation sous forme de graphe
    => Permet la combinaison des RNNs et CNNs

                                                   12
DeepLearning4j

• Année et Créateur : 2014, par Adam Gibson,
  Skymind, et la communauté
• Type de licence : Apache2.0
• OS : Linux, Windows, macOS, Android
• Langage : C++, Java
• Interface : Java, Scala, Python (Keras)
• Cuda, OpenMP
• Version 1.0.0

  Efficacité avec Apache Spark, bonne documentation
  Pour ceux qui sont attachés au langage Java

                                                      13
Tensorflow
• Année et Créateur : 2015 by Google (Google
  Brain)
• Type de licence : Apache 2.0
• OS : Linux, macOS, et Windows
• Langage : Python, C++, CUDA
• Interface : Python (Keras), C++, Java, Julia,
  javascript, R, Go, Swift
• Cuda, OpenCL (with SYCL)
• Mai 2017 : Tensorflow Lite pour Android (Oréo),
  fonctionne sur une raspberry Pi
• Sortie de Tensorflow2.0 (Sept 2019)

   Bonne documentation, nombreux exemples   Peu efficace
   Très souvent mis à jour                  en version 1

                                                   14
Keras

• Année et Créateur : 2015 by François Chollet,
  projet ONEIROS
• Type de licence : MIT Licence
• OS : Linux, macOS, et Windows
• Langage : Python
• Interface : Python et R
• OpenMP with Theano, OpenCL (avec
  Tensorflow), CUDA
• Version 2.3.1
   Facilité de programmation, bonne documentation        Lent
   Fonctionne avec Tensorflow, Theano, CNTK en backend

                                                                15
Tensorflow 2.0
• Basée sur Tensorflow et des idées des autres
• Objectif affiché : efficacité
  – Nettoyage d’API
  – Variables globales supprimées
  – Sessions remplacées par des fonctions

• Implémentation particulière de Keras par
  Tensorflow
  – Tf.keras
  – Normalement compatible (version actuelle de Keras)
     Efficacité améliorée
     Simplicité de programmation
     Programmation impérative

                                                    16
PyTorch vs Tensorflow

           Tensorflow                                Pytorch
Bien documenté, communauté             (Moins) Bien documenté,
énorme                                 communauté naissante et
                                       grandissante
Beaucoup d’exemples disponibles        Moins, mais en augmentation
Graphe du modèle statique              Graphe du modèle dynamique
(changement avec TF2.0)
Déploiement en production plus         Destiné plus à la recherche
facile (version Lite)
?                                      Facile à débugger
Outil de visualisation : tensorboard   Intégration de tensorboard
Plus lent? (TF2.0 ? Non testé)         Plus rapide?

                                                                     17
The PYPL PopularitY of
Programming Language
Index

Analyse la fréquence de
recherche d’un tutoriel
d’un langage de
programmation sur
google

Source : https://pypl.github.io/PYPL.html

                                            18
Jake VanderPlas @jakevdp, SciPy Keynote; July 10, 2015

                                           19
Jupyter project

• Jupyter Notebook
• Jupyter Lab

Efficacité, simplicité
de programmation,
Permet l’ouverture
de multiples
applications
(matplotlib, pdf,
console, ouverture
d’images, etc.)
                                           20
Git / GitHub

               Source :
               https://blog.devm
               ountain.com/git-
               vs-github-whats-
               the-difference/

                       21
22
23
Interprétabilité des modèles ?

         Source : « medical diagnosis and deep learning » google news (03/01/2020)

                                                                        24
Le deep learning, une boite noire ?
• Une IA ne raisonne pas, elle apprend à réagir à
  des stimuli. Puis, elle réagit à ces stimuli, avec
  ou sans hiérarchie interne, mais de façon
  systématique.
• Une IA discrimine souvent pour prédire une
  information sémantique.

                             ?

                                                   25
Instabilité des modèles, facile à tromper?
   • L’algorithme ne vous dira jamais qu’il ne sait
     pas. Si vous lui demandez de trouver des objets
     dans des images, il en trouvera.

Source : Anh Nguyen et al. Deep neural networks are easily fooled: High confidence predictions for unrecognizable images
June 2015. IEEE Conference on Computer Vision and Pattern Recognition (CVPR)

                                                                                                                26
Outils de visualisation : tensorboard

Permet de visualiser
- Le modèle correctement
  construit.

- l’état de l’apprentissage :
  Changement de métrique
  et Valeur du Loss par ex.

- Distributions et
  histogrammes des poids.

- Autres plug-ins
  disponibles : information
  sur les images

                                                    27
Deep Visualisation toolbox
•   Jason Yosinski, Jeff Clune, Anh Nguyen, Thomas Fuchs, and Hod
    Lipson. Understanding neural networks through deep visualization. Presented at the
    Deep Learning Workshop, International Conference on Machine Learning (ICML), 2015.

                                                                                    28
Outils de visualisation : CNNVis
•   Mengchen Liu, Jiaxin Shi, Zhen Li, Chongxuan Li, Jun Zhu, Shixia Liu:
    Towards Better Analysis of Deep Convolutional Neural Networks. IEEE Trans. Vis.
    Comput. Graph. 23(1): 91-100 (2017)

                                                                                      29
Outils de visualisation : tensorflow playground

                                              30
Plateformes de machine learning
•   Source : https://www.altexsoft.com/blog/datascience/comparing-
    machine-learning-as-a-service-amazon-microsoft-azure-google-cloud-ai-
    ibm-watson/

•   La puissance a un prix, en fonction de la demande, prix par heure de
    calcul => solution temporaire ?

                                                                            31
Conclusion
• De nombreux outils à
  tester
• Des mises à jour
  fréquentes
   – Rester connectés !
• Lire des articles
  scientifiques !

• Merci de votre attention,
  questions?

•   “For the next few years, you’re
    going to see … how to quantize
    smarter, how to fuse better, how to
    use GPUs more efficiently, [and]
    how to automatically compile for
    new hardware.” Soumith Chintala,
    Facebook
•   Source:
    https://venturebeat.com/2020/01/02/top-                 Source : https://azure.microsoft.com/en-
    minds-in-machine-learning-predict-where-ai-is-
    going-in-2020/                                          us/services/virtual-machines/data-science-virtual-
                                                            machines/

                                                                                                           32
Vous pouvez aussi lire