glo7001/semaine03.md

151 lines
6.8 KiB
Markdown
Raw Normal View History

---
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:
2017-09-20 04:30:27 +00:00
- 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:
2017-09-19 03:02:29 +00:00
1. Mémoire de production (règles)
1. Mémoire de données (informations sur la tàche en cours)
- Résolution de conflits
2017-09-20 04:30:27 +00:00
- 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 OShea (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:
2017-09-20 04:30:27 +00:00
- 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.
2017-09-19 02:46:52 +00:00
- Un système expert doit respecter ces conditions:
2017-09-20 04:30:27 +00:00
- Ouvert à l'inspection
- Facilement modifiable
- Nature heuristique
2017-09-19 02:46:52 +00:00
## Recherche
### Recherche vers l'avant
2017-09-20 04:30:27 +00:00
- 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.
2017-09-19 03:02:29 +00:00
2017-09-19 02:46:52 +00:00
### Recherche vers l'arrière
2017-09-20 04:30:27 +00:00
- 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.
2017-09-19 02:46:52 +00:00
## Explication et transparence
Les deux questions auxquelles un système expert à base de règles peut répondre sont: pourquoi? et comment?
2017-09-20 04:30:27 +00:00
2017-09-19 02:46:52 +00:00
- Pourquoi demandes-tu cette information?
2017-09-20 04:30:27 +00:00
- Retourne la règle courante pour laquelle il manque une information.
2017-09-19 02:46:52 +00:00
- Comment es-tu arrivé à cette conclusion?
2017-09-20 04:30:27 +00:00
- 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.
2017-09-19 02:46:52 +00:00
2017-09-20 04:30:27 +00:00
Avantages et inconvénients:
2017-09-19 02:46:52 +00:00
2017-09-20 04:30:27 +00:00
- 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.
2017-09-19 02:46:52 +00:00
## Raisonnement à partir des données
2017-09-19 03:02:29 +00:00
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.
2017-09-20 04:30:27 +00:00
- Tri des règles:
- Interprétation des règles de façon procédurale.
- Doit suivre un plan comme le ferait un expert humain.
2017-09-20 04:30:27 +00:00
- 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.):
2017-09-20 04:30:27 +00:00
- 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:
2017-09-20 04:30:27 +00:00
- 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:
2017-09-20 04:30:27 +00:00
- 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
2017-09-20 04:30:27 +00:00
(Source: pages Wikipédia correspondantes)
- Prolog, Scheme, Java
- Langage de systèmes de production OPS5
2017-09-20 04:30:27 +00:00
[Page Wikipédia](https://en.wikipedia.org/wiki/OPS5)
- CLIPS: C Language Integrated Production System (1985)
2017-09-20 04:30:27 +00:00
- [Site officiel](http://clipsrules.sourceforge.net/)
- Système Soar (John Laird, 1983), toujours très utilisé aujourd'hui
2017-09-20 04:30:27 +00:00
- [Site web officiel](https://soar.eecs.umich.edu/)
- Paquetage Rulu pour Python
2017-09-20 04:30:27 +00:00
- [Rulu Documentation](http://rulu.readthedocs.io/en/latest/)
2017-09-19 03:02:29 +00:00
2017-09-20 16:18:16 +00:00
## Jeux et démonstrateurs
- [Clips the Game](https://md5crypt.github.io/clipsgame/#level-select)
2017-09-19 03:02:29 +00:00
2017-09-19 02:46:52 +00:00