6. Sistemes basats en regles

Models d'intel·ligència artificial

🄯 Carles Gonzàlez - CC-BY-NC-SA

IA simbólica

🄯 Carles Gonzàlez - CC-BY-NC-SA

Intel·ligència artificial simbòlica

  • IA simbólica o IA basada en coneixement:
    • Extraiem coneixement d'experts i el representem d'una forma que les màquines puguin entendre.
    • Utilitzem aquest coneixement per a:
      • Resoldre problemes automàticament.
      • Explicar el raonament de la màquina.
      • Aprendre noves coses.
      • Millorar el coneixement existent.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Representació del coneixement

  • Coneixement vs dades vs informació:
    • Dades: Fets o valors.
    • Informació: Dades amb significat.
    • Coneixement: Informació amb significat i estructura.

El coneixement és un conjunt d'informació estructurada i interrelacionada que permet a un agent realitzar tasques.

🄯 Carles Gonzàlez - CC-BY-NC-SA

Jerarquia del coneixement (I)

  • Moltes vegades definim el coneixement en relació a conceptes similars.
  • La jerarquia del coneixement o jerarquia de DIKW és un model que mostra la relació entre dades, informació, coneixement i saviesa.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Jerarquia del coneixement (II)

  • Dades (Data): Fets o valors registrats en un suport físic. És independent de l'agent i pot ser interpretat de diferents maneres.

    • Exemple: "Un smartwatch registra la temperatura corporal de la persona."
  • Informació (Information): És com les dades són interpretades per un agent. És subjectiva i depèn de l'agent.

    • Exemple: "La temperatura corporal de la persona és de 37ºC"
🄯 Carles Gonzàlez - CC-BY-NC-SA

Jerarquia del coneixement (III)

  • Coneixement (Knowledge): És informació integrada en el nostre model del mon. Depèn de l'agent i dels seus coneixements previs.

    • Exemple: "Si la temperatura és superior a 37ºC, llavors la persona té febre"
  • Saviesa (Wisdom): Representa el meta-coneixement: coneixement sobre com i quan aplicar el coneixement.

    • Exemple: "Si la persona té febre, llavors ha de prendre paracetamol"
🄯 Carles Gonzàlez - CC-BY-NC-SA

Representació del coneixement (I)

  • És la forma en la que representem el coneixement per a que les màquines puguin entendre'l.
  • És un dels problemes fonamentals de la intel·ligència artificial.
  • S'ha de representar de forma que:
    • Sigui entendible per a les màquines.
    • Sigui útil per a resoldre problemes.
    • Sigui eficient per a ser processat per les màquines.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Representació del coneixement (II)

  • Podem veure les diferents representacions com un continuum:
    • A l'esquerra tenim les representacions més simples (algorismes); utilitzables per els ordinadors de forma eficient pero molt poc flexibles.
    • A la dreta tenim les representacions més flexibles (text natural); molt potents pero no utilitzables diréctament per les màquines.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Continuum del coneixement

🄯 Carles Gonzàlez - CC-BY-NC-SA

Representació del coneixement (III)

  • Representacions de xarxa:
    • En la ment humana el coneixement es representa com una xarxa de conceptes interrelacionats.
    • Les representacions de xarxa intentem fer el mateix en un graf dins dels ordinadors.
      • Les anomenem xarxes semàntiques.
    • Hi ha diferents tipus: Parells d'atributs i valors, representacions jeràrquiques, representacions procedurals, lógica, etc.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Parells d'atributs i valors o triplets objecte-atribut-valor

  • Aprofitem que un graf es pot representar com una llista de nodes i arestes per a representar el coneixement.
  • El coneixement es representa com una llista de parells d'atributs i valors.
    • "El gos és un animal, el gos té quatre potes, el gos té pèl, el gos té cua, etc."
    • "El colom és un animal, el colom és un ocell, el colom té dues potes, etc."
    • "El cotxe és un vehicle, el cotxe té quatre rodes, el cotxe té un motor, etc."
🄯 Carles Gonzàlez - CC-BY-NC-SA

Representacions jeràrquiques

  • El coneixement es representa com un arbre.
  • Els nodes de l'arbre representen conceptes.
  • Les arestes representen relacions entre conceptes.
    • Animals Vertebrats Mamífers Gossos Caniche
    • Animals Vertebrats Ocells Coloms Colom comú
    • Objectes Vehicles Cotxes Cotxe de gasolina
🄯 Carles Gonzàlez - CC-BY-NC-SA

