Mais pourquoi les réseaux de neurones ne marchent pas si bien ?


image-ikramIl y a quand-même quelque chose d'énervant c'est de ne pas comprendre pourquoi les choses ne marchent pas aussi facilement que l'on pourrait penser. C'est ce défi que relève Ikram Chraibi Kaadoud, doctorante chez Algotech informatique et dans une équipe de neuroscience computationnelle, dans le cas des réseaux de neurones. Après nous avoir présenté le fonctionnement de base d'un neurone artificiel en réseau, redonnons lui la parole.

 

Résume-nous, Ikram, comment fonctionne ces neurones artificiels ?

 

Nous avons regardé le fonctionnement de base d'un neurone artificiel, c'est une « machine » très simple : il y a

- des entrées qui sont mélangées en fonction d'un poids positif (qui excite le neurone) ou négatif (qui inhibe le neurone) et

- une fonction seuil appliquée au mélange résultant des entrées citées ci-dessus, qui sépare les valeurs basses des valeurs élevées.

En bref ?

Un neurone unique effectue un calcul très voire trop rudimentaire. Mais lorsque que l'on combine les sorties d'un grand nombre de neurones, on peut alors obtenir une approximation de toutes les fonctions possibles. Cela se fait en utilisant une deuxième couche de neurones pour combiner les calculs de la couche interne.

Pour que le réseau apprenne une telle fonction, on lui présente des exemples d'entrées avec les sorties désirées correspondantes. On réalise alors de l’apprentissage supervisé : l’application d’une règle simple pour ajuster automatiquement les paramètres de chaque neurone de façon à minimiser l'erreur moyenne entre les sorties désirées et observées.

En d’autres termes, pour chaque entrée nous comparons la sortie obtenue avec la sortie attendue (que l’on connaît) et selon l’erreur observée, nous ajustons le réseau afin qu’il puisse fournir une sortie la plus proche possible de celle que l’on attend de lui.

 

Mais ne va t'on pas au-devant d'enthousiasme et de désillusions ?

 

À partir de ce schéma théorique, nous pouvons supposer que d'un ensemble de calculs rudimentaires, locaux (c'est-à-dire complètement distribués) peut émerger, à plus grande échelle, une fonction complexe. Or à priori, c’est une telle complexité que l'on recherche. Il s’agirait là d’un phénomène d'émergence.

On peut alors avoir l'impression d’ouvrir la voie à la création d'algorithmes universels, qui pourraient, avec suffisamment d'unités élémentaires et suffisamment d'exemples d'apprentissage, apprendre des mécanismes ultra sophistiqués.

Les tenants de l'intelligence artificielle ont cru quelque temps à de tels mécanismes universels. Ceci, en nous expliquant à chaque décennie que l'arrivée de cette intelligence artificielle était pour la suivante ! Mais les chercheurs en science informatique ont très vite établi en quoi cet espoir était définitivement illusoire : il se heurte à la malédiction de la complexité.

 

Oh ! Mais concrètement quelle est cette malédiction de la dimensionnalité ?

 

On pourrait certes obtenir une approximation de toutes les fonctions du monde avec tel un réseau, mais ce serait à condition d’utiliser un nombre déraisonnablement élevé de neurones.

Nombre Exponentiel de ce nombre

1

2

10

1024

20

Plus d'un million

30

Plus d'un milliard

14

Le nombre de neurones du cerveau humain

50

Un nombre avec 15 chiffres

80

Plus que la taille de l'univers en kilomètres
Si on calcule les puissances de 2 d'un nombre (21, 210, 220, …), l'explosion est rapide !

 

Ainsi, dès que la fonction a plus d'une dizaine de degrés de liberté, c'est en millions, milliards et au-delà qu'il faut compter les neurones. Si l’on s'accroche à la métaphore du cerveau, qui a environ cent milliards de neurones biologiques, il est clair que s'il fonctionnait comme un tel réseau de neurones, il ne ferait pas grand-chose !

Ce n'est du reste pas la seule limitation en terme de complexité : le nombre souvent faramineux d'exemples nécessaires pour apprendre les paramètres, le souci que ce qui a été appris sur ces exemples se généralise bien à tous les autres cas (sans sur-apprentissage de quelques cas particuliers) sont d'autres limitations en terme de complexité.

 

Avons-nous une idée pour briser cette malédiction ?

 

Très bonne question ! Que pourrions-nous proposer pour fabriquer un système qui aurait un comportement sophistiqué avec un nombre raisonnable d'unités de calcul ?

[ ] Serait-ce en utilisant des unités de calcul plus sophistiquées que ces neurones artificiels ?

[ ] Serait-ce plutôt en changeant l'architecture du réseau, c'est-à-dire ses connexions ?

Voyons au prochain épisode ce que les scientifiques du domaine ont choisi d'explorer.


Un commentaire pour “Mais pourquoi les réseaux de neurones ne marchent pas si bien ?”

  1. René Padieu Répondre | Permalink

    dans cet article, au demeurant fort intéressant, n'y a-t-il pas une erreur dans le tableau des puissances de 2 ? "14" semble douteux ; avec seize mille neurones, un homme ne doit pas être très intelligent !

Publier un commentaire