• Aucun résultat trouvé

prévisions boursières

maintenance préventive

reconnaissance de la parole

(+ CNN)

traduction automatique

consommation

Hopfield Network (1982) est un des premiers réseaux à mémoire qui imite le fonctionnement de l’hypocampe du cerveau. Son créateur, un physicien, a relancé l’intérêt des réseaux de neurones qui étaient en rade depuis 1969. Le réseau de Hopfield permet de gérer une mémoire associa- tive bidirectionnelle. Cela se retrouve dans sa matrice de connexions qui est symétrique et nulle dans sa diagonale. Tous les neurones du réseau sont connectés aux autres. La technique est cependant limitée en termes de stockage74.

BPTT (1987), BackProp Through Time, une méthode d’entraînement de réseaux de neurones récurrents.

RTRL (1989), Real Time Recurrent Learning, une variante de réseaux de neurones récurrents. Simple Recurrent Network (SRN) ou Ellman Network (1990) gère une couche cachée de

contexte. Il s’entraîne par rétropropagation75.

LSTM (1997), Long Short Term Memory, qui savent gérer le con- texte dans lequel les contenus ap- paraissent76 et sont très utilisés

pour le traitement du langage et la traduction automatique. Ce sont des réseaux en quelque sorte ré- cursifs. Ils ont été créés par l’Allemand Sepp Hochreiter et le Suisse Jurgen Schmidhuber. Ils sont encore aujourd’hui une base clé du traitement du langage.  Reservoir Computing (2005)

utilise un « réservoir » de neu- rones constituant un système com- plexe et dynamique qui n’exploite pas l’approche classique du feed forward mais plutôt quelque chose qui pourrait s’apparenter à la no- tion de ligne à retard, comme dans l’audio77. On l’entraîne avec une

fonction linéaire qui consolide les valeurs de l’ensemble du réservoir dans dans une couche de classifi- cation.

74 Voir Hopfield Networks (29 slides).

75 Voir The Simple Recurrent Network: A Simple Model that Captures the Structure in Sequences qui décrit bien la logique des SRN. 76 Les LSTM ont été conceptualisés par Sepp Hochreiter et Jürgen Schmidhuber dans Long short-term memory, en 1997. Ce dernier est le créateur de la startup suisse nNaisense, qui ambitionne de créer une AGI (Artificial General Intelligence).

77 Voir la présentation Introduction to Reservoir Computing, de Helmut Hauser, 2013 (282 slides) et la source du schéma Reservoir

Cette couche de classification ressemble à celle de la fin d’un réseau convolutionnel (que nous verrons plus tard). Ce genre de réseau est adapté aux systèmes où règne le chaos. Il est utilisé dans les prévisions financières, dans le traitement du son, dans la détection d’épilepsies, dans la localisation de robots, dans la gestion de structures grammaticales. Il existe trois variantes de Reservoir Networks : Liquid State Machine, Echo State Network et Backpropagation- Decorrelation learning rule.

GRU (2014), Gated Recurrent Units78 est une des variantes plus simples des LSTM et est très

utilisée. Elle évite notamment l’apparition du problème de diminution des gradients (« vanis- hing gradient problem ») qui empêche l’entraînement du réseau de neurones du fait de gradients de propagation d’erreurs trop faibles.

BLSTM (2015), Bidirectionnal Long Short Term Memory, sont des LSTM bidirectionnels. Tree-LSTM (2015) sont des LSTM organisés en arbres et non linéairement. Ils peuvent no-

tamment servir à l’analyse de sentiment dans des textes79.

Stacked RNN (2015) sont des RNN empilés80 comme leur nom l’indique.

MANN (2015), des Memory-Augmented Neural Networks qui permettent un entraînement plus rapide des réseaux à mémoire et avec un jeu de tests plus limité.

Transformers (2017) sont des réseaux de neurones convolutionnels qui utilisent un mécanisme de gestion de l’attention. Ils sont adaptés à la traduction et plus rapides à entraîner que les LSTM et autres variantes de réseaux récurrents81.

Je vous épargne les détails de toutes ces variantes de réseaux récurrents, ce d’autant plus que je n’ai pas encore très bien compris leur fonctionnement dans le détail.

Ils sont difficiles à vulgariser82, bien plus que les réseaux de neurones convolutionnels que nous

