• Aucun résultat trouvé

Chapitre 6. DesigNAR ; un assistant de conception

6.3 Concepts fluides et computation émergente .1 Copycat

Le premier programme qui donna une démonstration de l’approche des concepts fluides est Copycat (Hofstadter 1984; Mitchell 1993). C’est aussi un des premiers programmes utilisant une approche hybride (ayant à la fois des traits symboliques et connexionnistes). Le programme utilise un mécanisme de propagation de l’activation sur un réseau sémantique avec une mécanisme de control non déterministe (Hofstadter 1984; Mitchell 1993). Copycat est un programme qui résout des problèmes d’analogie dans le domaine de transformation de chaînes de caractères comme abc

abd, iijkk

?, si abc devient abd, que devient iijkk ? La réponse n’est pas unique et elle dépend de la « perception » du problème. Si iijkk est regroupé comme i|ijk|k alors par analogie la réponse sera i|ijk|k

i|ijk|l. En revanche, si les lettres sont regroupées comme ii|j|kk, alors la réponse est ii|j|kk

ii|j|ll. Le but de Copycat est de se servir de ce domaine d’analogie pour expérimenter sur la nature de la perception, le raisonnement analogique et la créativité humaine et tester des hypothèses que les auteurs avancent. Ces hypothèses incluent la nature constructive du raisonnement, l’inséparabilité du raisonnement et de la représentation, le parallélisme (simulé) et le contrôle décentralisé et non déterministe.

Copycat est composé d’une mémoire active, d’une mémoire à long terme, d’une queue de tâche probabiliste. Le mémoire active, appelée Workspace, est le lieu où les représentations sont construites. La mémoire à long terme du Copycat est appelé Slipnet ; Figure 6.2. Le Slipnet est un réseau sémantique dont les nœuds correspondent à des concepts. Les concepts ont des degrés d’activation et peuvent être activés à des niveaux différents. Ces activations augmentent lorsque des instances de ces nœuds sont perçues ; autrement, les activations diminuent avec le temps. Les nœuds peuvent transmettre une partie de leur activation aux nœuds qui leurs sont connectés par un lien.

Figure 6.2 Une vue partielle du Slipnet de Copycat.

Les liens entre les nœuds sont valués et ces valeurs représentent des distances conceptuelles. Plus un concept est distant à un autre, plus il devient difficile de l’activer à partir de celui-ci. Les distances conceptuelles peuvent changer pendant l’exécution.

Des programmes appelés codelets sont responsables pour bâtir la perception du problème dans la mémoire active. Les codelets sont des mini-programmes comme les applets des Java. Durant l’exécution, ils interagissent entre eux et avec le Slipnet pour construire ou détruire des percepts, c'est-à-dire, des représentations partielles de la situation comme « a est le successeur de b », « ijk forment un groupe » ou « a est l’équivalent de ii » ; Figure 6.3. D’une manière réciproque, le nombre et les types de codelets (comme successeur, groupe ou équivalent) à un moment donné est détermine par les activations des concepts du Slipnet. Aucun codelet n’a une vue globale de l’état du système. Ce sont des agents locaux qui interviennent dans le processus de raisonnement avec de simples actions. Ils travaillent en parallèle ce qui peut causer la construction de multiples représentations du problème au départ du raisonnement. Autrement dit, avant la terminaison de l’exécution, il peut arriver que le programme ait construit des percepts conflictuels comme, par exemple, le regroupement de i|ijk et ii|jk dans le problème cité plus haut. Graduellement, lorsque le temps passe, les groupes de codelets qui forment des coalitions puissantes (par leur interaction et activations mutuelles) déterminent la réponse finale.

Figure 6.3 Illustration de la mémoire active du Copycat

Lorsqu’un codelet est lancé, il est placé dans une queue de tâche probabiliste appelé Coderack. Le choix de codelet à exécuter est fait aléatoirement parmi les éléments du Coderack suivant leur paramètre appelé « urgence ». L’urgence des codelets décroît avec le temps. Ainsi, les codelets les plus récents et les plus urgents ont plus de chance de participer dans le raisonnement. Le Coderack forme la mémoire procédurale du système. Ce mécanisme supprime la nécessité de contrôle globale et fournit un parallélisme simulé.

