Les réseaux de neurones artificiels. Voilà un concept absolument fascinant. A l’origine conçus pour imiter les réseaux de neurones biologiques, les réseaux neuronaux artificiels sont devenus des paradigmes de développement, une façon complètement différente de concevoir des algorithmes.

giphy-downsized.gif

La genèse des réseaux de neurones artificiels

A l’origine, les premiers réseaux de neurones tentaient de formaliser mathématiquement un système informatique reproduisant le fonctionnement du cerveau humain. Concrètement, il s’agissait d’un assemblage d’opérateurs logiques, le tout permettant de traiter les informations en se basant sur une logique de seuil.

Les réseaux de neurones ont commencé à se développer aux alentours des années 40, avec les travaux de Warren McCulloch and Walter Pitts. Si leur approche était principalement orientée vers des applications mathématiques, d’autres scientifiques se sont penchés sur la question d’un point de vue plus théorique.
A partir de là, et à chaque avancée dans le domaine des réseaux de neurones, deux familles d’approches se sont développées : celles orientées vers la retranscription toujours plus fidèle du fonctionnement biologique du cerveau humain, et celles orientés vers l’utilisation de ces théories en Intelligence Artificielle, notamment pour permettre d’effectuer des calculs toujours plus complexes plus vite.

Le perceptron est copié du neurone biologique : les entrées xj du perceptron sont affectées d'un poids wij. La fonction de seuil définie dans la soma permet de déterminer la sortie yj.

Le perceptron est copié du neurone biologique : les entrées xj du perceptron sont affectées d'un poids wij. La fonction de seuil définie dans la soma permet de déterminer la sortie yj.

Indissociable de la notion d’IA, les réseaux neuronaux ont été l’origine du premier boom de l’IA, mais ils ont aussi contribué à son premier hiver.
En effet, le premier modèle du neurone artificiel à être implémenté est le perceptron. Développé par Frank Rosenblatt en 1957, ce modèle très simple permettant d’aborder de nouveaux problèmes comme la catégorisation d’image.

Pour reconnaître un caractère, les algorithmes le découpent en différentes sections et recensent les zones "blanches" et "noires".

Pour reconnaître un caractère, les algorithmes le découpent en différentes sections et recensent les zones "blanches" et "noires".

Malheureusement, le perceptron monocouche permettait uniquement de traiter les problèmes linéaires, comme la reconnaissance de caractères simples. Assemblées en une seule couche, des opérations logiques essentielles comme les disjonctions exclusives (XOR pour les intimes) n’étaient pas prises en charge. Contrairement aux attentes démesurément enthousiastes de l’époque, le perceptron n’était finalement pas capable de tout apprendre.

L’avènement des réseaux de neurones

Ce Gif illustre le fonctionnement d'un réseau de neurones artificiels et de la rétropropagation du gradient. 

Ce Gif illustre le fonctionnement d'un réseau de neurones artificiels et de la rétropropagation du gradient. 

Il a fallu attendre les années 80 avec la révolution dans les méthodes de calcul d’erreurs liées aux réseaux de neurones. Les théories et travaux de Werbos et Rumelhart sur la rétropropagation du gradient ont permis de calculer l’erreur liée à chaque neurone d’un réseau, et ainsi de superposer plusieurs couches de neurones. A partir de là, les capacités des réseaux de neurones se sont multipliées.

Les réseaux de neurones artificiels peuvent classifier des données en se basant sur la reconnaissance de motifs récurrents, et de fait détecter des anomalies ou des nouveautés lors de l’analyse d’échantillons de données. Ils peuvent également traiter des signaux, ou encore effectuer des prédictions en essayant de traduire sous forme de fonctions les données à leur disposition. De fait, les réseaux neuronaux sont extrêmement utiles pour plusieurs types d’applications : reconnaissance faciale ou vocale, reconnaissance de caractère, traduction de texte, jouer contre des humains à des jeux de sociétés, etc…

