Descriptif
L'avenir de l'Intelligence Artificielle se situe au-delà de l'exploitation massive des données. L'IA du futur demande la maîtrise des structures et des représentations symboliques. Le module IA206 commence par la programmation en Prolog, et plusieurs concepts fondamentaux de l'IA, relatifs à la résolution de problèmes, à la logique formelle, à l'apprentissage automatique symbolique, à la représentation des connaissances, et au traitement du langage naturel.
Prolog est un langage unique. Contrairement à la plupart des langages de programmation, il s'agit d'un langage déclaratif. Prolog permet de penser les problèmes en termes de contraintes plutôt qu'en termes de procédure. Idéalement, le programmeur se contente de donner des connaissances à la machine, et celle-ci fait le reste. Prolog a été imaginé pour attaquer les problèmes de l'IA symbolique : gestion des connaissances, traitement du langage naturel, raisonnement. Suite aux succès des modèles d'IA statistiques, Prolog a été étendu avec ProbLog et DeepProbLog, qui permettent de calculer des probabilités et d'inclure des réseaux de neurones. Avec ProbLog, il est possible de spécifier des connaissances et des contraintes comme avec Prolog, en plus de la possibilité de les connecter à des calculs probabilistes. Ceci permet de créer des IA moins gourmandes en données, plus cohérentes, interprétables et corrigeables.
Les thèmes suivants seront abordés :
- Le langage Prolog (Récursivité, backtracking, unification) et DeepProbLog
- Logique formelle (propositions et prédicats, démonstration, preuves par réfutation)
- Traitement du langage naturel (DCG, parsage par unification)
- Apprentissage automatique symbolique (induction symbolique, minimum de complexité)
- Représentation des connaissances (logiques de description, ontologies, Web sémantique)
- Langages de programmation probabilistes, diagrammes de décision binaire et sententielle
Objectifs pédagogiques
Acquis d'apprentissage
À l'issue de l'UE, l'élève sera capable de:
- Concevoir un logiciel en Prolog
- Résoudre un problème à l'aide de la programmation en logique
- Expliquer le fonctionnement d'un programme en Prolog
Compétences de rattachement (et justification)
- BC5.1 – Modéliser mathématiquement une situation, des données, des phénomènes physiques dans le contexte du numérique; Justification : La programmation en logique nécessite de se poser la question de la représentation des connaissances, point qui est abordé dans le cours (en particulier dans le chapitre 2). Les TP contiennent de nombreux problèmes concret traduits dans le langage de la programmation en logique.
- BC8.3 – Concevoir et développer des solutions technologiques en s’appuyant sur un paradigme de programmation spécifique ou en concevant des architectures matérielles et logicielles spécifiques; Justification : L'objet de cette UE est de résoudre des problèmes en Prolog.
Diplôme(s) concerné(s)
Parcours de rattachement
Format des notes
Numérique sur 20Programme détaillé