Etant donné un concept, comme son activation peut changer ainsi que la puissance de ses connexions avec d’autres concepts, nous pouvons parler de son halo conceptuel (Hofstadter 1984, 1995). Le halo conceptuel peut se serrer ou se relâcher comme les distances conceptuelles peuvent varier. Par ailleurs, lorsqu’un concept perd de son activation pendant qu’un concept voisin en gagne, il peut y avoir des glissements conceptuels. Par exemple, le concept prédécesseur peut devenir active à la place de successeur, ce qui peut changer la perception du problème pour Copycat. Nous pouvons constater des glissements conceptuels dans la cognition humaine de tous les jours ; un capitaine peut être considéré un prêtre ; un tronc d’arbre peut être vue comme une chaise ; une caravane peut être conçue comme un appartement mobile. Il est revendiqué que le glissement conceptuel est fondamental pour différentes activités créatives (Hofstadter 1995).

Le résultat retourné par Copycat émerge de l’interaction des codelets avec le Workspace, le Slipnet et entre eux-mêmes. L’interaction non-déterministe peut entraîner des représentations inattendues et des résultats créatifs. Compte tenu de la nature constructive du raisonnement (et de la représentation), Copycat peut être considéré comme un exemple d’implantation de mémoire constructive. Cependant, le programme n’est pas conçu pour opérer dans un environnement en temps réel et par conséquent il n’est pas situé. Par ailleurs, il n’y a pas d’apprentissage comme les connexions ou leurs puissances ne sont pas modifiées d’une exécution à l’autre et comme il n’y a pas formation de nouveaux concepts. Cependant, ses principes de fonctionnement étaient uniques à l’époque où le programme a été introduit et ils ont été influents dans le monde de l’intelligence artificielle. Aujourd’hui, ce genre de système est souvent catégorisé comme un système émergent. Nous allons maintenant jeter un regard sur les systèmes à comportement émergent en général. Puis, nous présenterons notre système hybride à comportement émergent qui fait un usage fluide de ses concepts en utilisant les principes de fonctionnement de base de Copycat et qui implante une mémoire constructive et l’ancrage des concepts.

6.3.2 Système à comportement émergent

La fluidité des concepts dans le programme Copycat est assurée par le mécanisme de control utilisée. Copycat est un système à comportement émergent (SCE) par contraste à des systèmes à comportement rigide (SCR). Dans un SCR, le traitement (la computation) à faire est spécifié a priori ; ce genre de système a les avantages suivants (Kokinov et al. 1996):

• Il est possible d’atteindre le maximum d’efficacité ou au moins une niveau d’efficacité prédéterminé en ce qui concerne l’utilisation des unités de traitement symbolique,

• Elle est stable au sens qu’elle reproduit le même effet correspondant à la spécification a priori,

• Il est possible d’assurer une consistance computationnelle ; c'est-à-dire les ressources computationnelles sont utilisées d’une manière systématique pour atteindre un ensemble de but.

En contrepartie, la computation rigide exhibe des difficultés pour être à la fois efficace et flexible et la computation émergente est un des alternatives (Forrest 1990; Kokinov et al. 1996).

Dans un SCE, la computation effectuée n’est pas fixée à l’avance mais elle est émergente ; il n’existe pas de spécification a priori de ce que le système calcule, ni de comment il calcule. Le résultat émerge du comportement collectif de multiples unités de traitement.

• Le traitement est distribué sur un ensemble d’unités de traitement travaillant en parallèle, et, il n’existe pas de control central.

• Le traitement est local et chaque unité de traitement ne peut interagir qu’avec un nombre limité d’autres unités (sinon, le control global peut devenir possible),

