Aller au contenu



Search Articles


View Other Content



Derniers commentaires


- - - - -

La vraie IA... A ne pas confondre avec la fausse !


L'informatique, une méthode qui n'a pas évolué depuis un demi-siècle

Plus une machine - ou un être vivant - est équipé de capteurs, plus il lui faut d'intelligence pour les exploiter. Ou… plus une machine dispose d'intelligence, plus elle peut s'équiper de capteurs. Choisissez. C'est la poule et l'œuf.
Ce que l'homme a trouvé de mieux pour donner de l'intelligence à une machine c'est, au milieu du 20ème siècle, l'informatique avec ses ordinateurs animés par des programmes. Ceux-ci contiennent une connaissance humaine et la font "tourner" pour obtenir des résultats sans passer par des cerveaux humains. Un programme, c'est une sorte de mécanisme qui produit de l'information. Le problème, c'est que la façon de le produire est toujours la même depuis l'aube de l'informatique ! Un programme, c'est un liste de procédures chargée de résoudre tous les cas qui se présenteront : le procédural. Comme l'ordinateur est considéré comme un idiot (ce qu'il est très loin d'être !), le développeur informaticien se charge d'apprendre la connaissance qui devra être automatisée (l'analyse) puis il imagine un à un tous les cas qui se présenteront et raisonne pour coder la solution à chaque cas. Le codage est nécessaire pour ne pas faire des programmes inutilement gigantesques. Hélas, il réclame une formation poussée aux langages dits informatiques : Java, C++, Pascal, etc. C'est ainsi que toute l'informatique, encore aujourd'hui, est entre les mains d'une "catégorie de personnel" qui protège jalousement son pré-carré…

Au début des années 1970, les chercheurs informaticiens de la planète se sont passionnés pour l'intelligence artificielle, un peu comme une spéculation intellectuelle. Ils imaginaient qu'on pourrait simplifier définitivement les programmes en leur donnant la structure suivante :
1) un "moteur" universel hyper fiable qu'on n'a pas le droit de modifier et
2) une base de connaissance exprimée sous forme de règles SI.. ALORS… en langage courant qui, elle, est le programme. Le moteur raisonnerait sur la base de connaissance pour exécuter le programme, comme le fait un humain qui raisonne à partir de ce qu'il sait. Le programme devenait ainsi une simple base de données... Donc quelque chose de très fiable et facile à modifier. Avec un avantage de plus : il n'avait pas besoin de toutes les données nécessaires pour fonctionner car il savait dialoguer avec ses utilisateurs et leur réclamer pas à pas les données manquantes. Les Américains développèrent ainsi Mycin en 1971, un système expert d'aide au diagnostic médical des maladies du sang. Ce fut probant en partie ! Car en fait, il fallait piloter le moteur pas à pas pour qu'il puisse exécuter correctement les règles dans le bon ordre (utilisation de mérarègles), ce qui imposait le recours à des informaticiens encore plus diplômés ! Les "cogniticiens". Depuis cette date, rien n'a progressé dans le domaine de l'IA. Il faut toujours des informaticiens spécialistes de l'IA pour mettre de l'intelligence dans quelque chose… Cela indispose nettement les industriels mais ils n'ont pas la compétence pour résoudre le problème. Cela n'indispose pas du tout les développeurs informaticiens qui ont la compétence mais ne s'y intéressent pas pour des raisons que vous devinez sûrement… Cela fait donc quarante ans qu'une bonne idée n'a pas progressé d'un millimètre ! C'est assez unique dans l'évolution des technologies, vous ne trouvez pas ?

En fait, en 1985, l'université française avait concrétisé l'idée testée dans Mycin. Elle avait mis au point le 1er système expert universel, doté d'un moteur qui raisonne sur une base de connaissance en clair: "Pandora". Je fus le seul à le remarquer et j'en fis l'apologie dans un article de Science et Vie en mai 1991. Je fus incendié par l'AFIA, l'association des universitaires spécialisés en IA ! Ce qu'ils avaient fait là, affirmaient-ils, c'était nul ! Quant à moi, j'étais un charlot ! Ayant bien vu qu'il y avait un marché, j'ai donc créé ma société, repris leurs idées, développé une méthode de recueil automatique des savoir-faire d'experts et développé un moteur faisant un vrai raisonnement humain sophistiqué. J'ai baptisé cette nouvelle technologie "La Maïeutique". Et, grâce à elle, j'ai réalisé en 1986 le 1er système expert conversationnel utilisé devant le grand public, à Paris et Rennes, pour la Banque de Bretagne. Baptisé "Joséphine", il était très gros (plus de 1000 règles), et fut développé par un cadre non informaticien que j'avais embauché pour l'occasion (Michel Le Seac'h). Cette réalisation, ainsi que les suivantes, me valurent au cours des années des centaines d'articles dans la presse. J'étais une célébrité. Dans le privé ! Dans le public, pas un mot sur mon invention, sur mes clients, sur ma société, sur mes théories. Pas une ligne sur moi dans les ouvrages scientifiques ou les revues officielles. J'étais même interdit de parole dans les colloques IA organisés par les universitaires (à nos frais…). Heureusement, il restait les colloques privés où j'étais accueilli à bras ouverts.

