Slide 1

Slide 1 text

#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

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

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 !

Slide 4

Slide 4 text

Comment ça fonctionne ? Google Inception architecture

Slide 5

Slide 5 text

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).

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

Dans votre quotidien

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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. »

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

● Modèle Cat VS Dog ● Modèle multi-classe de reconnaissance automatique d’images