oncepts
xemples
empérature
ChoixFig.3.5 –
Architecture du système.
Algorithme 1 BAsCET
Créer le « premier » objet dans le Blackboard
Lancer les Agents des nœuds activés du Réseau de Concepts Répéter
Choisir un Agent et l’extraire du Réservoir d’Agents Si N Agents ont été exécutés Alors
Mettre à jour le Réseau de Concepts Lancer les Agents des nœuds activés Fin Si
Jusqu’à bonne solution ou pas de meilleure solution possible Construire la solution
Comme nous l’avons vu dans la section 3.2, page 54, le système d’interdépendance des valeurs du système s’apparente à celui des cellules biologiques. Ainsi, toute activité des agents dépend des objets existant déjà. Cette activité (de construction, entre autres), influence le Réseau de Concepts, qui lui-même influe sur le choix des agents, autant que la Température...
3.3.2 Réseau de Concepts
Le Réseau de Concepts est le modèle de BAsCET, il correspond au Slipnet de Copycat; une de ses particularités est d’être
dynamique
, c’est-à-dire qu’il évolue au cours du temps pour s’adapter au problème. C’est un modèle qu’on peut qualifier d’«hybride
» entre unréseau
sé-mantique
et unréseau de neurones
. Il tient du réseau sémantique la naturesymbolique
de ses nœuds, et des réseaux de neurones lapropagation d'activations
entre ses nœuds, par des liens pondérés.On peut dire alors qu’il fonctionne par association de nœuds (si un nœud est actif et qu’il est fortement lié à un autre nœud, il l’activera), et par extension, si l’on construit le Réseau de Concepts d’une certaine manière, par association de symboles et émergence de
concepts
.3.3.2.1 Notion de concept
Dans le cadre de BAsCET, un concept est un ensemble de nœuds du Réseau de Concepts fortement liés et activés simultanément. Ainsi, lorsque des nœuds intitulés réseau, neurones, Widrow, Kohonen, et Hoff sont dans un Réseau de Concepts, on peut supposer qu’ils forment un
concept
différent de celui formé par Markov, caché, HMM, bien que le nœud réseau puisse aussi appartenir au conceptréseau de Markov caché
(cf.
figure 3.6). Ceci à condition que le Réseau de Concepts ait été conçu dans l’optique d’associer des symbolesconceptuellement
proches.réseau neurones Widrow Hoff Kohonen Markov caché HMM
Concept réseau de Markov
Concept réseau de neurones
Fig.3.6 –
Deux concepts.
3.3.2.2 Composants du réseau
Le Réseau de Concepts est un réseau composé de nœuds et de liens pondérés les reliant. Ce réseau peut être entièrement connecté (en pratique, on trouve beaucoup de liens d’influence nulle, qu’on peut supprimer).
Les nœuds : chaque nœud possède les champs suivants :
– symbole (S) : qui contient les informations symboliques. Dans les cas des références bibliogra-phiques, un symbole est soit un terme, soit un nom de champ, soit une chaîne de caractères
formant un séparateur entre deux champs ;
– importance conceptuelle (IC) : en général, plus un nœud est abstrait, plus son importance conceptuelle est grande. Elle est similaire à la profondeur conceptuelle de Copycat(
cf.
page 48) ;
– activation (A) : traduit le fait que ce nœud est actif ou non (valeur comprise entre 0 et 100) ; – taux de désactivation (TD) : influence la rapidité à laquelle le nœud se désactive s’il ne reçoit pas d’activation externe. Il dépend par défaut du nombre de liens afférents et de l’IC du nœud ;
– agents (Ag) : tableau qui contient les types d’agents que le nœud peut lancer dans le Réser-voir d’Agentslorsque son activation est supérieure à un seuil d’activation ; ces agents sont destinés, en général, à la reconnaissance ou à la localisation d’une instance de ce nœud dans le Blackboard (cf. 3.3.3 pour plus de détails).
Chaque création d’instance dans le Blackboard provoque l’activation de son nœud père (l’ac-tivation de ce nœud passe à 100). L’influence de l’instance sur son nœud père ne s’arrête pas là : elle permet aussi de diminuer le Taux de Désactivation du nœud. En effet, ce taux est divisé par le nombre d’instances du nœud dans le Blackboard plus un.
Les liens. Chaque lien « appartient » au nœud dont il « part ». Il est
orienté
et a les carac-téristiques suivantes :– type contient le nom du type de lien (ex: contient, co-occurre avec, suivi de, etc.); – nœud contient le nœud pointé par ce lien ;
– poids représente l’
inuence
que le nœud de départ a sur le nœud d’arrivée de ce lien, qu’on peut aussi voir comme la proximité conceptuelle des deux nœuds.La figure 3.7 présente un exemple de Réseau de Concepts minimal, où le nœud anniversaire est pleinement activé (100%). Ce nœud est relié à gâteau, dont l’activation est nulle, par un arc de type manger dont le poids est de 95%. Ce réseau est une représentation abstraite du fait que lors d’un anniversaire, on mange très souvent un gâteau.
S : Symbole
IC: Importance Conceptuelle A : Activation TD: Taux de désactivation Ag: Agents noeud lien T: Type P: Poids T: manger P: 95% S : anniversaire IC: 80 A : 100% TD: 2 Ag: CalculJour S : gâteau IC: 70 A : 0% TD: 5 Ag: FaitGâteau
3.3.2.3 Propagation d’activation
Pour rendre ce modèle dynamique, il suffit de propager l’activation entre les nœuds à travers les liens pondérés. Par exemple, la figure 3.8 montre le résultat de la propagation de l’activation dans le réseau déjà présenté à la figure 3.7.
S : anniversaire IC: 80 A : 98% TD: 2 Ag: CalculJour S : gâteau IC: 70 A : 86% TD: 5 Ag: FaitGâteau T: manger P: 95%
Fig. 3.8 –État duRéseau de Concepts après propagation de l'activation.
L’activation At+1i d’un nœud i à l’instant t + 1, après propagation, s’exprime comme la somme de son ancienne activation Ati et de l’influence des autres nœuds Ii moins une certaine désactivation Di.
Les deux processus se retrouvent dans les réseaux de neurones. La raison d’être de la désac-tivation est d’empêcher une saturation trop rapide du réseau. De plus, il faut considérer aussi le fait qu’un nœud qui a été activé à un moment donné n’est plus forcément pertinent plus tard. La désactivation est là pour assurer que les nœuds actifs sont pertinent. Elle représente une sorte de perte d’intérêt pour un nœud. Cela permet de porter l’« attention » du système sur d’autres concepts. Pour qu’un nœud soit actif, il est donc indispensable, qu’il reçoive régulièrement de l’activation.
At+1i = Ati+ Ii− Di (3.1)
L’influence des autres nœuds pourrait être donnée par la formule classique, sommant les activations pondérées par les poids des liens (comme dans la formule 3.2), mais cette formule entraîne un déséquilibre entre les nœuds ayant beaucoup de nœuds voisins (influençant) et ceux qui en ont moins. Ce n’est pas parce qu’un nœud est influencé par peu d’autres nœuds qu’il doit être moins activé que d’autres nœuds un peu influencés par bien plus de voisins.
Ii = P
j6=iAj× Poidsij
100 (3.2)
La valeur moyenne des influences n’étant pas non plus une bonne solution (une grosse in-fluence et toutes les autres inin-fluences nulles donneraient une inin-fluence quasi nulle), on introduit une notion de diviseur, Div = ln(3+NbLA)ln 3 tenant compte du nombre de liens arrivants (NbLa). Ce diviseur est logarithmique, donne une valeur de 1 lorsqu’aucun lien n’arrive au nœud et de 3 pour 24 liens afférents (cf.figure 3.9). Nous avons jugé ce comportement valable après quelques expérimentations. Nous avons fixé cette fonction afin d’avoir des paramètres stables sur lesquels baser nos interprétations du comportement du système. Comme pour beaucoup des paramètres de BAsCET, nous pourrions revoir sa définition, en étudiant par exemple son comportement en adoptant une fonction sigmoïde plutôt que logarithmique.
De cette manière, la nouvelle influence des voisins s’écrit :
Ii = P
j6=iAj× Poidsij
100× Div (3.3)
0.5 1 1.5 2 2.5 3 3.5 0 5 10 15 20 25 30 log(3+x)/log(3)
Fig.3.9 –
Div en fonction du nombre de liens aérents.
Et la désactivation se calcule ainsi31:
Di= Ai× T Di
100 (3.4)
Le taux de désactivation T Diétant comprise entre 0 et 100, Direprésente bien le pourcentage de l’activation du nœud i correspondant à son taux de désactivation.
Étant donné que le nœud anniversaire n’a pas de lien afférent, Ianniversaireest nul.
Danniversaire= 100×2
100 = 2.
Donc sa nouvelle activation A1 = A0+ I− D = 100 + 0 − 2 = 98.
Pour le nœud gâteau, c’est différent : son activation est nulle, donc sa désactivation aussi, par contre, il est influencé par anniversaire, et selon l’équation 3.3,
Igˆateau= A0anniv.×P oidsanniv.→gˆateau
100×Divgˆateau = 100×95
100×Divgˆateau = Div95 gˆateau.
Or Divgˆateau= ln 4ln 3 ≈ 1, 0986, donc Igˆateau≈ 86.
Enfin, d’après l’équation 3.1 (page 63), A1 = 0 + 86− 0 = 86.
Dans l’exemple présenté, on peut ajouter un nœud bougie à ce réseau, qui serait associé aux symboles gâteau et anniversaire. Il faudrait ajouter un lien allant de gâteau à bougie
étiqueté
par anniversaire ; ainsi, lorsque anniversaire est activé et gâteau aussi, ce lien activerait bougie32.
31. Cette formule est un peu modifiée lorsque le nœud possède une instance dans le Blackboard. Cf. 3.3.4, page 62
32. N’ayant pas eu besoin de cette caractéristique, elle n’est actuellement pas implantée dans notre dernier prototype, mais elle l’a été dans un prototype précédent.
Le but du « jeu » dans le Réseau de Concepts est bien entendu d’activer les nœuds les plus pertinents afin de pouvoir lancer des agents chargés de découvrir et de créer des instances de ces nœuds.
L’initialisation du Réseau de Concepts se fait par création dans le Blackboard d’une instance d’un ou plusieurs nœuds sensés représenter le problème à traiter. Sachant que la création de telles instances active leurs pères, le problème de l’initialisation est partiellement résolu. Il reste ensuite à bâtir le réseau avec ce mode de fonctionnement en tête.
3.3.3 Agents
Les connaissances procédurales, ou agents, ou encore codelets (dans Copycat), de BAsCET sont caractérisées par leur valeur d’urgence (VU), qui indique l’urgence qu’il y a à exécuter cet agent plutôt qu’un autre. Nous verrons dans la section 3.3.5 comment cette valeur influe sur la probabilité de choix de l’agent. Cette valeur est relative à celle des autres agents.
Pendant son exécution, un agent a accès au nœud du RC qui l’a lancé, appelé
n÷ud père
, et aux liens afférents et efférents de ce nœud. Mais les informations sur lesquelles travaillent principalement les agents sont lesobjets
du Blackboard. Ils peuvent y trouver une instance d’un nœud du Réseau de Concepts, lire ses attributs, et surtoutcréer
de tels objets, activant ainsi le nœud dont l’objet est une instance (l’activation de ce nœud sera alors mise à 100, la valeur maximale). Ils peuvent aussi changer la satisfaction d’un objet, émettant par là une opinion sur la validité de l’objet.3.3.4 Blackboard
Le Blackboard, ou
tableau noir
, est un espace de travail commun à tous les agents. Il est appelé Workspace dans le projet Copycat. C’est là que sont déposées les données du problème initial. Ces données sont toutes sous la forme d’instances de nœuds du Réseau de Concepts. Nous les appelonsobjets
du Blackboard. Ces objets peuvent avoir des liens entre eux.Chaque objet est donc décrit par ces caractéristiques : 1. contenu, qui est une description de ce qu’il représente ; 2. père, le nœud dont il est une instance ;
3. importance, qui dépend du nombre de liens arrivant de ses « congénères », de l’Activation et de l’Importance Conceptuelle de son « Père »;
4. satisfaction, qui mesure la satisfaction de l’agent l’ayant construit, et éventuellement des agents ayant confirmé son intégration dans la solution courante. Lorsque l’agent n’a pas jugé bon de la fournir, elle est calculée automatiquement en fonction des liens de l’objet (et de connaissances spécifiques à l’application) ;
5. éminence, qui détermine le fait que l’objet est intéressant à traiter : s’il est important, et si sa satisfaction est faible. La formule e = (i + 1)× (100 − s)/101 indique que si la
satisfaction s est haute, et l’importance i faible, l’éminence e est faible. La figure 3.10 représente l’éminence en fonction de l’importance et de la satisfaction.
e (i,s) 0 50 100 0 50 100 0 50 100
Fig. 3.10 –
L'Éminence en fonction de l'Importance et de la Satisfaction.
3.3.5 Température
La Température du système a deux rôles :
1. Elle
mesure
l’organisation perceptuelle de la solution. Elle peut être considérée comme une indication grossière de la valeur de la réponse donnée par le système (plus elle est basse, meilleure est la réponse).2. Elle
contrôle
la part de hasard utilisée dans chaque prise de décision (plus elle est haute, moins la décision est déterministe).On a introduit le hasard dans le processus de choix des agents afin de fournir à BAsCET une capacité de « créativité »: un traitement lancé deux fois de suite sur le même problème ne fournira pas forcément deux fois la même solution, singeant ainsi le comportement humain. En effet, un homme ne réagira pas de la même manière selon qu’il est calme ou en colère, pressé ou non, en bref, selon son état d’esprit, il ne résoudra pas les problèmes exactement de la même manière en tout temps.
On peut exprimer la Température comme étant la moyenne de l’Éminence des objets pondérée par leur Importance. En effet, une Température haute met en évidence le peu d’informations fiables sur lesquelles on peut baser une décision ; une température plus faible indique que ces informations sont plus sûres, et donc qu’on peut se fier aux indications fournies par le Réseau de Concepts : les valeurs d’urgence des agents sont plus pertinentes que lorsque la température est élevée.
C’est pourquoi le choix des agents est rendu indéterministe quand la température est haute, et plus déterministe lorsqu’elle est basse. Cela permet de procéder en largeur au début du traitement essentiellement, alors que les informations disponibles sont rares et peu sûres. En effet, tous les agents ont alors la même chance d’être exécutés, donc on explore toutes les solutions possibles
avec la même « hâte ». À l’inverse, lorsque la température baisse, on préfère privilégier les agents dont la valeur d’urgence est plus haute (dont les nœuds pères sont plus activés).
100 84 30 91
56
50 111 89 99
Valeurs d’urgence des Agents dans le Réservoir d’Agents
189 Ajustement selon la
Tirage aléatoire Température (T=30)
Fig.3.11 –
Choix d'un agent en fonction de la température.
Cette nouvelle valeur d’urgence nu est calculée selon la valeur d’urgence de départ u, la température T , et les valeurs d’urgence des n agents ui:
nu = u + T− 50
50
Pn i=1ui
n − u (3.5)
La formule 3.5 montre qu’avec une température moyenne (50), les valeurs d’urgences ne sont pas modifiées. Il est facile de voir que lorsque la température est maximale (100), la nouvelle valeur de nu est u +
Pn i=1ui
n − u, donc égale à la moyenne des valeurs d’urgence, quelque soit u.
Donc, à la température maximale, l’exécution de chaque agent est équiprobable.
3.4 Conclusion
Nous avons implanté BAsCET en C++, en interprétant les indications fournies sur Copycat et en nous efforçant de la garder la plus générale possible [Parmentier, 1994]. Pour vérifier ce caractère général et pour valider son fonctionnement, nous avons d’abord appliqué BAsCET au problème désormais classique du voyageur de commerce (
cf.
annexe B).Nous avons introduit dans ce chapitre une architecture émergente fonctionnant par analogie (ou glissement conceptuel) : Copycat, puis nous avons exposé notre interprétation de cette architecture sur un plan général (nous nous sommes détachés de toute application) : BAsCET.