• Le mécanisme de traitement doit assurer une certaine consistance parmi les unités de traitement pour éviter un comportement chaotique du système ; autrement dit, malgré la non spécification, le comportement doit achever certains effets désirés.

Il n’y a pas de limites nettes entre la computation rigide et la computation émergente et il existe un continuum entre différents modèles. En particulier, le système peut consister à plusieurs unités de traitement rigide qui interagissent entre eux pour donner un comportement émergent. Des spécifications explicites a priori peuvent donc exister à des degrés variés. Le caractère émergent d’un système est déterminé par

• L’organisation computationnelle du système en ce qui concerne la spécification des unités de traitement locales et leur connectivité, • Le changement dynamique dans cette organisation, déterminé par les

unités de traitements particulières qui interviennent dans un traitement particulier et le changement dans les patterns d’interaction. Les caractéristiques d’un système de traitement sur ces deux axes déterminent la flexibilité et l’efficacité du système.

Figure 6.4 Illustration d’un système hybride ; repris de (Kokinov 1994b) 6.3.3 Emergence et systèmes hybrides

Petrov et Kokinov (1999) voient Copycat comme une réponse aux doubles défis d’efficacité et de flexibilité d’un système. Un système doit être efficace dans la résolution des problèmes qu’il rencontre. Un système doit aussi être flexible pour s’adapter à l’imprévu. Particulièrement, pour les systèmes opérant dans un monde ouvert, il n’est pas possible d’énumérer à l’avance toutes les situations que le système peut faire face. Le mécanisme de contrôle de Copycat repose sur les principes suivants pour répondre à ce défi (Petrov et Kokinov 1999):

1. Plusieurs candidats (représentations, solutions) sont considérés en parallèle,

2. Il existe un mécanisme peu coûteux pour estimer la promesse d’un candidat,

3. Les ressources computationnelles du système sont distribuées d’une manière inégale, favorisant les candidates les plus prometteuses.

4. Les estimations des promesses sont mises à jour constamment, en prenant compte de l’état actuel du système, et les ressources computationnelles sont redistribuées parallèlement.

Ce genre de stratégie de control a été discuté sous différentes dénominations ; i.e. la balance de l’exploitation versus l’exploration dans le contexte des algorithmes génétiques (Holland 1992), le balayage étalé parallèle dans le contexte des concepts fluides (Hofstadter 1995), la compétition contrôlée dans le contexte des logiques de termes NAL (Wang 2006b).

Figure 6.5 Différents agent locaux actifs dans deux contextes (a) et (b) variés.

Petrov et Kokinov (1999) suggèrent que la propagation de l’activation est une technique convenable pour les points 2 et 4. Il n’est pas coûteux, il peut être utilisé dans des systèmes dynamiques et il permet d’accumuler l’information provenant de diverses unités de traitement. De plus, ce mécanisme permet au système la capacité d’être sensible au contexte.

Cependant, dans la majorité des cas, des représentations et des calculs symboliques restent fondamentales pour des systèmes d’intelligence artificielle. Kokinov propose une approche hybride où plusieurs unités de traitement co-existent (Kokinov 1994a, b, c; Kokinov et al. 1996). Chaque unité a une côté symbolique appelé cerveau droite ou R-Brain, et un coté connexionniste appelé cerveau gauche ou L-Brain ; Figure 6.4. Un R-Brain correspond à une connaissance symbolique particulière sur le domaine modélisé. Un L-Brain correspond à une connaissance connexionniste représentant la pertinence ou l’activation de l’unité de traitement étant donné une situation.

Les unités de traitement peuvent transmettre de l’activation aux autres unités auxquels ils sont connectés suivant un mode connexionniste. Un L-Brain peut recevoir de l’activation de l’environnement ou de ses voisins. Un R-Brain a accès aux sources computationnelles du système proportionnel-lement au niveau d’activation de l’unité de traitement.

