Dis-moi ce que tu penses, je te dirai ce que tu ressens !

Vous l’avez compris au travers de l’interview de Michelle, l’émotion dans l’interaction avec les robots émotionnels est fondamentale. Elle met en place un dialogue, une communication, et a entraîné l’attachement de Michelle vis-à-vis de Feel 1.2. Mais concrètement, comment un robot peut-il détecter l’émotion ? Comment Feel 1.2 parvient-il à capter que Michelle est joyeuse et à prendre ensuite une décision en conséquence ? C’est ce que je vous propose de découvrir dans cet article.

J’ai eu l’opportunité de rencontrer les ingénieurs de la société ROBOT4YOU ayant conçu Feel 1.2 et je vous présente dans cet article un des deux programmes intégrés dans le robot et permettant de détecter les émotions chez l’Homme. 

Objectif du programme

Le but du programme est de déduire l’émotion de la personne à partir de son état mental, c’est-à-dire à partir de ses désirs, de ses goûts, de ses intentions, de ses buts, de ses croyances… Bref, de ce qu’il se passe au fin fond de sa tête. J’ai sélectionné la partie du programme s’intéressant à des émotions simples : la joie, la tristesse et l’empathie.

Outil utilisé

Le logiciel utilisé est le logiciel SWI-ProLog pour Programmation Logique, qui a pour emblème ce petit hibou rouge. Pour mieux comprendre le fonctionnement du programme, j’ai installé l’application sur mon ordinateur (téléchargeable ici). Cependant, comme tout langage informatique, il faut s’y familiariser, connaître sa syntaxe et comprendre sa logique.

Pourquoi ProLog ?

Le choix de l’équipe s’est porté sur ce logiciel de programmation car il possède l’avantage d’intégrer une déduction automatique : en clair, on se contente de donner au programme les faits et les règles et de lui indiquer ensuite ce que l’on veut déduire, sans avoir besoin de lui dire comment le déduire.

ZOOM → La déduction automatique de ProLog : Elle est basée sur le principe de résolution de Robinson. La démonstration de ce principe s’appuie sur un raisonnement par l’absurde.

Quelques règles de syntaxe…

La conjonction (ET) est notée par une virgule (,).

L’implication (⇐) est représentée par deux points suivis d’un tiret (:-). 

Les variables se notent en majuscule.

Les constantes se notent en minuscule.

Les espaces et les apostrophes sont interdits.

Les questions sont introduites par un point d’interrogation suivi d’un tiret (?-).

Bases théoriques : la logique des prédicats

ProLog utilise la logique des prédicats. Dans cette logique, on ne parle pas de propositions mais de prédicats. Chaque prédicat contient des arguments qui sont soit des variables, soit des constantes. Tout ceci vous semble un peu flou ? Tout s’éclaire avec des exemples !

Exemple 1 : but(Michelle,partir en Australie) est un prédicat auquel on pourrait donner le sens « Michelle a pour but de partir en Australie ».

  • « but » est le prédicat
  • « Michelle » et « partir en Australie » sont les deux arguments notés entre parenthèse et séparés par une virgule. Ils sont écrits en minuscule, ce sont donc des constantes.

Exemple 2 : but(P,partir en Australie) est un prédicat auquel on pourrait donner le sens « Quellle que soit une personne P, elle a pour but de partir en Australie ».

  • « but » est le prédicat
  • « P » et « partir en Australie » sont les deux arguments. P est notée en majuscule, ce qui signifie que c’est une variable, elle concerne donc un groupe d’individus et non plus un seul individu.

Vous l’aurez compris, la logique des prédicats possède l’avantage de faire intervenir des quantificateurs universels : c’est le fameux « quel que soit x », qui se note ∀. Elle permet ainsi d’exprimer des vérités universelles pour un ensemble de valeurs en une seule expression. Dans la logique des propositions, il faudrait écrire une proposition pour chacune de ces valeurs !


Construction du programme

Passons maintenant dans le vif du sujet : un programme avec le logiciel ProLog, capable de faire des déductions tout seul et utilisant la logique des prédicats ? Oui, mais que fait ce programme au juste et comment est-il construit ?

A quoi cela ressemble-t-il ?

Tout d’abord, il fait savoir qu’un programme ProLog est construit en 3 parties décrites par des prédicats :

  1. une base de faits considérés comme vrais
  2. une base de règles qui manipulent ces faits
  3. des questions qui portent sur ces faits et règles

Les faits et les règles sont saisis sous l’éditeur de texte. Les questions sont posées à la console.

