L’intelligence artificielle (IA) est une branche de l’informatique qui s’intéresse à l’étude et au développement de programmes capables de réaliser des tâches qui habituellement nécessitent une intelligence humaine. L’IA est donc une intelligence qu’on ne retrouve pas dans la nature, mais que l’on souhaite créer artificiellement en répliquant ou en simulant l’intelligence humaine. 

Dernièrement, l’IA a connu de grandes améliorations et évolutions et dispose d’avantages qui la rendent indispensable à l’humain et omniprésente dans la vie quotidienne. Elle est utilisée, entre autres, pour l’assistance intelligente, la détection de fraudes bancaires, de pourriels, d’objets défectueux d’une chaîne de production, la recommandation de morceaux de musique, de vidéos, de livres, la détection précoce de brèches de sécurité informatique, la conduite autonome, le diagnostic automatique de maladies, etc.

La capacité à apprendre au cœur de l’IA

Contrairement aux programmes informatiques classiques, les programmes de l’IA sont généralement dotés de la capacité d’apprendre de leur environnement, de s’adapter à de nouvelles situations et d’agir de manière rationnelle pour atteindre un objectif. 

Même s’il n’existe pas encore une IA parfaite à la hauteur de l’intelligence humaine, des techniques ont été développées pour doter les systèmes informatiques de capacité d’apprentissage. Ces techniques sont regroupées dans une sous-branche de l’IA appelée l’Apprentissage Machine (Machine Learning). 

Le développement des programmes d’IA

Lors du développement des programmes d’IA, on passe généralement par deux étapes. Dans une première étape, le programme apprend les caractéristiques d’un sous-ensemble de données d’entrées et développe une capacité à générer une donnée en sortie sous forme de prédictions. Lors d’une deuxième étape, ce programme est évalué avec un autre sous-ensemble de données afin de tester ses capacités à produire les bonnes prédictions.

L’apprentissage supervisé et non supervisé

Les deux principaux types d’apprentissages qui existent sont l’apprentissage supervisé et l’apprentissage non supervisé. Dans l’apprentissage supervisé, on guide le programme dans son apprentissage en fournissant les sorties attendues à partir d’un sous-ensemble de données de départ. À titre d’exemple, dans le cas d’un programme qui permet d’identifier les photos où des chiens sont présents, on pourrait fournir à ce programme deux types de données : 1) des photos et pour chacune de ces photos 2) une étiquette pour indiquer si un chien s’y trouve ou pas. Le programme sera ainsi guidé par ces étiquettes pour distinguer les photos qui comportent des chiens de celles qui n’en contiennent pas. Après cette phase d’apprentissage, lorsque l’on introduit au programme de nouvelles photos il devrait être capable de repérer celles qui comportent des chiens.  

Dans le cas de l’apprentissage non supervisé, le programme apprend de façon autonome à partir du sous-ensemble de données de départ sans qu’on lui fournisse ce qui est attendu en sortie. Cela pourrait par exemple consister à regrouper des morceaux de musiques tels que chaque groupe ne comporterait que les morceaux similaires.

 

Mehdi Adda, Ph. D

Professeur titulaire et directeur du comité de programme d'études de cycles supérieurs en informatique

Département de mathématiques, d'informatique et de génie

Campus de Lévis