Résultat : vous ignorez que l'IA a percé il y a 25 ans... Depuis, je n'ai cessé d'améliorer mon procédé. Produire du système expert, pour moi, c'est de la routine. Pour mes clients aussi. Mais je dois toujours vaincre mon incognito forcé, les réticences des services informatiques et, le plus extraordinaire, les attaques de l'État lui-même…


La véritable IA, c'est celle qui raisonne !

La véritable IA, c'est celle qui raisonne ! Toute personne qui vous dit le contraire est un charlatan. C'est avec le raisonnement que le développeur programme, c'est avec le raisonnement que le système expert programme …à sa place. Le raisonnement est la 1ère conquête du vivant. C'est lui qui sert à rester en vie, à se nourrir et à sa reproduire. C'est donc le 1er atout à mettre dans un programme. Et tant pis si derrière il n'y a plus de procédural et donc plus besoin d'informaticien… On ne versera aucune larme : l'informaticien est le métier qui a le plus tué les métiers des autres !

Si vous discutez avec lui, il vous dira que ce qu'un système expert ou un Conversationnel fait, il sait le faire aussi bien avec un langage procédural. Il disait aussi il y a 20 ans qu'il pouvait tout programmer en assembleur, mais il a changé d'avis depuis… Il est vrai que, quelque soit le langage informatique, on peut virtuellement tout programmer avec. Mais on ne peut nier le progrès ! Regardez ci-dessous les défauts évidents de la façon classique de programmer par rapport à l'IA que j'ai mise au point, la Maïeutique.


Les 9 défauts du procédural

La liste qui suit, vous ne la trouverez nulle part… Il faut être non informaticien pour oser la commettre. J’ai mis l’Intelligence Artificielle raisonnante en parallèle (la Maïeutique) pour que vous puissiez mieux mesurer à quel point ses avantages sont énormes. Ils sont au nombre de huit :

  • Le procédural nécessite la présence d’un intermédiaire
  • il représente la connaissance de façon illisible pour le commun des mortels
  • il faut coder tous les cas qui se présenteront sans en oublier un seul
  • le programmeur fait un boulot de dingue …et il en est fier
  • pendant tout le développement, l’expert ne voit pas son programme !
  • on ne touche plus au programme une fois écrit
  • impossible de certifier la fiabilité du programme écrit (théorème de Goedel)
  • impossible de modifier un programme en cours d’utilisation
  • impossible d’aborder certains domaines d’applications


1er défaut : Le procédural nécessite la présence d’un intermédiaire

Entre l’expert qui détient la connaissance à mettre dans le programme et les utilisateurs qui utiliseront le programme, il y a un intermédiaire : le programmeur. C’est lui qui est chargé d’écrire le programme. C’est lui - ou un autre - qui sera par la suite chargé de le faire évoluer. Comme il faut tout lui expliquer, c’est long et fastidieux. De toute façon, il ne peut pas comprendre une expertise qui a demandé des années à être acquise par l’expert. ça ne l’empêche pas, par un amour-propre compréhensible, de prétendre le contraire, ce qui a pour effet d’envenimer fréquemment les relations informatique-services utilisateurs…

Avec la Maïeutique, c’est l’expert qui écrit l’application et la fait lui-même évoluer, en collaboration avec les utilisateurs. Une fois terminée, il la remet au service informatique pour intégration dans le système d’informations. Le poids de l’erreur dans les logiciels repose désormais sur les experts (qui s’en accommodent très bien…). Les informaticiens sont libérés des tensions avec les services utilisateurs. Ils deviennent des collaborateurs « normaux » parlant le langage de tous.


2ème défaut : Le procédural représente la connaissance de façon illisible pour le commun des mortels

Un programme, ce sont des pages de « code » cryptées dans un langage hermétique qu’on ne peut comprendre qu’après avoir suivi une longue formation. Même le programmeur ne s’y retrouve pas quand il remet le nez dans un programme qu’il a écrit il y a plusieurs mois… Et je ne parle pas du malheureux qui doit se replonger dans un programme écrit par un autre !

La Maïeutique présente, elle, un savoir-faire ET une connaissance humaine en langage courant, qu’elle sait « faire tourner » comme du procédural bien écrit. Avec elle, le programme se réduit à une petite base de données toute bête : une « base de connaissances ». C’est quelque chose d’infiniment plus concis et clair que du procédural.


3ème défaut du procédural : il faut coder tous les cas qui se présenteront

Que fait l’expert quand il travaille avec sa connaissance : il raisonne sur LE cas qui se présente et il le résout. Après, il l’oublie et passe à un autre ou à autre chose. Ce n’est pas fatigant. Que fait le programmeur une fois qu’il a compris la connaissance de l’expert à mettre dans le programme : il raisonne sur l’ensemble des cas qui peuvent se présenter au programme et il code chacun d’eux ! Quand on sait qu’il peut y en avoir des centaines ou des milliers, parfois beaucoup plus, on comprend qu’écrire un programme réclame beaucoup de temps.

Que fait le système expert de type Pandora, lui ? Il raisonne sur LE cas qui lui est présenté, il le résout et il l’oublie. Exactement comme l’expert. Pourquoi le programmeur se casserait-il les pieds à imaginer puis créer une procédure traitant de tous les cas possibles si le programme peut inventer immédiatement la solution pour chaque cas ?


4ème défaut du procédural : le programmeur fait un boulot de dingue …et il en est fier

