• Aucun résultat trouvé

Chapitre 8. Mémoire et Contrôle

8.2 Activité du DesigNAR .1 Cycle de fonctionnement

Tant qu’il est actif, DesigNAR exécute un cycle de fonctionnement ; Figure 8.2. Nous allons d’abord décrire brièvement ces étapes, puis nous expliquerons les détails du fonctionnement. Le « T » dans la Figure 8.2 correspond au numéro du cycle qui marque le temps pour le système. Il est possible de faire varier la vitesse par laquelle le système répète le cycle. En pratique, cette vitesse peut être réglée pour qu’elle varie de 1 cycle par minute (CPM) à quelques milliers de CPM.

Sensation. Chaque cycle commence en vérifiant si de nouvelles connaissances sont observées. Ces connaissances peuvent être des relations ou des concepts observés dans l’environnement. Mais aussi, elles peuvent correspondre à des relations ou des concepts créés par l’inférence au cycle d’avant. Un concept observé la première fois est créé dans la mémoire. S’il a été déjà observé, son activation externe est égalisée à 1. Les relations observées sont placées dans les listes correspondantes dans la mémoire.

Activation externe. Chaque concept reçoit de l’activation de la part de ces voisins. Nous utilisons ici le terme voisin au sens « relié par une relation d’héritage ou de similarité ». La transmission de l’activation est proportionnelle à l’espérance du lien qui existe entre les concepts de départ et d’arrivé. Ainsi, des concepts qui ne sont pas activés directement par l’environnement mais qui sont fortement reliés à des concepts actifs vont être activés. De cette manière, ils pourront être considéré pas le système pendant le choix de concept à analyser.

Sélection d’un concept, d’une tâche et d’une connaissance. Pour réaliser une inférence, le système sélectionne un concept, puis une tâche dans la liste Tâche de ce concept ; finalement, une connaissance est sélectionnée dans une des trois listes restantes. Les choix se font aléatoirement. Le choix de concept se fait en fonction de la moyenne de l’activation externe et interne de chaque concept. Une fois le concept sélectionné, le système choisit aléatoirement une

tâche, en fonction des urgences des éléments dans la liste Tâche du concept choisi. Finalement, la sélection d’une connaissance, c'est-à-dire, d’une relation d’héritage ou de similarité se fait. Si la tâche est une connaissance, ce choix se réalise aléatoirement en fonction des espérances des relations du concept choisi. Si la tâche est une question, l’existence d’une réponse appropriée est vérifiée.

Inférence. La tâche et le jugement choisis déterminent les règles d’inférence qui peuvent être appliquées. Si la tâche est une question alors une réponse est recherchée dans la liste appropriée (la liste est déterminée suivant la forme de la question). S’il n’existe pas de connaissance pour répondre à la question, une inférence vers l’arrière est effectuée. S’il en existe plusieurs, la règle de choix est utilisée pour retourner celle avec la plus grande espérance. Dans le cas où la tâche est un jugement, une règle convenable est choisie pour réaliser l’inférence. Souvent, plusieurs règles peuvent être utilisées. Le choix se fait encore une fois aléatoirement, mais en favorisant des règles qui donnent des conclusions plus sures. Ainsi, la déduction a plus de chance d’être sélectionnée que l’exemplification comme les conclusions produites par cette règle ont une confiance plus élevées. En particulier, les règles de formation de termes composés et la révision sont appliquées dès que possibles.

Ajustement des urgences et de l’activation interne. Une fois l’inférence est réalisée les valeurs d’urgence et de durabilité sont déterminées pour la conclusion générée (en fonction des paramètres des prémisses de départ). L’urgence et la durabilité de la tâche sont aussi ajustées. En particulier, si la tâche est une question et si le système a pu trouver une réponse, l’urgence de la tâche va baisser ainsi que sa durabilité. Après ces ajustements, les urgences des tâches sont ajustées par leurs durabilités et les activations internes des concepts sont réévaluées.