Dans un tel système, il est possible de voir chaque unité de traitement comme un agent (local). Il n y a pas de séparation entre des structures de données et des agents qui opèrent sur ces structures. Un agent peut être une donnée pour un autre. Les agents travaillent à des vitesses variées suivant leur niveau d’activation. Dans des contextes variés, différents groupes d’agents peuvent être actifs ; Figure 6.5. Un tel système est donc sensible au contexte et son comportement émerge de l’interaction des agents locaux.

Ce type d’architecture devient une implantation des principes de mémoire constructive et de l’ancrage des concepts dans le cas où le système est doté d’un mécanisme pour la création de nouveaux agents (i.e., de nouvelles connaissances, puisque le coté symbolique de chaque agent correspond à une connaissance) ainsi que la réadaptation des connexions entre agents. Le système que nous présenterons dans la suite va exploiter ces principes ainsi que les idées que nous avons vues dans la première partie de ce chapitre.

6.4 Une description globale du système DesigNAR

6.4.1 Concepts et Connaissances du système

DesigNAR est un assistant personnel de conception. Il collabore avec son utilisateur par l’intermédiaire d’une interface graphique. L’interface permet à l’utilisateur de construire un graphe FBS et une base de donnée contenant les concepts d’artéfact, de fonctions, de comportements, de structures que l’utilisateur créé pendant ses travaux. Donc, le système observe dans l’environnement les concepts et les relations qualitatives causales entre ceux-ci. Parallèlement, les connaissances du système, qu’elles soient observées ou créés par le système, ont la structure d’un graphe. Les nœuds de ce graphe, représentés par des symboles, correspondent à des concepts et les liens correspondent à des connexions entre les différents concepts. Les concepts ont des degrés d’activations et peuvent être plus ou moins actif. Les liens ont des paramètres qui déterminent leur puissance et leur fiabilité. Les connaissances du système sont donc de deux types, les concepts et leurs activations, d’un coté, les liens entre les concepts et leurs paramètres, de l’autre coté.

6.4.2 Mémoire constructive et ancrage des concepts

Pour implanter la mémoire constructive et l’ancrage des concepts, nous utilisons un système hybride distribué. Le système est composé d’un ensemble d’agents locaux. Chaque agent correspond à un concept particulier (observé dans l’environnement ou créé par le système). Les agents possèdent un nombre limité de liens représentant les relations entre le concept correspondant et d’autres concepts Ces liens peuvent être de natures différentes (voir paragraphe 7.2). En particulier, ceux-ci peuvent correspondre à des liens sur lequel l’agent doit s’interroger. Par s’interroger, nous entendons faire des inférences pour juger la validité et la puissance du lien (voir paragraphe 7.3).

Le système a donc un coté symbolique qui manipule par des actions locales (inférences ou autre) des symboles correspondant aux concepts. Mais, il a aussi un coté connexionniste. Les concepts ont des paramètres d’activation et le système propage cette activation afin de rendre les concepts reliés actifs dans un même contexte. Deux types d’activation existent ; une activation qui provient de l’environnement et une activation qui est fournie par le fonctionnement interne du système. L’activation externe a comme source l’environnement. Les concepts observés dans l’environnement sont activés. Cette activation est ensuite propagée aux concepts reliés par des liens. Ainsi, les liens (observés dans l’environnement comme des relations qualitatives causales ou créés par l’inférence) sont utilisés pour activer les concepts pertinents comme dans un réseau de neurones.

L’activation interne a comme source l’activité d’inférence symbolique. Chaque agent local qui conduit une inférence crée un nouveau lien. Le lien créé est une nouvelle connaissance que le système doit considérer et mettre en relation avec les autres connaissances qu’il possède. Comme nous avons précédemment signalé, c’est un lien sur lequel le système doit s’interroger. Cependant, le système travaille d’une manière parallèle et plusieurs agents produisent de nouveaux liens.

Figure 6.6 Une illustration de certains agents locaux du DesigNAR lors de la construction d’un concept d’aspirateur ; chaque concept, représenté par un symbole, possède des espaces

C et K locaux ; plus un concept est actif, plus noir est son contour.

