Agents Logiques Chap. 7.

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données avancés
Advertisements

Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Algèbre relationnelle
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
Rappels / concepts de base de l’IA
La voie intuitionniste
Calcul propositionnel
3. Logique et mathématiques De Frege à Gödel. Frege (1848 – 1925) Après que la mathématique se fut pour un temps écartée de la rigueur euclidienne, elle.
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Systèmes Experts implémentation en Prolog
Chap 1 Grammaires et dérivations.
INTRODUCTION.
LI.A ça ressemble à ça… des fois…. Ou pas… Rappels et définition de lIA – Lidée quon sen fait – Jusquoù on va aujourdhui / dans le futur? – Petit Etat.
Les systèmes experts L3 MI.
Utilisation des tableaux
Conception et analyse des algorithmes
Apprendre à partir des observations
Logiques Mathématiques
Démarche de résolution de problèmes
Algorithmique et Programmation
Graphes Conceptuels J.F. Baget Inria.
Programmation logique Logique des prédicats du premier ordre
Chapitre 2: Les régularités et les relations
Programmation logique Démonstrateur automatique
SÉMINAIRE DE LANCEMENT DES COURS EN LIGNE
« Les tours alignées » et « les 9 tours en carré »
La pensée logique au cycle 1
Symbolisme vs Connexionnisme
Rappels de logique des prédicats du 1er ordre
Semaine #1 INF135 par Frédérick Henri.
IFT Complexité et NP-complétude
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
CSI 4506: Introduction à l’intelligence artificielle
CSI3525: Concepts des Languages de Programmation
CSI 4506: Introduction à l’intelligence artificielle
Chapitre 3: Les équations et les inéquations
Révisions - IA Généralité: problèmes de lIA Recherche Logique Traitement de lincertitude Apprentissage Langue naturelle.
Compétence, capacité et objectif d’apprentissage, quel lien?
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Partie II Sémantique.
Programmation logique Le Langage PROLOG
Programmation non procédurale Le projet ECOLE 2000
GPA750 – Gestion de Projets
Sensibilisation a la modelisation
Réseaux bayésiens: Inférence
Programmation procédurale Transformations
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
La Logique du premier ordre LPO
INTRODUCTION.
Cours n°2UE102e(S. Sidhom) UE 102e. M1.IST-IE cours n°2 Systèmes à base de règles Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE –
D.E ZEGOUR Ecole Supérieure d’Informatique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Racket (Lisp)
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Introduction et Généralités sur l’Algorithmique
CSI 4506: Introduction à l’Intelligence Artificielle
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 5)
Raisonnement et logiques
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
LOGIQUE ET PROGRAMMATION LOGIQUE
Introduction Module 1.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Relation de conséquence logique Nous avons vu une relation entre formules: l’équivalence tautologique (  ) Nous allons définir une nouvelle relation,
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Transcription de la présentation:

Agents Logiques Chap. 7

Plan Agents basés sur des connaissances Le monde de Wumpus Logique en général – modèle et entraînement (entailment) Logique propositionnelle (booléenne) Equivalence, validité, satisfiabilité Règles d’inférence et preuve de théorème Chaînage avant Chaînage arrière Règle de Résolution

Base de connaissances Base de connaissances = ensemble de phrases dans un langage formel Approche déclarative pour construire un agent (ou un système) : Tell: lui dire ce qu’il doit savoir (Approche procédurale: dire comment faire – étape par étape) Ensuite, il peut se demander (Ask) ce qu’il a à faire – les réponses doivent suivre la KB (conséquence logique) On peut voir un agent selon son niveau de connaissances i.e., ce qu’ils savent, indépendamment de comment c’est implanté Ou au niveau d’implantation i.e., structures de données dans la KB et algorithmes pour les manipuler

An agent simple basé sur connaissances L’agent doit être capable de: Représenter les états, les actions, etc. (un formalisme de représentation) Intégrer de nouvelles perceptions Mettre à jour la représentation du monde (modifier KB) Déduire des propriétés cachées du monde (conséquences) Déduire des actions appropriées (prendre des décisions – conséquences)

Description de PEAS dans le monde de Wumpus Mesure de performance Or+1000, mort -1000 -1 par étape, -10 pour utiliser la flèche Environnement Objets: wumpus, agent, fosses, or Carrés adjacents au wumpus sentent fort (smelly) Carrés adjacents à une fosse sentent du brises (breezy) On voit briller (Glitter) ssi l’or est dans le carré Tirer (Shooting) tue le wumpus si on est face à Tirer utilise la seule flèche disponible Saisir (Grabbing) prend l’or si dans le même carré Relâcher (Releasing) laisse l’or dans le carré Senseurs: Puanteur (Stench), Brise (Breeze), Éclat (Glitter), Coup (Bump), Cri (Scream) Actuateurs: Left turn, Right turn, Forward, Grab, Release, Shoot