Non seulement le pauvre programmeur est obligé de comprendre une expertise qui n’est pas la sienne, non seulement il doit imaginer tous les cas possibles, mais encore il doit suivre une procédure complexe s’il veut être sûr que son programme tourne et soit accepté : analyse, ordinogramme, codage, tests/modifications. Plus toutes les étapes nécessaires à l’intégration définitive du nouveau programme dans le système informatique : présentation du programme aux utilisateurs, prises en compte des demandes de modifications des utilisateurs, modifications de l’ordinogramme, re-codages, re-tests/modifications, re-présentations du programme aux utilisateurs, etc. Je dis « etc. » car ces allers-retours entre l’utilisateur non satisfait du programme et le bureau du programmeur peuvent se compter par dizaines. Et je ne parle pas du travail de mises à jour sur les programmes, tâche encore plus complexe qui prend un temps énorme. En effet, le programmeur doit relire des pages de codes dont il ne se souvient plus et, pire, que souvent il n’a pas écrites lui-même. Cette re-programmation est une tâche très stressante pour lui : il s’agit de modifier un outil maintenant fiabilisé et utilisé couramment par des gens qui ne peuvent s’en passer et il sait d’avance qu’il va le leur livrer avec des bugs... Bonjour l’ambiance !

Ceci dit, il est conscient que personne ne peut mettre le nez dans un tel travail, que les utilisateurs n’y comprennent rien et qu’il est de ce fait incontournable… L’évolution des langages informatiques dans le temps est le signe tangible qu’en matière d’informatique, le pouvoir n’est pas entre les mains de ceux qui l’utilisent. Tout indique qu’il faut plus longtemps aujourd’hui qu’hier pour développer un programme et que ça s’aggrave sans cesse. Un langage comme Java, très récent, plébiscité par la communauté des informaticiens au point que la majorité des projets nouveaux sont prévus avec lui, réclame davantage de temps en développement que le langage « C » plus ancien ! Les services utilisateurs d’entreprises se rendent bien compte de cette dérive et font de plus en plus pression pour maîtriser eux-mêmes les développements. Encore faudrait-il qu’ils soient tenus au courant des progrès réalisés pour eux…

Avec la Maïeutique, l’ordinateur fait déjà 50 % du travail, ce qui est un gage de rapidité et de fiabilité. L’expert n’a à réfléchir que sur son savoir-faire, pas sur le futur programme. Les utilisateurs et lui voient le programme s’élaborer sous leurs yeux. Ils peuvent rectifier au fur et à mesure si nécessaire. Il n’y a plus besoin de la présence du programmeur et de toutes les étapes imposées par Le procédural. Ca va au moins 10 fois plus vite. La mise à jour des programmes est encore plus facile que le développement, la connaissance étant déjà structurée dans un certain nombre de pages identifiées. Sauf que là, ce n’est plus l’ordinateur qui guide l’expert, c’est l’expert qui guide l’ordinateur : il cherche la page où se trouve la partie de son savoir-faire à modifier, la lit (ce sont des arbres de décision écrits en langage courant, vous allez voir plus loin) et modifie l’endroit désiré. L’ordinateur re-génère l’ensemble du programme, en quelques secondes, et fournit un nouveau programme totalement fiable. Avec la Maïeutique, l’ordinateur est au service de l’utilisateur, pas l’inverse !


5ème défaut : pendant tout le développement, l’expert ne voit pas son programme !

Quand l’expert (ou un utilisateur) demande la réalisation d’un programme, il ne peut dire en général au programmeur quelle tête ce programme devra avoir à la fin. Ce n’est pas son métier d’imaginer le programme en train de tourner alors qu’il ne sait déjà pas de quoi est faite sa connaissance ! Quant au programmeur, bien qu’il soit expert en informatique, il ne peut pas lui dire non plus à quoi ressemblera le programme à la fin : il n’a aucune idée de l’expertise à recueillir. Son métier c’est informaticien, pas expert-comptable ! Il ne sait pas non plus comment les collègues de l’expert travaillent actuellement avec cette expertise et donc il ne peut décrire le programme qu’il serait bon de leur proposer pour que ce soit mieux. C’est un dialogue de sourds. Tout ce petit monde n’aura une idée du programme que …lorsqu’il sera terminé ! C’est à dire bien tard. Et là, les utilisateurs ne seront pas d’accord, l’expert dira qu’il y a des erreurs …d’où les allers-retours.

Avec la Maïeutique, no problem : le programme est développé dans le service concerné, par les personnes concernées, qui le voient évoluer sous leurs yeux et peuvent le tester en permanence « pour voir ». Ils le rectifient ensemble autant de fois que nécessaire. Quand il est fini, il est fini. Il n’y a plus qu’à le transmettre au service informatique pour intégration avec les autres programmes existants.


6ème défaut du procédural : on ne touche plus au programme une fois écrit

Il faut tellement de temps pour modifier un programme et sa fiabilité devient alors tellement incertaine qu’on ne le modifie que le plus rarement possible : tous les 6 mois, tous les ans… Un tel délai ne convient en général pas aux services utilisateurs, mais c’est comme ça…

Avec la Maïeutique, tous les programmes peuvent être modifiés quotidiennement s’il le faut. Ce sont des bases de données, ce qu’il y a de plus fiable et de plus facile à modifier en informatique. Du coup, les mises à jour peuvent être quotidiennes.


7ème défaut du procédural : impossible de modifier un programme en cours d’utilisation

