Réseaux de neurones insensibles au poids (WANN)


Le nouveau travail de Google propose une architecture de réseaux de neurones qui peut simuler les instincts et les réflexes innés des êtres vivants, suivie d'une formation continue tout au long de la vie.


Et aussi de réduire considérablement le nombre de connexions au sein du réseau, augmentant ainsi leur vitesse.


Les réseaux de neurones artificiels, bien que similaires en principe aux réseaux biologiques, sont encore trop différents d'eux pour être utilisés sous leur forme pure pour créer une IA forte. Par exemple, il est maintenant impossible de créer un modèle d'une personne dans un simulateur (ou une souris, ou même un insecte), de lui donner un «cerveau» sous la forme d'un réseau neuronal moderne et de le former. Cela ne fonctionne tout simplement pas.


Même après avoir écarté les différences dans le mécanisme d'apprentissage (dans le cerveau, il n'y a pas d'analogue exact de l'algorithme de propagation de retour d'erreur, par exemple) et le manque de corrélations temporelles à plusieurs échelles, sur la base desquelles le cerveau biologique construit son travail, les réseaux de neurones artificiels ont plusieurs autres problèmes qui ne leur permettent pas de simuler suffisamment cerveau vivant. En raison probablement de ces problèmes inhérents à l'appareil mathématique utilisé actuellement, l'apprentissage par renforcement, conçu pour imiter la formation de créatures vivantes sur la base de la récompense, ne fonctionne pas aussi bien que nous le souhaiterions dans la pratique. Bien qu'il soit basé sur de très bonnes et bonnes idées. Les développeurs eux-mêmes plaisantent que le cerveau est RNN + A3C (c'est-à-dire un réseau récurrent + un algorithme acteur-critique pour sa formation).


L'une des différences les plus notables entre le cerveau biologique et les réseaux de neurones artificiels est que la structure du cerveau vivant est préconfigurée par des millions d'années d'évolution. Bien que le néocortex, qui est responsable de l'activité nerveuse plus élevée chez les mammifères, ait une structure approximativement uniforme, la structure générale du cerveau est clairement définie par les gènes. De plus, les animaux autres que les mammifères (oiseaux, poissons) n'ont pas du tout de néocortex, mais en même temps ils présentent un comportement complexe qui n'est pas réalisable par les réseaux neuronaux modernes. Une personne a également des limitations physiques dans la structure du cerveau, qui sont difficiles à expliquer. Par exemple, la résolution d'un œil est d'environ 100 mégapixels (~ 100 millions de bâtonnets et de cônes photosensibles), ce qui signifie que pour deux yeux, le flux vidéo devrait être d'environ 200 mégapixels avec une fréquence d'au moins 15 images par seconde. Mais en réalité, le nerf optique est capable de passer à travers lui-même pas plus de 2-3 mégapixels. Et ses connexions ne sont pas dirigées du tout vers la partie la plus proche du cerveau, mais vers la partie occipitale vers le cortex visuel.


Par conséquent, sans nuire à l'importance du néocortex (en gros, il peut être considéré à la naissance comme un analogue de réseaux neuronaux modernes initiés au hasard), les faits suggèrent que même chez l'homme, une structure cérébrale prédéfinie joue un rôle énorme. Par exemple, si un bébé n'a que quelques minutes pour montrer sa langue, alors grâce aux neurones miroirs, il sortira également sa langue. La même chose se produit avec le rire des enfants. Il est bien connu que les bébés dès la naissance ont été «cousus» avec une excellente reconnaissance des visages humains. Mais plus important encore, le système nerveux de tous les êtres vivants est optimisé pour leurs conditions de vie. Le bébé ne pleurera pas pendant des heures s'il a faim. Il sera fatigué. Ou peur de quelque chose et tais-toi. Le renard n'atteindra pas l'épuisement avant d'atteindre la famine pour les raisins inaccessibles. Elle fera plusieurs tentatives, décidera qu'il est amer et partira. Et ce n'est pas un processus d'apprentissage, mais un comportement prédéfini par la biologie. De plus, différentes espèces ont différentes. Certains prédateurs se précipitent immédiatement vers des proies, tandis que d'autres restent en embuscade pendant une longue période. Et ils ne l'ont pas appris par essais et erreurs, mais telle est leur biologie, donnée par l'instinct. De même, de nombreux animaux ont câblé des programmes d'évitement des prédateurs dès les premières minutes de leur vie, même s'ils ne pouvaient pas encore les apprendre physiquement.


Théoriquement, les méthodes modernes de formation des réseaux de neurones sont capables à partir d'un réseau entièrement connecté de créer la ressemblance d'un tel cerveau pré-formé, en éliminant les connexions inutiles (en fait, en les coupant) et en ne laissant que les connexions nécessaires. Mais cela nécessite un grand nombre d'exemples, on ne sait pas comment les former, et surtout - pour le moment il n'y a pas de bons moyens de réparer cette structure "initiale" du cerveau. Un entraînement ultérieur modifie ces poids et tout va mal.


Les chercheurs de Google ont également posé cette question. Est-il possible de créer une structure cérébrale initiale similaire à la structure biologique, c'est-à-dire déjà bien optimisée pour résoudre le problème, puis de la recycler uniquement? Théoriquement, cela réduira considérablement l'espace des solutions et vous permettra de former rapidement des réseaux de neurones.


Malheureusement, les algorithmes d'optimisation de structure de réseau existants, tels que Neural Architecture Search (NAS), fonctionnent sur des blocs entiers. Après avoir ajouté ou supprimé lequel, le réseau de neurones doit être formé à nouveau à partir de zéro. Il s'agit d'un processus gourmand en ressources et ne résout pas complètement le problème.


Par conséquent, les chercheurs ont proposé une version simplifiée, appelée "Weight Agnostic Neural Networks" (WANN). L'idée est de remplacer tous les poids d'un réseau neuronal par un poids «commun». Et dans le processus d'apprentissage, ce n'est pas pour sélectionner les poids entre les neurones, comme dans les réseaux de neurones ordinaires, mais pour sélectionner la structure du réseau lui-même (le nombre et l'emplacement des neurones), qui avec les mêmes poids montre les meilleurs résultats. Et après cela, optimisez-le pour que le réseau fonctionne bien avec toutes les valeurs possibles de ce poids total (commun à toutes les connexions entre neurones!).


En conséquence, cela donne la structure d'un réseau neuronal, qui ne dépend pas de poids spécifiques, mais fonctionne bien avec tout le monde. Parce que cela fonctionne en raison de la structure globale du réseau. Cela ressemble au cerveau d'un animal qui n'a pas encore été initialisé avec des échelles spécifiques à la naissance, mais contient déjà des instincts intégrés en raison de sa structure générale. Et le réglage ultérieur des échelles pendant l'entraînement tout au long de la vie rend ce réseau neuronal encore meilleur.


Un effet secondaire positif de cette approche est une diminution significative du nombre de neurones dans le réseau (car seules les connexions les plus importantes restent), ce qui augmente sa vitesse. Vous trouverez ci-dessous une comparaison de la complexité d'un réseau neuronal classique entièrement connecté (à gauche) et d'un nouveau réseau correspondant (à droite).



Pour rechercher une telle architecture, les chercheurs ont utilisé l'algorithme de recherche topologique (NEAT). Tout d'abord, un ensemble de réseaux neuronaux simples est créé, puis l'une des trois actions est effectuée: un nouveau neurone est ajouté à la connexion existante entre deux neurones, une nouvelle connexion avec des réseaux aléatoires est ajoutée à un autre neurone, ou la fonction d'activation dans les neurones change (voir les figures ci-dessous). Et puis, contrairement au NAS classique, où les poids optimaux entre les neurones sont recherchés, ici tous les poids sont initialisés avec un seul numéro. Et l'optimisation est effectuée pour trouver la structure de réseau qui fonctionne le mieux dans une large gamme de valeurs de ce poids total. Ainsi, un réseau est obtenu qui ne dépend pas du poids spécifique entre les neurones, mais qui fonctionne bien dans toute la gamme (mais tous les poids sont toujours initiés par un numéro, et ne diffèrent pas comme dans les réseaux normaux). De plus, comme objectif supplémentaire d'optimisation, ils essaient de minimiser le nombre de neurones dans le réseau.



Voici un aperçu général de l'algorithme.



  1. crée une population de réseaux neuronaux simples
  2. chaque réseau initialise tous ses poids avec un seul numéro, et pour une large gamme de nombres: w = -2 ... + 2
  3. les réseaux résultants sont triés par la qualité de la solution au problème et par le nombre de neurones (en baisse)
  4. dans la partie des meilleurs représentants, un neurone est ajouté, une connexion ou la fonction d'activation dans un neurone change
  5. ces réseaux modifiés sont utilisés comme initiaux au point 1)

Tout cela est bien, mais des centaines, voire des milliers d'idées différentes ont été proposées pour les réseaux de neurones. Est-ce que cela fonctionne dans la pratique? Oui. Ci-dessous est un exemple du résultat de la recherche d'une telle architecture de réseau pour le problème du chariot à pendule classique. Comme on peut le voir sur la figure, le réseau de neurones fonctionne bien avec toutes les variantes du poids total (mieux avec +1,0, mais essaie également de soulever le pendule de -1,5). Et après avoir optimisé ce poids unique, il commence à fonctionner parfaitement parfaitement (option poids fin sur la figure).



En règle générale, vous pouvez recycler ce poids total unique, car la sélection de l'architecture se fait sur un nombre discret limité de paramètres (dans l'exemple ci-dessus -2, -1,1,2). Et vous pouvez obtenir un paramètre optimal plus précis, disons 1,5. Et vous pouvez utiliser le meilleur poids total comme point de départ pour le recyclage de tous les poids, comme dans la formation classique des réseaux de neurones.