Caractéristiques du monde de Wumpus Observable complètement Non – seulement des perceptions locales Déterministe Oui – Le résultat spécifié exactement Épisodique Non – séquentielle au niveau d’actions Statique Oui – Wumpus et fosses ne bougent pas Discret Oui Seul-agent? Oui – Wumpus est le seul agent qui agit dans l’environnement

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Explorer le monde de wumpus

Logique en général Les logiques sont des langages formels pour représenter des informations tel que des conclusions peuvent être tirées. La syntaxe définit les règles pour écrire des phrases du langage La sémantique définit le “sens” des phrases i.e., définit la vérité d’une phrase dans un monde E.g., le langage d’arithmétique x+2 ≥ y est une phrase; x2+y > {} n’est pas une phrase x+2 ≥ y est vrai ssi le nombrer x+2 n’est pas plus petit que y x+2 ≥ y est vrai dans un monde où x = 7, y = 1 x+2 ≥ y est faux dans in monde où x = 0, y = 6 E.g. le français « Mets est une dans » n’est pas une phrase « Je mange une pomme » est une phrase « Je me promène » n’est pas vrai maintenant « Je donne un cours » est vrai

Entraînement/Implication (Entailment) Entraînement signifie qu’une chose suit sémantiquement une autre (╞ ): KB ╞ α La base de connaissances KB entraîne la phrase α ssi α est vrai dans tous les mondes où KB est vrai E.g., la KB contenant“the Giants won” et “the Reds won” entraîne “Either the Giants won or the Reds won” E.g., x+y = 4 entraîne 4 = x+y L’entraînement est une relation entre des phrases (i.e., une relation syntaxique) qui est basée sur la sémantique On ne peut pas créer cette relation n’importe comment E.g. x+y = 4 ╞ x-y = 4 ne doit pas être créée.

Modèle Les logiciens pensent typiquement en terme de modèles, qui sont des mondes structurés formellement, par rapport auxquels la vérité est évaluée. On dit que m est un modèle d’une phrase α si α est vrai dans m M(α) est l’ensemble de modèles de α On note KB ╞ α ssi M(KB)  M(α) E.g. KB = Giants won and Red won α = Giants won

Entraînement dans le monde de wumpus Situation après avoir rien détecté dans [1,1], bougé à droite et senti la brise à [2,1] Considérer les modèles possibles pour KB en supposant il y a seulement des puits 3 choix booléens  8 modèles possibles

Modèles Wumpus (mondes possibles)

Modèles Wumpus KB = règles du monde wumpus + observations

Modèles Wumpus KB = règles du monde wumpus + observations α1 = "[1,2] est sécuritaire", KB ╞ α1, prouvé par model checking

Modèles Wumpus KB = règles du monde wumpus + observations

Modèles Wumpus KB = règles du monde wumpus + observations α2 = "[2,2] est sécuritaire", KB ╞ α2

Inférence KB ├i α = la phrase α peut être dérivée de KB par une procédure i Adéquation (Soundness): i est adéquate si quand KB ├i α est vrai, KB╞ α l’est aussi. Complétude (Completeness): i est complète si quand KB╞ α est vrai, KB ├i α l’est aussi À venir: nous allons définir une logique (logique du premier ordre) qui est suffisamment expressive pour exprimer presque tout ce qu’on veut exprimer, et pour laquelle il existe une procédure d’inférence à la fois adéquate et complète. C’est-à-dire, la procédure peut répondre à toute question dont la réponse suit logiquement KB

Logique propositionnelle: Syntaxe La logique propositionnelle est la logique la plus simple pour illustrer les idées de base Syntaxe = règle de grammaire Les symboles de proposition P1, P2 etc. sont des phrases Si S est une phrase, S est une phrase (négation) Si S1 et S2 sont des phrases, S1  S2 est une phrase (conjonction) Si S1 et S2 sont des phrases, S1  S2 est une phrase (disjonction) Si S1 et S2 sont des phrases, S1  S2 est une phrase (implication) Si S1 et S2 sont des phrases, S1  S2 est une phrase (biconditionnel)

