Dans cet article, je te présente à travers une perspective historique et pratique, les différents types d’intelligence artificielle. Parce qu’il y a bien d’autres choses que ChatGPT !
Un peu d’histoire !
Depuis l’invention du terme intelligence artificielle par John McCarthy en 1956, bien des données ont coulé sous les ponts. Le terme a eu plusieurs significations à travers le temps. Aujourd’hui, on peut dire que l’IA regroupe pas mal tous les outils d’aide à la décision où les ordinateurs utilisent des données en entrée.
Cette réponse était au départ des valeurs numériques ou des vrai ou faux (qu’on appelle des booléens). Elle a ensuite pris la forme de courtes phrases et de conversations, dès la fin des années 1960. L’IA générative et la compréhension du langage étaient déjà un grand rêve pour des pionniers tels que Joseph Weizenbaum et Noam Chomsky. Tu connais probablement plus ce dernier pour ses écrits sur la propagande, toujours aussi pertinents de nos jours.
Il y a eu ensuite les premiers réseaux de neurones, appelés les perceptrons, qui servaient surtout à classer des informations. Puis, avec les jeux vidéos, on a voulu créer des adversaires virtuels pour jouer seul. Ce sont les premiers algorithmes qu’on appelle « par renforcement ». Ils sont entraînés à éviter des pénalités et accumuler des bonis pour découvrir eux-mêmes les règles d’un jeu.
Enfin, on a vu la commercialisation de l’IA par les banques et les compagnies d’assurances. Ça a servi d’abord pour calculer les taux d’intérêt, les primes et faire des portefeuilles de placements. Ç’a été le premier domaine que j’ai côtoyé étant donné que j’ai une formation en actuariat.
L’hiver et le printemps de l’intelligence artificielle
Il y a eu ensuite une longue période où ça n’était plus à la mode, appelée l’hiver de l’IA. C’est revenu sur le radar lorsqu’on a eu des ordinateurs assez puissants pour que les réseaux de neurones reprennent vie.
C’est là que les scientifiques Geoff Hinton, Yan LeCun et Yoshua Bengio développé ce qui allait devenir le Deep Learning.
Ensuite, dans les 10 dernières années, on a vu arriver l’IA générative avec les réseaux génératifs adversariaux. En anglais, on le appelle GAN, pour generative adversarial networks.
Enfin, il y a eu l’apparition des réseaux récurrents et des mécanismes d’attention. C’est ça qui a mené aux modèles dits transformers tels que GPT, autour de 2017.
Les différents types d’intelligence artificielle
L’intelligence artificielle, c’est une grande famille de techniques mathématiques, implémentés par des algorithmes informatiques. La mécanisation et l’automatisation ne sont pas ce qui n’en fait de l’intelligence ni de l’artificiel. On peut faire la plupart de ces opérations en mode papier avec un plus petit volume de données, bien entendu !
L’intelligence vient de nous, et on la systématise pour qu’elle soit mise à l’échelle. Le côté artificiel vient du fait qu’on tente de reproduire des techniques de raisonnement logique avec du code informatique. Au fil du temps, plusieurs méthodes se sont développées, qu’on a ensuite regroupées en ces types d’intelligence artificielle:
- Les algorithmes logiques et symboliques
- Les systèmes à base de règles
- L’apprentissage automatique
- L’analyse et le traitement du langage naturel
- Les moteurs de recherche et de recommandation
- L’optimisation et la recherche opérationnelle
- L’apprentissage par renforcement
Il y en a aussi d’autres, plus spécialisés, mais ce sont les principaux que je te présente ici.
Les algorithmes logiques et symboliques
La symbolique, c’est un moyen de faire de l’abstraction de concepts à l’aide de structures mathématiques comme l’algèbre et la logique. Ensuite, en utilisant des théorèmes mathématiques et des substitutions, on peut démontrer des énoncés ou prouver qu’ils sont faux. Dis-toi que c’est en lien avec tes cours de maths et de philo du cégep.
Le terme le plus fréquent pour ce genre de technologie est le système d’algèbre informatique. Les plus populaires sont Wolfram Mathematica et Maple. Il y a aussi des logiciels libres, tels que Sympy, YACAS et Maxima. Ils peuvent être utilisés ensemble avec l’interface SageMath.
Les algorithmes logiques, eux, appliquent des règles logiques à des prédicats, pour imiter le raisonnement humain. Ils sont fondés sur les théories de George Boole et de Charles Sanders Peirce, deux scientifiques connus du XIXe siècle. Ils permettent de démontrer si des ensembles de faits (ou axiomes) sont cohérents et complets dans leur ensemble. Certains logiciels pour faire du raisonnement logique sont PROLOG (programmation logique) et le web sémantique (Ontology Web Language).
Les systèmes à base de règles
Les systèmes de règles (rule-based engine en anglais) sont assez similaires au raisonnement logique. La différence, c’est que les règles ne sont pas universelles et intemporelles, mais liées au contexte d’affaires.
Ces règles-là servent à avoir un traitement uniforme des situations dans ton entreprise et à créer de la prévisibilité. Un autre nom pour ce genre de logiciels, c’est les systèmes experts.
Dans les entreprises avec des produits complexes, comme l’assurance, on retrouve beaucoup de ces systèmes. Ils servent entre autres à orienter la clientèle vers les bons produits et les bonnes options, mais aussi à refuser certains risques que les compagnies ne veulent pas couvrir.
Quelques logiciels qui permettent de construire ces systèmes: Drools, CLIPS et GoRules.
L’apprentissage automatique
L’apprentissage automatique (machine learning en anglais) est basé sur des jeux de données. Il y a deux types d’apprentissages: supervisé et non supervisé. L’apprentissage supervisé, c’est lorsqu’on fournit des attributs et des étiquettes connues à l’algorithme d’apprentissage. L’apprentissage non supervisé, c’est lorsqu’on laisse l’algorithme trouver les étiquettes tout seul pour les données que l’on a fournies. Il existe aussi plusieurs algorithmes qui combinent ces deux méthodes, qu’on va appeler semi-supervisées.
Les étiquettes peuvent être des valeurs numériques continues ou discrètes, ou encore des catégories nommées. On parle alors de régression ou de classification. Mais fais attention, un algorithme de régression peut aussi être discrétisé et devenir une forme de classification.
Les familles d’algorithmes d’apprentissage automatique
Parmi les familles d’algorithmes les plus courantes, on peut en nommer trois:
- les modèles linéaires et additifs
- les arbres de décisions et les forêts aléatoires
- les réseaux de neurones
Ces familles de modèles ont chacune leurs forces et leurs faiblesses. Mais, ce qui les distingue, dans cet ordre, c’est la quantité de données requise.
Les modèles linéaires ont besoin de moins de données parce qu’ils ont moins de paramètres. Un modèle linéaire de régression avec deux variables peut se contenter d’une dizaine de points !
Les réseaux de neurones sont eux qui ont besoin du plus de données parce qu’ils ont plus de paramètres. Les plus gros réseaux de neurones peuvent avoir des centaines de milliards de paramètres. Il faut alors au moins quelques centaines de milliards de points de données étiquetés pour les entraîner.
Les outils les plus communs pour l’apprentissage automatique sont:
- Dans le langage R, il y a plusieurs algorithmes qui sont natifs au langage. Sinon tu peux complémenter avec les librairies suivantes: caret, e1071, glmnet, xgboost, randomForest. Tu peux en découvrir d’autres dans la Machine Learning Task View du site officiel du langage R, CRAN.
- Dans le langage Python, la principale et plus connue librairie d’apprentissage automatique est Scikit-Learn. Pour l’apprentissage des réseaux de neurones, la librairie PyTorch, développée par Meta, et TensorFlow, par Google, sont les deux plus populaires.
L’analyse et le traitement du langage naturel
L’analyse et traitement du langage naturel (natural language processing) est basé sur un mélange de plusieurs autres types d’intelligence artificielle. La classification de texte utilise l’apprentissage automatique pour déterminer les catégories les plus probables pour un texte.
La base de l’analyse du langage naturel, c’est au départ la construction de corpus (ensembles) de textes. On les décompose ensuite en paragraphes, phrases, mots et même parfois, en phonèmes ou syllabes. Pour ça, on utilise la tokenisation (oui, comme quand tu dis que t’as un ami noir). Ensuite, on utilise l’analyse lexico-syntaxique pour identifier le rôle de chacun des mots dans la phrase. On peut aussi utiliser des algorithmes qui permettent d’identifier les référents des pronoms dans les phrases précédentes.
L’identification des entités nommées (personnes, marques, entreprises, lieux et événements) se fait à l’aide de système à base de règles. La similarité de documents se fait à l’aide des mêmes outils que les moteurs de recherche et de recommandation. On va les voir dans la prochaine section.
C’est une application plus qu’un type d’intelligence artificielle. Mais, comme son champ d’application est tellement large, il a souvent sa propre catégorie pour les logiciels. Les algorithmes génératifs de type transformers et les modèles de langage larges font aussi partie de ce type d’intelligence artificielle.
Quelques librairies logicielles courantes sont: BeautifulSoup, spaCy, et transformers dans. le langage Python, tidytext et quanteda avec le langage R, et CoreNLP pour le langage Java. Parmi les outils plus grand public, on retrouve les correcteurs Antidote, Grammarly et LanguageTool.
Les moteurs de recherche et de recommandation
Les moteurs de recherche sont probablement l’exemple le plus visible et le plus connu d’intelligence artificielle appliquée. Leur fonctionnement se fait en deux parties. D’abord, il y a l’indexation, puis il y a la recherche. Pour des fins de simplification, je vais aussi ajouter la recommandation, puisque c’est de plus en plus fréquent aussi.
L’indexation
L’indexation, c’est une technique qui prend tous les mots et concepts d’un document, les normalise (par exemple en mettant les adjectifs au masculin singulier et les verbes à l’infinitif), puis construit une base de données où pour chaque mot, on a la liste des documents dans lequel il se trouve.
Les index créent ce qu’on appelle une représentation vectorielle d’un document. Il y a maintenant de nouvelles méthodes d’indexation de documents qui utilisent des vecteurs de plongements (embeddings en anglais) qui sont construits à l’aide de réseaux de neurones génératifs. Les plus connus sont word2vec et GloVe. Ces techniques appartiennent au domaine du traitement du langage naturel, que je t’ai présenté plus haut.
L’outil d’indexation le plus connu est Apache Lucene
La recherche
La recherche de documents se fait en consultant la liste des documents pour chacun des mots-clés recherchés, et en faisant l’intersection de ces listes pour trouver les documents qui ont tous les mots recherchés. Ensuite, il peut y avoir différentes techniques pour trier les documents, notamment la proximité des mots, leur fréquence ou leur spécificité dans le texte.
Les moteurs de recherche libres les plus connus sont Elasticsearch (et la fourche OpenSearch d’Amazon), Solr et Meilisearch. Parmi les logiciels commerciaux, on retrouve Algolia et Coveo. Le domaine est en développement très rapide.
La recommandation
La recommandation se fait en utilisant la similarité entre des documents. Un document qui contient tous les mots-clés de la recherche devient la référence de base. À partir de celui-ci, on trouve des documents similaires à l’aide d’une méthode nommée « plus proches voisins approximatifs ». C’est un algorithme qui peut, par exemple, être utilisé pour suggérer des lectures complémentaires à la fin d’un article.
Je te fais remarquer que les sites E-commerce utilisent aussi des algorithmes de recommandation pour des produits complémentaires. Ils sont basés sur l’historique d’achat ou sur les commentaires de la clientèle. Ils vont utiliser un autre type d’algorithme appelé filtrage collaboratif.
L’idée ici est d’utiliser l’apprentissage automatique pour essayer de deviner quelle note tu donnerais à un item à partir de ceux que tu as dans ton panier ou noté par le passé. Ensuite, on va te présenter des recommandations d’items qui obtiendraient les plus hautes notes de ta part.
La plupart des outils de recherche par recommandation sont des extensions des bases de données de vecteurs. Quelques outils qui font leur place sur le marché:
- faiss, par Facebook,
- pgvector pour la base de données PostgreSQL et
- marqo, une base de données nouveau genre pour les vecteurs.
L’optimisation et la recherche opérationnelle
L’optimisation, c’est le type d’intelligence artificielle qui est le plus souvent oublié par les spécialistes des données. Ça consiste à trouver soit une solution optimale pour un problème parmi un ensemble de solutions, ou à trouver une solution possible pour un ensemble de contraintes. Ce domaine est souvent associé davantage à l’ingénierie qu’à l’intelligence artificielle, en particulier la recherche opérationnelle.
Par exemple, en finance, on veut augmenter le profit d’un portefeuille de placements tout en diminuant le plus possible de risque. On parle dans ce contexte-là de frontière efficiente.
En logistique, on veut diminuer le coût pour transporter les marchandises en mettant le plus grand nombre possible de boîtes dans un conteneur maritime. On va aussi optimiser les trajets de livraisons pour faire le plus d’arrêts possible par trajet, ou encore limiter les virages à gauche.
Une autre application courante, c’est la conception d’horaires de travail pour le personnel d’une grande entreprise manufacturière ou dans un hôpital.
Les principaux logiciels utilisés dans ce domaine sont les solveurs de contraintes (Google OR Tools en Python, Choco en Java) et les logiciels d’optimisation par programmation, dont certains sont libres comme GLPK et les plus puissants sont souvent très dispendieux (CPLEX, Gurobi).
L’apprentissage par renforcement
L’apprentissage par renforcement (aussi appelé Q-learning) est une pratique qui vise à apprendre un comportement par essais et erreurs en accumulant des pénalités ou des récompenses. C’est un domaine complexe et encore assez restreint au domaine de la robotique et des jeux vidéos.
Tu as probablement déjà vu les robots humanoïdes de Boston Dynamics ou des vidéos d’ordinateurs qui apprennent à jouer à Super Mario.
Ce sont des exemples d’apprentissage par renforcement. Comme c’est un domaine très spécialisé qui n’est pas aussi visible, il y a peu de logiciels disponibles. Mais en voici quelques-uns: pyqlearning et RLlib pour Python.
En résumé
Dans cet article, je t’ai présenté 6 types d’intelligence artificielle. Ils sont tous aussi importants les uns que les autres pour résoudre des problèmes complexes et créer les algorithmes d’automatisation promis par la révolution informatique.
Mon objectif était ici d’ouvrir ta curiosité et d’élargir tes horizons. Et de te faire réaliser que les discours populaires sur l’intelligence artificielle ne font aucun sens face à tant de variété.
Évite une erreur couteuse !
L’erreur que beaucoup de gens qui ne sont pas formés dans le domaine font, c’est de choisir une technique ou un outil et d’essayer de résoudre son problème avec.
Tu peux éviter de faire cette erreur toi aussi !
Ce que je peux t’apporter, c’est un regard externe pour t’aider à choisir les bons outils.
Réserve-moi une consultation express et je vais pouvoir t’orienter sur le meilleur chemin à prendre !
Quelques lectures complémentaires
Je tiens à te faire part que je n’utilise aucun algorithme ici, je le fais encore à la main !