• Aucun résultat trouvé

open source

CLIPS : moteur de règles dans le domaine public.

Drools : distribué par Red Hat. DTRules : moteur de règles en Java. Gandalf : moteur de règles tournant sur PHP.

OpenL Tablets : business centric rules and BRMS.

propriétaires

Corticon : moteur de règles sous Java et .NET, filiale de Progress Software. IBM Operational Decision Manager : ex ILOG Rules.

JESS : moteur de règle Java, sur-ensemble du langage CLIPS.

Microsoft Azure Business Rules Engine : framework de moteur de règle en .NET. Oracle Policy Automation : modélisation et déploiement de règles.

Doug Lenat l’a transformé en projet en- trepreneurial avec Cycorp, lancée en 199455. Cette dernière propose une base

de connaissance intégrant 630 000 con- cepts, 7 millions de faits et règles et 38 000 relations, le tout étant exploitable par des moteurs de règles (ci-contre). La base est notamment alimentée par l’analyse de documents disponibles sur Internet. Mais ce projet est considéré comme un échec.

Cycorp est une sorte de laboratoire de recherche privé en IA financé par des contrats du gouverne- ment US, dont la DARPA, et d’entreprises privées. Il propose une suite d’outils en open source et licence commerciale permettant d’exploiter des dictionnaires, ontologies et bases de connaissances pour répondre à des questions d’analystes.

Le système expert OpenCyc 4.0 qui exploitait la base de Cycorp n’est plus disponible en open source depuis 2017 pour éviter le fameux phénomène de la fragmentation du code (« fork »). Il est depuis commercialisé sous forme de licences dédiées à la recherche ou de licences commerciales. Cycorp est devenu une société de conseil et d’intégration en IA, spécialisée notamment dans le trai- tement du langage et des connaissances.

L’initiative open source Schema.org lancée par Google, Microsoft, Yahoo et le Russe Yandex pro- pose de son côté des millions de types, descriptions de faits exploitables par les moteurs de re- cherche et les moteurs de règles. Il permet notamment aux web masters de standardiser la nomen- clature utilisée dans les descriptifs de pages web.

Les outils dotés de capacités de raisonnement continuent d’évoluer pour faire avancer le champ de la représentation des connaissances et du raisonnement. Les techniques associées sont moins con- nues que celles du machine learning et du deep learning, ce d’autant plus qu’elles sont de plus en plus hybrides. Ainsi, un moteur de règles peut-il exploiter des règles elles-mêmes générées par ana- lyse du langage dans des réseaux de neurones récurrents.

Le deep learning et les réseaux de neurones récurrents que nous verrons plus loin alimentent main- tenant couramment les bases de connaissances et les moteurs de règles qu’ils ont contribué indirec- tement à faire décliner ! Les bases de connaissances sont devenues des Knowledge Graphs, mais c’est la même chose, comme l’illustre le schéma ci-dessus issu de Toward Neural Symbolic Proces- sing de Hang Li, 2017 (36 slides).

Les systèmes experts peuvent aussi être alimentés par l’exploitation de données opérationnelles (big data, machine learning). C’est l’approche de Cosmo Tech (2010, France/USA, $30,3M), une startup spin-off de l’ENS Lyon et du CNRS basée à Lyon et aux USA qui a développé une plateforme logi- cielle de modélisation et de simulation de systèmes complexes. Elle s’appuie sur le langage de mo- délisation CosML qui sert à représenter les états ainsi que les comportements des systèmes com- plexes et à les étudier grâce à de la simulation. Le système exploite des règles métier et des corréla- tions extraites de données de production via des techniques de machine learning (schéma ci-

dessous).

La solution est déclinée dans diverses industries comme avec leur application Asset Investment Op-

timization (AIO) dédiée aux énergéticiens, Crisis Management qui permet la gestion de crise et Smart Territories qui permet de modéliser des systèmes complexes pour la ville intelligente. C’est

un excellent exemple d’hybridation technologique illustrant la manière dont les systèmes experts s’intègrent dans les solutions d’IA.

