Pour mieux comprendre ce que sont les algorithmes d'intelligence artificielle, je vous présente ici une définition de l'intelligence artificielle et vous décris brièvement quelques-unes des techniques les plus utilisées.
L'intelligence artificielle est un terme né dans les années 50 mais sa définition reste floue et les experts qui l'utilisent en ont des visions différentes :
De façon plus générale, le site Internet Wikipédia la définit comme « l'ensemble des théories et des techniques mises en œuvre en vue de réaliser des machines capables de simuler l'intelligence ».
Cette simulation d'intelligence est en fait déjà omniprésente dans notre quotidien, à tel point que nous ne nous en rendons même plus compte, comme lorsque l'on utilise la reconnaissance vocale ou l'optimisation des trajets selon la circulation. Nous utilisons là des IA faibles, c'est-à-dire non conscientes et spécialisées sur une tâche précise.
A contrario, l'IA forte définit une intelligence capable de comprendre n'importe quel problème et consciente d'elle-même, tel un humain. Pour l'instant, seul les films de science-fiction parviennent à ce résultat (comme HAL dans 2001 l'Odyssée de l'Espace ou Samantha dans le film Her).
Au niveau du développement, l'intelligence artificielle suit une tendance forte depuis les années 2000 et la France souhaite se positionner parmi les pays en tête de file, en promouvant et en créant des centres de recherche en intelligence artificielle sur son territoire.
Cet attrait pour l'IA est dû à plusieurs éléments :
Les entreprises indiquant qu'elles créent une IA exploitent en réalité différentes techniques qu'elles appliquent sur des données. Voici quelques-unes de ces techniques ainsi que leur principe de fonctionnement.
Les systèmes experts datent des années 60-70 et tentent d'imiter un expert humain dans un domaine particulier, en s'appuyant sur des connaissances pour répondre à une question donnée. Ils exploitent pour cela des faits connus et une liste de règles préétablies. Ils sont utilisés dans de nombreux domaines (diagnostic, estimation des risques, logistique...).
Un système expert est constitué de différentes parties liées entre elles :
Cette technique d'IA apparue en 1965 aide à prendre des décisions en fonction de règles et apporte un avantage par rapport à la méthode précédente lorsqu'il faut gérer l'imprécision, quand il s'agit de notions subjectives par exemple.
En effet, parfois la réponse à une question ne doit pas se limiter à un booléen « vrai » ou « faux » mais doit avoir une précision en pourcentage. Par exemple, s'il faut définir une température extérieure chaude, il n'y a pas de température précise à donner mais plutôt une plage de températures autour de laquelle on estime subjectivement qu'il fait plus ou moins chaud. Il s'agit du degré d'appartenance.
La courbe indiquant les degrés d'appartenance d'un ensemble flou se nomme fonction d'appartenance et peut prendre différentes formes dont les plus communes sont :
La première étape pour utiliser la logique floue est la fuzzification : cela consiste à transformer les données numériques en variables linguistiques (exemple : la température) échelonnées en valeurs linguistiques (exemple : chaud, froid, tiède).
Ensuite, les règles doivent être analysées par le moteur d'inférence. Leur écriture ne se fait pas comme en logique booléenne, avec des valeurs numériques, mais avec les variables et les valeurs linguistiques, comme « température EST chaude ». De plus, si plusieurs conditions existent, le moteur ne doit conserver que la valeur minimale de la règle. Par exemple, si on a « température EST chaude ET pluie EST forte » et que chaude est à 80 % et forte à 25 %, la règle entière est à 25 %.
Enfin, la défuzzification consiste à donner une valeur numérique à partir des valeurs linguistiques. Plusieurs méthodes existent mais celle du calcul du barycentre est la plus précise (il s'agit de calculer le point d'équilibre).
La recherche de chemin (ou « Pathfinding ») fait partie de la théorie des graphes et a de nombreuses applications pratiques, comme pour la recherche d'itinéraire (sur un GPS, dans les jeux vidéos) ou dans les jeux de réflexion lorsqu'il s'agira de calculer un enchaînement de mouvements à effectuer. Plusieurs algorithmes fondamentaux existent, pour les domaines de la 2D et de la 3D.
Un graphe est un ensemble de nœuds reliés par des arcs. Un chemin est une liste de nœuds reliés entre eux et permettant d'aller d'un nœud origine à un nœud destination. Le nombre d'arcs parcourus se nomme la longueur. L'ordre indique le nombre de nœuds d'un ensemble. Enfin, un graphe est dit orienté si ses arcs ont un sens et non orienté dans le cas contraire.
Pour calculer les chemins, on utilise une matrice d'adjacence (un tableau à deux dimensions, voir illustration 3), dans laquelle on va reporter la présence ou non d'arcs entre deux points. Cette matrice sera ensuite transformée en matrice des longueurs, dans laquelle on reporte les longueurs des arcs.
Les algorithmes de découverte de chemins sont variés et sont dits « intelligents» quand ils permettent de trouver un chemin optimisé, sans avoir à tester tous les chemins possibles. Il y a par exemple :
Selon le type de carte, chaque algorithme aura ses avantages et inconvénients : certains sont plus rapides sur de grandes cartes, en évitant de calculer tous les chemins par exemple, mais sans forcément trouver le plus optimisé.
Ces algorithmes, aussi appelés algorithmes évolutionnaires, se basent sur les travaux initiés dans les années 60 par John Henry Holland. Ils simulent les lois de Mendel sur la génétique : la transmission aux descendants de certains facteurs dominants, les mutations, les sauts de génération de certains facteurs...
Ils ont comme particularité de tester plusieurs versions des solutions potentielles. Chacune d'entre elles est notée (avec une fitness) et seulement les meilleures sont conservées (grâce à une fonction d'évaluation préalablement choisie). Deux opérateurs artificiels sont ensuite appliqués pour simuler la sélection naturelle et l'amélioration :Les différentes solutions générées ainsi sont à leur tour évaluées. Ce genre de traitement peut continuer sans fin et il faut donc décider de ce qui détermine son arrêt.
Les algorithmes génétiques sont utilisés dans les milieux créatifs ou complexes (design, biologie, finance...) afin de rechercher de nouvelles solutions.
Il s'agit d'algorithmes de recherche de minimums afin de viser à la meilleure optimisation possible, par exemple en trouvant comment charger un véhicule de façon optimale, comment réduire au maximum les coûts, comment remplir au maximum un sac à dos avec des objets de valeur...
Une solution est de faire une recherche exhaustive en testant toutes les possibilités. Cela peut cependant nécessiter du temps de calcul vu que les possibilités augmentent exponentiellement en fonction du nombre de choix possibles.
Les méthodes métaheuristiques proposent différents techniques afin de palier à cela, sans forcément obtenir la valeur optimale mais en s'y rapprochant rapidement. Il y a notamment :
Ce sont des techniques d'intelligence distribuée basées sur l'intelligence sociale de certains insectes, comme les fourmis ou les termites accomplissant un but collectif sans forcément avoir conscience individuellement du résultat global.
Les individus sont nommés agents et évoluent dans un environnement, avec différentes possibilités de perception de celui-ci. Ils agissent selon des règles, qui peuvent aussi bien être basiques qu'avancées, et incluant de l'apprentissage.
L'idée des systèmes multi-agents est que la solution à un problème ne vient pas d'un individu seul mais qu'elle vient de l'émergence des interactions des différents éléments de l'environnement.
Ces techniques permettent ainsi de simuler une foule ou un trafic et aident à mieux comprendre les comportements dans un environnement non figé.
Les réseaux de neurones utilisent l'apprentissage par expérience (appelé induction) et permettent de faire des analyses basées sur les statistiques. Ils ont différentes caractéristiques ayant pour buts de calquer le fonctionnement du cerveau :
Les algorithmes les plus utilisés actuellement sont :
RSS | Informations |