Representacions procedurals

  • El coneixement es representa com un conjunt d'accions que es poden realitzar quan es donen certes condicions.
  • Anomenem regles de producció a les declaracions que ens permenten obtindre conclusions a partir de certes premisses.
  • Són de la forma: IF (premissa) THEN (conclusió)
    • IF (la temperatura és superior a 37ºC) THEN (la persona té febre)
    • IF (la persona té febre) THEN (la persona ha de prendre paracetamol)
🄯 Carles Gonzàlez - CC-BY-NC-SA

Lògica

  • La lògica és un sistema formal que ens permet representar el coneixement i raonar sobre ell proposada per Aristòtil fa més de 2000 anys com a eina per a la deducció.
  • La lògica proposicional és un sistema formal que ens permet representar el coneixement i raonar sobre ell. Molt potenta a nivell teòric pero no directament utilitzable per les màquines; un subconjunt es utilitzable en sistemes com prolog.
  • Ex: : "La persona té febre", : "La persona ha de prendre paracetamol"
    • : "Si la persona té febre, llavors la persona ha de prendre paracetamol"
    • : "La persona té febre i la persona ha de prendre paracetamol"
🄯 Carles Gonzàlez - CC-BY-NC-SA

Sistemes experts

🄯 Carles Gonzàlez - CC-BY-NC-SA

Aprofitament del coneixement humà

Definició

  • Sistemes basats en el coneixement (SBC) o sistemes experts (SE):
    • sistemes que utilitzen el coneixement humà per resoldre problemes.
  • El coneixement humà s'expressa en forma de regles.
    • La majoria de sistemes experts utilitzen regles de producció.
  • Els SBC són un subconjunt de la intel·ligència artificial.
    • Actualment es prefereixen els sistemes basats en dades.
    • Així i tot, compleixen un paper important en la IA.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Característiques

  • Coneixement:
    • El coneixement humà s'expressa en forma de regles.
    • El coneixement és declaratiu.
  • Rendiment:
    • Els SBC són especialistes en un domini concret i eficients en ell.
  • Explicació:
    • Els SBC poden explicar el seu raonament i les seves conclusions.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Sistemes basats en regles

🄯 Carles Gonzàlez - CC-BY-NC-SA

Definició

  • És un tipus de sistema basat en el coneixement.
  • Utilitza un conjunt de regles explícites per realitzar un raonament.
  • Les regles són de la forma:
    • IF (premissa) THEN (conclusió)
  • Es determinista
    • Per a una mateixa premissa sempre es dedueix la mateixa conclusió.
  • Es pot representar en forma d'arbre de decisió.
    • Facilita la comprensió del raonament.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Parts d'un sistema basat en regles (I)

  • Memória activa (base de fets):
    • Base de dades de fets que descriuen la situació actual. Volàtil.
  • Base de coneixement:
    • Conjunt de regles que descriuen el coneixement dels experts. Persistent.
  • Motor d'inferència:
    • Busca les regles que s'apliquen a la situació actual (conjunt conflictiu) i les executa per ordre.
🄯 Carles Gonzàlez - CC-BY-NC-SA
🄯 Carles Gonzàlez - CC-BY-NC-SA

Parts d'un sistema basat en regles (II)

  • Mitjans d'explicació:
    • Permeten explicar el raonament del sistema a l'usuari.
  • Mitjans d'adquisició de coneixement:
    • Permeten a l'usuari afegir noves regles al sistema. També es pot fer automàticament.
  • Interfície d'usuari:
    • Permet a l'usuari interactuar amb el sistema.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Classificar un animal (I)

🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Classificar un animal (II)