verrons un peu plus loin, et qui permettent d’analyser le contenu d’images. Ces réseaux récurrents sont d’ailleurs souvent combinés entre eux de manière plus ou moins empirique.

Ces réseaux transforment généralement les mots et phrases en vecteurs, des objets mathématiques triturés pour être comparés les uns aux autres, classifiés, modifiés et transformés. Ils permettent surtout de tenir compte du contexte dans lequel les objets comme des mots sont détectés pour analy- ser le sens d’une phrase. L’un des points clés de ces réseaux est leur capacité à mémoriser des con- textes83.

C’est un domaine d’amélioration encore plus intense que dans les réseaux de neurones convolution- nels. Avec à la clé des solutions de plus en plus performantes pour la reconnaissance de la parole, la traduction automatique et les agents conversationnels réellement intelligents.

Machines de Boltzmann restreintes (1986)

Les machines de Boltzmann restreintes utilisent une seule couche de neurones source et cible.

78 Les GRU ont été créés par Junyoung Chung en 2014. Voir ce papier de Junyoung Chung, Caglar Gulcehre, KyungHyun Cho et Yoshua Bengio Empirical evaluation of gated recurrent neural networks on sequence modeling qui compare les GRU aux LSTM. 79 Voir Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks de Kai Sheng Tai et Christo- pher Manning de Stanford et Richard Socher de Metamind, une startup acquise par Salesforcee, 2015 (11 pages).

80 Voir Meta-Learning with Memory-Augmented Neural Networks, 2016 (9 pages).

81 Voir Attention Is All You Need, 2017 (11 pages), Universal Transformers, juillet 2018 (19 pages) et Transformer: A Novel Neural

Network Architecture for Language Understanding de Jakob Uszkoreit, 2017.

82 Voir le cours de Stanford Recurrent Neural Networks de Fei-Fei Li, Justin Johnson et Serena Yeung, mai 2018 (107 slides). 83 Voir la conférence de Rob Fergus au Collège de France en avril 2016 dans le cadre de la chaire de Yann LeCun.

Il n’y a pas de connexions entre les neurones d’une même couche. C’est le modèle le plus simple de réseau de neurones qui est ensuite exploité dans d’autres assemblages, comme les Deep Belief Net- works (DBN) créés en 2006 par Geoff Hinton.

Time Delay Neural Networks (1989)

Créés par l’Allemand Alexander Weibel en 1989, les TDNN permettent notamment de reconnaître des phonèmes dans la parole sans avoir à les positionner explicitement dans le temps84. Les TDNN

peuvent être considérés comme des précurseurs des réseaux convolutionnels. Ces derniers recon- naissaient au départ des images tandis que les TDNN reconnaissaient des sons qui sont aussi des données bidimentionnelle (fréquence, temps). La différence entre les TDNN et les ConvNets se situe surtout dans l’ajout de couches de pooling dans ces derniers. Nous verrons cela plus loin. Les TDNN ont été utilisés en France dans l’équipe de Françoise Soulié Fogelman pour la parole85 et

les images86, et au LIMSI pour la parole avec Laurence Devillers en 1992.

Réseaux de neurones convolutionnels (1989 puis 1998)

En 1998, le français Yann LeCun87, qui avait quitté l’équipe de Soulié Fogelman après sa thèse en

1987, pour rejoindre celle de Geoff Hinton à Toronto, puis celle de Larry Jackel aux Bells Labs en 1988, étend le modèle des TDNN à la reconnaissance de caractères puis à la reconnaissance d’images88.

En 2012, le réseau AlexNet de Alex Krizhevsky et Geoffrey Hinton écrase les autres techniques à la compétition ILSVRC (ImageNet Large-Scale Visual Recognition Challenge), établissant la supério- rité des réseaux de convolution pour la reconnaissance d’images face aux méthodes traditionnelles du machine learning.

Ce sont des outils qui servent principalement à réaliser de la classification d’objets, comme pour associer une image à une classe d’objets (chat, bateau, avion, …) ou un phonème vocal à son identi- fiant (/a/, /u/, ..).

Les premiers CNN de production ont été déployés en 1995 pour la reconnaissance des chèques, via une solution de NCR.

84 Voir Review of TDNN (Time Delay Neural Network) – Architecture for Speech Recognition de Masahide Sugiyamat, Hidehumi Sazoait et Alexander Waibel qui font le point en 1991 de l’état de l’art des TNDD (4 pages).