Ceci est similaire à la façon dont les animaux sont entraînés. Ayant des instincts presque optimaux à la naissance et utilisant cette structure cérébrale donnée par les gènes comme initiale, au cours de leur vie, les animaux entraînent leur cerveau dans des conditions externes spécifiques. Plus de détails dans un récent article de la revue Nature .


Voici un exemple de réseau trouvé par WANN pour une tâche de contrôle de machine basée sur les pixels. Veuillez noter qu'il s'agit d'un tour sur les «instincts nus», avec le même poids total dans toutes les articulations, sans le réglage fin classique de tous les poids. Dans le même temps, le réseau de neurones est d'une structure extrêmement simple.



Les chercheurs suggèrent de créer des ensembles à partir de réseaux WANN comme autre cas d'utilisation pour WANN. Ainsi, le réseau de neurones initialisé au hasard habituel sur MNIST montre une précision d'environ 10%. Un réseau de neurones WANN unique sélectionné donne environ 80%, mais un ensemble de WANN avec différents poids totaux montre déjà> 90%.


En conséquence, la méthode proposée par les chercheurs de Google pour rechercher l'architecture initiale d'un réseau neuronal optimal imite non seulement l'apprentissage des animaux (naissance avec des instincts optimaux intégrés et un recyclage pendant la vie), mais évite également la simulation de la vie animale entière avec un apprentissage à part entière de l'ensemble du réseau dans des algorithmes évolutifs classiques, créant Réseaux simples et rapides à la fois. Ce qui suffit juste à s'entraîner légèrement pour obtenir un réseau neuronal entièrement optimal.


Les références


  1. Entrée de blog Google AI
  2. Un article interactif dans lequel vous pouvez modifier le poids total et surveiller le résultat
  3. Article de Nature sur l'importance des instincts intégrés à la naissance

Source: https://habr.com/ru/post/fr465369/


All Articles