IF (animal has hair OR animal gives milk) THEN the animal is a mammal
IF the animal eats meat OR (animal has sharp teeth AND animal has claws AND animal has forward-looking eyes ) THEN the animal is a carnivore

  • Els elements de la premissa són antecedents, semblants a triplets objecte-atribut-valor.
  • La memòria activa conté els fets que descriuen la situació actual.
  • El sistema de regles mira que antecedents es compleixen i aplica les seves conclusions, agregant-les a la memòria activa.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Classificar un animal (III)

  • Observacions:
    • Son necessàries moltes regles per cobrir tots els casos.
    • Les regles són difícils de mantenir.
    • Es fàcil que les regles entrin en contradicció.
      • Com representariem l'ornitorrinc?. És un mamífer o un ocell?
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Dolor de queixal (I)

  • IF (tinc dolor de queixal) THEN (tinc càries)
  • IF (tinc dolor de queixal) THEN (tinc una infecció)
  • IF (tinc dolor de queixal) THEN (tinc una sensibilitat)
  • IF (tinc dolor de queixal) THEN (tinc una fractura)
  • IF (tinc dolor de queixal) THEN (tinc una maloclusió)
  • IF (tinc dolor de queixal) THEN (tinc una sinusitis)
  • IF (la geniva està més roja) THEN (tinc una infecció)
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Dolor de queixal (II)

  • Observacions:
    • El dolor de queixal pot ser causat per moltes raons.
    • No es pot determinar la causa amb una única regla.
      • Ens falten eines per gestionar la incertesa.
    • No podem representar la regla "si la geniva està més roja".
      • Ens falten eines per representar el coneixement imprecís.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Problemes

  • Necessiten una gran quantitat de coneixement expert.
  • El coneixement expert és difícil d'obtenir, representar i mantenir.
  • Raonament en incertesa:
    • Els sistemes basats en regles solament poden treballar amb les regles definides
    • Dificultat per treballar amb dades imprecises o incompletes.
  • Flexibilitat:
    • Dificultat per adaptar-se a nous problemes.
    • Dificultat per aprendre nous coneixements.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Estratègies d'inferència

Encadenament cap endavant: forward chaining (I)

  • Revisa els antecedents de les regles per buscar coincidències en els fets i inferir noves conclusions.
    • Raonament deductiu.
  • Basat en la lògica proposicional.
    • Modus ponens:
  • Problema: Pot no trobar la conclusió.
    • Exemple: "Si el gos està malalt, doncs el gos està malalt"
🄯 Carles Gonzàlez - CC-BY-NC-SA

Forward chaining (II)

  • El raonament no ve guiat per la conclusió.
    • Es troben totes les conclusions possibles (relevants o no).
    • Es fa més treball del necessari.
  • L'estratègia de resolució de conflictes és fonamental
    • Es pot millorar en heuristiques
  • Problema: Detecció de les regles que s'han de disparar.
    • Algorime RETE (Forgy, 1979)
🄯 Carles Gonzàlez - CC-BY-NC-SA

Estratègies d'inferència

Encadenament cap enrere: backward chaining (I)

  • Comença amb la conclusió i busca els antecedents que la justifiquen.
    • Raonament inductiu.
    • Utilitza el modus ponens a l'inrevés
  • Els objectius determinen les regles a aplicar.
    • El raonament ve guiat per la conclusió.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Plataformes per a sistemes basats en regles

  • CLIPS (C Language Integrated Production System): Llenguatge de programació i motor d'inferència.
  • Drools: Llenguatge de programació i motor d'inferència.
  • Prolog: Llenguatge de programació lògica.
  • Python
    • Llibreries PyKnow, PyKE i Experta.
    • Llibreria PyCLIPS.
    • Llibreria PyDrools.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Sistemes híbrids Regles/Dades (I)

  • Dos enfocaments:
    • Deducció de regles a partir de dades. - Facilita la interpretació del raonament.
    • Integració de regles definides per l'usuari i Aprenentatge Automàtic. - Permet definir unes regles que es poden millorar amb l'aprenentatge automàtic.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Sistemes híbrids Regles/Dades (II)

Llibreries

  • Human-Learn: Permet definir i dibuixar regles que es poden millorar amb l'aprenentatge automàtic.
  • skope-rules: Analitza les dades i dedueix regles per a classificar.
    • Permet analitzar les regles per millorar-les i interpretar-les.
  • SpaCy:
    • Permet definir regles per a l'extracció d'informació per a textos.
    • Útil en casos on no es disposa de prou dades etiquetades o per casos específics.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Sistemes de raonament imprecís

🄯 Carles Gonzàlez - CC-BY-NC-SA

Definició

  • Lògica difusa o lògica borrosa:
    • Extensió de la lògica proposicional per a treballar amb la incertesa.
    • Permet treballar amb valors imprecisos.
  • Sistemes de raonament imprecís:
    • Sistemes basats en regles que utilitzen la lògica difusa.
    • Permeten treballar amb valors continus.
    • Faciliten modelar el coneixement humà.
    • Molt apropiats per a sistemes de control
    • Ens permeten tindre una bona solució, si no la millor.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Lògica difusa (I)

  • La lògica proposicional és binària.
    • Un enunciat és cert o fals.
  • La lògica difusa permet treballar amb valors continus.
    • Un enunciat pot ser cert i fals en un grau parcial.
  • Els valors de veritat són nombres reals en l'interval .
    • , , en un
  • La pertinença d'un element a un conjunt vindrà donada per una funció de pertinença.
    • : Grau de pertinença d' al conjunt .