85 Voir Experiments with time delay networks and dynamic time warping for speaker independent isolated digits recognition de Léon Bottou et al, 1989 (4 pages).

86 Voir Scene segmentation using multiresolution analysis and MLP de Emmanuel Viennet et Françoise Fogelman Soulié, 1992. 87 Yann LeCun s’était inspiré des travaux de Kunihiko Fukushima, un chercheur de la NHK, et de ses réseaux de neurones multi- couches Neocognitron. Voir Neocognitron: A Hierarchical Neural Network Capable of Visual Pattern Recognition, 1987. Et le papier de 1998 Gradient-based learning applied to document recognition dont lesauteurs sont Yann LeCun, Léon Bottou, Yoshua Bengio et Patrick Haffner (46 pages).

88 Voir cette bonne explication en trois parties : A Beginner's Guide To Understanding Convolutional Neural Networks de Adit Deshpande (un étudiant aux USA), partie 1, partie 2 et partie 3, 2016.

Les CNN, appelés aussi ConvNets (convolutional neuron networks), utilisent plusieurs techniques enchaînées les unes avec les autres avec notamment des filtres et des feature maps qui consistent à identifier des formes dans les images, avec des niveaux d’abstraction allant du plus petit au plus grand. Depuis, la technique a évolué avec de nombreuses variantes de plus en plus performantes89.

Une feature map est une matrice de pixels qui cartographie de l’apparition d’un filtre donné dans l’image analysée. Un ConvNet utilise un jeu de plusieurs filtres initialisé aléatoirement, sauf pour la première couche de convolution qui est généralement initialisée avec des filtres classiques décrivant des transitions horizontales, verticales et diagonales dans les images, une technique utilisée dans les méthodes d’analyse d’images antérieures aux réseaux convolutionnels. Les filtres sont des matrices de quelques pixels de côté, en général 3x3 ou 4x490.

Ils sont ensuite affinés par rétropropagation d’erreurs de l’ensemble du réseau, un mécanisme qui est appliqué pour toutes les images d’un jeu d’entraînement qui peut comprendre des millions d’images91 et même 3,5 milliards chez Facebook labellisées avec 15 000 hashtags différents92.

Cet entraînement est très consommateur de ressources machine et aussi d’accès à la mémoire mais bien plus efficace qu’un simple réseau de neurones multicouches. Cela vient du fait que le réseau comprend moins de paramètres. Ce nombre de paramètres est approximativement égal à la somme de l’information des nombreux filtres de chaque convolution et des poids des synapses des couches terminales du réseau.

89 Voir l’excellente série de papiers A Beginner's Guide To Understanding Convolutional Neural Networks, A Beginner's Guide To

Understanding Convolutional Neural Networks Part 2 et The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3), 2016 qui décrit les différentes générations de CNN qui s’étaient alors succédées : AlexNet (2012, avec cinq couches de convolution, entraîné sur 15 millions d’images), ZF Net (2013), VGGNet (2014, qui utilise des petits filtres de 3x3 pixels), GoogleLeNet (2015, qui utilise des filtres de taille différente en parallèle et une centaine de couches en tout), Microsoft ResNet (2015, avec 152 couches), les R-CNN (2013-2015), puis les GAN (2014). Voir aussi cette vidéo d’Andrej Karpathy, Deep Learning for Computer Vision, septembre 2016 (1h25)

90 On retrouve cette taille de matrices dans les processeurs neuromorphiques et dans les derniers GPU de Nvidia Volta.

91 Voir Everything you wanted to know about Deep Learning for Computer Vision but were afraid to ask (25 pages) qui décrit bien les techniques d’optimisation de la phase d’entraînement d’un réseau convolutionnel.

92 Voir Advancing state-of-the-art image recognition with deep learning on hashtags, de Dhruv Mahajan, Ross Girshick, Vignesh Ramanathan, Manohar Paluri et Laurens Van Der Maaten, mai 2018.

Chaque feature map générée par l’application des filtres sur l’image de départ se voit appliquée une réduction de résolution (Pooling) puis une suppression des valeurs négatives (ReLU pour Rectified Linear Units) pour réduire la quantité de travail à appliquer aux couches suivantes.

