Quelques éléments d'Intelligence Artificielle
- Raoul Salzberg
- 12 août 2024
- 5 min de lecture

L’intelligence Artificielle se développe beaucoup actuellement.
Le programme ChatGPT est bluffant, car il peut écrire des textes sur un sujet donné (par exemple : promenade en forêt en bonne compagnie), à la manière de … Par exemple, Voltaire, Victor Hugo, et même Donald Trump, Emmanuel Macron, Hitler, Staline, Jésus, etc.
Je travaille actuellement sur une application de bridge sur internet, après avoir développé complètement une application de sudoku sur internet. Il s’y trouve un générateur de grille, capable de créer des grilles nouvelles de toutes difficulté. Je m’amuse parfois à essayer d’en résoudre une, comme celles que l’on trouve dans des revues ou des sites internet. Cela n’est pas une création au sens de l’I.A. (Intelligence Artificielle), dans la mesure où j’applique des méthodes de résolution qui ont été découvertes par d’autres et que je ne fais qu’appliquer. Mais cela m’étonne quand même, car le programme résoud des grilles générées, que je ne sais pas résoudre moi-même manuellement. Cela montre que l’outil est plus performant que moi.
L’I.A. va plus loin, car elle va explorer des domaines nouveaux, non encore explorés par les êtres humains. C’est ainsi que les programmes de GO, un jeu asiatique, ont découvert des techniques inconnues jusque là, et qui ont été validées à posteriori. D’ailleurs le programme de GO sur ordinateur bat le champion du monde humain.
Et je suis sûr que mon application de sudoku sur internet serait championne du monde, si je la mettais en lice dans les championnats internationaux. Sans innovation, mais en appliquant plus rapidement les techniques éprouvées actuelles. J’ai d’ailleurs pris contact pour m’inscrire aux prochains championnats nationaux. J’ai déjà participé à de telles compétitions (à la mairie du Vème arrondissement de Paris) et m’étais qualifié pour la finale nationale, que je n’ai pu faire, car j’avais une compétition de bridge au même moment.
Pour en revenir à l’I.A., la capacité créative de cette technique ouvre des horizons fabuleux. Mais il faut pour cela, comme pour le jeu de GO, donner au programme quelques principes de ce jeu pour le laisser s’entraîner sur des grilles de GO qu’il se crée lui-même ; le programme patauge naturellement, mais, rapidement, il se met à être compétitif et, comme il peut se créer des millions de grilles (en mode dit non supervisé), il devient imbattable ! Surtout avec sa capacité d’innovation. Le mode non supervisé est celui où on ne fournit pas la solution des grilles d’entraînement, ce qui ne nécessite donc pas d’indiquer des exemples manuellement, où leur nombre serait fatalement limité.
Il existe beaucoup de réflexions actuelles sur l’I.A. En particulier, une I.A. capable de raisonner, au sens humain du terme, est prévue aux alentours de 2050. Il est même prévu une I.A. avec des sentiments !
La technique d’I.A. la plus performante aujourd’hui est l’apprentissage profond (Deep Learning) avec convolution, dont l’un des maîtres d’oeuvre est Yann Le Cun, un français travaillant chez Meta, pionnier des réseaux neuronaux. Avec ses compères canadiens, Geoffrey Hinton et Yoshua Bengio, il a obtenu le prix Turing 2018 (considéré comme le Nobel de l’informatique), pour leurs travaux précurseurs sur l’IA.
Lancée en 2010, une compétition annuelle appelée Large Scale Visual Recognition Challenge (ILSVRC), organisée entre autres par Olga Russakovsky, a lieu où des équipes de recherche évaluent leurs algorithmes de traitement d'images sur le jeu de données ImageNet (un jeu de validation non accessible).
Elle consistait en une compétition logicielle dont le but était de détecter et classifier précisément des objets et des scènes dans les images naturelles.
Elles concourent pour la meilleure précision sur plusieurs tâches de vision par ordinateur. C’est la technique de Yann Le Cun qui est la plus performante.
Le jeu de données ImageNet le plus utilisé, ILSVRC 2012-2017, est composé d'environ 1.5 million d'images, réparties en environ 90 % d'images d'entraînement, 3 % de validation et 7 % de test. Les taux d’erreurs qui étaient de 25 % avant 2012 sont passées à 16 % avec l’apprentissage profond, pour tomber ensuite à quelques pourcents.
En 2014, plus de cinquante institutions ont participé à la compétition ILSVRC, avec une dernière édition en 2017.
Principe de la résolution en Intelligence Artificielle par réseau neuronal entraîné par apprentissage convolutif
C’est la méthode de Yann Le Cun, qui a fait ses preuves comme la plus performante..
Un réseau neuronal est un réseau de composants, appelés neurones, qui sont arrangés dans un maillage complexe avec des connexions appelés synapses, en plusieurs couches superposées. Cela copie le fonctionnement du cerveau humain. Des données sont introduites en amont de ce réseau, pour fournir un résultat en aval de ce réseau. Un écart est calculé entre le résultat obtenu et le résultat qui était attendu ; cet écart est rétropropagé vers l’amont du réseau, de manière à suivre la ligne de plus grande pente de la fonction de propagation, principe qui est appelé la rétropropagation du gradient. Les coefficients affectés à chaque neurone sont ainsi corrigés pour s’approcher du résultat recherché. Un autre principe important est l’introduction de non-linéarités en sortie de chaque neurone, ce qui casse l’explosion combinatoire du système. C’est cette dégradation du signal, appelée convolution, qui permet de réduire le nombre de cas à étudier ; la dégradation rend donc le signal moins propre mais il reste suffisamment lisible pour être interprétable.
La réalisation d’un réseau neuronal à convolution nourri par apprentissage comporte donc les 3 phases suivantes :
Bâtir le réseau de neurones
Pour chaque neurone du réseau, introduire en entrée un coefficient qui est arbitraire au début, puis qui se modifie au fur et à mesure que le réseau apprend, dans sa phase d’apprentissage
Introduire une ou plusieurs non-linéarités en sortie de chaque neurone, ce qui dégrade le signal transmis mais réduit le nombre de cas à étudier
La plupart des applications en Intelligence Artificielle sont réalisées avec le langage Python, avec des fonctions prérèglées pour bâtir le réseau neuronal.
Parmi les nombreuses fonctions non-linéaires affectées aux neurones, on peut citer :
La fonction tout pour une entrée positive ou rien pour une entrée négative
La fonction sigmoïde, linéaire autour de zéro et asymptotique aux extrémités
La fonction de regroupement de neurones
la fonction de suppression de neurone
etc.
La procédure pour entraîner un réseau de neurones est la suivante, en mode supervisé :
Entraîner sur plusieurs centaines d’exemples dont la solution est connue, pour construire le modèle
Puis tester sans entraînement sur un nombre plus réduit d’autres exemples, sans aucune corrélation entre les exemples, pour vérifier si le modèle est pertinent
Mettre en production
Si les exemples, en phase d’entraînement ou en phase de test, ont des éléments communs, cela va apparaître avec un phénomène dit de surapprentissage (overfitting), c’est-à-dire que les résultats sont trop bons, parce que le réseau a appris un système ayant un biais. Ceci fait, qu’en production, les résultats seront mauvais.
Il est donc important de vérifier que les exemples sont bien décorrélés, en particulier qu’ils ne font pas partie d’un ensemble issu de la même origine. C’est la diversité réelle des sources d’entraînement ou de test qui fait la force du système en production.
Commenti