Apprentissages supervisé et non-supervisé

Parmi les aspects les plus importants de l’élaboration des réseaux de neurones se trouvent la notion d’apprentissage. Les plus “célèbres” sont les apprentissages supervisés et non-supervisés.

Dans un cas, les systèmes sont entraînés sur des bases de données fournies par un tuteur humain, assorties d’informations sur les sorties valides à retourner. Par exemple, dans le cadre de l’apprentissage pavlovien, le superviseur doit fournir à l’IA les résultats correspondants aux entrées du set de données d'entraînement afin que celle-ci puisse en quelque sorte apprendre avec un “modèle”.
Le premier système se rapprochant de ce principe est le réseaux ADALINE, créé par Bernard Widrow et Ted Hoff en 1960.

Dans l’autre, les systèmes sont entraînés « sans » supervision humaine. Ce développement découle quant à lui des théories d’apprentissage Hebbien, qui suppose que deux neurones sollicités en même temps vont se lier l’un à l’autre et ainsi renforcer ou défaire les liaisons synaptiques entre les différents neurones. A l’aide d’un set de données non-commentées, le système devra organiser les informations en leur trouvant des corrélations. Concrètement, le système sera alimenté avec des données non commentées, que le système catégorisera selon des critères qui lui sont propres, notamment en se basant sur les différences et ressemblances entre deux informations.

D’autres types d’apprentissage existent également, notamment l’apprentissage par renforcement. Très utilisé dans le cadre de la robotique, notamment dans la navigation, cette méthode d’apprentissage se base sur l’évolution d’un système dans son environnement. Si l’on prend l’exemple d’un robot se dirigeant au milieu d’une pièce encombrée de cartons, avec pour mission d’en sortir, le système recevra comme un retour négatif le fait de se heurter aux obstacles, et un retour positif l’absence de choc ou le fait de continuer à s’acheminer vers la sortie. A force de chercher les retours positifs, le robot finira par mémoriser la topologie de la pièce et sortir de celle-ci.

L’équation de l’intelligence

Afin de pouvoir traduire les différentes théories qui sous-tendent les réseaux de neurones et leur permettre d’être implémentées simplement et proprement dans les algorithmes d’IA, certains réseaux de neurones ont peu à peu perdu leur ressemblance avec leurs modèles biologiques.

De fait, certains types de réseaux neuronaux se sont orientés de manière à répondre de manière optimale à la problématique qui leur aura été assignée. Bien que de grandes « familles » existent, comme les réseaux de neurones sigmoïdes ou les cartes de Kohonen, il existe finalement autant d’architectures de réseaux neuronaux que de programmeurs.

Il se pourrait que la prochaine avancée dans ce domaine ne soit rien de moins que la découverte d’une formalisation de l’intelligence...

Ajouté à cela le fait que les combinaisons entre les différentes famille de réseaux sont tout à fait possibles, il est quasiment impossible d’expliquer le sens exact des calculs des réseaux de neurones en interne. Deux réseaux avec la même architecture globale et des paramètres légèrement différents peuvent trouver des sorties complètements différentes, là où deux réseaux complètement différents pourront trouver la même sortie en fonction des paramètres d’entrée.

Pour l’heure, il n’existe pas d’équations décrivant exactement le sens du comportement d’une information au coeur d’un réseau de neurones. On se contente d’un historique de cas d’utilisation, et d’une base de connaissance sur ce qui a marché et ce qui a échoué. Il s’agit d’un domaine d’étude qui nécessite l’apport de plusieurs sciences, comme la biologie, les sciences cognitives, les mathématiques… Malgré le fait que ce champs d’étude n’est absolument pas nouveau, à l’échelle de la compréhension complète du phénomène, nous en sommes encore aux balbutiements.

Finalement, il se pourrait que la prochaine avancée dans ce domaine ne soit rien de moins que la découverte d’une formalisation de l’intelligence...