Il y a douze ans, en 1995, une voiture conduite par ordinateur a traversé les États-Unis. Au total 9.600 kilomètres. No hands across America est le nom de l'aventure, car le but était de conduire sans les mains. La voiture n'était pas sans conducteur, car une personne accélérait et freinait. Cependant, en supprimant les deux, tout le reste faisait la plate-forme de navigation appelée PANS ( Portable Avanced Navigation Suport ), un ensemble d'ordinateurs, GPS et autres systèmes. Depuis, le monde des voitures robotiques sans conducteur a beaucoup progressé, mais pas tant au niveau du logiciel. Les voitures robotiques d'aujourd'hui utilisent un logiciel similaire à celui qui avait intégré le système PANS, programmes qui permettent aux ordinateurs de simuler le fonctionnement d'un cerveau.
Le cerveau fonctionne par des neurones reliant des millions de petites unités. Séparément, les neurones ne sont pas très puissants, ils reçoivent de petits signaux électriques, les changent légèrement et les envoient. Mais, par équipes, les neurones sont très puissants, parce que ces petites unités simples sont organisées dans un grand réseau sophistiqué.
Chaque neurone reçoit des signaux d'autres milliers de neurones. Vous décidez si vous envoyez le signal vers l'avant, et si la réponse est affirmative, placez-la sur le signal et l'envoyez à d'autres milliers de neurones. Ce fonctionnement donne une énorme capacité au réseau neuronal, qui comprend des œuvres abstraites.
Le réseau neuronal peut être simulé par un ordinateur. De nombreuses petites unités de calcul peuvent être définies et connectées entre elles. En fournissant des données à certains d'entre eux, vous pouvez démarrer le réseau et obtenir le résultat du travail à travers les neurones de sortie. En fait, les informaticiens appellent des réseaux neuronaux aux programmes informatiques qui fonctionnent de cette façon et les classent en intelligence artificielle. Les réseaux neuronaux ne sont pas la seule façon de créer l'intelligence artificielle, mais l'un des plus importants.
Dans la plupart des définitions de l'intelligence artificielle, des verbes apparaissent comme argumenter, raisonner, interpréter, apprendre. La question est de savoir comment un ordinateur peut faire ces choses. Bien sûr, il fabrique des cerveaux à travers des millions de neurones et de connexions. Mais concevoir un tel système sur l'ordinateur est impossible, même si le nombre de neurones simulés est beaucoup plus faible. Par exemple, que doit faire chaque neurone dans le réseau pour savoir qu'un robot paysan est temps de ramasser des tomates? Personne ne connaît la réponse, mais cela n'a pas d'importance. Et c'est qu'un réseau neuronal informatique ne sait pas comment le travail est fait. Vous devez apprendre.
Le programmeur fournit au réseau une structure initiale qui l'intègre dans une phase de formation. Pour cela, il vous donne un problème et, avec l'approche du problème, la solution correcte de celui-ci. Le réseau analyse le problème et apporte une solution qui contraste avec celle fournie par l'ordinateur et adapte l'activité de chaque neurone pour ajuster correctement la solution qui obtient tout le réseau. Essayez à nouveau, si le programme est bien fait, la deuxième session approchera la solution du réseau et la bonne solution. Il va de nouveau comparer les deux solutions, reconditionner le travail des neurones et réessayer. De cette façon, jusqu'à obtenir une solution correcte.
Ce système d'apprentissage semble un piège, car il vous donne la solution que vous devriez obtenir. Mais le cerveau fait de même. Les êtres humains, par exemple, apprennent à lire ou à connaître un visage de cette façon: encore et encore après avoir vu la solution. La connaissance des visages est un bon exemple; les enfants nouveau-nés passent des mois à apprendre à connaître les visages de leurs parents, ce qui nécessite un niveau minimal d'abstraction. Et si le père ou la mère d'un enfant de six mois change d'aspect (coupe de cheveux, par exemple), il est possible que l'enfant ait de grandes difficultés à connaître son visage.
Pour faire apprendre au réseau, en définitive, il faut se mettre en marche. Vous devez donner un input, saisir des données. Ces données ne parviennent pas directement à tous les neurones, sont prises, traitées et transmises par quelques-uns aux neurones auxquels ils sont connectés. Les données sont transmises en neurone comme un signal électrique pour atteindre les neurones de sortie. Ces derniers neurones fournissent un output.
Input et output; l'ancien dogme de l'informatique. Les deux sont nécessaires. Ils sont des composants indispensables du réseau neuronal. Le réseau le plus simple possible aurait un neurone unique qui recueillerait un input simple et, transformé, donnerait un output simple. Pour traiter un seul neurone et une seule donnée. Un tel réseau n'apprendrait pas beaucoup. Même pour apprendre à effectuer des opérations logiques simples, un réseau a besoin de quelques neurones.
Dans l'opération appelée XOR, par exemple, deux données, des zéros ou un sont inclus ; lorsque les deux données sont unitaires, le résultat de l'opération est également un, et si vous avez un zéro, le résultat de l'opération est zéro. Il s'agit d'une opération très simple, mais il faut cinq neurones pour qu'un réseau apprenne à le faire : deux neurones pour recueillir les données de l'input, une autre pour l'output final et deux autres neurones intermédiaires.
Les neurones intermédiaires sont nécessaires pour effectuer des travaux intermédiaires. Et si tous ces travaux intermédiaires ne sont pas similaires, chaque travail est fait par un groupe de neurones. C'est pourquoi les informaticiens les organisent par couches. Dans la première couche, vous trouverez les neurones qui reçoivent l'entrée, puis vous trouverez la première couche intermédiaire lorsque nécessaire, puis toutes les couches intermédiaires suivantes dans l'ordre et enfin la couche neuronale qui donne la sortie.
Le signal effectue ce voyage, de l'entrée à la sortie, sur une voie déterminée par les connexions. Il peut s'agir d'un chemin direct ou qui transmet le signal des dernières couches aux initiales, la structure des connexions dépendra du travail. Et des structures très complexes peuvent faire des œuvres très abstraites.
Le cerveau fonctionne de la même manière : il y a des neurones qui reçoivent l'entrée (vu, entendu, etc.) ), certains groupes neuronaux sont activés pour chaque type de travail et d'autres qui provoquent la sortie (réaction). Mais le cerveau est beaucoup plus complexe que les réseaux neuronaux informatiques. Entre autres choses, le nombre de neurones et de connexions augmente à mesure que vous apprenez, au moins au début de la vie.
Plus le travail est abstrait, plus le réseau qui apprend à le faire est complexe. Il semble impossible, par exemple, de concevoir un réseau neuronal qui sépare les lettres imprimées (caractères). Mais ces réseaux sont habituels: Ils sont appelés logiciels OCR. Comment les informaticiens les ont-ils conçus ? Comment avez-vous connu le nombre de neurones à utiliser, le nombre de couches à organiser et les connexions à établir ?
La réponse est simple: au début, ils ne savaient pas. Pour effectuer ce type de travail, choisissez un réseau neuronal initial qui vous fera apprendre. Il est très possible que le réseau ne puisse pas apprendre, qu'il ne reste pas une fois lancé ou qu'il donne des résultats insensés. Dans ces cas, ils ajustent le réseau, en ajoutant ou en supprimant des neurones, en restructurant le réseau lui-même ou en modifiant la transformation que réalise chaque neurone. Et ils retestent.
Enfin, quand il est capable d'apprendre le réseau, il est prêt à travailler dans le «monde réel». Et puis il faudra aussi ajuster le travail du réseau, car le processus d'apprentissage se fait à travers des exemples concrets. Et le monde réel a beaucoup de cas différents.