On peut aussi citer Khresterion (2014, France) qui propose un logiciel d’aide au diagnostic dans divers domaines. Ils s’appuient sur un moteur de règle, K Engine, qui exploite une représentation de la connaissance sous forme d’ontologies et adopte une structure en graphe et non d’arborescence, ce qui la rend très ouverte. Cela permet de gérer la contradiction et la non complétude d’informations. La société travaille dans les domaines financiers et juridiques après avoir tâté du domaine de la san- té.

Il y aussi ExpertSystem (1989, Italie) qui propose diverses solutions pour les entreprises à base de systèmes experts et d‘outils de traitement du langage naturel.

Mais comme nous le verrons dans la partie dédiée à l’AGI, des tentatives nombreuses visent à utili- ser des réseaux de neurones pour faire du raisonnement symbolique. L’un des premiers du genre fut le KBANN (Knowledge-based Artificial Neural Network) de Towell et Shavlik en 199456 mais qui

ne semble pas avoir abouti à des applications pratiques.

56 Voir Knowledge-Based Artificial Neural Networks, 1994 (45 pages) qui est cité dans Reasoning with Deep Learning: an Open

Logique floue

La logique floue est un concept de logique inventé par l’américain Lofti Zadeh (“Fuzzy Logic”) en 196557. Elle permet de manipuler des informations floues qui ne sont ni vraies ni fausses, en com-

plément de la logique booléenne, mais à pouvoir faire des opérations dessus comme l’inversion, le minimum ou le maximum de deux valeurs. On peut aussi faire des OU et des ET sur des valeurs “floues”.

Quid des applications de la logique floue58? On les trouve dans le contrôle industriel, dans des

boîtes de vitesse chez Volkswagen (pour tenir compte de l’intention “floue” du conducteur), pour gérer des feux de circulation et maximiser le débit, dans de nombreuses applications du BTP, dans la reconnaissance de la parole et d’images, le plus souvent, en complément du bayésien.

Des dizaines de milliers de brevets auraient été déposés pour protéger des procédés techniques

utilisant la théorie de la logique floue.

57 J’avais eu l’occasion de l’entendre la présenter lors d’une conférence à l’Ecole Centrale en 1984, lorsque j’étais en option informa- tique en troisième année. Ça ne nous rajeunit pas ! Lotfi Zadeh est décédé en septembre 2017. Voir Lotfi Zadeh 1921–2017, par Richard Lipton et Ken Regan, octobre 2017.

58 Quelques exemples d’applications de la logique floue dans cette présentation : Applications of fuzzy logic de Viraj Patel,

2016 (22 slides).

Lotfi Zadeh

Les moteurs de règles de systèmes experts peuvent d’ailleurs intégrer les principes de la logique floue (ci-dessous).

Ceci dit, la logique floue n’est pas utilisée de manière très courante, notamment du fait que les sys- tèmes experts ne sont plus à la mode depuis une quinzaine d’année. J’ai juste identifié la startup Zsolusionz qui proposait des solutions à base de logique floue mais qui n’a plus de traces sur Inter- net.

Planification opérationnelle

La planification est une autre branche de l’IA symbolique. Elle vise à résoudre des problèmes de logique et d’optimisation qui sont très nombreux dans les entreprises, notamment dans les utilities et les transports.

Comment allouer ses ressources pour qu’elles soient les mieux utilisées ? Comment maximiser son revenu avec ses ressources existantes ? Comment optimiser le parcours d’un livreur ou d’un com- mercial ?

Les solutions pour résoudre ces problèmes sont variées. Elles peuvent faire appel à des algorithmes ad-hoc, à de la simulation, à des réseaux d’agents intelligents, une méthode qui est à la frontière entre l’intelligence artificielle et l’étude des systèmes complexes59.

Là encore, on se retrouve rapidement dans des situations d’hybridation d’algorithmes et technolo- gies pour résoudre des problèmes qui intègrent des règles de logique et des contraintes numériques (aka : programmation par contrainte, logique propositionnelle, logiques monotone et non- monotone, des notions de combinatoires et d’exploration d’arbres de décision), le traitement du langage et la modélisation des connaissances.