Le processus est répété sur plusieurs couches, chaque feature map issue d’un niveau devenant une image qui subit un traitement équivalent dans la couche de convolution suivante. A la fin de l’histoire, la dernière couche de feature maps est reliée à une liste de tags avec une probabilité de correspondance via quelques couches de neurones dites « fully connected », à savoir que tous les neurones d’une couche sont liés à ceux de la couche suivante.

C’est là qu’un chat ou un bateau sont reconnus dans l’image. La dernière couche de cet empilement est un ensemble de neurones dont le nombre est égal au nombre de classes d’objets différents à re- connaître. Il peut être très grand mais doit rester raisonnable pour tenir compte des capacités du matériel.

Plus est grand le nombre d’objets différents que l’on veut reconnaître, plus devra être grand le nombre de paramètre du réseau de neurones. Un ConvNet de type VGG16 à cinq couches de convo- lution et prenant en entrée des images de 224x224 pixels en couleur (RGB) contient 138 millions de paramètres. Pour les images en couleur, les filtres de la première couche de convolution sont des matrices nxnx3, n étant la taille des filtres. La feature map résultante est une matrice carrée avec une seule couche de profondeur. Chaque point de cette matrice est le résultat de la comparaison entre le filtre à trois couleurs avec des matrices de même taille extraites de l’image d’origine. La couleur peut être représentée en mode RGB ou dans un espace colorimétrique YUV, avec une lumi- nance, la saturation et la chrominance.

Les moteurs de reconnaissance d’images reconnaissent au grand maximum que quelques dizaines de milliers de classes d’objets dans cette dernière couche de réseaux de neurones93. C’est lié en par-

ticulier aux contraintes de la mémoire des GPU utilisés. Les derniers GPU Nvidia qui sont couram- ment utilisés pour entraîner des ConvNets disposent de 16 Go à 32 Go de mémoire.

Voici, ci-dessus, un autre exemple illustré du processus des ConvNet de reconnaissance de carac- tères. En 1), on peut identifier la présence des diagonales et croix dans les feature maps à droite.

93 D’ailleurs, certaines démonstrations étonnantes de reconnaissance d’objets oublient de préciser le nombre d’objets que le système peut reconnaître !

Puis le pooling en 2) pour divise par deux la résolution des feature maps, la couche ReLU qui fait un max(0, x) sur toutes les valeurs (avant ou après le pooling), puis en 5), les couches de neurones qui aboutissent au résultat final indiquant la valeur de la lettre. Selon les modèles, des variantes di- verses sont introduites dans ces couches qui visent en général à augmenter le contraste de l’image traitée.

A chaque niveau d’un réseau convolutionnel, le nombre de feature maps augmente et leur taille di- minue. Les feature maps étant optimisées automatiquement, leur forme n’est pas vraiment interpré- table par le cerveau humain, alors que les filtres du traitement classique d’images antérieur aux ré- seaux convolutionnels l’étaient.

C’est la magie des ConvNets : ils crééent des niveaux de représentations hiérarchiques intermé- diaires des images qui optimisent leur reconnaissance, sans que l’on puisse comprendre comment ils fonctionnent pas à pas et dans le détail94.

D’où la fameuse « non explicabilité » des algorithmes qui inquiète nombre d’observateurs95, ce

d’autant plus qu’elle se produit aussi dans les réseaux récurrents et à mémoire qui servent principa- lement au traitement du langage. Mais, pour beaucoup d’applications, ce qui compte avant tout est la qualité des résultats plus que leur explicabilité. En cas de défaillance d’un réseau de neurones, l’erreur proviendra probablement d’une base d’entraînement ne couvrant pas bien l’espace des pos- sibilités que le réseau peut rencontrer dans sa mise en production.

Nous en reparlerons plus loin au sujet du biais des données d’entraînement. Les ConvNets s’inspirent fortement du mode de fonctionnement du cortex visuel des mammifères qui est structuré, de près, dans des colonnes corti- cales faites de cinq couches de neurones et qui, de loin, com- prend des aires spécialisées qui élèvent progressivement le niveau d’abstraction des objets reconnus (ci-contre) 96.

On retrouve cette architecture à cinq couches dans bon nombre de réseaux de neurones convolution- nels, sachant que ces couches peuvent elles-mêmes comprendre de nombreuses sous-couches de neurones. Par contre, contraire- ment au cortex humain, les Conv- Nets qui font de la reconnaissance d’images utilisent des représenta- tions à très basse résolution.