Action et suggestions. Durant l’inférence, si une (nouvelle) réponse a été obtenue pour une question provenant de l’environnement, le système vérifie si elle s’agit d’une relation qualitative causale valide et si cette relation n’a pas

été déjà observée dans l’environnement (pendant la séance courante) ou déjà suggérée. Si la réponse vérifie ses conditions, elle est reportée à l’utilisateur. Certains de ces étapes doivent être présentées plus en détails. Ces points vont être discutés ci-après.

8.2.2 Sensation

En début de chaque cycle, DesigNAR vérifie si de nouvelles relations (qui proviennent de l’environnement ou qui ont été produites par l’activité d’inférence) ont été observées. En effet, lorsqu’une nouvelle relation est introduite dans l’environnement, celle-ci est stockée dans une liste jusqu’au début du prochain cycle. De la même manière, un résultat produit par une inférence est placé dans cette même liste. Au commencement de chaque cycle, l’agent contrôle si de nouveaux éléments sont ajoutés dans cette liste et si c’est le cas, il les place dans les listes des concepts correspondants.

Lorsque l’utilisateur édite une relation qualitative causale de type X ←Y , le système observe un jugement Y →X <f c, > et une question ?→Y est auto-générée. D’une coté, le système apprend une relation d’héritage, de l’autre coté, une question à partir de laquelle le système peut produire des suggestions est créée.

Comme le jugement concerne les concepts Y et X, il est placé dans les listes correspondantes des deux concepts (si un concept est observé la première fois, il est créé dans la mémoire avec les listes et autres propriétés correspondantes). Notons que le jugement Y →X <f c, > sera placé dans la liste Intension du concept Y et dans la liste Extension du concept X. Le système copie ce même jugement aussi dans les listes Tâches des deux concepts afin de l’étudier. Une nouvelle connaissance a été observée à propos de chacun de ces deux concepts et chaque concept doit l’analyser localement, à l’aide des inférences et l’ancrer. S’il a été déjà observé (par exemple, dans des projets antérieurs), éventuellement, il peut renforcer la connaissance par l’application de la règle de révision. Sinon, de nouvelles connaissances sera créées à partir de celle-ci par d’autres inférences.

La question ?→Y ne concerne qu’un seul concept ; le concept Y. Par ailleurs, ceci n’est pas une connaissance mais exclusivement une tâche. Elle sera donc placée uniquement dans la liste Tâche. Dans le cas où elle est sélectionnée pour une inférence, si une connaissance appropriée de forme

Z →Y est trouvée, elle sera reportée à l’utilisateur (puisque la question provient de l’environnement). Dans le cas où il n’y a pas de réponse, une inférence vers l’arrière aura lieu. Notons que, comme l’inférence fonctionne aléatoirement, une question peut être répondue plusieurs fois. Dans un tel cas, le système renvoie la meilleure réponse (celle avec la plus grande espérance) qui n’a pas encore été proposée.

Une particularité du système, c’est que les tâches créées lors d’un projet de conception sont liées uniquement à ce projet de conception même. Elles ne sont utilisées que dans le cadre du projet où elles ont été créées. Par contraste, une fois qu’une connaissance est acquise, elle peut être utilisée pour l’inférence à tout moment et pour tous les projets. La raison pour cette distinction réside dans le fait que c’est à partir des tâches que le raisonnement du système est alimenté et nous voulons que le système se concentre sur des tâches qui concernent uniquement le projet courant. Un des avantages que cela offre, c’est que le système n’abandonne pas le cours de sa réflexion lorsqu’un projet est arrêté momentanément et lors d’un rechargement de ce projet, le système peut reprendre son raisonnement à partir des tâches qu’il s’était posées.

Dans tous les cas, certains paramètres doivent être spécifiés pour les liens observés comme imposé par le fonctionnement du système. Pour la question, des valeurs d’urgence et de durabilité doivent être fournies. Pour le jugement, en dehors de ces valeurs, une fréquence et une confiance doivent être données. Dans le système NAR de Wang (1995), l’utilisateur peut spécifier les paramètres des relations qui sont soumis au système. Dans notre système ceci n’est pas possible comme il serait encombrant pour l’utilisateur de spécifier des paramètres à chaque fois qu’il crée une relation qualitative causale. Pour cette raison, nous avons choisi de fixer des valeurs par défaut. Nous voulons que le système fasse des suggestions, et ce, le plus rapidement

