Contenu connexe
Similaire à Introduction au Deep Learning (20)
Introduction au Deep Learning
- 2. © Niji | 2018
We deliver your ambition.
Depuis 2001, Niji associe dans une même chaîne de valeur, conseil, design et
transformation technologique, au plus près des enjeux stratégiques,
et des problématiques opérationnelles de ses clients…au service de leur performance.
DE L’IDÉE À LA RÉALITÉ
Paris
Rennes
Lille
Nantes
Lyon
Bordeaux
2
850
salariés
200+
clients grands comptes
internationaux et ETI
+ 20%
croissance
organique
par an
- 3. © Niji | 2018
Conseil, Design & Technologie.
NOTRE PROPOSITION DE VALEUR
Voice of customer
Business disruption
Digital Strategy
Technological opportunities
3
Un accompagnement depuis la stratégie en passant par l’idéation jusqu’à
la mise en œuvre opérationnelle et la maîtrise d’environnements technologiques
complexes. Une proposition de valeur équilibrée, intégrée et éprouvée.
110
CONSULTANTS
Customer & User eXperience
Brand & content design
Creative technology
Business performance
110
DESIGNERS
Software Factory
Labelized Test center
Agile & Scrum management
Smart technologies
500
EXPERTS
70 EXPERTS
SALESFORCE
Consulting,Integration,
Support…on all Clouds
Saleforce
- 6. © Niji | 2018
Un peu d’histoire
6
Boom du Deep Learning : les étapes clés
1957 1969 1989 1996 2011 2012 2017
- 7. © Niji | 2018
Intelligence Artificielle
7
General VS Narrow
Dans l’imaginaire : General AI
(ou le futur…)
La réalité : Narrow AI
- 8. © Niji | 2018
Intelligence Artificielle
8
Ca sert à quoi ?
Résolution de problème !
=
Recherche d’une solution optimale
Problème simple : x + 2 = 5
Problème complexe (pas de solution algorithmique) : le voyageur de commerce
explosion combinatoire : force brute impossible pour un grand nombre de ville
- 9. © Niji | 2018
Machine Learning
9
C’est quoi ?
Discipline venant du data mining.
Recherche de pattern dans des données et ajustement
des algorithmes en conséquence.
Decision Tree Learning, Inductive Logic Programming.
Clustering, Reinforcement Learning (Groundhog Day),
Neural Networks, Bayesian Networks.
- 10. © Niji | 2018
Deep Learning
10
C’est quoi ?
- 11. © Niji | 2018
Deep Learning
11
Chronologie et imbrication
- 12. © Niji | 2018
Deep Learning
12
Pourquoi cet essort tardif ?
Dans les années 90 il était extrêmement difficile d’entrainer
un réseau de neurones avec plus de 2 couches cachées à
cause:
• Nos jeux de données labellisés trop petits
• On utilisait des ordinateurs beaucoup trop lents
• On n’était pas en mesure d'initialiser correctement les
poids de notre réseau de neurones avant l'entraînement
• On utilisait le mauvais type de fonction d’activation
- 14. © Niji | 2018
Réseau de neurones
14
Qu’est-ce qu’un neurone artificiel ?
- 15. © Niji | 2018
Réseau de neurones
15
Les fonctions d’activation
- 16. © Niji | 2018
Réseau de neurones
16
Le modèle en couches de neurones
- 17. © Niji | 2018
Réseau de neurones
17
Perceptron multi-couches
- 18. © Niji | 2018
Réseau de neurones
18
Perceptron multi-couches
- 19. © Niji | 2018
Réseau de neurones
19
Perceptron multi-couches
- 20. © Niji | 2018
Réseau de neurones
20
Perceptron multi-couches
Réseau généraliste -> perte des relations spatiales
Explosion rapide du nombre de paramètres à entrainer :
• Si on a en entrée une image de 200x200x3 -> 120.000 entrées
• Donc si premières couche de 1000 neurones -> 120.000 * 1000 poids
• Si deuxième couche de 1000 neurones -> 1000 * 1000 poids
Plusieurs millions de paramètres à entrainer…
- 21. © Niji | 2018
Réseau de neurones
21
Réseau de neurones convolutifs (CNN)
Les couches de neurones ne sont plus des « classifiers » mais des filtres (cf. photoshop) permettant de
détecter des « features ».
- 22. © Niji | 2018
Réseau de neurones
22
Réseau de neurones convolutifs (CNN) : Convolution
- 23. © Niji | 2018
Réseau de neurones
23
Réseau de neurones convolutifs (CNN) : Pooling
- 24. © Niji | 2018
Réseau de neurones
24
AlexNet
- 25. © Niji | 2018
Réseau de neurones
25
Réseau de neurones convolutifs (CNN)
- 26. © Niji | 2018
Réseau de neurones
26
VGG16
- 27. © Niji | 2018
Réseau de neurones
27
Autres CNN
- 28. © Niji | 2018
Réseau de neurones
28
Autres types de réseau : Recurrent Neural Network / Long Short Term Memory
- 29. © Niji | 2018
Réseau de neurones
29
Réseaux hybrides : Single Shot MultiBox Detection (SSD)
- 30. © Niji | 2018
Réseau de neurones
30
Réseaux hybrides : Visual Question Answering
- 31. © Niji | 2018
Réseau de neurones
31
Réseaux antagonistes génératifs (GAN)
- 32. © Niji | 2018
Réseau de neurones
32
Choisir / designer son modèle
En fonction du cas d’usage
• Aide visuelle par ordinateur
• Reconnaissance d’image
• Détection d’image
• Reconnaissance vocale
• Traitement du langage naturel
• Moteurs de recommandation
• Régression
• …
- 34. © Niji | 2018
Comment apprend un réseau de neurones ?
34
Rétropropagation des erreurs
Apprentissage = déterminer les poids
Rétropropagation
- 35. © Niji | 2018
Etapes de l’apprentissage
35
Mécanisme de rétropropagation
1. Présentation d'un motif d'entraînement au réseau.
2. Comparaison de la sortie du réseau avec la sortie ciblée.
3. Calcul de l'erreur en sortie de chacun des neurones du réseau.
4. Calcul, pour chacun des neurones, de la valeur de sortie qui aurait été correcte.
5. Définition de l'augmentation ou de la diminution nécessaire pour obtenir cette valeur.
6. Ajustement du poids de chaque connexion vers l'erreur locale la plus faible.
7. Attribution d'un blâme à tous les neurones précédents.
8. Recommencer à partir de l'étape 4, sur les neurones précédents, le blâme servant d’erreur.
- 36. © Niji | 2018
Qualité de l’apprentissage
36
Mesure de la performance d’un réseau de neurones
• Durée d’apprentissage
• Précision des prédictions
• Capacité de généralisation
• Durée de prédiction
Sous / Sur-apprentissage, temps ( = $)…
Modèle ne respectant pas la SLA
Réseau inutilisable en condition réelle
RisquesMesures
- 37. © Niji | 2018
Sur-apprentissage
37
Aka overfitting
Le réseau n’est pas capable de généraliser
• Modèle de réseau inadapté
• Pas assez de données
• Trop d’apprentissage
- 38. © Niji | 2018
Sur-apprentissage
38
Détection
L’élève apprend trop bien sa leçon !
Comment le détecter ?
Grâce à un jeu de données de validation
- 39. © Niji | 2018
Sur-apprentissage
39
Solutions : récupérer plus de données d’entrainement
• Datasets existants
• User Generated Content
(attention à assainir les data)
• Crowd sourcing
- 40. © Niji | 2018
Sur-apprentissage
40
Solution : data augmentation
• appliquer des transformations : rotation,
déformation, homothétie, symétrie
• changer la luminosité, la colorimétrie, le
focus, …
• autres : ajouter du bruit, ajouter des
éléments en foreground, découper, …
- 41. © Niji | 2018
Sur-apprentissage
41
Autres solutions : dropout, batch normalization, weight regularization, early stopping
Dropout Early Stopping
- 42. © Niji | 2018
Optimisation du modèle
42
Simplifier / optimiser son modèle, bien choisir ses hyper-paramètres
Recherche & Développement
Automatisé (Network Architecture Search)
- 43. © Niji | 2018
Problématique de la vitesse d’apprentissage
43
Trop de vitesse… tue la vitesse
- 44. © Niji | 2018
Réduire la durée d’apprentissage
44
Augmenter la puissance de traitement
Hardware Cloud Computing MLaaS
- 45. © Niji | 2018
Accélérer l’apprentissage (bis)
45
Le transfer learning
• Basé sur le fonctionnement du cerveau humain.
• Réutilisation de neurones déjà entrainés pour des tâches similaires.
• Le cerveau est constitué de neurones entrainés depuis des millions d’années (ex: prédispositions
héréditaires).
- 46. © Niji | 2018
Transfer learning
46
Similitudes
- 47. © Niji | 2018
Transfer Learning
47
Etapes
1. Construire le même modèle de réseau de neurones mais en changeant
le nombre de libellés de la couche de classification.
2. Restaure tous les poids depuis un réseau déjà entrainé, excepté pour
la couche de classification. Celle-ci est initialisé de manière aléatoire.
3. Gèle des poids des couches précédentes du réseau.
4. Entrainement avec les nouvelles données.
- 48. © Niji | 2018
Transfer Learning
48
Pour un CNN
- 49. © Niji | 2018
Transfer Learning
49
Règles essentielles
• New dataset is small and similar to original dataset.
Since the data is small, it is not a good idea to fine-tune the ConvNet due to overfitting concerns. Since the data is
similar to the original data, we expect higher-level features in the ConvNet to be relevant to this dataset as well. Hence,
the best idea might be to train a linear classifier on the CNN codes.
• New dataset is large and similar to the original dataset.
Since we have more data, we can have more confidence that we won’t overfit if we were to try to fine-tune through the
full network.
• New dataset is small but very different from the original dataset.
Since the data is small, it is likely best to only train a linear classifier. Since the dataset is very different, it might not be
best to train the classifier form the top of the network, which contains more dataset-specific features. Instead, it might
work better to train the SVM classifier from activations somewhere earlier in the network.
• New dataset is large and very different from the original dataset.
Since the dataset is very large, we may expect that we can afford to train a ConvNet from scratch. However, in practice
it is very often still beneficial to initialize with weights from a pretrained model. In this case, we would have enough data
and confidence to fine-tune through the entire network.
- 52. © Niji | 2018
Frameworks
52
Focus TensorFlow / Keras
- 54. © Niji | 2018
Mobile / Web
54
CoreML / ML Kit
Mobile
Web
- 57. © Niji | 2018
Vos contacts
www.niji.fr
@Niji_Digital
Paris
Lille
Nantes
Rennes
Lyon
Bordeaux
Cédric PORTE
CTO
cedric.porte@niji.fr