Logique propositionnelle: Sémantique Chaque modèle spécifie la valeur vrai/faux pour un symbole de proposition E.g. P1,2 P2,2 P3,1 false true false Avec ces symboles, 8 modèles possibles peuvent être énumérés automatiquement Règles pour évaluer la vérité par rapport à un modèle m: S is true iff S is false S1  S2 is true iff S1 is true and S2 is true S1  S2 is true iff S1is true or S2 is true S1  S2 is true iff S1 is false or S2 is true i.e., is false iff S1 is true and S2 is false S1  S2 is true iff S1S2 is true and S2S1 is true Processus récursif simple pour évaluer une phrase arbitrairement complexe, e.g., P1,2  (P2,2  P3,1) = true  (true  false) = true  true = true

Table de vérité pour les connecteurs logiques Pour ce système avec 2 symboles de proposition: - 4 mondes possibles

Phrase dans le monde de Wumpus Supposons que Pi,j est vrai si il y a une fosse à [i, j]. Et Bi,j est vrai si il y a une brise à [i, j].  P1,1 B1,1 B2,1 "Pits cause breezes in adjacent squares” (une fosse cause la brise dans les carrés adjacents) B1,1  (P1,2  P2,1) B2,1  (P1,1  P2,2  P3,1)

Table de vérité pour inférence À vérifier Vérifier pour chaque ligne où KB est vraie (modèle de KB) si la conclusion est aussi vraie.

Inférence par énumération Profondeur d’abord pour énumérer tous les modèles Procédure adéquate et complète C’est une approche sémantique Pour n symboles, complexité en temps O(2n), en espace O(n)

Méthodes de preuve Méthodes de preuve divisées grosso modo en 2 catégories: Model checking (Vérification de modèles) Énumération en utilisant une table de vérité (toujours exponentiel en n) Retour en arrière (backtracking) amélioré, e.g., Davis--Putnam-Logemann-Loveland (DPLL) Recherche heuristique dans l’espace de modèles (adéquate mais non complet) e.g., algorithme hill-climbing qui favorise le conflit minimal Application de règles d’inférence Génération légitime (sound) de phrases nouvelles à partir des anciennes Preuve = une séquence d’applications de règles d’inférence Peut utiliser les règles d’inférence comme opérateur dans un algorithme de recherche standard Typiquement, ceci demande à transformer une phrase en une forme normale (pour simplifier la procédure)

Par ordinateur? L’ordinateur a beaucoup de problème pour manipuler la sémantique Il peut faire la vérification dans une table de vérité Mais complexité exponentielle Une approche syntaxique Manipulations des expressions pour tenter d’arriver à la conclusion Procédure d’inférence En maths?

Équivalences logiques 2 phrases sont logiquement équivalentes ssi elles sont vraies dans les mêmes modèles : α ≡ ß ssi α╞ β et β╞ α

Comment vérifier l’équivalence? Vérifier dans la table de vérité si 2 expressions ont toujours les mêmes valeurs de vérité A  B et (A)  B ? Utilité des équivalences Une expression peut être transformée en une autre équivalente

Validité et satisfiabilité d’une phrase Une phrase est valide si elle est vrai dans tous les modèles, e.g., True, A A, A  A, (A  (A  B))  B La validité est reliée à l’inférence via le Théorème de déduction: KB ╞ α si et seulement si (KB  α) est valide Une phrase est satisfiable si elle est vraie dans quelques modèles e.g., A B, C Une phrase est insatisfiable si elle est vraie dans aucun modèle e.g., AA La satisfiabilité est reliée à l’inférence via la propriété suivante: KB ╞ α si et seulement si (KB α) est insatisfiable

Méthodes de preuve Méthodes de preuve divisées grosso modo en 2 catégories: Model checking (Vérification de modèle) Énumération en utilisant une table de vérité (toujours exponentiel en n) Retour en arrière (backtracking) amélioré, e.g., Davis--Putnam-Logemann-Loveland (DPLL) Recherche heuristique dans l’espace de modèles (adéquate mais non complet) e.g., algorithme hill-climbing qui favorise le conflit minimal Application de règles d’inférence Génération légitime (sound) de phrases nouvelles à partir des anciennes Preuve = une séquence d’applications de règles d’inférence Peut utiliser les règles d’inférence comme opérateur dans un algorithme de recherche standard Typiquement, ceci demande à transformer une phrase en une forme normale (pour simplifier la procédure)

Règles d’inférence Forme générale d’une règle a b Signification: Si a est accepté, alors on accepte aussi b Une procédure de preuve Ensemble de phrases KB0 Pour une règle d’inférence, si a est dans KB0, alors on ajoute dans KB0: KB1 Si dans un KBn, on voit la conclusion C, alors C est prouvée.

Règles: exemples Modus Ponens Modus Tolens Et-élimination a, a  b b b, a  b a Et-élimination a  b a