Avec le procédural, on ne sait pas dans quel état sont les données ni où en était la procédure si on remplace brutalement la version courante du programme en cours d’utilisation par une version ultérieure. L’exécution ne peut donc repartir du bon endroit. Les utilisateurs devront recommencer le travail, en plus sans savoir à partir de quand ! C’est pourquoi la version d’un programme procédural n’est remplacée par une autre que la nuit, lorsque tous les utilisateurs dorment, ou alors pendant une période où leur utilisation est interdite : « Désolé, cette application est en cours de maintenance, veuillez attendre SVP… ».

Au contraire, un système expert de type Pandora peut être remplacé par une nouvelle version en cours d’utilisation, de la même façon qu’une base de données …puisque c’en est une ! En effet, ce qui évolue constamment dans un système expert, c’est sa base de données de connaissances : la base de règles. Sur Internet, ce type d’opération est fréquent : on l’appelle « mise à jour de bases de données en temps réel ».


8ème défaut du procédural : impossible de certifier la fiabilité du programme écrit (théorème de Gödel)

Le procédural oblige à tout recoder en repartant de zéro, ou presque. Même dans les langages objets, conçus pour éviter le codage au maximum, la partie essentielle, l'expertise, reste à coder par des "méthodes". Ce qui rend le concept objet encore plus complexe à mettre en œuvre que la programmation classique. Mais il y a autre problème avant même le codage : l'incomplétude. Celle-ci est le pire ennemi de l'analyse en informatique : des voies de codage sont oubliées par erreur humaine et on ne s'en apercevra souvent que trop tard, quand le logiciel est en exploitation depuis des mois ou des années. D'où de gros soucis d'exploitation, surtout si le programmeur du logiciel en cause n'est plus là pour rectifier le plus rapidement possible.

L'IA raisonnante, elle, ramène tout programme à une base de données simple, la forme logicielle la plus ancienne, la plus simple et la plus fiabilisée : une base de règles. Celle-ci est exploitée par un moteur raisonnant de 900 Ko, toujours identique donc hyper-fiabilisé avec les années d'utilisation. Pour les applications batch, il peut même être réduit à sa plus simple expression : sa seule tâche consiste à tester l'une après l'autre les règles pour voir si elles peuvent produire une conclusion à partir des faits initiaux et des faits déduits obtenus avec les règles précédentes, puis de reprendre au départ avec les conclusions obtenues pour tester les premières règles avec les connaissances fraîchement acquises par les dernières. Il s'arrête quand aucune production de faits nouveaux n'a pu être obtenue sur un nouveau cycle à travers toute la base.

Avec la Maïeutique, la complétude est automatiquement vérifiée puisqu'elle matérialise visuellement toutes les voies possibles du raisonnement et détecte celles qui ne mènent pas à la conclusion voulue par le programme. Elle en profite pour faire d'autres vérifications : détection des contradictions logiques, test partiel de l'expertise métier, de la cohérence des types, des expressions obsolètes, des expressions utiles mais inexploitables (non demandables et non déductibles), etc.


9ème défaut : impossible d’aborder certains domaines d’applications

Aujourd’hui, à cause de tous ces défauts, plusieurs domaines d’applications ne sont jamais traités. Ceux où règne « l’explosion combinatoire » : le nombre de cas à traiter dans le programme devient tellement énorme que l’on sait d’avance - théorème de Gödel oblige - que l’on n’arrivera jamais à un programme fiable. Ceux ensuite des applications qui évoluent fréquemment pour ne pas devenir obsolètes, ce que le procédural ne sait pas faire vu le temps qu’il met déjà à réussir une mise à jour fiable (6ème défaut).

Ces domaines d’applications sont les suivants :
• les Conversationnels car 1) c’est le règne de l’explosion combinatoire et 2) ils reposent sur des connaissances pointues sans cesse affinées et il faut les faire évoluer constamment
• La simulation logique d'idées, l'aide à l'invention comme nous le faisons dans notre tête en déroulant un raisonnement pour tester une idée ou simuler un système et voir s'il marche.
• les aides au diagnostic et les aides à la décision, sujettes à l’explosion combinatoire et qui doivent s’améliorer sans cesse en fonction du retour d’expérience, les logiciels d’aide à la configuration de machines complexes
• les didacticiels, puisqu'un système expert raisonne sur une vraie connaissance lisible par tous et peut expliquer pas à pas son raisonnement …jusqu'à signaler les contradictions !
• les logiciels constamment évolutifs, car la maintenance est le problème n° 1 de l'informaticien contrairement à la Maïeutique qui s'en charge facilement puisque tout est écrit en clair
• le diagnostic de panne, un domaine à part où la logique est reine avec l'utilisation de la "contraposée", un raisonnement très puissant.


JEAN-PHILIPPE DE LESPINAY



BIBLIOGRAPHIE
• Article Science et Vie mai 1991 : "Du zéro pointé au Zéro Plus" de Jean-Philippe de Lespinay, Science et Vie mai 1991
L’IA raisonnante Automates Intelligents (déc 2008) :
Les centres d’appels et le Conversationnel
• Définition de l'IA et du système expert chez Larousse
Joséphine 28/01/87
Joséphine opérationnel ? Oui, mais…
Les Echos du 11 juillet 1986
• Ouest France, Miao, (diagnostic de panne)


19 Comments

Passionnant ! Mais toute cette aggressivité et ces sous-entendus, c'est épuisant, non ?
Si l'on est pas un expert comme moi, c'est difficile de voir ou "Maïeutique" se situe. Est-ce que c'est un langage similaire à prolog par exemple ?