94 Par contre, comme la résolution des feature maps diminue de couche en couche, la détection de l’emplacement des macro-objets détectés est très mauvaise. Elle est même quasiment inexistante.

95 Voir Le talon d'Achille de l'intelligence artificielle de Benoit Georges, mai 2017.

96 Voir Receptive fields, binocular interaction and functional architecture in the cat's visual cortex de David Hubel et Torsten Wiesel, 1962.

La majorité des ConvNets se contentent d’images comprimées à une résolution voisine de 224x224 pixels et rarement au-delà de 256 pixels.

Il a fallut que je décortique le convnet AlexaNet qui date de 2012 pour mieux comprendre la ma- nière dont les couches de convolution étaient reliées entre elles.

Les schémas qui décrivent ce genre de convnet peuvent facilement donner le mal de tête97. J’ai eu

mal à la tête mais j’ai enfin compris ! En voici donc une explication.

Le principe décrit visuellement ci-dessous, consiste à utiliser des filtres multidimensionnels. Dans les cinq couches de convolution d’AlexNet, les filtres sont des matrices de respectivement 11x11x3 pixels pour la première couche de convolution (11 pixels de côté x 3 couleurs), 5x5x96 pixels pour la seconde (96 étant le nombre de filtres de la première couche de convolution et de feature maps qui en résultents), 3x3x256 pixels pour la troisième (256 étant le nombre de filtres et feature maps de la seconde couche de convolution), 3x3x384 pixels pour la quatrième (384 étant le nombre de filtres de la troisième couche de convolution) et 3x3x384 pixels pour la cinquième (bis repetita pour la quatrième couche de convolution).

Comment passe-t-on de 227 à 55 puis à 13 pixels de côté entre l’image de départ et les couches de convolution suivantes ? Cela vient du fait que les filtres de la première convolution se déplacent de 4 pixels en 4 pixels (avec du recouvrement puisqu’ils font 11 pixels de côté), ceux de la seconde et de la troisième se déplacent de 2 pixels en 2 pixels (avec également du recouvrement puisqu’ils font 5 et 3 pixels de côté) et les deux derniers de 1 en 1 pixel. Ce déplacement est dénommé « stride » en anglais. Cette méthode est l’équivalent d’une réduction de résolution avec une couche de pooling mais elle semble plus efficace et rapide qu’un scan pixel par pixel des images dans chaque convolu- tion puis une réduction de résolution d’un facteur 4 ou 2.

Mathématiquement, l’application d’un filtre à un morceau d’image ou de couche de convolution de la même taille consiste à multiplier les valeurs des pixels du filtre à celle de l’image ou de la couche de convolution scannée, à additionner le tout, à ajouter un éventuel coefficient de correction appelé un biais et à y appliquer une fonction d’activation qui va normaliser le résultat entre 0 et 1. C’est souvent une fonction sigmoïde. Cette opération mathématique va permettre d’identifier la dose de points communs entre le filtre et le bout de convolution analysé qui fait la même taille que le filtre. L’objet détecté est très « macro » puisque le filtre est multidimensionnel.

97 Voir ImageNet Classification with Deep Convolutional Neural Networks d’Alex Krizhevsky, Ilya Sutskever et Geoffrey Hinton de l’Université de Toronto, 2012 (9 pages).

2012

11 11 5 5 3 3 33 3 3 256 filtres de 5x5x96 pixels sont appliqués à la matrice de 55x55x96 de la première couche de convolution avec des déplacements de 2 pixels en X et Y, expliquant la résolution de 27x27 en arrivée 96 filtres (ou kernels) de

11x11x3 pixels sont appliqués à la matrice de 227x227x3 de l'image et scannent l'image en se déplaçant de 4 pixels en X et Y, expliquant la résolution de 55x55 en arrivée 384 filtres de 3x3x256 pixels sont appliqués à

la matrice de 27x27x256 de la seconde couche de convolution avec des

déplacements de 2 pixels en X et Y, expliquant la résolution de 13x13 en arrivée 384 filtres de 3x3x384 pixels sont appliqués à

la matrice de 13x13x384 de la troisième couche de convolution avec des déplacements de un pixel en X et Y, expliquant la résolution de 13x13 en arrivée 256 filtres de 3x3x384 pixels sont appliqués à

la matrice de 13x13x384 de la troisième couche de convolution avec des déplacements de un pixel en X et Y