Exemple de preuve KB0 = {A, A B, C, BC D} a = D KB1 avec MP: {A, A B, C, BC D, B} KB2 avec MP: {A, A B, C, BC D, B, D} Prouvé # Recherche KB0, KB1, KB2 comme états Une application de règle d’inférence = successeur

li  …  li-1  li+1  …  lk  m1  …  mj-1  mj+1 ...  mn Résolution Conjunctive Normal Form (CNF) (forme normale conjonctive) conjonction de disjonctions de littéraux = clauses E.g., (A  B)  (B  C  D) Règle de résolution (pour CNF): li …  lk, m1  …  mn li  …  li-1  li+1  …  lk  m1  …  mj-1  mj+1 ...  mn où li et mj sont des littéraux complémentaires (i.e. li =  mj) E.g., P1,3  P2,2, P2,2 P1,3 Règle de résolution est adéquate et complète pour la logique de proposition

Résolution Une démonstration informelle de l’adéquation de la règle de résolution: l1  …  li-1  li  li+1  …  lk ≡ (li  …  li-1  li+1  …  lk)  li m1  …  mj-1  mj  mj+1 ...  mn ≡ mj  (m1  …  mj-1  mj+1 ...  mn) (li  …  li-1  li+1  …  lk)  li mj  (m1  …  mj-1  mj+1 ...  mn) (li  …  li-1  li+1  …  lk)  (m1  …  mj-1  mj+1 ...  mn) ≡ li  …  li-1  li+1  …  lk  m1  …  mj-1  mj+1 ...  mn

Résolution Une démonstration informelle de l’adéquation de la règle de résolution: A  B ≡ (A)  B B  C ≡ B  C (A)  B B  C (A)  C = A  C

Conversion en CNF B1,1  (P1,2  P2,1) Éliminer , remplacer α  β par (α  β)(β  α). (B1,1  (P1,2  P2,1))  ((P1,2  P2,1)  B1,1) 2. Éliminer , remplacer α  β par α β. (B1,1  P1,2  P2,1)  ((P1,2  P2,1)  B1,1) 3. Déplacer  vers l’intérieur en utilisant les règles de Morgan et double-négation: (B1,1  P1,2  P2,1)  ((P1,2  P2,1)  B1,1) 4. Appliquer la loi de distributivité ( sur ) et aplatir : (B1,1  P1,2  P2,1)  (P1,2  B1,1)  (P2,1  B1,1)

