Le Deep Learning est la nouvelle révolution dans le monde de l’Intelligence Artificielle. Les systèmes de reconnaissance vocale et d’image fleurissent de toutes parts. Le Deep Learning est-il aussi utile pour votre entreprise ?
Si vous ne traitez pas que des images, quels Use Cases vous reste-t-il ? Quelles sont les solutions à votre disposition si vous ne possédez pas une grande quantité de données ? En quoi cette approche est-elle différente du Machine Learning classique ? Peut-on facilement interpréter les résultats fournis par ces “black-boxes” ? Est-il d’ores et déjà possible d’aller au-delà du POC ? Est-ce que votre SI va être impacté ? Comment confronter vos résultats à la réalité ?
Au cours de cette présentation, nous passerons en revue ces différentes questions et apporterons des solutions exploitables afin de mettre en application le Deep Learning en entreprise. Même si tout le monde ne s’appelle pas Google ou Facebook ou que vous n’avez pas des To de données à analyser, nous verrons qu’il est possible d’exploiter au mieux la puissance de ces algorithmes et d’en tirer bénéfice rapidement.
5. Deep Learning
C’est quoi ??
J’en entends parler de partout, mais je
ne sais toujours pas ce qu’il y a derrière
...
5
6. Deep Learning : C’est quoi ?
Une branche du Machine Learning
Avec ses spécificités ➢ Une forme de l’intelligence
artificielle
➢ Dérivé de l’apprentissage
automatique
➢ Représente un ensemble des
méthodes d’apprentissage
automatique
➢ Plusieurs particularités qui
permettent de se différencier des
algorithmes “classiques”
https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/ 6
7. Deep Learning : C’est quoi ?
Pourquoi “deep”?
Réseau de neurones
➢ Profondeur de
l’architecture
➢ Transformations
géométriques simples
au sein d’une couche
➢ Apprentissage de
fonction complexes en
superposant les couches
7
10. Différence avec le Machine Learning “traditionnel”
Feature Engineering
Preprocessing vs données brutes
Deep learning
traitement automatique du
texte
Machine learning traditionnel
Nettoyage de données et Feature engineering
Tokenization
Remove
stopwords
Stemming
Part of speech
tagging
ModélisationDonnées brutes
ModélisationDonnées brutes
10
11. Différence avec le Machine Learning “traditionnel”
Extraction de features
Plusieurs différences
Deep learning Machine learning “traditionnel”
extraction des features de manière
automatisée
extraction des features “à la main”
niveau d’abstraction élevé features compréhensibles
composés indépendantes
les photos des animaux
Reconnaissance des chats
les bords, courbes, coins
de la photo
fourrure, yeux, nez
corps, tête, jambes
chat ou chouette? 11
19. Deep Learning : Pourquoi maintenant ?
Des idées présentes depuis des décennies
Pensées par les précurseurs du domaine
Multi-Layer
Perceptron
Back-Propagation
Algorithm
Convolutional Neural
Networks
Long-Short Term Memory
Networks
1960
1975
1989
1995
Source : Deep Learning in Neural Networks: An Overview (https://arxiv.org/pdf/1404.7828.pdf)
19
20. Deep Learning : Pourquoi maintenant ?
Ce qui a changé récemment
Deux ingrédients majeurs
Temps
Quantité de données
Puissance de calcul
CPU GPU
Volume
20
21. Deep Learning
Pourquoi de telles
performances ??
Alors qu’elles étaient inatteignables avec
le Machine Learning classique ...
21
24. Traditional Machine Learning
Deep Neural Network
Comparaison des performances
Quantité de données
Performance
Medium Neural Network
24
25. Traditional Machine Learning
Deep Neural Network
Comparaison des performances
Quantité de données
Performance
Medium Neural Network
Volumétrie moyenne
Focus sur le Feature Engineering
25
26. Traditional Machine Learning
Deep Neural Network
Comparaison des performances
Quantité de données
Performance
Medium Neural Network
Volumétrie importante
Plateau pour les modèles traditionnels
Performances augmentent avec le volume de données
pour les réseaux de neurones
26
29. Quand l’utiliser?
Est-ce que c’est pour moi ?
Difficile de créer des features
Accès à des machines
puissantes
Pas besoin de les interpréter
Beaucoup de données à
disposition
29
mais tout est contestable...
31. Stratégies pour le Deep Learning
Construire sa chaîne de traitement rapidement
Et itérer souvent
Collecte de la
donnée
Split de la
donnée
Entraînement
d’un modèle
Analyse des
erreurs
Feature
Engineering
31
32. Stratégies pour le Deep Learning
Construire sa chaîne de traitement rapidement
Et itérer souvent
Collecte de la
donnée
Split de la
donnée
Entraînement
d’un modèle
Analyse des
erreurs
Feature
Engineering
32
33. Stratégies pour le Deep Learning
Stratégies pour améliorer les performances
Machine Learning “traditionnel”
Changer de modèle
Optimisation des
hyperparamètres
Nouvelles features
Régularisation
Bias / Variance Tradeoff
➢ Difficile d’optimiser à la fois
la performance d’un modèle
et sa capacité de
généralisation
➢ Compromis à trouver
33
34. Stratégies pour le Deep Learning
Stratégies pour améliorer les performances
Des stratégies différentes en fonction de l’emplacement des erreurs
Train Set
Validation Set
Real world
Test Set
34
Les données sur lesquelles je m’entraîne
Les données sur lesquelles je choisis les meilleurs paramètres de mon modèle
Les données sur lesquelles je teste définitivement mon modèle
Les données réelles de production, à l’utilisation en conditions réelles
35. Stratégies pour le Deep Learning
Stratégies pour améliorer les performances
Amélioration des performances sur le train set
Train Set
Validation Set
Real world
Modèle plus
profond
Optimiseur
différentTest Set
Entraînement sur
plus d’itérations
35
36. Stratégies pour le Deep Learning
Stratégies pour améliorer les performances
Amélioration des performances sur les jeux de validation
Train Set
Validation Set
Real world
Plus de données
Régularisation
Test Set
Fonction de coût
différente
Distribution des
données
36
37. Stratégies pour le Deep Learning
Des architectures à foison
S’inspirer des architectures existantes
37
Source : The Neural Network Zoo (http://www.asimovinstitute.org/neural-network-zoo/)
Certaines architectures ont fait
leurs preuves :
➢ Reconnaissance d’images : CNN
➢ Détection d’objets : RCNN, YOLO
➢ Texte, Son, Time Series : RNN
➢ Génération de données : GAN
➢ Détection d’anomalies : Deep
Autoencoders
38. Deep Learning
Peu de données …
Comment faire ??
Est-ce que c’est sans issue ?
38
39. Solutions avec une faible volumétrie de données
Data Augmentation
Augmenter artificiellement la taille de son dataset
➢ Transformations aléatoires sur les données d’origine
➢ Images : Rotations, changement d’échelle, cropping, transposition horizontale, etc.
39
Source : Keras Blog (https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html)
40. Solutions avec une faible volumétrie de données
Données provenant d’autres distributions
Pour faciliter le pouvoir de généralisation
➢ Augmentation de la taille du dataset d’entraînement en incorporant des données similaires mais non
directement liées à notre problème
Train set
Validation set Test set
Initial data + New data Initial data Initial data
Train set
40
41. Solutions avec une faible volumétrie de données
Transfer Learning
Transférer les connaissances d’un sujet similaire à notre sujet spécifique
➢ Modèles par nature hautement réutilisables
➢ Modèle profond entraîné sur un sujet similaire avec beaucoup de données
➢ Spécialisation des dernières couches sur la tâche cible
modèle
transfert de connaissance
41modèle
43. Est-ce que c’est interprétable?
Black box
Non, mais....
Un modèle de Machine Learning “traditionnel” avec plusieurs dizaines de
variables n’est pas interprétable non plus...
43
Arbre de profondeur 5
Arbre de profondeur > 10
44. Est-ce que c’est interprétable?
Interprétations locales des prédictions
Faire parler les black-boxes
Source : LIME package (https://github.com/marcotcr/lime)
44
46. Mesurer l’incertitude
Bayesian Deep Learning
La mesure de l’incertitude au sein même du modèle
Réseaux de Neurones traditionnels
➢ Prédiction d’une valeur fixe
➢ Pas de mesure de l’incertitude
associée à la prédiction
Réseaux de Neurones Bayésiens
➢ Estimation de l’incertitude de la
prédiction via la règles de Bayes
➢ Utilisation de méthodes de
“Variational Inference”
Source : Alpha-i Blog
(https://alpha-i.co/blog/MNIST-for-ML-beginner
s-The-Bayesian-Way.html) 46
47. Mesurer l’incertitude
Mesurer l’incertitude a posteriori
Modèle interprétable pour estimer les erreurs
Source : Ideas on Interpreting Machine Learning
(https://www.oreilly.com/ideas/ideas-on-interpreting-machine-learning?imm_mid=0f4c20&cmp=em-data-na-na-newsltr_20170726)
47
48. Mesurer l’incertitude
Mesurer l’incertitude a posteriori
Utilisation du dropout
Dropout : Principe
➢ Supprimer aléatoirement des
neurones pendant l’inférence
➢ Technique de régularisation
➢ Garder tous les neurones pour
les prédictions finales
Mesure d’incertitude
➢ Garder le dropout dans la
phase de prédiction
➢ Effectuer plusieurs
prédictions
➢ Calculer la distribution des
prédictions comme mesure
d’incertitude
Source : TensorFlow codelab (https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#9)
48
Entraînement Prédiction
50. Conclusion
Qu’avons-nous appris?
Je voudrais tester le Deep Learning
demain, je fais quoi ?
★ Tester des frameworks existants
★ Mettre rapidement en place une
chaîne de traitement complète
★ Itérer souvent sur le
développement du modèle en
fonction des erreurs
➢ DL = Branche de ML avec ses particularités
➢ Applicable sur les données structurés et non structurés
➢ Performances souvent “state of the art” si grande volumétrie
➢ Plusieurs stratégies pour améliorer des performances en
fonction de la position des erreurs
➢ Solutions si peu de données : Data augmentation, ajout de
données d’autres distributions et transfer learning
➢ Les modèles ne sont pas simplement interprétables (comme la
plupart des modèles ML).
Take Aways
50
51. Frameworks de Deep Learning
Une multitude de frameworks
A choisir en fonction de l’utilisation cible
51