Alors que les grandes entreprises mondiales recherchent des voitures autonomes, elles dépensent essentiellement des milliards de dollars pour que les machines fassent ce que votre enfant moyen de deux ans peut faire sans réfléchir – identifier ce qu’il voit. Bien sûr, à certains égards, les tout-petits ont toujours l’avantage. L’année dernière, un conducteur tristement célèbre est décédé alors qu’il se trouvait dans une berline Tesla – il ne faisait pas attention lorsque la caméra du véhicule a pris un camion à proximité pour le ciel.
Le degré de succès de ces entreprises jusqu’à présent est dû à une forme de calcul en sommeil depuis longtemps qui modélise certains aspects du cerveau. Cependant, cette forme de calcul pousse le matériel actuel à ses limites, puisque les ordinateurs modernes fonctionnent très différemment de la matière grise de nos têtes. Ainsi, alors que les programmeurs créent des logiciels de “réseau de neurones” pour fonctionner sur des puces informatiques ordinaires, les ingénieurs conçoivent également du matériel “neuromorphe” qui peut imiter le cerveau plus efficacement. Malheureusement, un type de réseau neuronal qui est devenu la norme dans la reconnaissance d’images et d’autres tâches, ce qu’on appelle un réseau neuronal convolutif, ou CNN, a résisté à la réplication dans le matériel neuromorphique.
C’est-à-dire jusqu’à récemment.
Les scientifiques d’IBM ont rapporté dans le Actes de l’Académie nationale des sciences qu’ils ont adapté les CNN pour qu’ils fonctionnent sur leur puce TrueNorth. D’autres groupes de recherche ont également signalé des progrès sur la solution. Le système TrueNorth correspond à la précision des meilleurs systèmes actuels de reconnaissance d’image et de voix, mais il utilise une petite fraction de l’énergie et fonctionne à plusieurs fois la vitesse. Enfin, combiner des réseaux convolutifs avec des puces neuromorphiques pourrait créer plus qu’une simple bouchée de jargon ; cela pourrait conduire à des voitures plus intelligentes et à des téléphones portables qui comprennent efficacement nos commandes verbales, même lorsque nous avons la bouche pleine.
Traditionnellement, la programmation d’un ordinateur nécessitait la rédaction d’instructions étape par étape. Apprendre à l’ordinateur à reconnaître un chien, par exemple, peut impliquer d’énumérer un ensemble de règles pour guider son jugement. Vérifiez si c’est un animal. Vérifiez s’il a quatre pattes. Vérifiez s’il est plus gros qu’un chat et plus petit qu’un cheval. Vérifiez s’il aboie. Etc. Mais un bon jugement demande de la flexibilité. Que se passe-t-il si un ordinateur rencontre un petit chien qui n’aboie pas et qui n’a que trois pattes ? Peut-être avez-vous besoin de plus de règles, alors, mais lister des règles sans fin et répéter le processus pour chaque type de décision qu’un ordinateur doit prendre est inefficace et peu pratique.
Les humains apprennent différemment. Un enfant peut distinguer les chiens et les chats, marcher droit et parler couramment sans qu’on lui dise une seule règle sur ces tâches – nous apprenons de l’expérience. En tant que tels, les informaticiens ont traditionnellement cherché à capturer une partie de cette magie en modélisant des logiciels sur le cerveau.
Le cerveau contient environ 86 milliards de neurones, des cellules qui peuvent se connecter à des milliers d’autres neurones par des branches élaborées. Un neurone reçoit des signaux de nombreux autres neurones, et lorsque la stimulation atteint un certain seuil, il “se déclenche”, envoyant son propre signal aux neurones environnants. Un cerveau apprend, en partie, en ajustant la force des connexions entre les neurones, appelées synapses. Lorsqu’un modèle d’activité est répété, par la pratique, par exemple, les connexions contributives deviennent plus fortes et la leçon ou la compétence est inscrite dans le réseau.
Dans les années 1940, les scientifiques ont commencé à modéliser mathématiquement les neurones, et dans les années 1950, ils ont commencé à en modéliser les réseaux avec des ordinateurs. Les neurones artificiels et les synapses sont beaucoup plus simples que ceux d’un cerveau, mais ils fonctionnent selon les mêmes principes. De nombreuses unités simples (渘eurons”) se connectent à de nombreuses autres (via des “synapses”), leurs valeurs numériques dépendant des valeurs des unités leur signalant pondérées par la force numérique des connexions.
Les réseaux de neurones artificiels (parfois simplement appelés réseaux de neurones) sont généralement constitués de couches. Visuellement représenté, l’information ou l’activation se déplace d’une colonne de cercles à l’autre via des lignes entre eux. Le fonctionnement des réseaux avec de nombreuses couches de ce type est appelé apprentissage en profondeur, à la fois parce qu’ils peuvent apprendre plus profondément et parce que le réseau réel est plus profond. Les réseaux de neurones sont une forme d’apprentissage automatique, le processus par lequel les ordinateurs ajustent leur comportement en fonction de l’expérience. Les filets d’aujourd’hui peuvent conduire des voitures, reconnaître des visages et traduire des langues. De telles avancées doivent leur succès aux améliorations de la vitesse des ordinateurs, à la quantité massive de données de formation désormais disponibles en ligne et aux ajustements des algorithmes de base des réseaux neuronaux.
Les réseaux de neurones convolutifs sont un type particulier de réseau qui a pris de l’importance ces dernières années. Les CNN extraient des caractéristiques importantes des stimuli, généralement des images. Une entrée peut être une photo d’un chien. Cela pourrait être représenté comme une couche de neurones en forme de feuille, l’activation de chaque neurone représentant un pixel dans l’image. Dans la couche suivante, chaque neurone prendra l’entrée d’un patch de la première couche et deviendra actif s’il détecte un motif particulier dans ce patch, agissant comme une sorte de filtre. Dans les couches successives, les neurones chercheront des motifs dans les motifs, et ainsi de suite. Le long de la hiérarchie, les filtres peuvent être sensibles à des choses comme les bords des formes, puis des formes particulières, puis des pattes, puis des chiens, jusqu’à ce qu’il vous dise s’il voit un chien ou un grille-pain.
Dans un réseau neuronal convolutif, comme dans le cortex visuel, il y a des neurones qui sont sensibles à des caractéristiques particulières (par exemple : le nez) réparties dans le champ de vision. Les sorties de ces neurones sont ensuite connectées ensemble de manière à imiter l’effet de prendre un seul neurone sensible au nez et de le faire glisser sur tout le champ visuel (convolution !). Cela produit une sortie qui indique aux calques suivants où se trouvent les nez dans l’image. Ceci n’est bien sûr pas limité aux nez; l’effet de convolution est essentiellement utilisé pour produire des mappages spatiaux de * où * les caractéristiques sont situées dans l’image. Ces relations spatiales alimentent ensuite les niveaux supérieurs du réseau, en les combinant pour reconnaître les modèles et les objets.”
Surtout, les filtres internes n’ont pas besoin d’être programmés à la main pour rechercher des formes ou des pattes. Il vous suffit de présenter aux entrées du réseau (images) et aux sorties correctes (étiquettes d’image). Lorsqu’il se trompe, il ajuste légèrement ses connexions jusqu’à ce qu’après de nombreuses photos, les connexions deviennent automatiquement sensibles aux fonctionnalités utiles. Ce processus ressemble à la façon dont le cerveau traite la vision, des détails de bas niveau jusqu’à la reconnaissance d’objets. Toute information pouvant être représentée spatialement – deux dimensions pour les photos, trois pour la vidéo, une pour les chaînes de mots dans une phrase, deux pour l’audio (temps et fréquence) – peut être analysée et comprise par les CNN, ce qui les rend largement utiles.
Bien que Yann LeCun, désormais directeur de la recherche sur l’IA de Facebook, ait proposé pour la première fois les CNN en 1986, ils n’ont révélé leur fort potentiel que lorsque quelques ajustements ont été apportés à leur fonctionnement. En 2012, Geoffrey Hinton, aujourd’hui l’un des meilleurs experts en intelligence artificielle chez Google, et deux de ses étudiants diplômés ont utilisé un CNN pour gagner un défi appelé ImageNet Challenge, un concours nécessitant des ordinateurs pour reconnaître des scènes et des objets. En fait, ils ont gagné avec une telle marge que les CNN ont pris le relais, et depuis lors, chaque gagnant est un CNN.
Maintenant, imiter le cerveau est coûteux en calcul. Étant donné que le cerveau humain possède des milliards de neurones et des billions de synapses, simuler chaque neurone et chaque synapse est actuellement impossible. Même la simulation d’un petit morceau de cerveau pourrait nécessiter des millions de calculs pour chaque élément d’entrée.
Malheureusement, comme indiqué ci-dessus, les réseaux de neurones convolutifs nécessitent une énorme puissance de calcul. Avec de nombreuses couches, et chaque couche appliquant le même filtre de fonctionnalités de manière répétée à de nombreux patchs de la couche précédente, les plus grands CNN d’aujourd’hui peuvent avoir des millions de neurones et des milliards de synapses. L’exécution de tous ces petits calculs ne convient pas à l’architecture informatique classique, qui doit traiter une instruction à la fois. Au lieu de cela, les scientifiques se sont tournés vers l’informatique parallèle, qui peut traiter de nombreuses instructions simultanément.
Les réseaux de neurones avancés d’aujourd’hui utilisent des unités de traitement graphique (GPU) – du type utilisé dans les consoles de jeux vidéo – car ils se spécialisent dans les types d’opérations mathématiques qui se révèlent utiles pour l’apprentissage en profondeur. (Mettre à jour toutes les facettes géométriques d’un objet en mouvement à la fois est un problème similaire au calcul de toutes les sorties d’une couche de réseau neuronal donnée à la fois.) Mais encore, le matériel n’a pas été conçu pour effectuer un apprentissage en profondeur aussi efficacement qu’un cerveau, qui peut piloter une voiture et mener simultanément une conversation sur l’avenir des véhicules autonomes, tout en utilisant moins de watts qu’une ampoule.