"8ème défaut du procédural : impossible de certifier la fiabilité du programme écrit (théorème de Gödel)"

C'est faux et on dispose maintenant d'assistants de preuves (comme Coq) pour prouver qu'un programme fait ce qu'on lui demande (bien sur il ne faut pas se tromper sur sa spécification ie il faut bien formaliser le comportement attendu).

D'autre part l'article présente l'informatique comme deux mondes distincts, le procédural et l'ia.
Amha vous oubliez quand même certaines catégories de langages comme le fonctionnel (cf ocaml ou haskell) ou encore les langages distribués comme erlang (qui grâce a des concepts comme le "hot code swapping" contestent l'argument "impossible de modifier un programme en cours d’utilisation").
Lol ! Désolé Luj pour cette agressivité que vous lisez entre les lignes. Elle est le résultat de 25 ans de combat contre les universitaires informaticiens qui n'ont cessé de faire le black-out sur mon invention. Pour tout vous dire, ils ont réussi à me faire déposer le bilan trois fois pour que je ne puisse la commercialiser ! Quand vous serez dans le même cas, vous comprendrez...

De plus, je suis absolument contre le politiquement correct. Un chat est un chat et il faut le dire, sinon on retombe dans la langue de bois.
Robocop :

1) La Maïeutique n'est pas un langage, c'est une méthode pour extraire automatiquement les règles métier en langage courant ("naturel"). Lesquelles sont directement exploitables avec un moteur capable de raisonner.

2) Oui il existe théoriquement des assistants de preuves mais d'abord ils représentent du travail et ensuite qui les utilise ? Et en quoi ça résout le problème de fiabilité ? Derrière il faut résoudre le bug. Même un langage comme Delphi, vendu partout dans le monde, contient des bugs ! A mes yeux les outils comme Coq relèvent encore de la théorie sinon tous les développeurs les utiliseraient. Alors qu'avec la Maïeutique, un programme est constamment fiable dès la 1ère minute de développement (puisque ce n'est qu'une base de données).

3) Les langages fonctionnels, déclaratifs, distribués, etc. sont des avancées théoriques. Elles ne font pas partie de la panoplie courante des développeurs actuels faute d'efficacité réelle. Avec la Maïeutique, je parle d'une techno qui est utilisée par les non informaticiens depuis 20 ans. La programmation par tous accessible en langage courant, c'est sûrement autre chose que des langages seulement réservés aux informaticiens, aussi récents ou sophistiqués soient-ils.

4) je suis d'accord que modifier un programme en cours d'utilisation c'est possible, mais cela demande toute une techno spécifique. Alors que mettre une base de données à jour à chaud, sur Internet par ex, c'est l'enfance de l'art.

Par ailleurs, je ne suis pas informaticien ni un ami de Wikipedia. Donc, je ne peux parler technique informaticienne et je ne comprends pas "amha"... C'est parce que je ne suis pas informaticien que j'ai pu inventer la Maïeutique. Je rédigerai d'ailleurs bientôt un article sur cette techno où j'expliquerai son fonctionnement.
Je lirais attentivement ton second article car pour l'instant je ne vois pas trop comment ce logiciel fonctionne.
Concernant Coq, lorsque le logiciel te dis "ça y est c'est prouvé" et si tu ne t'es pas trompé dans la spécification du programme à prouver, alors il n'y aura pas de bogue. Ce logiciel commence à être utilisé dans des domaines critiques (ex nucléaire), par exemple avec le compilateur C Compcert dont on a apporté la preuve qu'il ne peut pas produire de bogue en compilant.

Si tout le monde n'utilise pas Coq (ou autre) c'est parce que prouver un programme c'est très long.
Bonjour,

Votre code m'intéresse au plus haut point, d'un point de vue personnel (du moins pour le moment). Je suis un ingénieur généraliste, et m'intéresse à tous les domaines des nouvelles technologies, sans en écarter une seule, donc la vôtre en fait partie (je fais de la conception méca & élec, modélisation multi-physiques et programmation C/C++ principalement). Avez-vous un site ? Votre code est-il libre ? Est-il possible de tester votre système ?

En tout cas bienvenue sur ce site ! Et merci pour cette news !
Harry, merci de votre intérêt et de votre accueil. Il ne s'agit pas de "code" mais d'une méthode exploitée dans un logiciel (T.Rex). T.Rex aide à recueillir l'expertise et génère automatiquement un système expert fonctionnant par le raisonnement.

Etant donné que mon IA est une invention et que j'essaie de la valoriser à travers une start-up, elle n'est pas "libre". Ce que je cherche dans ce site, c'est la possibilité d'un projet robotique montrant son efficacité, sachant que je ne peux offrir que la part IA. Si vous avez un projet ou une idée dans ce sens, ça m'intéresse.
Connaissez vous des cas d'utilisation des systèmes experts embarqués sur des robots ?
Est-ce faisable, quel intérêt ?
Bonjour,

Pour moi, une intelligence artificielle doit pouvoir faire plus que de jongler avec des règles "SI ... ALORS...". Est-ce que ton programme a conscience de lui-même ? Est-ce qu'il pense ? Est-ce qu'il est capable de raisonnements qui n'ont pas été programmés ?

En quoi diffère-t-il d'un système expert ?


Il y a plein de points qui me paraissent obscurs...

