Meta-Connections

Un article de U-Sphere.
Jump to: navigation, search

Globalement il s'agit de construire un modèle d'IA basé sur la théorie des systèmes évolutifs auto programmables et autonomes permettant d’organiser des connaissances procédurales.

L’enjeu principal est de pouvoir auto-administrer les connaissances, réaliser de la veille et de la prospective technologique. De façon sous-jacente, il y a une démarche philosophique forte: contribuer au partage de l’information, et lutter contre les courants de désinformation en "pointant du doigt" les incohérences.

Le but du jeu consiste à pouvoir automatiquement détecter les relations fonctionnelles clés structurant et liant des documents entre eux ; mais aussi pouvoir réaliser des croisements entre des documents.

Un modèle d'IHM orienté navigation objet

Au départ, il y avait l'idée de disposer d'une interface graphique pour réaliser un système de représentation des connaissances dans lequel il serait possible de naviguer et de réaliser un maximum de choses à la souris. Car, comment proposer un moyen simples et efficace afin de parcourir une information fortement maillée et permettre une manipulation agréable des concepts ?

Un système a été proposé : élaboré suivant des notions « objet » il permettait de remonter facilement vers des typologies communes, (organiser une progression vers des niveaux d’abstraction plus élevés), et de « switcher » sur des thématiques rattachées.

Le modèle exploratoire qui n’a rien de spécialement inventif et peut-être imagé comme suit:

OUI.gif

L’IHM permettant de cliquer sur tous les items et naviguer et de donner la perception du mouvement grâce aux animations. Le stockage des objets déjà parcourus est réalisé dans une pile qui n'apparait pas sur cet exemple.

Pourquoi une représentation « objet » ? En fait, il s’agissait de pouvoir « glisser-déposer » des bulles de connaissances et donc manipuler une ontologie dans son ensemble (attributs et méthodes). Chaque concept étant réduit à un objet manipulable pouvoir réaliser des opérations simples sur ces objets, par exemple : conjonction-sélection de l’information.

Le projet s’est ensuite rapidement étendu à l’analyse d’autres problèmes. Par exemple :

  • Quels liens avec des langages de modélisation classique ? L’exemple vu ci-après est archisimpliste:

ObjetsMeta.gif

  • Comment représenter les actions et les automatiser ?

Il s’agissait de « cadrer » tout ce que j’étais susceptible de représenter ; mais plus encore, ce que le système était capable d’analyser de façon automatique. D’un problème de représentation des connaissances je suis passé à un problème d’analyse des connaissances, or les deux sont extrêmement reliés. C’est quelque chose que peu de gens ont à l’esprit (il me semble).

Modèles à objet et apprentissage

Comment prendre en compte la question de l’apprentissage dans un modèle relationnel classique? Pourquoi un réseau neuronal n'est-il constitué que d'un seul type de relation pondéré et un schéma relationnel "classique" de plusieurs types de relations? Comment passer de l'un à l'autre schéma?

1. La typologie classique des relations permettant de relier des objets entraîne une dichotomie trop importante, (héritage-composition-agrégation-association). Car comment ces relations pourraient-elles évoluer au cours du temps et changer de statut ? Comment passer d’un modèle « relationnel objet » à un modèle dont les relations sont de nature changeante ?

2. Comment tenir compte des contextes de traitement de l’information ? Ou autrement dit, comment faire en sorte que les processus de traitement s’adaptent au cours du temps ?

Pour (1) il s’agissait de trava iller sur la notion de la relation, et finalement se rapprocher d’une vision plus « universaliste », plus proche de celle des réseaux neuronaux (et finalement, peut être plus appauvrie). La relation peut évoluer au cours du temps dans sa nature, allant de la notion de la cohésion forte, (« héritage »), à celle d’une relation simple (« association »). Finalement, il est tout à fait compatible de parler d’une notion de « fonction de transfert » au niveau des noeuds, dont les propriétés sont modifiées par apprentissage et qui peuvent être mises en concordance avec les notions objet :

RelationsTypes.gif

Pour (2) il s’agissait de multiplier les contextes d’analyse, et d’en proposer un pour chaque type de problématique. Typiquement, le mot « voiture » peut s’étudier dans différents contextes : son sens « sémantique », en tant que « nom commun », que « mot », etc. Dans chacun des cas, l’analyse est conduite par les contextes à laque lle l’information est rattachée et cela doit représenter autant de niveaux d’analyse avec leurs méthodologies propres. Par moment, je désigne ces contextes lorsqu’ils sont stables et identifiés dans le temps comme des ontologies. Pourtant, par rapport à une vision « classique » ces ontologies ne sont pas « figées » communiquent avec leur environnement et se modifient réflexivement. C’est pourquoi je parle souvent d’autopoïèses.