L’urgence par laquelle le système doit considérer un lien créé varie et cela, en fonction de l’urgence et des puissances des liens utilisés pour l’inférence. En contrepartie, un lien créé contribue à l’activation des concepts concernés. Plus des liens à considérer avec urgence sont créés à propos d’un concept, plus le concept augmente son activation interne. Par ailleurs, l’urgence des liens à interroger baisse avec le temps, et donc leurs activations internes se dégrade tout comme l’activation externe. Ainsi, le système reste réactif à l’environnement.

De cette manière, nous obtenons un système qui implante une mémoire constructive par un processus de pousse-et-tire (voir paragraphe 4.3.3). Le système est aussi une implantation du principe de l’ancrage des concepts puisqu’il crée des liens entre les concepts en établissant ainsi un sens pour ceux-ci.

6.4.3 Distinction C – K – E

Le système est situé dans un environnement E dans lequel se trouve un utilisateur. Il interagit avec l’utilisateur par l’intermédiaire d’une interface en

observant et en suggérant des relations qualitatives causales. Dans la section 4.4, nous avons exprimé que la conceptualisation est au cœur de la conception. Notre système mène des processus de conceptualisation en parallèle et continuellement. Pour chaque concept qui est activé, par l’environnement ou suite aux inférences, le système réalise des inférences pour établir les liens de ce concept avec les autres concepts que le système connaît dans la mesure de ses ressources et suivant le mécanisme de contrôle que nous avons œuvré. Le système poursuit donc une incessante quête pour concevoir le sens des concepts qu’il possède suivant ses interactions avec l’environnement et ce qu’il connaît déjà.

Le sens que le système crée pour un concept n’est pas fixé mais fluide. Non seulement ce sens évolue en fonction des inférences effectuées et les liens ainsi créés, mais aussi l’activation interne et externe du concept et l’urgence des liens à considérer varie avec le temps et en fonction des interactions. Par ailleurs, le système fonctionne d’une manière non-déterministe : le choix de concept et de liens à étudier se font aléatoirement. Les concepts les plus actifs et les liens les plus urgents ont plus de chance de recevoir l’attention du système. Néanmoins, le système peut aussi s’intéresser, même s’il est moins possible, à des connaissances moins actives. Ainsi, le sens d’un concept peut varier dans le temps et, à un moment donné, et n’intervient dans le processus de conceptualisation que partiellement (pas tous les liens sont utilisés). Le système fait un usage fluide de ses concepts.

Les espaces C et K du système sont distribués ; Figure 6.6. Chaque agent local contient une partie de l’espace C et une partie de l’espace K. Au niveau local, les liens à interroger forme un ensemble de propositions où figure le concept correspondant ; ceci forme l’espace C local. D’autres liens associés au concept, qui ne font pas l’objet d’une mise en question, forment la partie de l’espace K local. A un moment donné, l’ensemble des liens à interroger des concepts actifs peut être vue comme l’espace C courant pour le système. Les espaces K locaux des concepts actifs et les concepts non actifs peuvent être vue comme l’espace K. Les concepts non activés et les liens correspondants peuvent être activé par l’espace C et participer au processus de conceptualisation.

6.4.4 E-réactivité

Le système est sensible à son environnement. Il observe le travail de l’utilisateur et il sent les changements que celui-ci réalise sur la représentation de l’artéfact et sur la base de donnée. Si un symbole observé est rencontré la première fois, le système crée le concept correspondant et commence à un travail de conceptualisation (de type compréhension) pour donner un sens à ce concept. Le système est fabriqué de telle manière que, chaque concept créé figure dans deux relations qualitatives causales (sauf les concepts de type artéfact qui sont reliés à Artéfact ; nous reviendrons sur ces détails). A partir de ces relations, le système peut commencer à établir des liens entre le concept étudié et les autres concepts qu’il connaît. Dans le cas où le symbole observé est déjà connu par le système, le concept correspondant est activé au maximum. Une propagation de l’activation s’en suivra, ce qui permettra au système d’activer les connaissances pertinentes afin de les utiliser dans la conceptualisation.