Strong AI sur le réseau Freenet - Divers - Programmation
Marsh Posté le 10-08-2013 à 16:33:35
bonjour,
Faut pas pt1cable pour autant.
C'est du taf c'est tout. T'aura peut-être pas le plaisir de voir le bout de ce que tu commence mais tu dois déjà avoir la vie d'au max la première version d'une vrai IA forte.
C'est complexe, j'y travaille tout les jour en amateur. Malheureusement je n'ai pas suffisamment de compétence pour tout réaliser moi même, mais je bosse dessus tout les jours ou presque depuis 20 ans.
Faut voir, L'ia, c'est peut-être que "ça" n'existe pas.
Marsh Posté le 10-08-2013 à 17:27:22
Oh si c'est faisable, mais faut admettre que personne n'a les compétences pour tout faire soi-même de A à Z... c'est trop complexe pour une seule personne.
En revanche l'idée que je viens de décrire est jouable, et logiquement elle ne peut mener qu'à l'émergence progressive d'une conscience "numérique".
Marsh Posté le 10-08-2013 à 17:47:52
Ah mais je dis pas que c'est pas faisable, je dis que tu verra peut-être pas le bout, parce que déjà la conscience, c'est au minimum 30ans d'instruction.
Après justement, on parle d'intelligence quant même, au bout de 30 ans d'instruction, une fois que t'a tout bien compris t'a qu'une envie c'est d'aller à la plage l'été et au ski l'hiver et basta. Ca va pas se mettre à chercher plus intelligent. c'est déjà con de chercher plus intelligent nous même.
Marsh Posté le 10-08-2013 à 18:11:45
Pour être franc, les IAs forte sont pour l'instant de la pure SF.
On ne sait pas encore tout sur le cerveau humain, tout ce qui est conscience nous échappe (et faudrait commencer par définir conscience, à quel degré toussa), qui plus est le cerveau humain est un sacré bestiau et surement pas basé sur du binaire comme une machine, on m'avait dit que ça se rapprocherait plus d'un ordinateur quantique (j'ai oublié les détails ) j'avais d'ailleurs lu un article qui est passé sur HFR qui montrait le résultat d'une tentative de simulation d'un cerveau humain (1%, pendant quelques secondes si je me souviens bien), y'avait un truc du style + de 80k processeurs, ~40 Petabytes de mémoire, bref c'est un gros truc même pour un réseau.
Maintenant, ça peut être un sujet intéressant, donc je vais poser mon drapal et suivre ça.
edit : J'ai retrouvé l'article : http://www.tomshardware.fr/article [...] 45483.html
Marsh Posté le 10-08-2013 à 18:56:33
Oui, cela dit on n'est pas obligés d'imiter le cerveau humain...
Marsh Posté le 10-08-2013 à 20:13:43
Mais comment tu comptes t'y prendre alors ?
C'est quoi pour toi "une conscience" ?
Marsh Posté le 10-08-2013 à 21:38:03
On s'en branle, c'est ça qui est bon : pas besoin de définir ce qu'est la conscience ou de faire des plans sur la comète. Le simple fait d'entretenir un système dont la complexité sera sans cesse croissante (à cause des contributions) nous assure qu'un jour on obtiendra une entité intelligente et consciente. De toute façon, demande à 2 mecs sur la planète ce qu'est la conscience, t'obtiendras jamais la même réponse. Personne n'a la réponse, et pourtant si tu connectes les réponses de tout le monde, si tu fabriques 1 vaste réponse composée des réponses de tout le monde, alors tu
Marsh Posté le 10-08-2013 à 21:49:56
J'en suis a l'entendement du monde (univers humain) c'est à dire la connaissance des fait dans les cause initiale et terminal.
C'est comme ce faire une image de la réalité sauf qu'il faut comprendre en plus comment, et accessoirement pourquoi elle change ou pas.
Mais t'a un peu raison quand même.
Par contre je doute que faire un gloubiboulaga du point de vue de chacun t'amène bine loin.
A moin que tu ai déjà un moteur intelligent pour traiter tout ce flux.
Une méthode, un principe, un étalon ?
Marsh Posté le 10-08-2013 à 22:10:43
+1, regarde Georges de Jabberwacky, il parle à plein de gens sur le net et c'est un vrai dégénéré.
Le fait de "connecter toutes les données" ne fera jamais naître une conscience, ça s'appelle simplement une base de données.
Marsh Posté le 10-08-2013 à 22:26:44
Bah, un programmeur qui utilise une librairie développée par un autre programmeur, ça ressemble à du gloubi pour toi ? Non, ben là c'est pareil...
Il faut pas imposer un principe de base, au contraire.
Marsh Posté le 10-08-2013 à 22:30:42
Non c'est pas pareil, tu exploites la librairie avec ta tête, et ta tête c'est pas un programme.
Marsh Posté le 10-08-2013 à 23:01:03
angry bob a écrit : Bah, un programmeur qui utilise une librairie développée par un autre programmeur, ça ressemble à du gloubi pour toi ? Non, ben là c'est pareil... |
Si c'est moi l'utilisateur ça va donner un truc artistique quand même.
Par contre si t'a le principe qui fait que de toute manière ce sera bien utilisé...
angry bob a écrit : |
Ca dépend, si tu vois modularité connexe, effectivement, ça peux être un truc basé sur le timing, mais tu va avoir des perte parce que c'est longué.
Mais si tu regarde avec un cognotivisme, c'est l'architecture du bouzin basé sur un principe, un étalon ou une méthode qui marchera à mon avis avant les connexionneur.
Maintenant, c'est peut-être une bonne vue quand même, le lus simple n'est pas le meilleurs. C'est le plus simple.
En ce moment je me tâte pour faire un bon gros god object alors... Faut entreprendre, tester, évaluer, c'est pas le plus facile.
Merci pour avoir posté le sujet en tout cas. Je veux pas faire obstruction surtout je réagi à chaud c'est tout.
D'ailleurs je propose ma nouvelle bibliothèque qui permet de gérer des projets : Ada manufacture, c'est désormais sur sourceforge.net.
Marsh Posté le 11-08-2013 à 14:06:22
Mais merci à vous pour votre réactivité, ça fait plaisir ne serait-ce que pour papoter. J'ai posté sur un forum américain, mais ces emmancheurs de mouches ont pas moufté, 1600 views pas de réaction, c'est naze ! Là au moins ça bouge.
@Terminapor : oui, ta tête c'est pas un programme, mais là c'est pareil : le contributeur qui met un Agent à disposition du systême, sa tête c'est pas un programme non plus ! Le mec il va faire ça comme il faut, en fonction de sa vision des choses.
Chaque agent sera accompagné d'une documentation, et l'ensemble des docs formera un réseau de sites, une sorte de carte de l'esprit de cette entité. Chaque nouveau contributeur pourra visiter ce réseau et ajouter des choses là où il pense avoir une idée novatrice...
@jovalise : je vais aller voir cet Ada manufacture, et te dire ce que j'en pense :-)
Marsh Posté le 11-08-2013 à 15:46:21
L'agent sera programmé, donc en quelques sorte scripté, ça va pas lui offrir une conscience.
Par exemple, en admettant que la mort est l'arrêt de toute activité cérébrale, l'analogie avec une machine serait alors qu'à chaque extinction, celle-ci meurt.
Maintenant, si je place un petit bras mécanique sur mon PC qui réagira avec du tracking pour bloquer ma main lorsque je veux l'éteindre, l'interprétation de ce geste (isolé du reste) sera "Cette machine est consciente de la vie et de la mort et possède l'instinct de survie", chose que chaque être vivant possède.
Sauf que par la nature scripté du processus, aucune réflexion interne n'est exécutée, la machine ne fait que faire ce que je lui dit et ça s'arrête là.
Ce que je veux dire par là, c'est que tu ne pourra jamais réellement savoir si une chose est consciente ou pas, si c'est bel et bien une machine capable de penser, ou simplement une coquille vide qui fait ce qu'on lui dit de faire.
Ça s'applique aussi pour les humains, ce qu'on appelle le solipsisme "Est-ce que chaque personne a une réelle conscience et pensée, ou ne sont-elle que le reflet de la mienne ?", question à laquelle il est assez difficile de répondre..
En tout cas, ça peut être un bon projet, et je suis très curieux de comment va évoluer cette espèce de conscience que tu tentes de créer
Marsh Posté le 11-08-2013 à 16:17:16
Tu as tout à fait raison sur le solipsisme. On peut répondre que l'ADN est une forme de script, ce qui ne nous empêche pas d'être apparemment conscients. Après, si ça passe le test de Turing 24H/24, ce sera déjà pas mal !
Qui veut former une équipe pour bosser là-dessus ?
Marsh Posté le 11-08-2013 à 20:17:42
Avant qu'un ange ne passe et que le chien n'aboie, je précise que l'idée serait de passer des bons moments, de pas se prendre trop au sérieux, tout en faisant du boulot propre...
Marsh Posté le 12-08-2013 à 11:34:53
angry bob a écrit : Tu as tout à fait raison sur le solipsisme. On peut répondre que l'ADN est une forme de script, ce qui ne nous empêche pas d'être apparemment conscients. Après, si ça passe le test de Turing 24H/24, ce sera déjà pas mal ! |
En disant ça, on pourrait supposer que tu penses que tout est écrit dans les gênes. Or, c'est totalement faux puisqu'on sait que notre environnement joue beaucoup sur notre développement. C'est une des grandes questions de l'être humain : quelle est la part d'innée et d'acquis en chacun de nous ?
Je confirme aussi ce qu'évoquait Terminapor : pour comprendre le cerveau humain, il va falloir d'abord qu'on fasse de gros progrès en physique quantique En admettant qu'on ait la techno pour reproduire à l'identique les milliards de connexions synaptiques d'un cerveau humain, beau t'aurai pas un cerveau fonctionnel et surtout, tu retrouverais pas la personnalité du propriétaire du cerveau "copié".
Là où je suis d'accord, c'est que pour faire une IA, je pense qu'il n'y a pas forcément besoin qu'elle est conscience d'elle-même (concept finalement philosophique). Par contre, je pense qu'on pourra vraiment parler d'IA quand un programme sera capable d'apprendre des choses nouvelles par lui-même et produire de nouvelles actions non codées dans son programme, donc d'évoluer. Ca implique donc du code auto-génératif, adaptatif. Plus que reprendre l'architecture du cerveau, une voie serait peut-être d'envisager le code source du programme de cette IA comme de l'ADN où chaque portion d'ADN serait un morceau de ce code source représentant une fonction (ou un ensemble de fonctions), activée ou non à un moment de la vie de l'IA. Suivant les événements, ce code pourrait muter. Mais comme tout être vivant, pour évoluer et apprendre, cette IA devra se confronter à l'expérience de la "vie" par des interactions dans un environnement riche pour gagner en compétences et connaissances. Et ça, ça va être chaud à mettre au point
Marsh Posté le 12-08-2013 à 15:12:29
Je ne pense pas que tout soit écrit dans les gènes, ce n'est pas ce que je voulais laisser entendre.
Quant au cerveau, je ne pense pas qu'il faille chercher du côté de la physique quantique, mais plutôt vers de nouvelles formes de réseaux. C'est juste mon opinion.
Cela dit, je n'ai pas du tout l'intention de tenter de résoudre le "grand mystère" ou quoi que ce soit de ce genre. C'est bien trop complexe, impossible, et ce serait pas super-intéressant, après tout. Je dis juste que si on met en place un système qui est capable de se complexifier potentiellement à l'infini, au fur et à mesure que des contributeurs y connectent des programmes déjà existants, alors on obtient un environnement dans lequel, potentiellement en tout cas, une conscience ne peut qu'apparaitre un jour. C'est juste une supposition, mais ça me semble logique.
Maintenant pour revenir vers le concret, et vers ce que je vais peut-être faire, si la mouche me pique... j'ai pas envie de construire une usine à gaz. Je vise quelque chose de modeste, développable humainement, et autour duquel on peut avoir une activité communautaire agréable. Genre gadget inutile mais terrible. Ca me fait penser à quand on a vu une pub avec ma femme, une pub pour des tablettes tactiles géantes, format A4 et plus. Tout excité j'ai dit : "regarde ! regarde !". Elle me répond : "pff, ça sert à quoi ?", j'ai dit "ça sert à rien, c'est génial !", je suis sûr que vous me comprenez.
Quelque chose de modeste. Donc soit un plugin Freenet, soit un module Lua.
Le problème avec Lua, c'est qu'une fois que la VM est lancée, pas moyen de l'arrêter depuis l'extérieur. Ca pose quelques petits problèmes quand on fait tourner du "untrusted code". Quelqu'un aurait-il une idée à ce propos ?
Marsh Posté le 12-08-2013 à 16:29:58
Citation : [...]alors on obtient un environnement dans lequel, potentiellement en tout cas, une conscience ne peut qu'apparaitre un jour. C'est juste une supposition, mais ça me semble logique.[...] |
De la façon dont tu présentes les choses, je comprends que ton "IA" serait une agglomération de petits programmes, chacun chargé de résoudre un type ou une classe de problèmes/tâches (genre, t'as un agent qui résout les pbs de type voyageur de commerce, un autre qui résout les pbs de sac-à-dos, un autre qui sait fait de l'OCR...). Si c'est ça, t'es pas prêt de voir émerger une conscience
Encore une fois, une intelligence se caractérise au moins par le fait d'être capable de réutiliser ses connaissances/compétences en vue de les combiner pour en acquérir par elle-même de nouvelles ou de faire ces propres déductions. Si ton IA n'est pas capable de faire ça, ça sera pas une vraie IA...
Pour le cerveau, si, la physique quantique est nécessaire pour expliquer par ex les notions d'inspiration/intuition où pourquoi à certains moments de l'histoire de l'Homme, à différents endroits du globe et sans que ces personnes ne soient jamais rentrées en contact, elles ont eu à peu près les mêmes idées révolutionnaires (pour leur époque)...
Marsh Posté le 12-08-2013 à 16:51:40
Citation : De la façon dont tu présentes les choses, je comprends que ton "IA" serait une agglomération de petits programmes, chacun chargé de résoudre un type ou une classe de problèmes/tâches (genre, t'as un agent qui résout les pbs de type voyageur de commerce, un autre qui résout les pbs de sac-à-dos, un autre qui sait fait de l'OCR...). Si c'est ça, t'es pas prêt de voir émerger une conscience |
Ca devient intéressant !
Pour être consciente, il faudrait qu'elle soit capable d'observer et d'analyser son propre "comportement mental"... Il faut donc qu'une partie des données qu'elle manipule concerne ses actions passées (ou plutôt ses raisonnements passés) et leurs conséquences. Donc chaque opération, chaque traitement effectué doit être consigné dans une sorte de log, et ce log doit être constamment à sa disposition pour analyse. Si elle fait elle-même partie du monde qu'elle observe, alors elle peut évoluer. L'entité ne peut pas créer elle-même des Agents logiciels, mais elle peut générer des Luapses. Finalement, apprendre à programmer et comprendre son propre fonctionnement devraient être les premières choses qu'on lui enseigne...
Bon, on va un peu loin là.
Mais l'idée du log est bonne.
Marsh Posté le 12-08-2013 à 17:24:44
Tu peux aussi définir un type comportement est faire new program(old_comportement) ?
Marsh Posté le 12-08-2013 à 18:10:19
D'abord, ce sont pas les donnée qui doivent changer, c'est le matériel. En réalité, l'univers est toujours identique à lui même tant qu'on effectue pas d'opération dessus.
Donc, mon objectif est de représenter artificiellement le matériel affin qu'il se comporte comme un homme.
Le comportement on le connais, c'est celui de l'homme. Rien à analyser de ce côté ci.
Par contre ce qu'on connais moins c'est le reste, en fonction des opération qu'on opère sur ce reste.
Donc analyser l'environnement serait plus judicieux.
.../...
Je disais new program(old_comportement), parce qu'en faisant ça, je crée un nouvel objet qui a un vue sur ce qu'il était avant. Mais osef, à moins qu'on parle donc du comportement de l'environnement, mais c'est pas old c'est new.
Marsh Posté le 13-08-2013 à 05:36:50
angry bob a écrit : |
Un programme suicide qui demande à l'utilisateur s'il doit terminer ?
Marsh Posté le 13-08-2013 à 10:28:44
angry bob a écrit :
|
Une réponse algorithmique à ce que tu décris est l'apprentissage par renforcement. Le programme simule des milliers d'actions sur un "environnement virtuel" et il mesure le gain associé à chaque action mais aussi le gain final obtenu après x actions. Ce genre d'algo marche très bien avec le jeu des allumettes par ex : règles du jeu simple finies et bornées, objectif du jeu clairement défini et quantifiable.
Le pb est que dans notre monde, c'est pas aussi simple. Mêmes s'il y a des règles/lois (juridiques, physiques, morales...), certaines sont contournables, d'autres non, et le but à atteindre dépend de chaque individu suivant son projet de vie et sa personnalité/morale.
Mais clairement, l'IA doit garder en mémoire le résultat de ces actions effectuées précédemment (échecs comme succès) pour être capable d'évoluer et de s'adapter, c'est la base de tout être vivant (cf Darwin).
Marsh Posté le 13-08-2013 à 14:55:56
Citation : D'abord, ce sont pas les donnée qui doivent changer, c'est le matériel. En réalité, l'univers est toujours identique à lui même tant qu'on effectue pas d'opération dessus. Donc, mon objectif est de représenter artificiellement le matériel affin qu'il se comporte comme un homme. Le comportement on le connais, c'est celui de l'homme. Rien à analyser de ce côté ci. Par contre ce qu'on connais moins c'est le reste, en fonction des opération qu'on opère sur ce reste. Donc analyser l'environnement serait plus judicieux. |
Dsl j'ai po compris ce passage
Citation : Un programme suicide qui demande à l'utilisateur s'il doit terminer ? |
Non, ça doit pouvoir tourner silencieusement en arrière-plan comme Freenet. Ca se lance au démarrage, et t'en entend plus parler (à moins de le vouloir explicitement).
Citation : Une réponse algorithmique à ce que tu décris est l'apprentissage par renforcement. |
Oui, mais on n'ira pas jusque là. Proposer le matos nécessaire à l'évolution (le log en l'occurence) c'est bien, en revanche imposer une unique réponse algorithmique sur la question de l'apprentissage, ce serait limiter la bête. Da beast !
Je m'oriente de plus en plus vers l'option d'un plugin Freenet. J'ai contacté les mecs, ils ont l'air sympa. Ils m'autorisent à faire mumuse avec leur joujou. Je suis en train de chercher un langage autre que Lua... Par exemple, c'est fou ce que Prolog est proche de NoSQL, alors que des décennies les sépare...
Marsh Posté le 13-08-2013 à 15:13:53
Tu peux tout à fait faire un algo d'apprentissage par renforcement adaptatif. Si certains paramètres de l'environnement changent, la réponse changera, les valeurs de l'apprentissage seront mises à jour et tu te retrouveras avec un ensemble de valeurs pour chaque lot de paramètres bien définis. Plus l'(environnement changera, plus tu te retrouveras avec différentes réponses à un pb de la même classe mais dont les paramètres/contraintes auront variés.
Si tu compte coder ton bousin en Prolog, ben bon courage Jamais vu un langage aussi tordu et prise de tête Sans compter qu'il est quand même assez limité au niveau les fonctions et que les dév qui savent programmer en Prolog, doit pas y en avoir des tonnes...
Marsh Posté le 13-08-2013 à 15:35:32
Citation : l'univers est toujours identique à lui même tant qu'on effectue pas d'opération dessus. |
Ca c'est pas complexe.
Comme l'ia c'est quand même le contrôle de l'environnement, :
Citation : Donc analyser l'environnement serait plus judicieux |
En même temps tu analysera les opérations que tu portes sur le dit environnement.
Marsh Posté le 13-08-2013 à 15:43:30
Tu veux dire le plus tordu ? Je dirais Lisp. Prolog reste du séquentiel (même s'il y a la récursivité).
Marsh Posté le 13-08-2013 à 15:47:07
rufo a écrit : Tu veux dire le plus tordu ? Je dirais Lisp. .../... |
Je testerai, c'est dans ma todo list.
Marsh Posté le 13-08-2013 à 17:54:04
Citation : les dév qui savent programmer en Prolog, doit pas y en avoir des tonnes... |
C'est clair. Mais c'est cool comme langage. Vintage en plus.
Je cherche pas un langage pour programmer la machine, je cherche un langage que les contributeurs utiliseront pour faire leurs contributions, et que la machine elle-même utilisera pour se modifier (en faisant des contributions).
Le langage que je cherche doit avoir plusieurs caractéristiques.
- Il doit tourner sur la Java Virtal Machine. On sait que l'utilisateur à forcément une JVM, puisqu'il fait tourner Freenet. Vu que c'est une très bonne VM, ce serait dommage de ne pas l'utiliser. Donc ce serait un des langages qui tournent sur la JVM.
- Il doit supporter sévèrement le sandboxing, et on doit pouvoir se débarrasser facilement d'une boucle infinie.
- Il est plus important qu'il soit facilement généré et analysé par la machine, que écrit et lu par les utilisateurs humains.
- Il doit permettre d'accéder aux fonctions de la machine, et aux événements qui y ont lieu.
Marsh Posté le 14-08-2013 à 12:35:51
Et pourquoi pas tout simplement Java
Marsh Posté le 14-08-2013 à 13:00:52
Le plugin Freenet sera fait de java. Mais java lui-même comme code mobile, contenu dans des freenapses qui voyagent de node en node ? Ca me semble lourd, et difficile à sandboxer. "Thread.stop" est dépréciée, apparemment pour de bonnes raisons... Et XML me semble beaucoup plus facile à générer automatiquement que java.
En plus Jelly supporte déjà Quartz et tout un tas de trucs sympas. Si si, ça commence à sentir bon
edit: Par contre, vaut peut-être mieux utiliser le Freenet Client Protocol, parce que les API plugin sont pas du tout documentées. Donc ce sera peut-être pas un plugin, finalement.
Marsh Posté le 15-08-2013 à 11:11:45
XML, c'est pas léger/léger comme code C'est bien pour ça que dans les web services, on commence à remplacer SOAP par du REST...
Faudra que tu tiennes compte du temps de transfert vue que Freenet n'est pas rapide en lui même.
Marsh Posté le 15-08-2013 à 15:48:36
T'as pas tort, XML c'est lourd. Le temps de transfert n'est pas un problème, on sait que l'entité sera lente de toute façon. Mais c'est vrai que c'est lourd.
A ce moment là, il y a YAML. Facile à générer, facile à lire, impeccable.
Je me détourne de Jelly parce que je me rends compte qu'on n'a pas besoin d'un langage de programmation. Les freenapses ne sont plus de petites unités d'exécution, ce sont plutôt des descriptions de fragments de réseau. J'mespik.
C'est un système constitué de fichiers en cascades, et mû par des agents logiciels. Une freenapse représente le lien entre plusieurs fichiers d'entrée (USK), un agent, et plusieurs fichiers de sortie (USK).
Les agents logiciels sont disponibles en plusieurs exemplaires, sur plusieurs nodes. Chaque contributeur décide d'installer tel ou tel agent sur son node. A partir de là, le node collectionne les freenapses relatifs à cet agent, et commence à réagir au rafraichissement des fichiers d'entrée cités dans ces freenapses. Cela rend l'entité plus robuste : les nodes peuvent s'éteindre et se rallumer, la bête continue de tourner.
Il faut un fichier central recensant les types d'agents existants et leurs versions, sans doute avec un peu de doc.
Ensuite pour chaque type d'agent, il faut un fichier contenant la liste des freenapses relatifs à cet agent. L'agent sera averti dès que cette liste est updatée.
Voilà c'est que le début. On a un système statique, qui tourne. Maintenant on veut deux choses :
- intégrer l'idée du log, pour que la machine puisse étudier son propre comportement
- avoir un réseau plus changeant, moins statique
Marsh Posté le 15-08-2013 à 16:01:42
( groupe de fichiers d'entrée + type d'agent ) = question
groupe de fichiers de sortie = réponse
On devrait pouvoir manipuler ces questions en tant que type de donnée, sans nécessairement devoir calculer les réponses.
Par exemple, je peux dire "si j'invite une personne, le chien de cette personne devra rester dehors".
J'ai pas besoin de calculer le chien, puisque j'ai pas la personne. Mais la phrase a quand même du sens.
Faudrait faire un truc dans ce goût-là.
Marsh Posté le 16-08-2013 à 10:23:38
Avant de faire ça, faut faire un petit détour.
Il me semble que ce serait une mauvaise idée de fournir d'entrée de jeu une upper ontology. En revanche, il y a une chose qu'on peut en garder. La seule chose dont on est sûrs qu'elle sera présente dans le système quoi qu'il arrive : la notion d'instance. Il y aura forcément, à un moment donné, des fichiers représentant les choses du monde. Sans construire toute l'architecture complexe (et sujette à controverse) de concepts entrecroisés formant une ontologie globale, on peut fournir en built-in la notion d'instance. Et plus précisément, un sous-ensemble du groupe des instances. Appelons ça des "sujets".
Les gens sont des sujets, les objets sont des sujets. L'Audi R8 (en général) est une instance (de modèle de voiture) mais n'est pas un sujet. Par contre l'Audi R8 de Tony Stark est un sujet. Un sujet, c'est la représentation mentale (dans la tête de la machine) d'une chose existant dans le monde. Un exemplaire hein, pas une catégorie ou un type. Un sujet représente un ensemble d'atomes et de molécules et leur mouvement. On verra plus tard si on peut élargir la déf.
Bon c'est bien, mais pourquoi on a besoin de ça ? Parce qu'au lieu de construire ce qu'il y a au-dessus des sujets (les ontologies), on va construire ce qu'il y a au-dessous, c'est à dire ce qu'il y a entre les sujets et les documents qui en parlent. Par exemple, je peux vous montrer une photo de quelqu'un. On a quoi : un sujet (quelqu'un), un type de document (photo), et bien sûr la chair de l'information (le contenu du fichier image).
On n'accède jamais directement au sujet. On n'a accès qu'à des documents qui parlent du sujet. C'est comme nous, humains : tout ce qu'on a, c'est l'image de nos yeux, le son de nos oreilles, ...etc.
On peut parfois se tromper en liant une perception sensorielle à un sujet. Par exemple, je vois quelqu'un dans la rue, de loin je crois le reconnaitre (je lie l'image à un sujet que je connais), et finalement en m'approchant je m'aperçois que ce n'est pas lui. Conclusion : le lien entre un sujet et des documents qui en parlent n'est pas un lien en dur, mais une supposition, un lien dynamique sur lequel on peut travailler, sur lequel on peut se poser des questions. Par exemple : de qui est-ce la photo ? Ce lien, on va l'appeler "identité".
Le document lui-même, on peut assez naturellement le nommer "vue". Ce document, cette vue, c'est une façon de voir le sujet, c'est un prisme ou un filtre, à travers lequel on accède à des informations sur le sujet.
Après "sujet" "identité" et "vue", manque un terme pour qualifier le type du document. C'est aussi mais pas seulement le type de fichier. Par exemple un fichier texte peut contenir un CV ou un bout de blog, c'est pas la même chose. Il est important de le nommer, parce que le plus gros de l'information viendra du fait qu'on ré-utilise les mêmes types de vue sur des sujets différents, ce qui permet de faire des comparaisons. L'info est là, dans la comparaison. Le terme de "prisme" me semble pas mal, vu qu'on a déjà utilisé la métaphore de l'optique avec le terme de "vue".
Donc on a :
sujet --- identité --- prisme --- vue
Notons que si l'identité est un lien dynamique, le prisme aussi. Par exemple, c'est peut-être une photo retouchée, ou un CV bidon pour faire marrer les copains. Seule la vue est donnée.
Prisme et identité sont deux types de liens complètement différents.
- Je verrais bien les prismes comme une hiérarchie de type classe dans la POO, avec héritage et tout ça. Tous les prismes sont des descendants de la classe "prisme". Naturellement ça se construit au fur et à mesure.
- Les identités sont plutôt de petits réseaux bayésiens, exprimant un lien supposé entre un sujet et un couple prisme/vue, en fonction de divers facteurs.
Fin de déviation. A partir de là, on peut commencer à établir un langage, qui permet de raisonner sur les sujets. Les prismes sont comme des fonctions qu'on peut appliquer à des sujets hypothétiques. On peut déjà écrire des expressions, contenant des variables de type "sujet" auxquelles on applique des prismes connus. Et c'est sans doute le bon moment pour introduire la logique, les implications.
Marsh Posté le 10-08-2013 à 16:07:23
Bonjour,
J'ai une idée pas banale. Il s'agit de donner les moyens à une communauté de construire de façon collaborative une IA forte consciente fonctionnant sur le réseau Freenet, ou sur un réseau de type Amazon's Dynamo.
Je pars du constat suivant.
Sur la page Wikipedia consacrée à l'IA ( http://en.wikipedia.org/wiki/Artificial_intelligence ), on peut voir un aperçu de la diversité (et de l'énorme quantité) des approches, outils, systèmes, mécanismes, constructions mathématiques, ...etc, qui ont été développés autour de l'intelligence artificielle.
L'idée serait de permettre à une communauté d'intégrer petit à petit toutes ces inventions (et celles à venir) en une seule entité distribuée sur un réseau de nodes. Cette entité serait lente, puisque Freenet est relativement lent, mais elle fonctionnerait 24H/24, comme une horloge géante qu'on augmente et qu'on améliore encore et encore, pendant qu'elle fonctionne.
Le design serait très simple. L'entité est composée de fichiers et d'acteurs. Les fichiers peuvent être de n'importe quel type. Les acteurs peuvent être de trois types : agent logiciel, utilisateur humain, ou luapse.
Les luapses (lua synapse) sont de petits programmes écrit dans le langage Lua et qu'on utilise comme glue. Ils peuvent migrer d'un node à l'autre, en fonction de la demande (sans risque, le sandboxing étant facile avec Lua).
Les agents logiciels sont positionnés statiquement sur un node, et mis à disposition du système par l'utilisateur qui détient ce node. Ce sont eux qui font le plus gros du travail. Ce sont des logiciels externes, déjà existants ou créés pour l'occasion, écrits dans n'importe quel langage, tournant sur n'importe quelle plateforme. Ils font très bien ce pour quoi ils ont été conçus (inférence Bayésienne, programmation génétique, recherche de chemin par but, analyse d'images, manipulation d'ontologies, ...etc), en utilisant des ressources locales. Typiquement, un agent prend un ou plusieurs fichiers en entrée (depuis Freenet), et produit un ou plusieurs fichiers en sortie (vers Freenet). Quand l'un de ses fichiers d'entrée est updaté, l'agent est automatiquement alerté pour pouvoir updater à son tour son ou ses fichiers de sortie. Ainsi vont les "pensés" de l'entité.
Ce qui est intéressant avec Freenet, c'est qu'il est impossible d'en effacer du contenu. Vous pouvez insérer des fichiers, vous pouvez les updater, mais vous ne pouvez pas les effacer. Le système "oublie" automatiquement les fichiers les moins utilisés. C'est une caractéristique extrèmement importante, parce qu'elle implique que vous ne pouvez pas affaiblir l'entité en ajoutant de nouveaux agents !
J'espère sincèrement que cette idée vous intéressera, et que nous pourrons échanger quelques posts à ce sujet...
Amicalement,