Voici un schéma que j’ai réalisé il y a quelque temps pour représenter l’organisation globale du système :

AnalyseOntos.gif

Cette vision est en réalité naïve à bien des égards :

  • Les ontologies ici représentées ne possèdent qu’un seul point d’entrée et de sortie, qui sont leurs portes de communication avec l’environnement. Or, dans les faits, les limites des réseaux peuvent être beaucoup plus floues, c'est-à-dire plus nombreuses et fluctuantes dans le temps. Notons que :
    • Plus le système est fermé sur lui-même, (peu d’entrées-sorties) plus il devient ontologique, et plus il peut-être perçu (de l’extérieur) comme un concept clairement identifiable ; autrement, il devient polymorphe : la perte de conscience de ses « bords », le rendent générateur d’interprétations variées.
    • D’un point de vue interne, la question de l’identification des zones/concepts formant des ontologies est secondaire : les mécanismes de cheminement de l’information et les interconnections du réseau suffisent à prendre en charge une information. Il est toutefois intéressant de remarquer que c’est l’introduction d’une certaine granularité, (donc de concepts), qui permet d’engendrer le processus d’émergence. Sans un découpage minimal du réseau, soit l’introduction de frontières (ou de zones néguentropiques), et une coexistence de contextes variés qui en même temps ne soient pas trop dissemblables, il n’y aurait pas de communication observable à un niveau « meta ».
  • De la même façon, les niveaux conceptuels représentés ici correspondent à un découpage arbitraire. Dans les faits, la séparation entre les niveaux doit être moins évidente. Ainsi, il n’est pas du tout certain que la notion de « niveaux » soit appropriée, mais plutôt celle d’une vision fractale dans laquelle chacune des itérations correspondrait à une spécification non unilatérale, cad non rattachée à une fonctionnalité unique telle qu’indiquée sur le schéma.
  • C’est une vision dans laquelle les ontologies sont considérées comme des agents aux propriétés autopoïètiques. Chacun des agents communique et réagit avec son environnement sur l’information qu’il reçoit, et génère de nouvelles séquences d’informations plus abstraites, (donc potentiellement « appauvries » en quantité d’informations, mais potentiellement plus riche en variété de sens). Ce qui revient à dire que dans un contexte particulier, nous acceptons de résumer une certaine quantité d’informations à une « idée ». L’information qui est générée par chacun des agents est évaluée par d’autres centres de traitements : d’autres agents. En bref, chacun des agents participe à l’élaboration du sens, et travaille suivant un modèle concurrent à une « écologie de la connaissance », ou la structure/l’entité de traitement peut mourir si elle ne sert plus à rien (c'est-à-dire qu’elle ne traite plus l’information avec succès, n’arrive plus à s’adapter). En ce sens, les idées/concepts/agents partagent entre eux de l’information qui est considérée comme une ressource.

La génération de la réponse, l’apprentissage

Comment construire les mécanismes d’apprentissage des connaissances ? Il y a en effet une marge entre l’adaptation nécessitée par les mécanismes du vivants, qui doivent prendre en compte leur propre contraintes physiques/de développement, et l’adaptation/la réponse optimale qu’il doit être possible de fournir avec un système logique.

Chacun des sous-systèmes formant un réseau de connaissances, génère une réponse à un stimulus fournit par le flux d’informations en provenance de l’extérieur ; ils effectuent également des changements sur les flux qui les traverse. Potentiellement, leur réponse peutêtre donnée :

  • Par le résultat d’un calcul direct s’appuyant sur une logique multivaluée (ce qui implique une modélisation mathématique du réseau), et la connaissance des variables entrées permet de réaliser un calcul sur l’état du système en sortie. La valeur donnée en sortie n’est bien évidemment pas de nature booléenne, elle peut exprimer également une incapacité à résoudre.
    • Nous sommes typiquement dans le cadre de la Théorie du Chaos et de la Complexité (TCC), confronté à ce que l’on nomme un « système complexe » dont la résolution est coûteuse d’autant plus que son degré de complexité est élevé. Le degré de complexité d'un système dépend du nombre de ses composants et du nombre et du type de relations qui les lient entre eux. Il y a une citation de Waldrop qui dit : A system is complex if “a great many independent agents are interacting with each other in a great many ways”
      • En général, on ne sait pas prédire par des méthodes « calculatoires » le résultat produit par des systèmes complexes ; du moins, autrement que par une simulation. D’où l’intérêt de travaux qui prennent en compte les zones d'ombres dans les processus d'analyse.
    • Les systèmes complexes sont étudiés dans le cadre d’une approche systémique (lire : http://jfa04.chez.tiscali.fr/gensyst.html ). Quelques propriétés discutables: Emergence, Equifinalité, Indetermination, Interaction, Ouverture, Téléonomie. Quelques exemples de systèmes complexes : la phylogénie, la météo, la croissance des villes, les insectes en essaim, les réseaux d’acteurs en général.
    • Les systèmes complexes font partie de ce que l’on nomme des systèmes « non linéaires » (ou « le tout est plus que la somme des parties »). Il est très intéressant d’avoir une approche et une vision du monde par ce biais.
  • Par une simulation via des algorithmes biomimétiques de type RN ou AG,

Dans tous les cas, il est nécessaire de faire en sorte qu’il y ait une adaptation continue, dans la mesure ou la nature de l’information externe est elle-même mouvante.

Il y a là (et à mon sens) un problème posé par certains systèmes complexes tels qu’ils sont modélisés aujourd’hui : il existe une séparation trop nette entre les procédures de traitement (coordination, régulation, finalisation) et les données elles-mêmes. (par ex, JL Lemoigne et la théorie du système général en 9 niveaux de complexité).

Tel que je propose de le réaliser, les éléments du système doivent être non seulement porteurs de l’information, mais également du moyen de traiter ladite information. Ce parti pris m’a semblé nécessaire, car il fallait être capable de reconfigurer en permanence la structure du réseau, sans que cela provoque une paralysie totale de l’activité. Finalement, c’est comme si l’on proposait de réaliser un système dont les briques ne seraient composées que d’ADN et non pas des ressources nécessaires pour traiter cet ADN ; ou de neurones muni des seul potentiels, sans les mécanismes de transfert de l’information (la « fonction de transfert », peut-être vue comme un opérateur).

Ainsi, l’information même la plus élémentaire doit être considéré comme un processus, c'est-à-dire une unité active, et ce afin de donner une plus grande résilience à l’ensemble.

Un autre intérêt de cette approche consiste à pouvoir faire en sorte que les opérateurs réalisent des opérations réflexives sur eux-mêmes. C'est-à-dire qu’ils soient capables de modifier dynamiquement les règles d’analyse dont ils sont les briques, et le système de représentation.

Il s’agit bien de « meta-programmation ».

Les opérations élémentaires

Ma réflexion est ouverte sur ce point. L’expérience devrait permettre d’ajuster et trouver les actions qui permettent de résoudre la plupart des situations.

J’ai trouvé un document assez représentatif sur le type d’actions que cela pourrait être, (possiblement plus simples), et dans un framework de type « objet ». [Ken Barker], [Bruce Porter] et [Peter Clark]: « A Library of Generic Concepts for Composing Knowledge Bases »

Les axiomes de traitement découle nt de l’usage de ces actions et peuvent être enchaînées ; je reviendrais dessus plus loin.

Simulation

Il me faut du temps pour coder ou déléguer les méthodes algorithmiques. A l’heure actuelle, j’ignore si le système fonctionnera. Il y aura donc un grand nombre d’ajustements à réaliser sur les hypothèses de travail. C’est une approche exploratoire.

Il semble prévisible qu’il y aura un souci majeur concernant le problème de l’optimisation des temps de calcul. Au vu de la quantité de données à traiter, il y a là un aspect qualitatif essentiel à résoudre. Dans le cas contraire, la quantité d’information capable d’être traitée par le système restera limitée (et bien que le système puisse être conçu pour supporter une architecture répartie). Une solution peut-être d’utiliser des logiques non-classiques capables de conjuguer avec des résultats autres que booléens, voire des « non-résultats » pour calculer les réponses de ces systèmes.

La simulation-test que je propose de réaliser consiste en une simple analyse syntaxique de texte et de faire en sorte que le système soit capable de mémoriser l’ensemble des constructions verbales. Le programme doit être codé dans le réseau de connaissances comme proposé précédemment, et les connaissances découvertes prises en charge par d’autres agents dans le réseau cognitif.

Ce n’est pas la tâche la plus complexe à réaliser, et ce dans la mesure, où je n’impose pas de contraintes sur la méthode d’analyse, que celle-ci est implémentée à priori dans le réseau. L’étape suivante consiste à ce que le réseau confirme ou infirme les hypothèses réalisées sur les connaissances et en fonction de techniques d’apprentissage classiques. Puis, la dernière étape, d’observer comment le système peut adapter son propre programme d’analyse pour améliorer le traitement de ces connaissances, et ainsi remonter aux logiques génératrices de « sens commun ». Comment opérer l’amorçage des opérateurs générateurs de « sens commun ». Il n’y a probablement pas une unique solution permettant d’arriver au résultat, comme dans tout les systèmes complexe.

Granularité de l’information

Il semble important que ce système puisse s’adapter aux bases de connaissances existantes sans effort d’intégratio n conséquent. C'est-à-dire qu’il offre la possibilité de réaliser des connecteurs compatibles avec des technologies actuelles telles qu’UML, XML ou encore les BD relationnelles (bien sûr des restrictions s’imposeront en sortie du système Meta).

Ceci étant, il y a une négociation à faire au niveau de l’information contenue au niveau des éléments constitutifs du réseau que ce sont les noeuds. Aujourd’hui, je considère que la connaissance est stockée en tant qu’entité par un simple noeud du réseau. Cette information peut éventuellement être étiqueté par une chaîne de caractères (identifiant syntaxique simple), mais ce n’est pas forcément nécessaire.

Et, un ensemble complexe d’information, un holisme/concept, peut-être représenté par un unique noeud si nécessaire ; il « suffit » de conserver le contexte auquel il est relié.

Les apports de l’éthnométhodologie (ETM) dans le projet

L’approche EM et l’approche systémique sont tout à fait complémentaires. Il est possible de voir l'ethnométhodologie comme une théorie unitaire capable de résoudre les problèmes de représentations en théorie du chaos et de la complexité. Ainsi, lorsqu’on fait de l’ETM on s’intéresse aux mécanismes de la systémique, et vice-versa. Comme les deux interdisciplines ont progressé chacune de leur côté, j’ai été très intrigué de découvrir les apports de l’ETM à mon projet. Par exemple :

  • le rapport aux logiques non standard, (dont la logique tétravalente),
  • le rapport au développement de stratégies, le renseignement, la prospective, et veille

technologique,

  • en IA et sciences cognitives...

Cette approche me permet de réinterpréter certains aspects, de faire naître des réflexions. Il était intéressant de se référer aux axiomes de l’ETM pour cette étude et de voir les liens avec la systémique. Par exemple:

  • Inifinitude des indexicalités : traiter ce point en multipliant le nombre de « sens communs » développés et analysés par la machine. Cette démarche a ses limites sûr. Chaque agent va émettre un retour d’information sur son contexte personnel. Aucune des réponses du système ne doit être rejetée pour un niveau d’analyse donné. L’observateur peut privilégier un type de réponse particulier, (filtrer par rapport contexte implicite de l’utilisateur), ou demander l’ensemble des réponses envisageables d’un point de vue interne au système.
  • Reflexivité : l’information produite par l’agent agit sur son contexte local, et en agit sur lui- même. Il y a une stabilisation dynamique des informations par feed back rétroactif ; qui lui-même est susceptible d’engendrer de nouvelles réactions. Il s’agit d’un équilibre constant avec l’environnement qui peut être brisé à tout moment, (homéostasie)
  • être membre : Un membre est reconnu par le système par la génération d’une instance, c'est-à-dire qu’il est susceptible d’être différencié de l’environnement. La compétence unique de ce membre s’évalue d’abord par rapport à lui-même. Si ce membre, pas suffisamment différencié, il n’est pas forcément conçu comme un concept réellement autonome (autopoïétique) et finira par disparaître.
  • Racontabilité : les systèmes sont en auto-référence par rapport à eux-mêmes.

Je ne fais pas le tour des axiomes de l’EM. Les relations que je propose sont ici approximatives. Il me semble que l’on peut faire une distinction entre des axiomes dont les propriétés sont implicites, (comme ceux précédemment évoqués) et ceux qui nécessitent d’être mis en oeuvre, comme l’indifférence, la conservation, l’évolution (par exemple). Concernant ces axiomes, j’ai du mal à réaliser comment ils pourraient être acquis autrement que par expérience.

La gestion des connaissances et les systèmes de traitement des connaissances (Annexe)

KnowledgeManagement.gif

Du KM, je me focalise en réalité sur des aspects très particuliers qui sont ceux du stockage et du traitement de l’information.

En essayant de faire le tour des différents systèmes de représentation et de traitement des connaissances, ce qui m’a le plus surpris c’est la diversité et l’hétérogénéïté des méthodes et des moyens mis en oeuvre. Que ce soit du plus bas niveau (algorithmique) au plus haut, (celui de la conception de modèles « universelles » ou de la R&D).

Une orientation du projet Meta-Connexions est de tenter de négocier avec les différents acquis pris dans différents domaines, essayer de réaliser des compromis compatibles, et quand ce n’est pas possible, réaliser pourquoi certains choix « analytiques » doivent être écartés.