"Alors qu'avec la Maïeutique, un programme est constamment fiable dès la 1ère minute de développement (puisque ce n'est qu'une base de données)."
-> La base de données ne peut-elle pas comporter des erreurs ? Est-ce l'utilisateur qui la remplit ?

J'ai un peu fouillé le net et je suis tombé sur votre site et les exemples conversationnels. Je ne suis pas convaincu... J'ai l'impression que c'est un système expert, simplement. Ce ne sont que des règles "SI... ALORS..." couplées avec une base de données.

Mais peut-être avez-vous plus d'exemples concrets plus démonstratifs ?
Meme remarque que Esprit, j'ai du mal à voir ce que ca apporte à partir des exemples conversationnels donnés sur le site Tree-Logic.
De ce que j'en vois, on est loin d'une technologie amenant à "la disparition d'un métier juteux : programmeur ou développeur informaticien..."
J'espère que l'article que vous allez rédiger nous éclairera plus sur ce point. :)
Esprit, vous parlez comme un informaticien. Insatisfait et critique, ne cherchant que la petite bête dans mon exposé... ;) Que vous importe le mécanisme qui anime un programme d'IA si le résultat dépasse de loin ceux de l'informatique classique ? Si cela permet à un ordinateur de raisonner sur une connaissance humaine exprimée en langage courant (les fameuses règles qui vous paraissent si limitées) ?

"En quoi diffère-t-il d'un système expert ?" : L'IA que je pratique est celle du système expert raisonnant comme je le dis dès le 2ème paragraphe. Il n'y a donc pas de différence par rapport à un système expert ...du moment qu'il raisonne ! Je ne connais pas d'autre IA, après presque 30 ans de réflexion sur la question. C'est justement ce que dit mon article : " La vraie IA... A ne pas confondre avec la fausse !"

Quant au programme "conscient" de lui-même dont vous parlez, il faudrait déjà que vous sachiez ce que signifie conscient... Pour ma part, j'ai déjà publié toute une thèse sur la conscience artificielle et la robotique que je vous invite à lire si vous voulez vraiment que nous discutions du sujet.

"La base de données ne peut-elle pas comporter des erreurs ?" : la base de données n'est alimentée que de règles complètes (dont le Si et le Alors sont suivis d'un fait minimum). Elle ne peut donc se planter. Mais elle peut contenir des données fausses. Dans ce cas, elles généreront très probablement des contradictions. Dans ce cas, le raisonnement s'arrête en signalant la contradiction (toujours en langage naturel et en citant les règles impliquées (d'où l'intérêt de règles SI... ALORS... en langage naturel) pour réparation.


"Est-ce l'utilisateur qui la remplit ?" Non. personne n'écrit de règles ni ne les modifie. C'est l'outil exploitant la Maïeutique qui s'en charge, justement pour éviter toute erreur d'écriture dans la base de connaissance.

"J'ai l'impression que c'est un système expert, simplement" : Ben oui, c'en est un, évidemment (ou plutôt un générateur de systèmes experts). Sauf que celui-là fonctionne par le raisonnement. Donc sans métarègle et sans informaticien. Tout le monde sait l'utiliser. C'est la démonstration qu'on peut se passer de langages informatiques classiques puisque "tout programme est un système expert qui s'ignore".

"Mais peut-être avez-vous plus d'exemples concrets plus démonstratifs ?" Il y a sur mon site une trentaine de petites démos, cela ne vous suffit pas ? Pour mieux voir l'adéquation entre la Maïeutique et la robotique, je vous invite à regarder ces vidéos de Tiara :

1. Install de Tiara
2. Dialogue avec Tiara
3. Bibtiara, la bibliothèque vocale de Tiara
4. http://www.youtube.c...?v=bs68EvuSViw'>Tiartrex, outil de programmation et d'apprentissage
5. Exemples de Conversationnels vocaux
Jeryagor, je vous cite : "De ce que j'en vois, on est loin d'une technologie amenant à "la disparition d'un métier juteux : programmeur ou développeur informaticien..."" Et pourtant, vous venez de lire les 9 avantages de cette techno par rapport au procédural ! Que puis-je vous dire de plus ?

Il est vrai que les démos de mon site ne montrent que du Conversationnel. Mais à quoi servirait de présenter des applications non interactives animées par un raisonnement ? Le résultat visible serait identique à celui obtenu avec un programme classique... Tandis qu'un Conversationnel animant un dialogue pertinent avec son utilisateur pouvant durer une demi-heure ou plus, c'est impossible avec les techniques classiques et encore plus impossible à modifier proprement. Or, ce genre de dialogue, j'en produisais déjà un en 1986 avec le système expert Joséphine de la Banque de Bretagne. De plus, les Conversationnels que vous voyez fonctionnent réellement par un raisonnement et vous pouvezle vérifier vous-même en demandant "pourquoi ?" ou en cliquant sur les déductions. Dans ces deux cas vous voyez apparaître la connaissance sur laquelle il raisonne, sous forme de règles.

"J'espère que l'article que vous allez rédiger nous éclairera plus sur ce point." : j'attends un peu pour savoir dans quelle direction écrire... Vu ce que je viens de vous dire (ainsi qu'à Esprit) sur quoi aimeriez-vous que porte un nouvel article ?

