Gènes, neurones et ordinateurs
2015/01/01 Azkune Galparsoro, Gorka - Ikertzailea eta irakasleaEuskal Herriko Unibertsitateko Informatika Fakultatea Iturria: Elhuyar aldizkaria
La nature comme source d'inspiration
Concept d'intelligence artificielle XX. Il est apparu parmi nous vers le milieu du XXe siècle. À ses débuts, il commence à travailler avec l'intelligence symbolique et les problèmes de recherche. Un bon exemple étaient les joueurs d'échecs artificiels. Le prestigieux ordinateur d'IBM, Deep Blue, a remporté le plus de succès en s'imposant en 1997 au prestigieux joueur d'échecs Gary Kasparov.
Ces machines, cependant, ne ressemblaient pas à l'intelligence de l'homme. Ils étaient capables de faire très bien une chose concrète, mais pas une autre. Ils n'étudiaient pas, ils n'étaient pas capables de généraliser leurs connaissances et, s'ils changeaient légèrement les règles du jeu, ils ne pouvaient pas réagir. C'est pourquoi les chercheurs ont travaillé sur de nouvelles voies et ont travaillé sur un nouveau domaine de l'intelligence artificielle : l'apprentissage automatique.
Dans cet article, nous n'analyserons pas entièrement l'apprentissage automatique. Nous entrerons dans un domaine concret mais attrayant : des algorithmes inspirés par la nature et l'apprentissage. Nous nous approcherons d'un processus très semblable à la façon d'apprendre humain, combinant des réseaux neuronaux et des algorithmes génétiques.
Réseaux neuronaux
Notre cerveau est composé de neurones, une pile de neurones interconnectés. Mais si nous analysons seulement un de ces neurones, sa simplicité nous surprendra. Du point de vue de l'information, les neurones reçoivent une série de données d'entrée sous forme de signal électrique et émettent un autre signal (figure 1). Par conséquent, la capacité de traitement de notre cerveau est basée sur l'interaction de ces neurones simples.
Dans l'esprit de cette idée, il ne semble pas très difficile de construire des réseaux neuronaux artificiels. Et ce n'est pas difficile. Les premiers réseaux neuronaux artificiels se sont développés entre les années 40 et 60 du siècle dernier. Cependant, son potentiel n'a pas été évident avant la fin des années 80. Actuellement, les réseaux neuronaux peuvent être trouvés dans onze applications.
Les réseaux neuronaux sont un ensemble de neurones qui convertissent certaines entrées de données en sorties de données. Comme vous pouvez le voir dans la figure 2, les réseaux neuronaux sont organisés en couches : couche d'entrée, couche cachée (vous pouvez cacher autant de couches que vous le souhaitez) et couche de sortie. Chaque couche est constituée de neurones (rouleaux de la figure) et tous les neurones d'une couche sont connectés aux neurones de la couche suivante. C'est la structure d'un réseau neuronal conventionnel. Notez qu'il peut y avoir des réseaux de toutes sortes pour atteindre différents objectifs. Par exemple, certains réseaux relient les neurones de la couche de sortie aux couches cachées pour que le réseau ait la mémoire. Mais pour l'instant, nous allons mettre de côté des structures complexes.
Les entrées de chaque neurone sont des nombres. Lorsque ces nombres atteignent un neurone, ils sont multipliés par d'autres nombres appelés poids et tous les résultats sont ajoutés ci-dessous. Cette somme sera la sortie du neurone. Comme vous le voyez, ce que chaque neurone fait est très simple. Mais tout le réseau, reliant tous les neurones, est capable d'implémenter n'importe quelle fonction mathématique. C'est la puissance du réseau. Ce que nous venons de dire peut être prouvé mathématiquement, mais c'est en dehors des objectifs de cet article.
Par conséquent, dans le comportement d'un réseau neuronal, sa structure (nombre de couches et nature des connexions) et le poids de chaque neurone revêtent une importance particulière. Pour effectuer des opérations simples, il suffit d'un petit réseau où tous les poids sont facilement fixés et la bonne structure est déterminée. Cependant, les applications complexes nécessitent de grands réseaux où il est pratiquement impossible de déterminer manuellement tous les poids de chaque neurone. Il est donc impératif que le réseau neuronal lui-même établisse les valeurs de ces poids par un processus automatique. Ce processus est appelé apprentissage automatique et peut être effectué de différentes façons. Nous verrons ici l'apprentissage par renforcement. Pour cela, nous devons d'abord analyser les algorithmes génétiques.
Algorithmes génétiques
La théorie de l'évolution de Darwin nous a appris comment l'évolution des êtres vivants se produit. Ceux qui s'adaptent le mieux à l'environnement sont ceux qui ont le plus de chances de se féconder et la fécondation combine les caractéristiques des parents et ouvre la voie à la nouvelle génération. En combinant les caractéristiques des individus qui s'adaptent le mieux, de génération en génération, naissent de meilleurs individus. Les algorithmes génétiques utilisent ces idées pour optimiser les problèmes complexes.
Analysons ce problème. Un voyageur veut visiter n villes, mais pas de toute façon. Pour économiser de l'argent, vous voulez faire le chemin le plus court qui passe par ces n villes (Figure 3). Étant donné que nous savons les distances entre toutes les villes, comment pouvons-nous planifier le voyage? Il semble simple : calculons tous les ordres de visite des villes, ajoutons les distances et prenons le plus petit. Cette solution est correcte, mais quand n est un grand nombre de villes, un ordinateur prend beaucoup de temps pour trouver la solution. Ce n'est donc pas une solution pratique.
Les algorithmes génétiques peuvent bien travailler avec le problème du voyageur. Comment ? D'abord la génération initiale est créée et des combinaisons aléatoires de n villes sont créées. Ces combinaisons aléatoires sont appelés individus. On calcule la distance parcourue par chaque individu, en restant l'algorithme avec quelques uns qui fournissent les plus petites distances pour le traverser. Dans le cas des villes, par exemple, nous pouvons combiner les premières n/2 villes d'un individu avec les n/2 de la seconde et créer un nouvel individu de n villes. Les individus issus des croix forment une deuxième génération.
Un autre facteur important est la mutation. Comme dans la nature, les nouveaux individus peuvent naître avec des mutations. Dans notre cas, l'échange entre deux villes dans des positions aléatoires peut être égal à une mutation. La mutation est rare mais a une fonction très importante pour trouver des individus plus appropriés.
Comme l'algorithme génère de nouvelles générations, les individus apportent de meilleures solutions. En fin de compte, même s'il n'est pas toujours possible de trouver une solution optimale, le meilleur individu reste très proche de l'optimum. Donc, en peu de temps, vous pouvez trouver une très bonne solution. N'est-ce pas surprenant ?
Apprentissage par renforcement
Maintenant vient le plus beau. Imaginons que nous avons un robot qui peut se déplacer dans n'importe quelle direction. Nous voulons montrer que quand nous disons “droite” nous allons à droite et quand nous disons “gauche” nous nous déplaçons à gauche. Pour cela, nous mettons un microphone qui détecte notre voix. Le signal généré par le microphone est l'entrée d'un réseau neuronal. La sortie se réfère aux signaux des moteurs servant à déplacer le robot (Figure 4).
L'objectif du robot est d'obtenir les poids des neurones qui forment le réseau neuronal pour bien faire ce que nous avons dit. Parmi toutes les valeurs possibles de tous les poids, il existe des solutions qui répondent au stimulus vocal avec un mouvement adéquat. Pour cela, nous utiliserons l'apprentissage par renforcement. Nous donnerons au robot une commande « droite » ou « gauche » et selon le mouvement que vous effectuez nous vous mettrons une note de 1 à 10. Si vous dites “droite” et se déplace à gauche, nous vous mettrons 1. Mais si vous vous déplacez vers l'avant en le faisant un peu vers la droite, vous mettez un 5. Bien sûr, lorsque vous vous déplacez à droite, vous aurez un 10!
Le processus d'apprentissage fonctionne comme : premièrement, l'algorithme génétique sélectionne des solutions aléatoires, c'est-à-dire des poids spécifiques du réseau neuronal. Exécutez ces solutions et découvrez les meilleures en fonction du prix reçu. Croisez les meilleurs étages, appliquez parfois la mutation et réessayez avec la nouvelle génération. Avec les nouveaux prix reçus sera créé une nouvelle génération qui permettra de trouver une solution avec les prix les plus puissants pour tous les ordres vocaux.
Ces expériences ont déjà été réalisées et il a été prouvé que cette technique fonctionne. Mais ce n'est pas de la magie, mais des mathématiques. ?Un processus itératif de recherche des paramètres les plus appropriés d'une fonction non linéaire est en cours de production. À notre avis, nous recherchons les poids du réseau neuronal dans un processus d'optimisation dans lequel l'objectif est de maximiser le prix obtenu.
Pour finir
L'apprentissage par renforcement est basé sur les processus d'apprentissage des êtres humains et des animaux. En outre, nous avons montré comment développer ce processus en utilisant des réseaux neuronaux et des algorithmes génétiques. Les deux ont leur base dans la nature. Il est fascinant de voir que nous pouvons former les machines à apprendre. Il est peut-être plus fascinant de savoir que cette capacité d'apprendre, nous l'avons obtenue en imitant des processus qui ont lieu dans sa nature, ce qui démontre la profondeur de la connaissance de la nature que nous avons acquise à travers la science pendant de nombreuses années. Nous avons pu combiner psychologie, biologie, neurosciences, mathématiques et informatique pour apprendre aux machines.
Nous avons actuellement plusieurs exemples de machines capables d'apprendre. Quand nous comprenons en réseau et évaluons les produits, nous recevons automatiquement de nouveaux conseils parce que les systèmes qui sont derrière apprennent de nous. Les navigateurs Web utilisent également l'apprentissage pour fournir des recherches personnalisées. Grâce à la caméra, nous pouvons connaître les visages, conduire les voitures de manière autonome et mettre de nombreux exemples de succès de l'apprentissage et de l'intelligence artificielle.
La route reste longue. Nous avons seulement commencé. Bien que l'intelligence artificielle et l'apprentissage automatique aient beaucoup évolué, nous sommes encore loin de ce qu'un être humain peut faire. Mais nous avançons.
Bibliographie Bibliographie
"Cette entrée #CultureScientifique 3. Participez au festival"