🄯 Carles Gonzàlez - CC-BY-NC-SA
🄯 Carles Gonzàlez - CC-BY-NC-SA

Lògica difusa (II)

  • La lógica difusa facilita la representació del coneixement humà.
    • Els humans no raonem en termes binaris.
    • Els humans no tenim un coneixement precís ni complet.
  • Conceptes com $$humit$$ o $$fred$$ són difícils de definir amb precisió.
    • La lògica difusa ens permet definir-los amb funcions de pertinença.
    • El poder treballar amb aquests conceptes facilta la creació de dispositius com assecadors o termòstats.
      • "Si la temperatura és freda, llavors encén la calefacció"
🄯 Carles Gonzàlez - CC-BY-NC-SA

Conceptes bàsics (I)

  • Variable lingüística: Variable que pot prendre valors lingüístics.
    • Exemple:
  • Valors lingüístics: Valors que pot prendre una variable lingüística.
    • Exemple:
  • Funció de pertinença: Funció que assigna a cada valor d'una variable lingüística un grau de pertinença a un valor lingüístic.
    • Exemple:
🄯 Carles Gonzàlez - CC-BY-NC-SA

Conceptes bàsics (II)

  • Regla difusa: Regla que utilitza valors difusos.
    • Exemple: "Si la temperatura és freda, llavors calefacció alta"
  • Funció d'agregació: Funció que combina els valors difusos de les regles per a deduir la conclusió final.
    • Exemple:
  • Sistema de raonament imprecís:
    • Sistema basat en regles que utilitza la lògica difusa.
    • Exemple: Sistema de control de la temperatura d'un habitatge.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Funcionament dels sistemes de raonament imprecís (I)

  • Fuzzyfication:
    • Conversió de les dades d'entrada precises a valors difusos.
    • Passem de valors precisos a valors difusos.
    • Utilitza les funcions de pertinença.
      • Assignen a cada valor d'entrada un grau de pertinença a cada variable lingüística
🄯 Carles Gonzàlez - CC-BY-NC-SA

Funcionament dels sistemes de raonament imprecís (II)

  • Evaluació de les regles:
    • En aquest pas s'apliquen les regles del sistema.
    • S'estableix la relació entre les variables d'entrada i les variables de sortida.
    • "Si la temperatura és alta i la humitat és baixa, llavors la velocitat del ventilador ha de ser alta"
    • Es combinen les funcions de pertinença de les variables d'entrada
      • per a deduir la pertinença de la variable de sortida.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Funcionament dels sistemes de raonament imprecís (III)

  • Defuzzyfication:
    • Conversió de les dades de sortida difuses a valors precisos.
    • Passem de valors difusos a valors precisos.
    • Utilitza les funcions d'agregació.
      • Combina les conclusions de les regles per a deduir la conclusió final.
      • Es sol utilitzar la funció de centre de gravetat o màxim.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Funcions de pertinença (I)

  • Les més utilitzades són les funcions trapezoïdals i les funcions triangulars.
  • Les sinusoïdals són útils per a representar periodes.
  • Les sigmoidals són útils per a representar probabilitats.
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Propines (I)

Variables d'entrada

Utilitzarem funcions triangulars per a representar les variables d'entrada i sortida

  • Servei:
    • Baixa:
    • Mitjana:
    • Alta:
  • Qualitat del menjar:
    • Baix:
    • Mitjà:
    • Alt:
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Propines (II)

Variables de sortida

  • Propina:
    • Baixa:
    • Mitjana:
    • Alta:
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Propines (III)

Regles

  • IF (Qualitat del servei és baixa o Menjar és baix) THEN (Propina és baixa)
  • IF (Qualitat del servei és mitjana) THEN (Propina és mitjana)
  • IF (Qualitat del servei és alta o Menjar és alt) THEN (Propina és alta)
🄯 Carles Gonzàlez - CC-BY-NC-SA

Exemple: Propines (IV)

Inferència

  • Qualitat del servei: 9.8
  • Qualitat del menjar: 6.5
  • Propina: 20.24%
🄯 Carles Gonzàlez - CC-BY-NC-SA
🄯 Carles Gonzàlez - CC-BY-NC-SA