Deep Learning
2 Plan réseaux de neurones artificiels Définition Fonction d’activation Fonction de cout Propagation et rétropropagation Algorithme d’optimisation Deep Learning Définition Historique algorithmes de Deep Learning Architecture de réseaux de neurone convolutionnels implémentation
3 «L’apprentissage automatique est la discipline donnant aux ordinateurs la capacité d’apprendre sans qu’ils soient explicitement programmés.» Arthur Samuel, 1959
4 Au cœur de ces avancées extraordinaires se trouve le Machine Learning: des systèmes informatiques capables d’apprendre à partir d’exemples. Bien que le ML existe depuis plus de 50 ɐ ans, il n’a véritablement pris son envol que depuis une dizaine d’années, d’abord dans les laboratoires de recherche, puis très vite chez les géants du web, notamment les GAFA (Google, Apple, Facebook et Amazon).
5 Ils sont donc conçus pour reproduire certaines de leurs caractéristiques comme : la capacité d'apprentissage la capacité de mémoriser l'information la capacité de traiter des informations incomplètes Les réseaux de neurones artificiels « N eural N etworks » réalisés à partir du modèle biologique ne sont rien qu'une tentative de modélisation mathématique du cerveau humain
6 Réseau de neurones artificiel (RNA) Un modèle de calcul inspiré du cerveau humain. Cerveau humain : –10 milliards de neurones –60 milliards de connexions (synapses) RNA : –Un nombre fini de processeurs élémentaires (neurones). –Liens pondérés passant un signal d’un neurone vers d’autres. –Plusieurs signaux d’entrée par neurone –Un seul signal de sortie
7 Comment un neurone calcule sa sortie ?
8 Perceptron multicouche(PMC) Les neurones sont arrangés par couche. Il n'y a pas de connexion entre neurones d'une même couche et les connexions ne se font qu'avec les neurones des couches avales
9 Réseaux de neurones
10 Fonction d’activation
11 Fonction de Coût ( Loss Function/Cost Function)
12 Propagation
13 Retropropagation
14 L’objectif de la méthode de rétropropagation est d’adapter les paramètres W de façon à minimiser la valeur moyenne de l’erreur sur l’ensemble d’entraînement
15 est un algorithme d’optimisation très général, capable de trouver des solutions optimales à un grand nombre de problèmes. L’idée essentielle de la descente de gradient est de corriger petit à petit les paramètres dans le but de minimiser une fonction de coût. La descente de gradient Supposons que vous soyez perdu en montagne dans un épais brouillard et que vous puissiez uniquement sentir la pente du terrain sous vos pieds. Pour redescendre rapidement dans la vallée, une bonne stratégie consiste à avancer vers le bas dans la direction de plus grande pente. C’est exactement ce que fait la descente de gradient: elle calcule le gradient de la fonction de coût au point θ, puis progresse en direction du gradient descendant. Lorsque le gradient est nul, vous avez atteint un minimum! En pratique, vous commencez par remplir θ avec des valeurs aléatoires (c’est ce qu’on appelle l’ initialisation aléatoire ), puis vous l’améliorez progressivement, pas à pas, en tentant à chaque étape de faire décroître la fonction de coût (ici la MSE), jusqu’à ce que l’algorithme converge vers un minimum
16 Inversement, si le taux d’apprentissage est trop élevé, vous risquez de dépasser le point le plus bas et de vous retrouver de l’autre côté, peut-être même plus haut qu’avant. Ceci pourrait faire diverger l’algorithme, avec des valeurs de plus en plus grandes, ce qui empêcherait de trouver une bonne solution Si le taux d’apprentissage est trop petit, l’algorithme devra effectuer un grand nombre d’itérations pour converger et prendra beaucoup de temps
17 Enfin, toutes les fonctions de coût n’ont pas la forme d’une jolie cuvette régulière. Il peut y avoir des trous, des crêtes, des plateaux et toutes sortes de terrains irréguliers, ce qui complique la convergence vers le minimum.
18 Le principal problème de la descente de gradient ordinaire, c’est qu’elle utilise à chaque étape l’ensemble du jeu d’entraînement pour calculer les gradients, ce qui la rend très lente lorsque le jeu d’entraînement est de grande taille. À l’extrême inverse, la descente de gradient stochastique ne choisit à chaque étape qu’une observation prise au hasard dans l’ensemble d’entraînement et calcule les gradients en se basant uniquement sur cette seule observation. Bien évidemment, cela rend l’algorithme beau- coup plus rapide puisqu’il n’a que très peu de données à manipuler à chaque itération. la descente de gradient stochastique coût
19 la descente de gradient stochastique a plus de chances de trouver le minimum global que la descente de gradient ordinaire.
20 descente de gradient par mini-lots (en anglais, mini-batch gradient descent ) une fois que vous connaissez les deux autres méthodes de descente de gradient, ordinaire et stochastique: à chaque étape, au lieu de calculer les dérivées partielles sur l’ensemble du jeu d’entraînement (DG ordinaire) ou sur une seule observation (DG stochastique), la descente de gradient par mini-lots calcule le gradient sur de petits sous-ensembles d’observations sélectionnées aléatoirement qu’on appelle mini-lots.
21
22
23 Adaptation des poids
24 Un hyperparamètre est un paramètre de l’algorithme d’apprentissage, et non un paramètre du modèle. Autrement dit, il ne fait pas partie des para- mètres que l’on cherche à optimiser pendant l’apprentissage. Toutefois, on peut très bien lancer l’algorithme d’apprentissage plusieurs fois, en essayant à chaque fois une valeur différente pour chaque hyperparamètre, jusqu’à trouver une combinaison de valeurs qui permet à l’algorithme d’apprentis- sage de produire un modèle satisfaisant. Pour évaluer chaque modèle, on utilise alors un jeu de données distinct du jeu d’entraînement, appelé le jeu de validation. Ce réglage fin des hyperparamètres s’appelle le hyperparame- ter tuning en anglais
25 Algorithme d’optimisation
26 Deep Learning (L’apprentissage profond)
27 Le Deep Learning ou « apprentissage profond » est une famille d’algorithmes d’apprentissage (machine learning) pour entraîner des réseaux de neurones composés de plusieurs couches internes et potentiellement un grand nombre.
28 Les jeux de données d’apprentissage sont primordiaux. Il vaut mieux avoir un très grand nombre de données plutôt qu’un petit nombre qui imposerait des prétraitements lourds et délicats. MNIST: handwritten digits CIFAR10 / CIFAR100
29 Quelle est la différence entre l'apprentissage automatique et l'apprentissage en profondeur?
30 Historique
31 Quelques algorithmes de Deep Learning
32 (Deep NN).Ces réseaux sont similaires aux réseaux MLP mais avec plus de couches cachées. L’augmentation du nombre de couches, Les réseaux de neurones profonds
33 En apprentissage automatique, un réseau de neurones convolutifs ou réseau de neurones à convolution (en anglais CNN ou ConvNet pour Convolutional Neural Networks) est un type de réseau de neurones artificiels acycliques (feed-forward), dans lequel le motif de connexion entre les neurones est inspiré par le cortex visuel des animaux. Les réseaux de neurones convolutionnels
34 Les réseaux de neurones convolutifs (CNN, Convolutional Neural Network ) sont apparus suite à l’étude du cortex visuel du cerveau et sont utilisés dans la reconnaissance d’images depuis les années Ces quelques dernières années, grâce à l’augmentation de la puissance de calcul, à la quantité de données d’entraîneement disponible
35 En et en , David H. ɐ Hubel et Torsten Wiesel ont mené une série d’ex- périences sur des chats (et, quelques années plus tard, sur des singes 78 ), apportant des informations essentielles sur la structure du cortex visuel (en 1981, ils ont reçu le prix Nobel de physiologie ou médecine pour leurs travaux). Ils ont notamment montré que de nombreux neurones du cortex visuel ont un petit champ récepteur local et qu’ils réagissent donc uniquement à un stimulus visuel qui se trouve dans une région limitée du champ visuel (voir la figure ɐ 6.1, sur laquelle les champs récepteurs locaux de cinq neurones sont représentés par les cercles en pointillés). Les champs récep- teurs des différents neurones peuvent se chevaucher et ils couvrent ensemble l’inté- gralité du champ visuel. Ils ont également montré que certains neurones réagissent uniquement aux images de lignes horizontales, tandis que d’autres réagissent unique- ment aux lignes ayant d’autres orientations (deux neurones peuvent avoir le même champ récepteur mais réagir à des orientations de lignes différentes). Ils ont remarqué que certains neurones ont des champs récepteurs plus larges et qu’ils réagissent à des motifs plus complexes, correspondant à des combinaisons de motifs de plus bas niveau. Ces observations ont conduit à l’idée que les neurones de plus haut niveau se fondent sur la sortie des neurones voisins de plus bas niveau (sur la figure ɐ 6.1, chaque neurone est connecté uniquement à quelques neurones de la couche précédente). Cette architecture puissante est capable de détecter toutes sortes de motifs complexes dans n’importe quelle zone du champ visuel
36 Les réseaux de neurones convolutionnels sont à ce jour les modèles les plus performants pour classer des images.
37 Architecture de réseaux de neurone convolutionnels
38 Il existe quatre types de couches pour un réseau de neurones convolutif : la couche de convolutionla couche de poolingla couche de correction ReLU la couche fully-connected.
39 la couche de convolution
40 La couche de convolution possède quatre hyper paramètres : Le nombre de filtres La taille F des filtres Le pas S avec lequel on fait glisser la fenêtre correspondant au filtre sur l'image. Le zero-padding P
41 la couche de pooling
42 la couche de correction ReLU Leaky ReLuReLu
43 la couche fully-connected. La dernière couche fully-connected permet de classifier l'image en entrée du réseau la couche fully-connected multiplie donc chaque élément en entrée par un poids
44
45 Comment connait-on la valeur de ces poids ? Le réseau de neurones convolutif apprend les valeurs des poids de la même manière qu'il apprend les filtres de la couche de convolution : lors de phase d'entraînement, par rétropropagation du gradient.
Choix des hyperparamètres 46 Nombre de filtres Forme du filtre Forme du Max Pooling
Implémentation 47
48 permet de faire du Deep Learning sans avoir besoin d'y passer un mois de calculs. Le principe est d'utiliser les connaissances acquises par un réseau de neurones lors de la résolution d'un problème afin d'en résoudre un autre plus ou moins similaire. On réalise ainsi un transfert de connaissances, d'où le nom. Le Transfer Learning (ou apprentissage par transfert) from keras.applications.vgg16 import VGG16
49 Représentation 3D de l'architecture de VGG-16
50 Implémentation de VGG-16
51 Une fois implémenté, vous devez d'abord "compiler" votre modèle avec la méthode Sequential.compile(), puis l'entraîner avec Sequential.fit(). Mais la phase d'entraînement peut prendre beaucoup de temps, même avec un GPU !
52 merci pour votre attention