Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Réflexions informatiques

Les principales techniques d’intelligence artificielle

11/01/2020

Ce texte a été rédigé dans le cadre d'une étude et permet de mieux comprendre ce que sont les algorithmes d'intelligence artificielle. Il introduit l'intelligence artificielle puis présente brièvement les techniques les plus utilisées dans le milieu.

L'intelligence artificielle

Différents points de vue

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 :

  • Selon Denis Florean, spécialiste du logiciel d'IA « Watson » chez IBM, elle peut être définie par le test de Turing : il s'agit d'un test comportant plusieurs questions. Si le test n'arrive pas à distinguer qu'il s'agit des réponses d'une machine, celle-ci sera qualifiée d'intelligence artificielle.
  • Selon Antoine Bordes, manager du groupe de recherche chez Facebook, l'IA correspond aux méthodes et aux outils permettant de réaliser des tâches qui étaient initialement humaines.
  • Selon Bertrand Braunschweig, directeur du centre Inria Saclay Île-de-France, une IA est un système qui a acquis une autonomie de choix face à des situations.

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 ».

IA fortes et IA faibles

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).

Tendance

Au niveau du développement, l'intelligence artificielle suit une tendance forte depuis les années 20004 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 :

  • aux progrès des processeurs, qui permettent une puissance de calcul plus élevée : en 1997, Deep Blue portait sa logique au niveau matériel pour avoir de meilleures performances, ce n'est actuellement plus nécessaire
  • à l'accès à des algorithmes de qualité, proposés par IBM, Google, Microsoft, Amazon sous forme d'API, permettant la réutilisation dans des projets
  • à l'accès à de gros volumes de stockage, via le Cloud, à des tarifs de plus en plus faibles
  • à l'arrivée de capteurs apportant de larges volumes de données à traiter, grâce à l'Internet des objets (IoT)
  • à un meilleur accès à la science, avec par exemple des initiatives comme l'Open Data Science
  • aux investissements de plus en plus importants : les cabinets d'audits recommandant d'investir dans le domaine pour se doter d'avantages concurrentiels
  • à la valorisation des entreprises qui s'y investissent

Principales techniques d'IA

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

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 :

  • une base de règles : elle contient les connaissances de l'expert constituées sous forme de règles telles que « SI x ALORS y », où x est un ensemble de conditions (nommées prémisses) et y une conclusion.
    Par exemple : SI véhicule ET 2 roues ET pédalier ET pas de moteur ALORS vélo
  • une base de faits : elle contient les connaissances du système sur un cas particulier. Les entrées sont les informations fournies par l'utilisateur et les faits inférés sont celles déduites de l'application des règles.
    Dans l'exemple précédent, si l'utilisateur précise qu'il y a 4 roues, le fait inféré est qu'il ne s'agit pas d'un vélo.
  • un moteur d'inférence : il va sélectionner et appliquer les règles avec le plus de logique possible et ensuite créer les faits déduits dans la base de faits. Au final, le moteur doit savoir à quel moment terminer et apporter une réponse.
    Le moteur utilise le chaînage:
    • Le chaînage avant va définir, à partir de la base de faits, si une règle peut ou non s'appliquer. Il a comme avantage la découverte de nouveaux faits mais comme inconvénient que ceux-ci peuvent ne pas participer au résultat.
    • Le chaînage arrière part du résultat pour tenter de l'obtenir à partir des règles. Il a comme avantage de viser à répondre le plus directement possible mais a comme inconvénient de nécessiter certaines règles qui ne pourront pas être prouvées, faute de faits.
    • Le chaînage mixte alterne chaînages avant et arrière afin de palier aux carences de ceux-ci.
  • une interface : elle va interagir avec l'utilisateur, en lui posant des questions explicites, en lui demandant de saisir des valeurs si besoin afin de valider ou non certaines règles et en affichant les solutions du moteur.