Algorithme de Résolution Preuve par contradiction/réfutation, i.e., montrer que KBα est insatisfiable (ou monter que ça mène à la contradiction ( )

Exemple KB = (B1,1  (P1,2 P2,1))  B1,1 α = P1,2

Chaînage avant et arrière Forme Horn (plus restreinte) KB = conjonction de Clauses Horn Clause Horn = Symbole de proposition; ou (conjonction de symboles)  symbole E.g., C  (B  A)  (C  D  B) Modus Ponens (Pour forme Horn): complet pour KB en forme Horn α1, … ,αn, α1  …  αn  β β Peut être utilisé avec chaînage avant (forward chaining) ou chaînage arrière (backward chaining). Ces algorithmes sont très naturels et demandent un temps linéair

Chaînage avant Idée: Activer une règle dont les prémisses sont satisfaites dans KB, Ajouter son conclusion dans KB, jusqu’à la requête soit trouvée dans KB

Algorithme Chaînage avant est adéquat et complet pour KB en Horn

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Exemple de chaînage avant

Preuve de complétude Chaînage avant dérive toute phrase atomique qui est entraînée par KB Il atteint un point fixe où aucune phrase atomique nouvelle est dérivée Considérer cet état final comme un modèle m, qui assigne true/false aux symboles Chaque clause dans la KB originale est vraie dans m a1  …  ak  b Donc, m est un modèle de KB Si KB╞ q, q est vraie dans chaque modèle de KB, y compris m Donc, q peut être dérivée.

Chaînage arrière Idée: travailler vers arrière à partir de la requête q: Pour prouver q par chaînage arrière, Si q est déjà connue, ou Prouver par chaînage arrière toutes les prémisses d’une règle d’inférence qui conclut en q Éviter des boucles : vérifier si un nouveau sous-but est déjà dans le stack de buts (- comparer avec la recherche dans un graphe) Éviter la répétition : vérifier si le nouveau sous-but est déjà prouvé vrai, ou a déjà échoué dans sa preuve

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Exemple de chaînage arrière

Chaînage avant vs. arrière Ch. avant est une procédure data-driven, automatique, inconsciente du problème à résoudre, e.g., reconnaissances d’objet, décisions routine Peut faire beaucoup de travail non pertinent au but Ch. arrière est une procédure goal-driven, appropriée pour la résolution du problème, e.g., où sont mes clés? Comment puis-je entrer dans un programme de doctorat? Complexité de Ch. arrière peut être beaucoup moins que linéaire à la taille de KB

Méthodes de preuve Méthodes de preuve divisées grosso modo en 2 catégories: Model checking (Vérification de modèle) Énumération en utilisant une table de vérité (toujours exponentiel en n) Retour en arrière (backtracking) amélioré, e.g., Davis--Putnam-Logemann-Loveland (DPLL) Recherche heuristique dans l’espace de modèles (adéquate mais non complet) e.g., algorithme hill-climbing qui favorise le conflit minimal Application de règles d’inférence Génération légitime (sound) de phrases nouvelles à partir des anciennes Preuve = une séquence d’applications de règles d’inférence Peut utiliser les règles d’inférence comme opérateur dans un algorithme de recherche standard Typiquement, ceci demande à transformer une phrase en une forme normale (pour simplifier la procédure)

Inférence propositionnelle efficace 2 familles d’approches efficaces pour l’inférence propositionnelle Algorithmes de recherche en arrière complète Algorithme DPLL (Davis, Putnam, Logemann, Loveland) Algorithmes de recherche locale incomplète Algorithme WalkSAT

Algorithme DPLL Déterminer si une phrase de logique propositionnelle en entrée (en CNF) est satisfiable. Améliorations sur l’énumération de la table de vérité: Terminaison hâtive Une clause est vraie si chaque littéral est vrai. Une phrase est fausse si une de ses clauses est fausse. Heuristique de symbole pur Symbole pur: toujours apparaître avec le même « signe » dans toutes les clauses. e.g., Dans les 3 clauses (A  B), (B  C), (C  A), A et B sont purs, C n’est pas pur. Faire un symbole pur vrai. Heuristique de clause unité Clause unité: seulement un littéral dans la clause La seule littérale dans la clause doit être vraie.

Algorithme DPLL

Algorithme WalkSAT Algorithme incomplet, recherche locale Fonction d’évaluation : heuristique de conflit min pour minimiser le nombre de clauses insatisfaites Compromis entre voracité et le caractère aléatoire

Algorithme WalkSAT

Problèmes de satisfiabilité difficiles Considérer des phrases 3-CNF aléatoires. e.g., (D  B  C)  (B  A  C)  (C  B  E)  (E  D  B)  (B  E  C) m = nb. de clauses n = nb. de symbols Problème difficiles semblent apparaître autour de m/n = 4.3 (point critique)

Problèmes de satisfiabilité difficiles

Problèmes de satisfiabilité difficiles Temps médiane pour 100 phrases 3-CNF aléatoires satisfiables, n = 50

Agent basé sur inférence dans le monde de wumpus Un agent du monde wumpus utilisant la logique propositionnelle : - Exprimer les observations et les règles du jeu P1,1 W1,1 Bx,y  (Px,y+1  Px,y-1  Px+1,y  Px-1,y) Sx,y  (Wx,y+1  Wx,y-1  Wx+1,y  Wx-1,y) W1,1  W1,2  …  W4,4 W1,1  W1,2 W1,1  W1,3 …  64 symboles de proposition distincts, 155 phrases

Limitation de capacité d’expression de logique propositionnelle KB contient des phrases "physiques" pour chaque carré Pour chaque moment t et chaque place [x,y], Lx,y  FacingRight t  Forward t  Lx+1,y Prolifération rapide de clauses Intractable pour des applications réelles Vers la logique de prédicats (logique de premier ordre) t t

Sommaire Les agents logiques appliquent des inférences sur une base de connaissances pour dériver de nouvelles informations (conclusions) et prendre des décisions Concepts de base en logique: syntaxe: structure formelle de phrases sémantique: vérité de phrases par rapport aux modèles entaînement: une phrase nécessairement vrai étant donné une autre inférence: dériver des phrases à partir des autres phrases Adéquation (soundness): des dérivations produisent seulement des phrases impliquée (conséquences logiques) complétude: des dérivations peuvent produire toutes les phrases impliquées (conséquences logiques) Le monde de Wumpus demande la capacité de représenter des informations partielles et négatives, raisonner pour des cas, etc. La règle de résolution (et la procédure d’inférence correspondante) est complète pour la logique de propositions Chaînage avant et arrière demandent un temps linéaire, sont complets pour des clauses Horn Logique propositionnelle manque d’expressivité