possible, lorsqu’une question a été généré à partir de l’environnement (et non pas par l’inférence en arrière). Cependant, lorsque le temps passe et l’utilisateur travaille sur d’autres parties de sa représentation, générer des suggestions pour une question ancienne n’est plus très intéressant. Alors, pour les questions observées, dans les expérimentations, nous avons fixé une valeur d’urgence élevée et une valeur de durabilité modérée. En ce qui concerne les relations d’héritage observées, il conviendra que le système les étudie pendant un certain temps, mais non nécessairement immédiatement, afin de les ancrer. Nous avons fixé une valeur d’urgence modérée et une valeur de durabilité élevée.

Pour les fréquences et les confiances, il est possible de travailler avec deux modes différents, le tuteur et l’apprenti. Lorsque le tuteur travaille avec le système, les valeurs de vérités sont élevées. Pour l’apprenti, ces valeurs sont relativement faibles comme les relations qu’il peut fournir sont considérées moins sûres et pour éviter que le système les perçoive comme essentielles.

8.2.3 Activation externe et propagation de l’activation

Dans le système, les concepts peuvent avoir une activation provenant de l’environnement. Ces concepts transmettent une partie de leur activation aux concepts voisinant. Le but ici est de pouvoir activer et donc d’utiliser l’ensemble des concepts étroitement reliés en même temps, même s’ils n’ont pas été observés dans l’environnement. Supposons, par exemple, qu’il existe trois concepts qui ont été observés dans l’environnement et qui ont été activés au maximum ; Figure 8.3. Dans le cas où ils sont reliés à un quatrième concept, ces trois concepts vont transmettre un certain pourcentage de leur activation à ce concept voisinant afin de l’activer. Celui-ci, malgré le fait qu’il n’a pas été observé dans l’environnement aura une activation (externe) positive. Il devient alors possible pour le système de considérer ce concept dans son raisonnement. En particulier, les concepts composés ne sont pas observés dans l’environnement mais leurs composants peuvent y apparaître. Alors, ces derniers peuvent activer les concepts composés dont ils font partie. Il nous donc faut un mécanisme pour activer les connaissances pertinentes à partir de ce qui est observé dans l’environnement.

Figure 8.3 Propagation de l’activation (plus le contour d’un rectangle est épais, plus activé est le concept correspondant).

Nous utilisons une approche connexionniste qui exploite la structure de graphe formée par les relations d’héritage et de similarité du système.

Indépendamment de leurs types, les relations observées ou formées par le système représentent une certaine connexion sémantique entre les concepts que le système connaît. Les connaissances du système peuvent être vue comme un graphe où les nœuds correspondent aux concepts et les relations aux connexions entre ces nœuds.

Dans notre système, au moment de la propagation de l’activation, les relations qu’un concept possède déterminent les concepts qui peuvent lui transmettre de l’activation. Pendant cette opération, l’espérance e de la relation en question est assimilée à la puissance de la connexion. Les concepts qui sont reliés par des relations avec une fréquence et une confiance élevées peuvent activer l’un l’autre fortement, et inversement, les relations avec des valeurs de vérités faibles sont défavorisées dans la transmission de l’activation.

Nous adaptons le modèle proposé par Kokinov (voir Kokinov (1994b, c) pour les détails). A chaque instant T = t, chaque concept a une activation externe

Ext

A = a(t) qui varie entre 0 et 1. Lorsqu’un concept est observé dans l’environnement, son activation atteint le maximum. Chaque concept actif au delà d’un seuil peut transmettre une partie de cette activation, son output, aux concepts reliés.

A chaque instant t, l’activation transmise par un concept, o(t), est calculée comme suit. 0, si ( ) ( ) . ( ), sinon. a t o t a t θ ρ  >  =  