Si vous voulez une discussion avec un informaticien acquis à ma techno (ce qui ne l'empêche pas de de demeurer critique) dites-le moi et je vous mettrai en relation. En effet, je me rends bien compte que je ne sais pas parler le langage des informaticiens car je n'en suis pas un et qu'ils voient en moi un salaud cherchant à supprimer leur métier. C'est pour ça que j'essaie tout de suite de repérer si je suis face à l'un d'entre eux... ;)
GenRobots, désolé de répondre si tard. Non je ne connais aucune application système expert embarquée sur des robots. A cela il y a au moins une raison : il faudrait que cette solution présente un avantage pour la programmation du robot, ce qui n'est pas le cas excepté ma techno la Maïeutique et je viens de me lancer dans la promotion de cette techno.
Je pense que les propos sont juste trop généralistes : beaucoup de développeurs travaillent sur des outils dans lesquels je les vois mal utiliser ce genre de technologies (je pense notamment à la simulation numérique).
Oui, en effet, la simulation numérique ne semble pas le domaine idéal pour l'IA. C'est du calcul en cascade et il y a peu de raisonnement. Ceci dit, dans ce genre d'exercice, il y a du raisonnement et des "ruses" d'experts qu'il faut bien le programmer. Autant ne pas perdre de temps à trouver des algorithmes et y mettre du système expert raisonnant.

C'est amusant que vous ayez choisi l'exemple de la simulation numérique car c'est justement un de mes chevaux de bataille : pour valider une idée ou une approche, elle n'est pas la bonne solution car elle réclame des moyens et des efforts énormes alors qu'il existe la simulation ...logique. Celle que nous faisons quotidiennement dans notre cerveau pour tester des idées.

Avec la Maïeutique, l'ordinateur peut faire cette démarche de raisonnement sans la moindre erreur et quelle que soit l'étendue du système à simuler, montrant quels flux ou résultats il produit. Avec un plus énorme : il contrôle la cohérence du système puisqu'il détecte les contradictions. S'il n'en voit pas, c'est que le système a été parfaitement imaginé. Vous avez un exemple sur mon site : une simulation de chaudière gaz. Malheureusement, on ne voit pas la "programmation": c'est un arbre de décision par composant, qui décrit sa logique interne, ce qu'il est censé faire des flux entrée pour produire les flux sortie attendus.


NB : Si vous me répondez, sachez que, bizarrement, je n'en suis pas notifié... D'où un certain temps à découvrir que l'on m'a adressé un message.
Salut,

Alors autant être clair, je suis un méchant informaticien, qui plus est spécialiste en IA (pardon, ingénierie de la connaissance) ... comme ca je suis classé.

Par rapport à l'intervention juste au dessus, je viens d'essayer la simulation de chaudière à gaz, quand on lui dit que tout va bien mais que la température de la maison est de 5° alors qu'on a demandé 20°, nous répond que tout va bien.

Pour moi c'est une espèce de battage pour faire du bruit autour d'un produit vendu, j'imagine, un prix "dérisoire", comme tous les systèmes experts du marché.

Pour résumer ce que j'ai compris, et en termes pour certains barbares ... ce n'est qu'une coquille qui va executer du script stocké en base de données, script lui même exprimé sous forme d'arbre. Ce script, ca s'appel un DSL (Domain Specific Langage), et c'est très bien géré par les technos que vous décriez (.NET, par exemple, techno que je connais particulièrement bien).

Alors maintenant quelques critiques comme ca, vraiment les trucs qui me passent par la tête, j'en aurais des milliers d'autres ...

- Le client demande que le bouton "oui" soit vert et le bouton "non" soit rouge dans certains cas, comment vous faites ? (mon hypothèse : extension du DSL).

- Dans la même idée, je veux utiliser un lecteur de barcode en entrée et une imprimante en sortie, je fais comment ?

- Performances ? On peut faire une comparaison simple sur, par exemple, une tout bete multiplication de matrice, un langage interprété, qui plus est ou chaque instruction est fetché dans une base de données externes, miuex vaut se limiter à quelques trucs très très simples à mon avis.

Ca n'a même pas la puissance de prolog, ce n'est qu'un arbre de décision (une imbrication de if then else).

Des projets pour concevoir un langage de script suffisemment simple pour que le "power user" lambda se sente de conchier son propre programme foireux, il y en a des milliers sur la planète.

Maintenant j'ai peut-etre raté quelque chose (j'ai regardé les exemples et les videos sur Tiara, pourtant), auquel cas il faudrait m'expliquer ...

Thomas.
Salut Thomas,

Bon, me revoilà à argumenter face à quelqu'un qui n'a pas envie de comprendre... Vous avez des "milliers" de critiques à m'opposer ...mais pas une seule sur mon exposé "les 9 défauts du procédural" qui pourtant vous concernent étroitement puisque vous êtes un "méchant" informaticien ;)

Puisque mes arguments vous paraissent forts, vous allez sur mon site, vous choisissez une démo et vous tentez de la ridiculiser en montrant que sous un certain aspect elle ne vous convient pas. Les autres aspects vous n'en parlez pas. Or, vous le dites vous-même : je suis un "spécialiste en ingénierie de la connaissance" ! Cela devrait vous permettre de faire des critiques relevant un peu plus de l'IA, vous ne trouvez pas ?

