150 lines
6.8 KiB
Markdown
150 lines
6.8 KiB
Markdown
---
|
||
header-includes:
|
||
- \usepackage[T1]{fontenc}
|
||
- \usepackage[french]{babel}
|
||
- \usepackage{datetime}
|
||
- \usepackage{hyperref}
|
||
---
|
||
|
||
# Semaine 3: Les systèmes experts à base de règles
|
||
|
||
Lecture principale: Luger (2009)
|
||
|
||
## Système de production
|
||
|
||
Source: [Young - Production Systems in Cognitive Psychology](http://www0.cs.ucl.ac.uk/staff/r.m.young/publications/00.PS-encyc-article.pdf)
|
||
|
||
- Un système de production est une collection de règles `si ... alors ...` qui ensemble forment un modèle de simulation et traitement de l'information d'une tâche cognitive ou d'un ensemble de tâches.
|
||
- Le fonctionnement est un cycle de reconnaissance (conditions) et d'action
|
||
- Caractéristiques:
|
||
- Traitement en série et en parallèle
|
||
- Indépendance des règles
|
||
- Contrôle flexible
|
||
- Utilisés dans des domaines avec une forte concentration de connaîssances, par exemple le domaine médical et le jeu d'échecs.
|
||
- Deux mémoires:
|
||
1. Mémoire de production (règles)
|
||
1. Mémoire de données (informations sur la tàche en cours)
|
||
- Résolution de conflits
|
||
- Un conflit se produit si plusieurs règles sont satisfaites simultanément
|
||
- Différentes méthodes de résolution: ordre de précédence des règles, âge des données, complexité des conditions de la règle, ...
|
||
- Young and O’Shea (1981): Résolution de soustractions chez les enfants: une douzaine de règles. Les erreurs les plus fréquentes sont répliquées facilement en enlevant ou ajoutant une règle au système.
|
||
- Depuis les années 1990: Architectures cognitives intégrées:
|
||
- Soar (Newell 1990):
|
||
- ACT (Anderson and Lebiere 1998):
|
||
|
||
## Définition
|
||
|
||
- Les systèmes experts représentent les connaîssances servant à résoudre les problèmes sous la forme de règles `si ... alors ...`.
|
||
- Plus ancienne forme de représentation des connaîssances
|
||
- Un système expert à base de règles est construit à partir d'un **système de production** tel que défini par Newell and Simon:
|
||
- Modéliser la performance humaine dans la résolution de problèmes
|
||
- Base de connaîssances spécifique au domaine: ensemble de règles de production
|
||
- Expérimentation sur la cryptarithmétique: résolution de problèmes arithmétiques où les nombres sont encodés. Observation du processus de résolution et établissement de règles.
|
||
- Un système expert doit respecter ces conditions:
|
||
- Ouvert à l'inspection
|
||
- Facilement modifiable
|
||
- Nature heuristique
|
||
|
||
## Recherche
|
||
### Recherche vers l'avant
|
||
|
||
- La recherche vers l'avant est utilisée lorsqu'il est difficile de formuler une hypothèse ou un but.
|
||
- Par exemple, dans un problème d'interprétation.
|
||
- Recherche avec parcours en largeur.
|
||
|
||
### Recherche vers l'arrière
|
||
|
||
- La recherche par l'arrière dans un système expert revient au test d'une hypothèse.
|
||
- L'objectif est identifié et placé en mémoire.
|
||
- Des objectifs intermédiaires peuvent être résolus en demandant à l'utilisateur des informations supplémentaires.
|
||
- Pas de mécanisme de propagation par l'arrière.
|
||
- Recherche avec parcours en profondeur.
|
||
|
||
## Explication et transparence
|
||
|
||
Les deux questions auxquelles un système expert à base de règles peut répondre sont: pourquoi? et comment?
|
||
|
||
- Pourquoi demandes-tu cette information?
|
||
- Retourne la règle courante pour laquelle il manque une information.
|
||
- Comment es-tu arrivé à cette conclusion?
|
||
- Retourne la réquence de règles qui ont permis d'arriver à la conclusion.
|
||
|
||
Caractéristiques:
|
||
|
||
- Le programme peut être arrêté à chaque cycle et inspecté.
|
||
- Chaque règle représente un élément de résolution du problème, une étape logique.
|
||
- Contrairement à un programme traditionnel compilé où l'instruction courante fera peu de sens.
|
||
|
||
Avantages et inconvénients:
|
||
|
||
- Le mécanisme est simple, mais le pouvoir d'explication est remarquable.
|
||
- Si les règles sont mal divisées par contre, les réponses seront adéquates, mais les explications seront vagues, arbitraires ou illogiques.
|
||
- Ceci réduira la confiance de l'utilisateur envers le système.
|
||
|
||
## Raisonnement à partir des données
|
||
|
||
Ce mode de raisonnement est une recherche avec parcours en largeur: les conditions des règles sont vérifiées une par une dans l'ordre où les règles sont enregistrées dans la base de connaissances.
|
||
|
||
**Recherche opportuniste**: Dès qu'un règle est déclenché et génère une nouvelle information, cette information est ajoutée comme une prémisse et sert à déterminer en priorité les prochaines règles à vérifier.
|
||
|
||
- La recherche est beaucoup moins orientée.
|
||
- L'atteinte d'un objectif n'existe pas vraiment.
|
||
- Les explications disponibles pour l'utilisateur sont plutôt limitées. On peut seulement partager la liste des règles qui ont été déclenchées jusqu'à maintenant.
|
||
|
||
## Heuristiques et contrôle
|
||
|
||
### Système avec objectif
|
||
- Il est possible de contrôler la recherche par la structuration et l'ordonnancement des règles.
|
||
|
||
- Tri des règles:
|
||
- Interprétation des règles de façon procédurale.
|
||
- Doit suivre un plan comme le ferait un expert humain.
|
||
|
||
- Ordonner les prémisses dans une règle:
|
||
- Ce qui a le plus de chances d'échouer est le plus facile à tester en premier.
|
||
- Tenir compte du coût de calcul de chacun des tests.
|
||
|
||
### Système à base de données
|
||
|
||
Trois heuristiques à haut niveau pour la résolution de conflits (Luger, section 6.2.3.):
|
||
|
||
- Réfraction:
|
||
- Si une règle a été déclenchée, elle ne peut être déclenchée à nouveau tant que les éléments qui correspondent à ses conditions n'ont pas été modifiées. Ceci prévient les boucles.
|
||
- Récence:
|
||
- Préférer les règles dont les conditions correspondent à des éléments récemment ajoutés en mémoire. Donne une seule ligne de raisonnement.
|
||
- Spécificité:
|
||
- Il est approprié d'utiliser une règle plus spécifique qu'une règle plus générale. On définit la spécificité par le nombre de conditions.
|
||
|
||
Algorithme RETE:
|
||
|
||
- Structure en réseau.
|
||
- Graphes acycliques directionnels qui représentent des ensembles de règles à plus haut niveau.
|
||
- Plus efficient que l'approche naïve qui revient à tester les règles une par une en boucle.
|
||
- Utilisé par FICO Advisor
|
||
|
||
## Langages et outils utilisés
|
||
|
||
(Source: pages Wikipédia correspondantes)
|
||
|
||
- Prolog, Scheme, Java
|
||
- Langage de systèmes de production OPS5
|
||
[Page Wikipédia](https://en.wikipedia.org/wiki/OPS5)
|
||
- CLIPS: C Language Integrated Production System (1985)
|
||
- [Site officiel](http://clipsrules.sourceforge.net/)
|
||
- Système Soar (John Laird, 1983), toujours très utilisé aujourd'hui
|
||
- [Site web officiel](https://soar.eecs.umich.edu/)
|
||
- Paquetage Rulu pour Python
|
||
- [Rulu Documentation](http://rulu.readthedocs.io/en/latest/)
|
||
|
||
## Jeux et démonstrateurs
|
||
|
||
- [Clips the Game](https://md5crypt.github.io/clipsgame/#level-select)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|