Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les réseaux de neurones: les comprendre et en c...

Les réseaux de neurones: les comprendre et en créer avec TensorFlow et Keras

Après une présentation générale du monde du deep learning (concept, vocabulaire, fonctionnement), nous verrons les différentes étapes de la création d'un réseau de neurones avec Keras et TensorFlow. Cette conférence s'adresse à tous !

Pierre Labadille

November 28, 2017
Tweet

Other Decks in Programming

Transcript

  1. #34 Les réseaux de neurones: les comprendre et en créer

    avec TensorFlow et Keras Pierre Labadille @plabadille https://github.com/plabadille/ Développeur chez Imagile
  2. C’est quoi un réseau de neurones artificiels ? • Inspiré

    du système neuronal biologique. • Là où il y a quelques années, les meilleurs modèles peinaient à atteindre les 60-70 % de précision, ils atteignent aujourd’hui les 97 % de précision. • Branche de l’IA et plus particulièrement du deep learning. • Ensemble d’algorithme complexe organisé sous forme de couches et de neurones.
  3. De l’IA ? Mais on va tous mourir ! •

    Restreint à son champ de compétence. • Pas de prise d’action. • C’est une simple API. Probablement mais pas à cause d’un réseau de neurones !
  4. Comment cela fonctionne grossièrement ? • Un modèle est composé

    de layers eux-mêmes composés de tensors (neurones). • Il existe différents types de layer : – Covolutional Layer : c’est ces layers qui vont faire la plupart des calculs. – Fully-connected : seul layer qui a accès à tous les autres, c’est celui qu’on interroge. – Etc (plus de détails) • Les tensors sont représentés par des numpy arrays (tableau multidimentionnel).
  5. Domaines d’application • Types d’input possible : image, audio, vidéo,

    texte… • Peut répondre aux problématiques de : – Reconnaissance – Classification – Suggestion – Calcul complexe – Analyse Predictions of a deep convolutional networks using a Region Proposal Network (RPN) and an Object Detection Network
  6. Not Hotdog model from HBO’s Silicon Valley Application de reconnaissance

    automatique de Hotdog (disponible sur IOS et Android). « The app was developed in-house by the show, by a single developer, running on a single laptop & attached GPU, using hand-curated data. » - Tim Anglade from medium article.
  7. Pourquoi TensorFlow ? « TensorFlow™ is an open source software

    library for numerical computation using data flow graphs. » • Performant, complet et en évolution constante. • En python ou en C++. • Compatible tout OS. • Calcul GPU et/ou CPU. • Documentation claire et communauté importante. • Version de production avec TensorFlow Serve. • Simplicité d’utilisation.
  8. Pourquoi Keras ? • Fonctionne avec TensorFlow backend nativement. •

    Communauté et documentation. • De nombreux modèles directement disponibles. • Simplifie encore plus le processus de création du réseau. • Compatible avec les concurrents de TensorFlow. « Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation. »
  9. Grandes étapes de la création d’un modèle • Création du

    jeu de données (dataset) • Définition/rechargement du modèle • Paramétrage : – Taille du batch – Nombre d’epoch – Pourcentage de données de validation • L’apprentissage et la validation • Le test et la prédiction • La mise en production Tips : image-net et kaggle
  10. Fine-tunes vs From scratch Fine-tunes : réutiliser et personnaliser un

    modèle existant (Inception, VGG, ResNet...) • Privilégier le fine-tuning quand un modèle correspond déjà à votre besoin : – Gain de temps énorme par rapport au résultat. – Le modèle final donnera généralement de meilleur résultat. – Complexité moins élevé puisque l’architecture a déjà été pensée. • Privilégier la création pour un besoin nouveau, pour apprendre ou encore pour essayer de mettre en place une architecture nouvelle.
  11. Analyse des performances de son modèle • Les metrics :

    « accuracy » et « loss » • Le test sur des données étrangères au modèle • Problèmes fréquents : – Overfitting : le modèle connaît trop bien le jeu de données d’entraînement ce qui impacte sa capacité à généraliser – Underfitting : le modèle n’arrive pas à généraliser – Dataset de mauvaise qualité ou non représentatif • Balance entre précision et performance : – Performance : on essaie de diminuer le taux de faux négatif : plus de données seront retenues, mais le taux de faux positifs sera plus élevé. – Précision : on essaie de diminuer le taux de faux positifs : les données retenues seront plus fiables, mais moins nombreuses.
  12. Techniques utiles • Cross Validation : permet de maintenir l’équilibre

    du dataset et de faire varier les données de validation/apprentissage. • Data augmentation : aide avec l’overfitting en générant des variantes modifiées de vos samples. • Early stopping : permet d’arrêter l’entraînement quand celui-ci ne s’améliore pas voire régresse. • Data segmentation : permet d’utiliser d’énormes dataset sans avoir besoin de tonnes de ram.