La logique floue

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 fonction triangulaire (s'il n'y a qu'une seule valeur)

    Fonction trapézoïdale

  • la fonction trapézoïdale (s'il y a plus de 2 valeurs concernées et des phases de transition début et fin)

    Principales techniques d'IA

  • les fonctions demi-trapèze à droite (s'il n'y a qu'une phase de transition début et que le reste des valeurs de fin font partie du degré d'appartenance) et demi-trapèze à gauche (si le début des valeurs font partie du degré d'appartenance et qu'il n'y a qu'une phase de transition fin)
  • une fonction gaussienne (similaire à la triangulaire mais avec des arrondis)
  • une fonction sigmoïde (similaire aux demi-trapèze mais avec des arrondis)

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

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.

Fonction triangulaire

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 :

  • l'algorithme de Bellman-Ford: il accepte les longueurs négatives. Il consiste à appliquer tous les arcs et à actualiser les nœuds afin tester tous les chemins pour trouver le plus court.
  • l'algorithme de Dijkstra : version améliorée de l'algorithme précédent, il n'accepte cependant que les longueurs positives. Il s'applique sur les nœuds en ne revenant pas en arrière et teste tous les chemins en mettant à jour les nœuds adjacents sur lesquels un chemin plus court a été trouvé.
  • l'algorithme A étoile: il ne s'applique que sur les longueurs positives. Il ne teste pas tous les chemins mais trouve souvent le chemin le plus court. Il se base sur le fait que la distance la plus courte est souvent la ligne droite et va donc estimer la distance entre la position actuelle et le but à atteindre. Il utilise un tri des nœuds sur la distance au départ ajoutée à la distance estimée pour rejoindre la sortie.

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é.

Les algorithmes génétiques

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 :
  • le croisement entre les solutions, appelé crossover, crée un nouveau descendant à partir de deux ascendants
  • les mutations aléatoires : cela consiste à choisir au hasard certaines valeurs afin d'introduire de la nouveauté, pour découvrir de nouvelles solutions potentielles

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.

Les métaheuristiques d'optimisation

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 :

  • Les algorithmes gloutons : après avoir effectué un tri adapté au but visé, il s'agit de prendre, étape par étape, l'une des valeurs possibles de la liste et de continuer tant que le but n'est pas atteint. Cet algorithme renvoie rapidement une solution.
  • La descente de gradient : à partir d'une solution choisie, cet algorithme recherche à l'optimiser en prenant comme base l'un des éléments de la solution et en testant de nouvelles possibilités.

Les systèmes multi-agents

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

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 :

  • Ils utilisent des neurones formels (ou artificiels) qui reçoivent des données en entrée et expose une donnée en sortie. Ceux-ci fonctionnent par le biais :
    • de poids synaptiques, qui indiquent l'importance de chaque paramètre en entrée. Ces poids diffèrent d'un neurone à l'autre.
    • d'une fonction d'agrégation, qui calcule une seule valeur à partir des entrées (généralement une somme pondérée par les poids)
    • d'une fonction d'activation, qui fournit une valeur de sortie à partir du seuil d'activation du neurone
  • Un réseau structure le fonctionnement des neurones entre eux.
    • Le plus simple est le perceptron (mais il a ses limites lorsque les données ne sont pas linéairement séparées). Les données entrées sont affectées à plusieurs neurones, chacun calcule la valeur de sa sortie et la valeur la plus élevée est prise en compte.
    • Le modèle perceptron multicouches utilise des neurones intermédiaires, dits cachés, lors des calculs afin d'améliorer les données en sortie.
  • Ils nécessitent une phase d'apprentissage des poids et des seuils.

Les algorithmes les plus utilisés actuellement sont :

  • Le Machine Learning (ou apprentissage automatique) : il utilise des réseaux neurones pour trouver des schémas récurrents sur des milliers de données afin de classifier les nouvelles entrées et faire de la prédiction. Il s'agit d'une approche probabiliste.
  • Le Deep Learning (ou apprentissage profond) : c'est un sous-domaine du Machine Learning. Il est dit « profond » car il exploite de nombreuses couches de filtres. Sa méthode est d'apprendre des caractéristiques à partir des données fournies (par exemple, sur une recherche de photo, il calculera la distance entre les yeux, la taille de la bouche...). Les algorithmes de Deep Learning peuvent déterminer par eux-mêmes si une prédiction est juste. Ils sont utilisés pour reconnaître les images, l'écriture, la parole...
Principales techniques d'IA(139 Ko)
Dernière modification le 21/06/2020 - Quillevere.net

Rechercher sur le site

rss RSS info Informations