où ρ est un réel variant entre 0 et 1. θ est le seuil d’activation, variant aussi dans l’intervalle unitaire. Chaque concept reçoit de l’activation de la part de chacun de ses voisins actifs (voisin au sens d’une relation d’héritage ou de similarité). L’activation nette i

net

A reçue pour le concept ci est donnée par ( )

i

net ij i j

A =

λ o t

où λij correspond à la puissance d’une connexion entre le concept ci et un concept cj qui lui est relié par une relation. Ce paramètre est obtenu comme le rapport de l’espérance eij de la relation entre ces deux concepts et la somme des espérances eik de toutes les relations qui relient le concept ci avec les autres concepts :

ij ij ik k e e λ =

L’activation totale ( ) tot i

A t pour un concept ci au temps t est donné par

( ) ( ), si est le focus ( ) . ( ) ( ) ( ), sinon tot i i net i i i i net i a t A t c A t a t A t I t τ  +    =   + +   

où 0<τ<1 est le taux de désactivation, 0<I ti( )<1 est une activation additionnelle qui provient de l’environnement à l’instant t. En fait, lorsqu’il travaille, l’utilisateur peut « cliquer » sur certains concepts pour différentes raisons. Le dernier concept cliqué avant le commencement du cycle courant est le concept focal et son activation n’est pas dégradée par le taux de désactivation. Si un concept a été cliqué (mais a perdu le focus) pendant le cycle précédent, son activation est légèrement augmenté par une quantité (I ti( )>0), vue que l’utilisateur a fait preuve d’un certain intérêt actuel au concept. Sinon, l’activation additionnelle est nulle. Dans ces deux dernier cas, la dégradation est appliquée. L’activation externe d’un concept à l’instant suivant est calculée comme

0, si ( ) ( 1) 1 , sinon. ( ) tot tot i i Ext i i i A t A a t A t θ θ  <   = + =     

L’activation externe sert à activer les concepts non observés dans l’environnement mais qui sont étroitement lié aux concepts observés. Ils peuvent s’agir des concepts composés ou des concepts qui ont été créés dans d’autres projets de conception. Cependant, un concept non observé mais activé par la propagation de l’activation ne contient pas de tâche qui concerne le projet actuel au moment de l’activation. Pour cette raison, ses relations avec les concepts qui l’ont activés sont recopiées dans la liste Tâche de ce concept. Ainsi, le système peut réaliser des inférences à partir de ce concept dans le cadre du projet courant.

Le mécanisme de propagation de l’activation fournit une mémoire constructive. En fonction de ce que le système observe dans l’environnement, les connaissances pertinentes deviennent actives et utilisables. Cependant, pour ancrer les connaissances (observées ou produites) par l’inférence, le système doit aussi gérer la manipulation des tâches et de leurs facteurs d’urgence.

8.2.4 Sélection et compétition des tâches

La sélection des tâches pour l’inférence est effectuée aléatoirement suivant le paramètre d’urgence. En partant des urgences individuelles des tâches, il est possible de déterminer différentes distributions de probabilité pour la sélection aléatoire. Notamment, nous pouvons favoriser un comportement chaotique en associant une probabilité égale à chaque candidate indépendamment de son urgence. Contrairement, nous pouvons rendre le système déterministe en associant une probabilité 1 à une tâche donnée, par exemple, à la tâche avec l’urgence la plus grande, et 0 à toutes les autres. Il est aussi possible de déterminer une distribution de probabilité où la probabilité de sélection d’une tâche est obtenue par le rapport de l’urgence de cette tâche avec la somme des urgences des tâches de la liste où la sélection est faite.

Figure 8.4 Le graphe de la fonction F pour des valeurs d’urgence variant entre 0 et 1 ; avec les paramètres a = 5, b = 10 et c = 0.35.

