Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Des applications… intelligentes?

Logique, rationalité, raisonnement, pensées, analyse, calcul, prises de décisions… pour un être humain normal, ce sont des caractéristiques assez communes, mais dans l’univers des technologies de l’information, c’est assez récent qu’on en parle en dehors d’un contexte de recherche. Vous connaissez probablement tous Deep Blue, l’ordinateur d’IBM qui a déjà battu le champion du monde d’échecs. Peut-être connaissez-vous aussi Waymo, les voitures auto-pilotées de Google?

L’idée de construire des machines intelligentes ne date pas d’hier, mais le fait que les ordinateurs d’aujourd’hui soient munis d’une puissance de calcul beaucoup plus importante que leurs prédécesseurs vient en quelque sorte démocratiser l’intelligence artificielle.

Dernièrement, chez Facebook, les chercheurs ont arrêté deux robots après qu’ils aient commencé à dialoguer dans un langage qu’ils auraient appris par eux-même (anglais). Les robots trouvaient l’anglais trop compliqué, donc ils ont appris une forme plus simple pour leurs besoins. Alors que certaines personnes, comme Elon Musk, PDG de Tesla, craignent l’intelligence artificielle de peur qu’elle ne surpasse celle de l’homme un jour et qu’il faut prendre conscience des dangers de cette dernière, d’autres, au contraire, poussent la recherche en investissant des sommes faramineuses dans le développement de systèmes intelligents sans se soucier vraiment des conséquences. On peut penser entre autres à Facebook qui connait absolument tout sur notre vie grâce à la reconnaissance des visages, du texte, de nos comportements sur le réseau social et dans le monde via GPS, des émojis joyeux ou tristes que nous écrivons, de tous les j’aime, les j’adore, et toutes les autres fonctionnalités de Facebook que nous utilisons tous sans savoir ce qu’il se passe derrière les murs.

Comment font-ils et, surtout, pourquoi?

L’IA est partout

L’IA a actuellement plusieurs utilités. En plus de celles mentionnées dans l’introduction, nommons rapidement:

  • l’assistance à la recherche en sciences;
  • le ciblage de publicités;
  • la prédiction des comportements;
  • les prédictions météos;
  • les assistants personnels; et
  • les jeux vidéos.

Ce qu’il faut comprendre, c’est que l’IA en est à un point de son histoire où elle est rendue accessible à tout le monde, dans tous les domaines. Par exemple, depuis 2016, des livres techniques traitant de l’apprentissage profond commencent à faire leur apparition et de gros joueurs comme Google offrent des outils basés sur ces technologies, comme un API de reconnaissance vocale.

L’essentiel

Avant de commencer, il est primordial de comprendre comment on définit un algorithme intelligent. Dans le monde de l’IA, un algorithme a des caractéristiques précises qui le qualifient afin de mieux comprendre ses forces et ses faiblesses. Chaque algorithme a ses propres forces et faiblesses.

Complétude

Lorsqu’un algorithme peut garantir qu’il trouvera une solution ou une conclusion à un problème donné dans un temps donné, on dit alors qu’il est complet.

Optimisation

Lorsque l’algorithme trouve une solution ou une conclusion et que cette solution est la plus optimale selon des critères précis, on dit alors qu’il est optimal.

Complexité en temps

Pour un algorithme, la complexité du temps est une expression qui défini le temps qu’il peut prendre à résoudre un problème dans le pire des cas.

Complexité en espace

Ceci représente une expression qui défini l’espace mémoire nécessaire pour résoudre un problème dans le pire des cas.

L’algorithme Lowest-Cost-First Search (LCFS)

Cet algorithme permet de trouver une solution à un problème donné, mais cette solution sera celle qui coûte le moins cher. En effet, on attribut aux solutions possibles un certain coût et l’algorithme prendra des décisions pour faire en sorte que le coût de la solution finale soit le moindre.

Cet algorithme peut être utilisé, par exemple, pour trouver le chemin le plus court entre 2 lieux sur une carte. Le coût total serait bien entendu le temps requis pour effectuer le déplacement. Prenons un instant pour définir les données:

Le nœud

Sur une carte routière, les nœuds sont les intersections entre les rues. Il serait aussi possible d’avoir un nœud lorsque, par exemple, il y a un changement à la limite de vitesse. Des données peuvent être stockées dans les nœuds, comme par exemple :

  • la présence ou non d’un feu de circulation;
  • la présence ou non d’un arrêt obligatoire; et
  • le temps d’attente moyen à l’arrêt.

Les arcs

Ceci relit au moins deux intersections ou nœuds entre eux. Des données nous aidant à déterminer le coût du déplacement sont stockées dans ces arcs, comme par exemple :

  • si la route est ouverte ou non à la circulation;
  • la/les direction(s) possible(s) sur ce tronçon (sens unique);
  • la limite de vitesse;
  • la longueur du segment; et
  • le coefficient de ralentissement en temps réel (trafic).

Le modèle

Le fonctionnement de l’algorithme

Brièvement, l’algorithme commence à un point précis dans le réseau, puis, choisit le chemin à prend en calculant le coût de déplacement entre deux nœuds, en gardant une trace pour ne pas passer deux fois par le même chemin (ex. : currentNode.visited = true). De plus, l’algorithme doit garder une trace du chemin actuel sous forme de collection de nœuds pour pouvoir retourner la solution. Pour identifier le chemin le plus court, les connexions entre les nœuds et ses voisins doivent être stockées dans une queue à priorité, c’est à dire une collection d’objets triés par priorité. La priorité, dans ce cas-ci, est le coût du chemin le plus court.

Éventuellement, l’algorithme arrivera au bout de son premier chemin. Si la solution n’est pas trouvée, alors il retire le premier élément de la pile de nœuds contenant le chemin actuel, puis il passe au prochain arc du nœud au dessus de la pile.

Et ainsi de suite jusqu’à ce que la solution soit trouvée ou que la pile soit vide, signifiant qu’aucune solution n’est possible.

Pour plus de détails, l’algorithme A* est un bon point de départ.

Conclusion

L’intelligence artificielle ne s’arrête pas là. Dans l’exemple de cet article, il faut programmer la connaissance et la donner à l’algorithme pour qu’il trouve une solution. À l’aide de l’apprentissage profond, il est possible pour l’algorithme de générer des possibilités de solutions, puis de déterminer une probabilité qu’une solution soit meilleure qu’une autre. Lorsque l’algorithme fait une erreur, il retient et ne la fait plus.

Si vous avez aimé cet article, n’hésitez pas à le partager sur les réseaux sociaux. Merci de nous lire chaque semaine 🙂