Enfin, comme (presque) tous les informaticiens avec qui je discute, vous prétendez faire la même chose que mes démos avec vos langages classiques, comme face au COBOL les informaticiens des années 60 prétendaient faire aussi bien en Assembleur ! Mais derrière il y a le temps, le coût et l'efficacité à considérer. C'est pour ça que de nouveaux langages apparaissent sans cesse. Ma technologie permet à des non informaticiens de développer des systèmes experts et des programmes évolués sous forme système expert, grâce à un raisonnement automatisé. C'est un fait. Ce n'est pas "un langage de script suffisamment simple pour que le "power user" lambda se sente de conchier son propre programme foireux..."

Vous avez sûrement raté quelque chose, comme vous dites, car je ne suis pas un rigolo. Vous avez dans cette page assez de matière pour réfléchir et ne pas avoir besoin de changer de sujet. Par ailleurs, je suis un chercheur reconnu mondialement, j'ai 3 pages dans Wikipedia dont Wikipedia US où il est très difficile d'ajouter des articles nouveaux. Je vous invite à les lire.

Je n'aurais pas du vous répondre, j'ai peur que ce soit du temps perdu. Mais on ne se refait pas, je veux toujours convaincre...

Jean-Philippe de Lespinay
bonjour,

je ne suis pas spécialiste, mais juste quelqu'un qui s'interesse à l'IA.

bon... j'ai pas mal lu, regardé, cherché , étudié ce dont vous parler.
j'ai fini par faire un constat . B)
je n'ai pas trouvé de descriptif réel retraçant les caracteristiques de vos produits/inventions !
c'est à dire puissances et limites de traitement , types et methodes d'inférence (logique d'ordre 1 ou autre? chainage avant, arriere, etc..) , bref en quoi consiste le raisonnement de vos systemes...
je ne recherche en rien ce qui correspond au secret commercial, mais juste les grandes lignes qui permettent de savourer la performance de vos creations.
les exemples donnés dans votre site www.tree-logic.com (société apparement radiée depuis 2003) qu'on peut trouver aujourd'hui ne refletent pas la performance du systeme, mais simplement des formes de mise en oeuvre , pour lesquelle par ailleurs la présentation m'a laissé un sentiment négatif.
=>la question est :en quoi votre principe est il different d'une interface de mise en oeuvre? (c'est à dire d'une couche d'automatisation de programmation?)
pour l'aspect conversationnel, ça m'a semblé tellement archaïque que je n'ose même pas commenter.
-
bon voilà pour le coup de masse. ;)
mais en réalité je pense sincèrement que derriere tout cela il y a du bon.
c'est pourquoi je prefere penser que la grosse partie est restée à l'ombre du public par maladresse.
-
ce qui est étonnant c'est de voir une action business dans un site de hobiistes, mais bon...

si je tiens compte du prix de "Tiara" de 450F annoncé dans votre exemple de business plan confidentiel ( :lol: ) (http://www.tree-logi...evu en 2007.pdf) qui a été préparé vers l'an 2000,
je le majore de l'inflation de 40% suivant insee (tree-logic/BP 2000) ça me donne (450/6,57) +40% = 96 euros. pour ce prix là, je veux bien vous en commander 1 pour voir où ça mène.
mais je prefererais avoir une "version demo" gratis ! genre limitée à 1 mois d'utilisation.

-
en matiere d'ambition robotique à la façon Asimov, l'le forum de l'association Caliban n'est pas mal non plus pour ça :rolleyes:

-
phil
Désolé pour le retard à répondre, je ne suis pas notifié des messages.

Merci pour l'adresse du site Caliban, je vais regarder ça. Et merci pour votre remarque: "je pense sincèrement que derriere tout cela il y a du bon", ça fait toujours du bien par où ça passe. La logique utilisée dans ma techno est du Zéro +, c'est dans le titre de Science et Vie cité en bibliographie...

Vous avez d’ailleurs tout ce qu'il vous faut dans la bibliographie ci-dessus pour vous faire une idée de ma techno sans imposer à tous ici une discussion informaticienne (dont je suis incapable d'ailleurs n'étant pas informaticien). Si vous voulez sincèrement discuter avec moi, utilisez mon email : jpl@tree-logic.com.

"en quoi votre principe est il different d'une interface de mise en oeuvre?" dites-vous. Combien de fois vais-je devoir répéter ce qu'il y a déjà dans l'article ci-dessus ? Le principe, ce n'est pas une interface, c'est le raisonnement de l’ordinateur au lieu du raisonnement du programmeur. Dès la 1ère minute, en une seule tâche, l'interview de l'expert donne un début de programme qui tourne.

"pour l'aspect conversationnel, ça m'a semblé tellement archaïque que je n'ose même pas commenter." Ça, c'est vraiment une remarque superficielle ! Vous avez un dialogue inventé à la seconde par un raisonnement, raisonnement qui se vérifie en cliquant "Pourquoi" ou sur les déductions, opérations qui font apparaître la connaissance de l'expert en clair sur lequel le soft raisonne, et vous trouvez ça archaïque. C'est tout simplement unique au monde. Je vous mets au défi de prouver le contraire...

Bien entendu, je n'ai pas soigné le look, dont je me moque, puisque mon site n'est pas là pour séduire sur de jolies images mais sur l'invention elle-même.

Celle-ci d'ailleurs ne peut se décrire en terme d'algorithmes particuliers comme vous le souhaitez sûrement puisque c'est un raisonnement qui a été programmé et que tout le monde peut le faire, en n’importe quel langage. On n'en n'est pas à la phase optimisation vu qu'il n'y a pas de concurrence.