De cette manière, la sélection est non déterministe mais favorise les tâches avec les urgences élevées. Cependant, lorsqu’il existe plusieurs tâches avec des probabilités très faibles et peu de tâches avec des probabilités élevés, il peut devenir difficile pour le système de traiter des tâches urgentes en temps. Par exemple, dans une liste où il existe une tâche avec une urgence 1 et dix tâches avec des urgences 0.1, la probabilité de sélection de la tâche avec l’urgence 1 est 0.5. Or, cette tâche peut correspondre à une question provenant de l’environnement à laquelle nous voudrons répondre rapidement. Pour cette raison, afin de biaiser la sélection en faveur des tâches avec des urgences élevées, nous utilisons des poids dans la détermination des probabilités.

Pour une tâche ti avec une urgence ui, cette probabilité, notée par Pti, vaut : 1 i i i t n i i i p u P p u = =

où pi est le poids associé à l’urgence ui, n est le nombre de tâches considérées. La somme des probabilités vaut 1. Pour le système courant, le poids pi est obtenu par une fonction F(u) de forme sigmoïde déterminée empiriquement

( ) 1 ( ) 1 b u c F u ae = +

avec a > 1, b > 1, 0 < c < 1. Lorsque u varie entre 0 et 1, avec a = 5, b = 10 et c = 0.35, la forme de cette fonction est donné par la Figure 8.4.

Cette approche permet d’empêcher le cas problématique que nous avons exemplifié. Dans une liste où il existe une tâche avec une urgence 1 et dix tâches avec des urgences 0.1, la probabilité de sélection de la tâche avec l’urgence 1 est 0.98. Notons cependant que lorsqu’il existe des tâches avec des urgences proches, c'est-à-dire, lorsque l’écart entre le minimum et le maximum des urgences pour les tâches d’un concept est petit, la sélection sera toujours biaisée en faveur du maximum, cependant, la différence entre les probabilités de sélection ne sera pas aussi élevée.

Comme de nouvelles tâches sont créées continuellement et les urgences de celles-ci changent dynamiquement, les tâches sont en compétition pour utiliser les ressources du système. Avec le temps, les tâches anciennes sont défavorisées vis-à-vis des tâches récentes par le processus de dégradation. Cependant, la dégradation des urgences n’est pas le seul facteur dans la compétition des tâches pour recevoir l’attention du système. Le résultat de l’inférence peut changer l’urgence d’une tâche.

8.2.5 Activation interne

A un moment donné, la liste Tâche d’un concept peut contenir un certain nombre de tâches avec des valeurs d’urgences différentes. L’activation interne d’un concept est déterminée pour chaque instant T en agrégeant les valeurs d’urgence des tâches de cette liste. Comme ces valeurs varient entre 0 et 1, nous avons décidé de faire cette agrégation de manière à ce que le résultat final soit inclus dans ce même intervalle. Par exemple, il est possible de considérer un calcul de moyenne (équipondérée), ce qui donnera une activation moyenne variant dans l’intervalle unitaire. Cependant, la présence des tâches très peu actives peut considérablement baisser l’activation interne d’un concept et le mécanisme de dégradation des urgences fait que, dans la liste de tâche d’un concept donné, il existe souvent des tâches avec des urgences très faible. Pour favoriser la contribution des éléments les plus

urgents, nous avons donc décidé d’utiliser une moyenne ordonnée pondérée (MOP), un mécanisme plus élaboré pour calculer une moyenne, introduit par Yager (1988).

Afin de calculer la MOP des urgences, nous avons besoin de deux listes. La première, la liste des valeurs d’urgences ordonnée suivant l’ordre décroissant

(1) (2) ( ) ( , ,..., n)

ord = u u u

u où u( )i est la ième plus grande urgence et n est le nombre de tâche. La deuxième, est une liste de poids p=( , ,..., )p p1 2 pn tels que

[0,1 , 1] i p ∈ ≤ ≤i n et 1 1 i n i p = =

. La MOP est alors calculée comme

( ) 1 ( , ) i i n ord i MOP p u = =

p u

Pour un opérateur MOP, les poids ne sont pas associés à une urgence particulière, mais à un ordre. En fixant ces poids différemment, il est possible