Symbolic AI
L’IA symbolique, ou GOFAI, raisonne sur des symboles lisibles par l’humain à l’aide de règles explicites et de logique. Découvre le fonctionnement des systèmes experts, leurs limites et l’IA neuro-symbolique.
L’IA symbolique est une approche de l’intelligence artificielle (AI) qui représente les connaissances sous forme de symboles lisibles par les humains, comme bird, penguin ou « Socrate est un homme », puis raisonne à leur sujet à l’aide de règles explicites, de logique et de recherche. Elle a dominé la recherche en IA de l’atelier de Dartmouth de 1956 jusqu’aux années 1980, et le philosophe John Haugeland l’a ensuite appelée « Good Old-Fashioned AI » (GOFAI) en 1985. Chaque conclusion obtenue par un système symbolique peut être reliée aux règles rédigées et lisibles par une personne, ce qui la rend auditable. En revanche, chaque élément de connaissance doit être saisi manuellement, ce qui rend le système difficile à faire évoluer.
Fonctionnement de l’IA symbolique#
Un système symbolique comprend deux parties. La base de connaissances stocke des faits (« Socrate est un homme ») et des règles (« tous les hommes sont mortels ») dans un langage formel, comme la logique du premier ordre, les règles de production si-alors ou un graphe de connaissances. Le moteur d’inférence applique les règles pour déduire des faits qui n’étaient pas stockés (« Socrate est mortel »). Le chaînage avant part des faits connus et déclenche chaque règle dont les conditions sont remplies, jusqu’à ce qu’aucun nouveau fait n’apparaisse. Le chaînage arrière part d’un objectif et remonte aux faits qui permettraient de le démontrer ; c’est la stratégie intégrée au langage de programmation logique Prolog.
La théorie qui sous-tend cette approche est l’hypothèse du système physique de symboles d’Allen Newell et Herbert Simon, formulée en 1976. Elle affirme que la manipulation de symboles est à la fois nécessaire et suffisante pour l’intelligence générale. Un moteur à chaînage avant tient en quelques lignes de Python standard :
# Knowledge base: IF every premise is a known fact THEN add the conclusion
rules = [
({"has_feathers", "lays_eggs"}, "bird"),
({"bird", "cannot_fly", "swims"}, "penguin"),
]
facts = {"has_feathers", "lays_eggs", "cannot_fly", "swims"}
# Forward chaining: keep firing rules until no new fact appears
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print(f"{conclusion} <- {sorted(premises)}")Le moteur affiche bird <- ['has_feathers', 'lays_eggs'], puis penguin <- ['bird', 'cannot_fly', 'swims'] : la deuxième règle ne se déclenche que parce que la première a ajouté bird. Chaque ligne affichée explique complètement pourquoi sa conclusion est valide ; c’est le genre de trace de raisonnement que les méthodes d’IA explicable (XAI) tentent de reconstruire pour les réseaux neuronaux.
Systèmes experts#
L’IA symbolique est entrée dans l’industrie dans les années 1970 et 1980 sous la forme de systèmes experts. MYCIN, développé à Stanford, identifiait les bactéries responsables d’infections graves et recommandait des antibiotiques à partir d’environ 600 règles recueillies auprès de médecins. XCON, développé par Digital Equipment Corporation, configurait les commandes des clients pour les ordinateurs VAX. Les systèmes experts complètent le moteur de base par un ingénieur en connaissances, qui interroge les spécialistes du domaine et encode leur savoir sous forme de règles, ainsi que par un dispositif d’explication qui restitue les règles à l’origine de chaque réponse.
Les entretiens sont devenus le principal goulot d’étranglement. Les spécialistes ont du mal à formuler leurs intuitions sous forme de règles, les grandes bases de règles échouent face aux cas imprévus et les systèmes ne peuvent pas apprendre à partir des données. Le projet Cyc de Doug Lenat, lancé en 1984 pour encoder manuellement le bon sens, s’est consacré à ce problème pendant des décennies. Lorsque les budgets alloués aux systèmes experts se sont effondrés à la fin des années 1980, le domaine est entré dans son deuxième « hiver de l’IA ».
IA symbolique et IA statistique#
L’IA statistique apprend des motifs à partir d’exemples ; c’est l’approche qui sous-tend l’apprentissage automatique (ML) et l’apprentissage profond (DL) modernes. Les deux paradigmes échouent dans des situations opposées :
- IA symbolique : Exacte, transparente et utilisable sans aucune donnée d’entraînement, elle convient aux calculs, à la planification, aux réglementations et aux preuves formelles. Elle ne peut pas traiter la perception brute, car personne ne peut écrire des règles qui reconnaissent un chat à partir de valeurs de pixels ; elle échoue aussi face aux entrées imprévues.
- IA statistique : Elle apprend la perception et le langage directement à partir des données et tolère le bruit, mais elle nécessite de grands jeux de données, ses décisions sont difficiles à examiner et les modèles de langage peuvent produire des réponses fluides, mais erronées, appelées hallucinations.
Utilisations actuelles de l’IA symbolique#
- Moteurs de règles et conformité : Les logiciels fiscaux et les moteurs de règles métier encodent les réglementations sous forme de règles explicites, de sorte que chaque résultat peut être relié à la clause qui l’a produit.
- Planification et ordonnancement : Les planificateurs automatisés explorent des descriptions symboliques d’actions, de préconditions et d’effets pour planifier la logistique, le travail en usine et les opérations spatiales.
- Vérification formelle : Les solveurs SAT et SMT, comme Z3 de Microsoft, démontrent des propriétés de puces et de logiciels, tandis que les assistants de preuve comme Lean vérifient les preuves mathématiques étape par étape.
- Graphes de connaissances : Les moteurs de recherche et Wikidata stockent des milliards de faits sous forme d’entités et de relations que les requêtes peuvent parcourir.
IA neuro-symbolique#
L’IA neuro-symbolique combine les deux paradigmes : les réseaux neuronaux gèrent la perception et la reconnaissance de motifs, tandis que les composants symboliques gèrent les règles, les contraintes et le raisonnement exact. Les modèles de langage qui utilisent une calculatrice, une base de données SQL ou un interpréteur de code par appel de fonction reposent sur la même répartition des tâches. Dans les pipelines de vision, un détecteur comme Ultralytics YOLO26 transforme les pixels en symboles — les noms des classes des objets détectés — sur lesquels des règles simples peuvent raisonner :
from ultralytics import YOLO
# Perception neuronale : détecter les objets et conserver leurs noms de classe comme faits symboliques
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
facts = {result.names[int(c)] for c in result.boxes.cls}
# Raisonnement symbolique : SI un bus ET une personne sont présents, ALORS déclencher une alerte
if {"bus", "person"} <= facts:
print("Rule fired: pedestrians next to a bus")La modification de la règle change immédiatement le comportement du système, sans réentraînement. AlphaGeometry, de Google DeepMind, applique la même séparation aux mathématiques : un modèle de langage neuronal propose des constructions auxiliaires, un moteur de déduction symbolique démontre le résultat à partir de celles-ci, et les deux ont résolu ensemble 25 des 30 problèmes de géométrie des Olympiades internationales de mathématiques dans un article publié par Nature en 2024.