Capture d’écran d’une fenêtre de l’application ProLog avec l’éditeur de texte (gauche) et la console (droite)

Les faits : quelles données ?

Plus haut, j’ai dit que le robot utilisait ce programme pour déduire l’émotion de la personne à partir de son état mental. Vous devez sûrement vous demander : comment Feel 1.2 fait-il pour connaître l’état mental d’une personne sans être dans sa tête ?

En fait, l’état mental peut être lié à deux éléments :

  1. La personnalité de la personne : ses goûts, ses désirs, ses buts. Ces informations peuvent être considérées comme des choses toujours vraies qui vont peu évoluer, elles sont donc programmées à l’avance dans le robot.
  2. L’environnement : les événements et leurs conséquences. A l’inverse, ces informations changent en fonction de la situation. Ils peuvent donc être repérés grâce au langage, donc à l’analyse acoustique mais aussi grâce à des capteurs visuels qui peuvent repérer par exemple la chute d’une personne.

DANS LE PROGRAMME

but(partir_en_australie, michelle) Michelle a pour but de partir en Australie.

se_produit(gagne_au_loto, michelle) Michelle gagne au loto.

conséquence(gain_dargent, gagne_au_loto) Grâce à sa victoire au loto, Michelle remporte de l’argent.

conséquence désirable(gain_dargent, partir_en_australie) Gagner de l’argent est désirable en lien avec le but de partir en Australie.

Les règles : comment traite-t-on les données ?

Exemple : la joie

  • Définition selon OCC : Un agent ressent de la joie s’il est content d’un événement désirable.
  • Définition littérale en logique modale : Un agent i éprouve de la joie s’il croit qu’un événement φ (lire « phi ») est vrai et qu’il désire que cet événement soit vrai.

  • Définition littérale en logique des prédicats : Une personne P est joyeuse si un événement E la concerne et que cet événement a une conséquence plaisante pour la personne.

Il va donc falloir écrire une règle pour définir ce qu’est une conséquence plaisante, puis écrire une règle pour définir ce qu’est la joie.

DÉFINITION → Conséquence plaisante : La conséquence C d’un événement E est plaisante pour une personne P si P a un but B et que l’événement P a une conséquence C qui est désirable pour atteindre ce but. 

  • En logique classique :

(∀P), (∀C), (∀B) (but(B,P)) ∧ (conséquence désirable(C,B)) ⇒ (conséquence plaisante(P,C))

  • En langage ProLog :

conséquence_plaisante(P,C) :- but(B,P) , conséquence_désirable(C,B)

DÉFINITION → Joie : Une personne P est joyeuse si elle a un but B et qu’un événement E a une conséquence C permettant de réaliser ce but B.

  • En logique classique :

(∀E), (∀P), (∀C) (se produit(E,P)) ∧ ((conséquence(C,E)) ∧ (conséquence plaisante (P,C)) ⇒ (joyeux(P,E,C))

  • En langage ProLog :

joyeux(P,E,C) :- se_produit(E,P) , conséquence(C,E) , conséquence_plaisante(P,C)

Les questions : quel résultat fournit le programme en sortie ?

La dernière étape consiste à poser des questions à la console pour déduire l’état émotionnel de la personne.

Exemple : ?-joyeux(P,E,C)

Ici, la question signifie : qui est joyeux et pourquoi, en raison de quel événement, de quelle conséquence ?

La console contient un principe de résolution intégré. Elle va donc explorer les différents trios de valeurs possibles remplissant les conditions de la joie. Alors, selon vous, qui est joyeux et quelles en sont les raisons ? Pour connaître la réponse, visionnez la vidéo ci-dessous qui montre le programme en fonctionnement…


Vous l’aurez compris, la réponse était donc :

P = michelle

E = gagne_au_loto

C = gain_dargent

Ainsi, Michelle est joyeuse car elle a gagné au loto, elle a ainsi remporté de l’argent. Or, son but était d’aller en Australie et l’argent va lui permettre de partir en voyage vers la destination de ses rêves !

Voici ci-dessous, en exclusivité, l’intégralité du programme conçu par les chercheurs de ROBOT4YOU, concernant 3 émotions : la joie, la tristesse et l’empathie. On prend ici en exemple une situation, un événement au cours duquel Michelle a gagné au loto.

Ainsi, la mise en place de ce logiciel fabriqué avec l’application ProLog permet à Feel 1.2, à partir d’informations pré-enregistrées et d’informations issues des capteurs, de connaître l’émotion de Michelle. Les règles du programme lui permettent à la fois de comprendre l’humain, mais aussi de réagir en retour en générant une réaction empathique.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *