inteligencia artificial -...
TRANSCRIPT
Inteligencia ArtificialInteligencia Artificial
Fco. Javier Alcalá Casado
Normas de la asignaturaNormas de la asignatura
ð La asignatura consta de una parte teórica y otra práctica.
ð La parte teórica se evaluará con el correspondiente examen de teoría: 80% de la nota
ð La parte práctica se realizará con el lenguaje de programación LISP: 20% de la nota.
0.8 * Teoría + 0.2 * Práctica ≥ 5.0
ð La no presentación de la práctica significa la renuncia a la parte correspondiente de la nota final.
ProgramaPrograma
ð Introducción histórica
ð Lenguaje de programación LISP
ð Paradigmas de representación del conocimiento
ð Frames
ð Sistemas de producción
ð Paradigma lógico
ð Exploración de espacios de estados. Búsqueda
ð Exploración de árboles de juego
ð Planificación
ð Aprendizaje simbólico. ID3
ð Algoritmos genéticos
BibliografíaBibliografíað Serradilla, F.; Barros, B. Representación e Inferencia en Inteligencia Artificial.
Un Enfoque Práctico. Escuela Universitaria de Informática, UPM. 1996.
ð Russell, S, Norvig, P. Artificial Intelligence, a modern approach. Prentice-Hall. 1995.
ð Barros, B; Foulquié, T; Serradilla, F. Programación Funcional en Lisp. Escuela Universitaria de Informática, UPM. 1992.
ð Feigenbaum y otros. The Handbook of AI (4 volúmenes). Addison-Wesley.
ð Luger, G. F. & Stubblefield, W. A. Artificial Intelligence: structures andstrategies for complex problem solving.The Benjamin-Cummings Redwood City. 1993.
ð Nilsson, Nilss J. Principios de Inteligencia Artificial. Díaz de Santos. 1987.
ð Rich, E. Inteligencia Artificial. Mac Graw-Hill. 1991.
ð Winston, P. H. Inteligencia Artificial. 3ª ed. Addison-Wesley. 1992.
ð Winston, P. H. Lisp. Addison-Wesley. 1993.
Introducción históricaIntroducción histórica
Fco. Javier Alcalá Casado
Introducción históricaIntroducción histórica
ð El problema de la inteligencia
ð Objetivos de la inteligencia artificial (IA)
ð Historiaû Rama lógico-matemáticaû Rama de la psicologíaû Rama de la informáticaû Conferencia de Darmouthû Rama de la simulaciónû Panorama actual
ð Los primeros sistemas
ð Áreas de estudio
El problema de la inteligenciaEl problema de la inteligencia
ð El principal problema de la inteligencia natural es que no tiene una fácil definición
ð Hofstadter (1987): Inteligencia es la habilidad para
û responder flexiblemente a diferentes situaciones,
û saber aprovechar circunstancias fortuitas,
û dar sentido a mensajes ambiguos o contradictorios,
û encontrar similitudes entre situaciones diferentes, y
û generar nuevos conceptos e ideas innovadoras
El problema de la inteligencia (II)El problema de la inteligencia (II)
ð La inteligencia artificial trata de “imitar” a la inteligencia natural. ¿Cómo definirla?
Sistemas que piensan como humanos
(Bellman)
Sistemas que piensan racionalmente
(Winston)
Sistemas que actúan como humanos
(Minsky)
Sistemas que actúan racionalmente
(Luger)
Eficiencia humana
Procesos mentales y razonamiento
Conducta
Racionalidad
El problema de la inteligencia (III)El problema de la inteligencia (III)
ð Bellman (1978): IA es la automatización de actividades que vinculamos con procesos del pensamiento humano, actividades tales como toma de decisiones, resolución de problemas, aprendizaje...
ðWinston (1992): La IA se ocupa del estudio de las computaciones que permiten percibir, razonar y actuar
ðMinsky (1986): IA es el arte de construir máquinas capaces de hacer cosas que requerirían inteligencia en caso de que fuesen hechas por los seres humanos
ð Luger (1989): IA es la rama de la informática que trata de la automatización del comportamiento inteligente
Test de TuringTest de Turing
ð Turing (1950) dio una definición empírica: el juego de la imitación.
ð Test de Turing:
¿Puede saber el hombrede fuera en qué habitaciónestá la máquina?
Test de Turing (II)Test de Turing (II)
ð Para superar el test de Turing, una máquina debería ser capaz de:
û procesar lenguaje natural: para poder establecer una comunicación satisfactoria
û representar el conocimiento: para guardar toda la información recibida antes o durante el interrogatorio
û razonar automáticamente: para utilizar esa información al responder a las preguntas y obtener conclusiones
û autoaprendizaje de la máquina: para adaptarse a nuevas situaciones y detectar y extrapolar esquemas determinados
ð Test total de Turing: También imita físicamente. Necesita:û Percepción: Visión artificial, reconocimiento del habla…
û Robótica: Habilidades para andar, saltar, subir escaleras…
Objetivos de la inteligencia artificialObjetivos de la inteligencia artificial
ð La IA es una ciencia multidisciplinar: matemáticas, filosofía, psicología e ingeniería
ð Objetivos de ingeniería: desarrollo de sistemas inteligentes mejorando otros anteriores para los que no existe un método algorítmico
ð Objetivos científicos: comprender mejor el funcionamiento de la inteligencia, tanto en el hombre como en las máquinas (filosofía, psicología)û ¿Es la inteligencia independiente del hardware?û ¿Cómo se interrelacionan las estructuras mentales?û ¿Qué reglas las gobiernan?
HistoriaHistoria
ð La IA es el punto de encuentro de varias líneas de investigación
û Rama lógico-matemática
û Rama de la psicología
û Rama de la informática
û Conferencia de Darmouth
û Rama de la simulación
û Panorama actual
Rama lógico-matemáticaRama lógico-matemática
ðMecanización de los procesos de razonamiento desde el punto de vista de la manipulación de símbolos lógicos
ð Hitos importantes:
û El primer esfuerzo de mecanización del pensamiento fueron los silogismos de Aristóteles.
û Leibniz construye el primer sistema axiomático de lógica formal (cálculo de predicados)
û Euler formaliza la Teoría de Grafos
û Hilbert intentó encontrar un conjunto de axiomas y un sistema formal que sintetizasen toda la matemáticaGödel, con el teorema de incompletitud, demostró que no era posible
Rama de la psicologíaRama de la psicología
ð Estudia los fundamentos de la inteligencia en el hombre
ð Hitos importantes
û Dualismo mente/cuerpo de Descartes. La mente constituye una entidad independiente del cuerpo y puede estudiarse por separado
û Los primeros psicólogos (James, Wundt) estudiaron el pensamiento con una metodología basada en la introspección (subjetiva, poco científica)
û Los conductistas (Skinner) consideran a la mente como una caja negra capaz de asociar estímulos con respuestas
û La psicología cognitiva (Chomsky, Fodor) es el paradigma más aceptado
Rama de la psicología (II)Rama de la psicología (II)
ð Características de la psicología cognitiva:
û Estructuralista: los modelos de la conducta se explican por estructuras abstractas
û Los estímulos son procesados por el organismo para producir respuestas (no conductista)
û Mentalismo: la mente utiliza representaciones simbólicas de los conceptos y los procesos mentales manipulan los símbolos
û Paradigma del procesamiento de la información: la mente funcionacomo un ordenador; los programas son teorías psicológicas
û Memoria semántica, modelo de memoria asociativa: los conceptos se representan por símbolos interrelacionados (redes semánticas)
û Modularidad: los procesos mentales son afrontados por módulos débilmente acoplados
Rama de la psicología (III)Rama de la psicología (III)
û Isomorfismo. Hofstadter: “Dos sistemas son isomórficos cuando se puede encontrar un conjunto de reglas que traduzca o identifique estados de cualquiera de ellos en estados del otro.”
Objeto Mundo
Representación
CerebroConexiones
Mente
∈
∈
∈
Rama de la informáticaRama de la informática
ð Inteligencia artificial ⇒ inteligencia + artefactoEl ordenador se reconoce como el artefacto con mayor posibilidad de manifestar inteligencia
ð Hitos importantesû Charles Babbage (principio siglo XIX) diseñó la primera
máquina capaz de desarrollar cálculos automáticos
û Junto con Ada Lovelace diseñó la máquina analítica de propósito general introduciendo conceptos como la memoria, procesador, programas almacenados, saltos condicionales, etc.
û Alan Turing (1937) propone la máquina de Turing.Cualquier procedimiento matemático puede desarrollarse con dicha máquina con una tabla de instrucciones adecuada
Rama de la informática (II)Rama de la informática (II)
û La Cibernética o Teoría de Sistemas (Wiener) puede aplicarse a sistemas biológicos, sociales y artificiales.Se basa en la retroalimentación negativa
CONTROL SISTEMA
SENSOR
Objetivo Error Actuación
ComportamientoMedida
+
-
Objeciones de TuringObjeciones de Turing
ð En 1950, Turing publica Maquinaria de computación e inteligencia. Propone el test de Turing, defiende la posibilidad de construir máquinas que piensen y enumera las posibles objeciones contra estas máquinas:
û Teológicas: la mente no reside en el cuerpo sino en el alma. Si se admite el dualismo, se niega la psicologíaNo es científica
û Del avestruz: si las máquinas pensaran, las consecuencias serían desastrosas; luego esto no puede ocurrirSin comentarios
û Matemáticas: el teorema de incompletitud de Gödel demuestra que en un sistema formal suficientemente complejo existen proposiciones indecidiblesLa mente humana no supera esta limitación
Objeciones de TuringObjeciones de Turing
ðMás objeciones:
û De conciencia: las máquinas no saben lo que están haciendo cuando trabajan.Minsky ⇒ los tres estados de conciencia de un termostato
û De las diversas incapacidades: una máquina nunca podrá ser afectuosa, ingeniosa, amistosa, tener iniciativa...Ahora no, pero sí podría en el futuro
û Objeción de Lady Lovelace: una máquina sólo realiza lo que sabemos cómo ordenarle que hagaSe le puede ordenar que sea inteligente
Objeciones de Turing (II)Objeciones de Turing (II)
ðMás objeciones:
û Continuidad del sistema nervioso: una máquina de estados discretos no puede emular al hombreLa discretización no supone limitaciones
û Basadas en la informalidad de la conducta: el hombre no tiene un conjunto de reglas para regir su vida y las máquinas funcionan con reglasLas neuronas presentan un comportamiento rígido y de ellas surge comportamiento flexible inteligente
û Basado en la percepción extrasensorial: Test de TuringextrasensorialNo científica
Conferencia de DarmouthConferencia de Darmouth
ð Tuvo lugar en 1956
ð Todas las ramas anteriores confluyen en una nueva disciplina, agrupando a psicólogos, matemáticos, informáticos, neurólogos e ingenieros eléctricos
ð John McCarthy acuña el término de Inteligencia Artificial
ð Esta rama unificada de psicólogos cognitivos, lógico-matemáticos y computación simbólica se denomina IA clásica o IA simbólica
Rama de la simulaciónRama de la simulación
ð También llamada IA conexionistaDesarrolla sistemas inteligentes imitando sistemas biológicos con comportamiento inteligente (animales o seres humanos)
ð Su objetivo es construir cerebros artificiales formalmente similares a los cerebros biológicos para dotarles de aprendizaje
ð Hitos importantes:
û Células de McCulloch y Pitts (1943). Emulación de neuronas con circuitos eléctricos
û Perceptrón (Rosenblatt, 1958). Mecanismo de aprendizaje mediante ajuste automático de las conexiones de una red de neuronas
û Perceptrón multicapa (Rumelhart, Hinton y Williams, 1986). Generalización del perceptrón
û Algoritmos Genéticos (Friedberg, 1958). Basados en la teoría evolucionista de Darwin
Panorama actualPanorama actual
ð IA clásica + Rama de la Simulación = Ciencia Cognitiva
ð Su objetivo es el estudio de los “objetos con mente” y los procesos implicados en el pensamiento
ð Cuestiones abiertas:
û Objeciones al Test de Turing, orientado a resolución de problemas, olvidando la percepción, el aprendizaje y la destreza
û Objeciones de la Habitación china
¿Sabe chino el hombre de la habitación?
Reglas
Símbolos
Panorama actual (II)Panorama actual (II)
ðMás cuestiones abiertas:
û Mezcla de técnicas de IA clásica con técnicas de la rama de simulación
û Importancia creciente del aprendizaje
û Problema de los problemas de juguete
û Evolución desde los objetivos científicos a los ingenieriles
û Con ordenadores más potentes se consideran métodos que antes se desechaban
û Herbert Simon: la complejidad demostrada por seres vivos se debe a la complejidad del medio con el que interactúan más que a la complejidad interna de sus “programas” ⇒⇒ Vida artificial
Los primeros sistemasLos primeros sistemas
ð Logic Theorist. Demostración automática de teoremas. Primer programa que utilizó símbolos en lugar de cantidades numéricas
ð DENDRAL. Primer sistema experto para análisis de datos de espectografía de masas (isótopos)
ð SHRDLU. Comprensión del lenguaje natural y planificación de tareas
ð Turochamp. Primer programa de ajedrez
ð Programa de damas de Samuel. Primer programa que incorpora aprendizaje
ð MYCIN. Sistema experto sobre infecciones bacterianas en sangre. Introduce el grado de certeza
ð PROSPECTOR. Sistema experto sobre búsqueda de yacimientos minerales
Áreas de estudioÁreas de estudio
ð La IA está en continua evolución. Áreas más relevantes:
û Representación del conocimiento: Modeliza el conocimiento en estructuras de datos adecuadas
û Exploración del espacio de estados: Busca soluciones en problemas modelizados con grafos
û Heurística: Conocimiento intuitivo. Atajos entre el estado actual y la solución
û Resolución de problemas: Planificación de tareas
û Demostración de teoremas: Programación lógica
û Teoría de juegos: Estrategias de búsqueda (ajedrez)
û Ingeniería del conocimiento (Sistemas Expertos): Requieren de la ayuda de un experto humano
Áreas de estudioÁreas de estudio
ðMás áreas de estudio:
û Diagnóstico: Establece hipótesis sobre el mal funcionamiento de un sistema
û Aprendizaje: Refina el conocimiento inicial para hacerlo más operativo
û Comprensión del lenguaje natural (y traducción automática):
û Percepción computacional (reconocimiento de patrones): interpreta la información sensorial
û Simulación de procesos psicológicos humanos: Estudia la inteligencia humana mediante procesos de simulación
û Sistemas multiagente: Coordinación de la conducta inteligente entre un conjunto de agentes autónomos y heterogéneos
Lenguaje de Programación LISPLenguaje de Programación LISP
Fco. Javier Alcalá Casado
Marco históricoMarco histórico
ðMcCarthy lo creó en 1958
ð Se creó para procesar de listas en un proyecto de IA
ð La primera versión consumía mucha memoria (recurso caro)
ð Se crearon varias versiones: FRANZLISP, ZETALISP, MULISP, XLISP, LELISP, SCHEME...
ð Con el avance del hardware se solucionó el problema de la memoria y surgió el estándar actual: COMMON LISP
Características de LISPCaracterísticas de LISP
ð Lenguaje funcional. Utiliza las propiedades matemáticas de las funciones
ð Simbólico. Utiliza el símbolo como unidad fundamentalð Procesamiento de listas (LISt Procesing)ð Flexibilidadû Utiliza la misma estructura para datos y códigoû Paso de funciones como parámetro (reusabilidad)û Autodefinición del lenguaje (entorno a la medida)û Estructura de datos muy flexible (Garbage collector)
ð Recursividad. Definiciones muy claras y concisas
ð Interpretado. Desarrollo rápido de prototipos
ð Compacto: funcional + recursivo + listas
Lenguajes funcionalesLenguajes funcionales
ð La primitiva básica es la función
ð Una función es una regla de correspondencia entre miembros de un dominio y miembros de un rango
ð Un programa es un conjunto de funciones que se llaman unas a otras y se pasan los datos en las llamadas
ð Una ventaja importante es la recursividad
ð La asignación está definida y se utiliza; a pesar de ser considerado un lenguaje sin asignación
Componentes de LISPComponentes de LISP
ð Conjunto de objetos o datos. Estructura fundamental: lista
ð Funciones primitivas. Aquéllas aportadas inicialmente por el lenguaje
ð Operación de aplicación (read-eval-print loop). Primitiva encargada de gestionar y realizar el proceso de interpretación: lectura-escritura-devolución de resultados
ð Formas funcionales (DEFUN). Funciones definidas por el programador que pasan a formar parte del lenguaje como una primitiva más
ð Operadores aplicativos. Funciones cuyos parámetros son otra función y los argumentos de esta otra función
Campos de aplicación. FuncionalidadCampos de aplicación. Funcionalidad
ð Campos de aplicación:
û Inteligencia Artificial
û Entornos gráficos
ð Funcionalidad:
û No se deben utilizar variables globales dentro de funciones. Atenta contra la reusabilidad y la claridad del programa.En su lugar, se utilizan variables locales o paso de parámetros
û No se deben utilizar estructuras iterativas, sino recursividad
Paradigmas de Representación del ConocimientoParadigmas de Representación del Conocimiento
Fco. Javier Alcalá Casado
Paradigmas de representación del conocimientoParadigmas de representación del conocimiento
ð Computación sobre representaciones
ð Tipos de conocimiento
ð Uso del conocimiento
ð Tipos de razonamiento
ð Tipos clásicos de representación:
û Frames (marcos)
û Sistemas de producción
û Paradigma lógico
û Exploración de espacios de estados
Computación sobre representacionesComputación sobre representaciones
ð Una estructura de datos no representa conocimiento. Es necesario establecer mecanismos para acceder y relacionar distintas partes del conocimiento
ð Un sistema inteligente se divide en:
û representaciones del conocimiento y
û computaciones sobre estas representaciones
⇒ Paradigma C-R
ð Se independiza el proceso de resolución del problema, inferencia, de la naturaleza del mismo
Computación sobre representaciones (II)Computación sobre representaciones (II)
Problema Representación
Inferencia
Modelización
Solución Explicación
Tipos de conocimientoTipos de conocimientoð Objetos. Conceptos con entidad propia
ð Eventos. Especifican sucesos en el tiempo
ð Reglas de inferencia. Indican cómo obtener nuevo conocimiento a partir del que ya tiene el sistema
ð Conocimiento procedural. Indica la manera de realizar determinadas cosas. Son las computaciones sobre las representaciones. El cómo
ðMetaconocimiento. Conocimiento a nivel más abstracto. Da una idea de cuál es la mejor manera de resolver un problema
ð Conocimiento declarativo. Representa los conceptos que intervienen en el problema. Hechos, reglas y metaconoci-miento. El qué
Ejemplo del MetroEjemplo del Metro
ð Definir un sistema que permita calcular el camino más corto entre dos estaciones:
û Objetos: las estaciones
û Eventos: las horas a las que pasan los trenes
û Reglas de inferencia: determinan a qué estaciones puedo pasar a partir de una dada
û Conocimiento procedural: cómo encontrar un camino entre dos estaciones
û Metaconocimiento: para encontrar un camino debo buscar explorando hacia la estación destino
Uso del conocimientoUso del conocimiento
ð Problemas que se plantean con el uso del conocimiento:
û Adquisición. Los modelos de representación deben ser capaces de recoger nueva información para que se integre con la adquirida anteriormente, completándola o actualizándola
û Recuperación. El acceso a parte del conocimiento debe ser sencilla y eficiente.La memoria asociativa humana relaciona información con un contexto
û Razonamiento. Permite obtener nuevo conocimiento a partir del que ya se tiene. Este conocimiento está implícito, pero es de difícil obtención
Tipos de razonamientoTipos de razonamiento
ð Formal. Deduce, con reglas de inferencia, estructuras de datos manipulando sintácticamente otras estructuras (gramáticas generativas)
ð Procedural. Razonamiento mediante la ejecución de determinados algoritmos
ð Por analogía. Razonamiento por semejanza. Frecuente en los humanos
ð Generalización y abstracción. Proceso de obtención de conocimiento más refinado a partir de otro más simple
Tipos clásicos de representaciónTipos clásicos de representación
ð La representación se divide en dos partes: conocimiento declarativo e inferencia o conocimiento procedural
ð Conocimiento declarativo (K). Representa objetos y conceptos que intervienen en el problema.Es dependiente del problema
û Hechos (H): cosas ciertas en un momento dado. Constituyen la memoria de trabajo (a corto plazo)
û Reglas (R): conocimiento a largo plazo. Permiten obtener nuevo conocimiento a partir del que ya se tiene
û Metaconocimiento (M): ayuda a la inferencia a manipular las reglas para obtener un hecho concreto
Tipos clásicos de representación (II)Tipos clásicos de representación (II)
ð Inferencia o conocimiento procedural (I): Representa el modo de obtener nuevo conocimiento a partir del que ya se tiene en un instante dado.Es independiente del problema
ð Paradigmas clásicos de representación
û Frames (marcos) H: Valores de atributos R: Herencia y demonios I: Funciones de manipulación, equiparación
û Sistemas de producción H: Ternas objeto-atributo-valor R: Reglas de producción M: Parámetros, metarreglas I: Encadenamiento de reglas
Tipos clásicos de representación (III)Tipos clásicos de representación (III)
û Paradigma lógico K (H y R): Cálculo de predicados, reglas lógicas, cláusulas de
Horn I: Unificación, resolución
û Exploración de espacios de estados H: Estados R: Transiciones de estado M: Funciones heurísticas I: Algoritmos de búsqueda
Sistemas de ProducciónSistemas de Producción
Fco. Javier Alcalá Casado
Sistemas de ProducciónSistemas de Producción
ð Introducción
ð Hechos
ð Reglas
ðMetaconocimiento
ðMotor de Inferencia
ðMódulo de explicación
IntroducciónIntroducción
ð En los sistemas de producción se representa el conocimiento mediante hechos, reglas de producción y metaconocimiento.
Motor deInferencia
Hechos
Reglas
Metaconocimiento
Módulo deExplicación
Introducción (II)Introducción (II)
ð Base de hechos: conjunto de todos los hechos
ð Base de reglas: conjunto de todas las reglas
ð El metaconocimiento establece criterios para aplicar las reglas
ð El motor de inferencia permite obtener nueva información a partir de la inicial
ð El módulo de explicación justifica las conclusiones que se han obtenido.
HechosHechos
ð Los hechos se representan por ternas Objeto-Atributo-Valor
(<objeto>, <atributo>, <valor>)
ð Ejemplos:
û (rayo, es-un, caballo)
û (veloz, es-un, caballo)
û (cometa, es-un, caballo)
û (rayo, valioso, sí)
û (veloz, hijo-de, cometa)
û (cometa, rápido, sí)
ReglasReglas
ð Tienen el siguiente formato:
IF <expresión-lógica> AntecedenteTHEN <acciones> Consecuente
ð Una terna en el antecedente es cierta sólo si existe en la base de hechos
ð Si se aplica la regla, se ejecutan todas las acciones del consecuente, que pueden ser nuevas ternas o llamadas a función
ð R1:IF (X, es-un, caballo) AND (X, hijo-de, Y) AND
(Y, es-un, caballo) AND (Y, rápido, sí)THEN (X, valioso, sí)
MetaconocimientoMetaconocimiento
ð El metaconocimiento ayuda a determinar qué regla se aplica cuando hay varias aplicables
ð Criterios de aplicación de reglas:û La primera regla de la base de reglas
û Azar
û La más específica (con más elementos en el antecedente)
û La más genérica (con menos elementos en el antecedente)
û La más recientemente utilizada
û La menos recientemente utilizada
û La que añada más información (con más elementos en el consecuente)
û Todas
Metaconocimiento (II)Metaconocimiento (II)
ð Si tras aplicar todos los criterios, sigue habiendo varias posibilidades, se elige la primera regla en orden de aparición
ð Las metarreglas son reglas que expresan cuándo debemos dar preferencia a una regla concreta
Ejemplo:Si la consulta es sobre gripe,entonces dar preferencia a las reglas R3 y R4
Motor de InferenciaMotor de Inferencia
ð Repetir
û Establecer el conjunto conflicto (CC). Se obtienen todas las reglas cuyo antecedente se equipara con los elementos de la base de hechos y se especifica una lista de pares (regla, sustitución)
û Seleccionar un único par (regla, sustitución) con los criterios establecidos por el metaconocimiento
û Disparar la regla seleccionada. Se aplica la sustitución y se añaden a la base de hechos las ternas del consecuente. Si ya existe el atributo del objeto en alguna terna del CC, se actualiza su valor para evitar inconsistencias
Hasta que el hecho buscado esté en la base de hechos o la base de hechos no haya cambiado
Módulo de explicaciónMódulo de explicación
ð Se encarga de dar una justificación a posteriori de las conclusiones a las que ha llegado el sistema
ð Se guarda una traza para saber qué reglas y en qué orden se han utilizado, así como los hechos que permitían utilizarlas y las conclusiones intermedias
FramesFrames
Fco. Javier Alcalá Casado
FramesFrames
ð Introducción
ð Estructura de un frame
ð Herencia
ð Demonios
ð Tipos de facets
ð Representación en LISP
ð Funciones de manipulación de frames
ð Inferencia en frames
IntroducciónIntroducción
ð Un frame es una estructura activa de almacenamiento de información
ð Utiliza mecanismos para buscar automáticamente un dato si éste no se encuentra en el propio frameEstos mecanismos son:
û Herencia: mediante una relación de jerarquía, busca el dato solicitado en otros frames
û Demonios (o valores activos): son funciones que son llamadas automáticamente cuando se hace referencia a ciertos datos
ð Un frame se puede relacionar con otro con relaciones de pertenencia, inclusión o de usuario
Estructura de un frameEstructura de un frame
ð Un frame es una estructura con compartimentos en los que se guarda la información.Representa un objeto
ð Se compone de:
û Atributos (slots): cada uno de los compartimentos
û Valores: el contenido del compartimento
û Facetas (facets): indica cómo se puede utilizar el conocimiento del slot
Pedro
ES-UN
Profesión
Altura
Value Hombre
PintorDefault
180Value
HerenciaHerencia
ð Si A tiene una relación de instancia o de subclase con B, los atributos de A que no tengan ningún valor lo toman de los que tengan esos mismos atributos en B
ð Una relación de instancia se define a través del atributo IS-A (ES-UN). Su valor será el nombre del frame del que hereda
ð Una relación de subclase se define a través del atributo AKO (a kind of)
ð En una cadena de herencia puede haber varios atributos AKO, pero sólo uno IS-A
DemoniosDemonios
ð Los demonios o valores activos son funciones que se disparan automáticamente cuando se almacenan o se recuperan datos en un frame
ð Un demonio tiene dos parámetros: frame y slot
ð IF-NEEDED se dispara al intentar recuperar el valor de un atributo que no tiene ningún valor asociado. Proporciona la información requerida ejecutando un algoritmo
û El demonio ASK pregunta al usuario el valor de un atributo
ð IF-ADDED se dispara después de asignar un valor a un atributo
Tipos de facetsTipos de facets
ð Un sistema básico dispone de los siguientes facets:
û Value: el contenido del slot es un valor literal
û Default: el contenido del slot es un valor por defecto (sólo se devuelve si no está definido el facet Value)
û Range: indica el rango de valores válidos para el slot
û IF-ADDED: el contenido del slot es un demonio IF-ADDED
û IF-NEEDED: el contenido del slot es un demonio IF-NEEDED
Representación en LISPRepresentación en LISP
ð Hay dos maneras:
û Representación muy eficiente pero incómoda de manipular:
( Frame1 Frame2 ... FrameN )donde cada Frame-i es ( <Nombre-frame> Slot1 ... SlotN )donde cada Slot-i es ( <Nombre-slot> Facet1 ... FacetN )donde cada Facet-i es ( <Nombre-facet> <valor> )
û Representación muy sencilla de manipular pero menos eficiente:
( E1 E2 ... EN)donde cada Ei es un par( ( <Nombre-frame> <Nombre-slot> <Nombre-facet> ) <valor> )
Funciones de manipulación de framesFunciones de manipulación de frames
ð FPUT permite añadir información al sistema
( FPUT Frame Slot Valor &OPTIONAL (Facet ‘value) )
ð FGET permite recuperarla
( FGET Frame Slot &OPTIONAL (Origen Frame) (Is-a T) )
ð FFIND encuentra los frames que mejor se equiparan con ciertas restricciones
( FFIND ( Slot1 Valor1 ) ( Slot2 Valor2 ) ... ( SlotN ValorN ) )
Inferencia en framesInferencia en frames
ð La inferencia en frames se realiza de distintas maneras:
û Con los valores por defecto
û A través de la herencia, cuando se solicita un valor que no está en el frame, pero sí en sus antecesores
û A través de los demonios, cuando se disparan procedimientos para calcular el valor solicitado
û A través de la equiparación, cuando se busca en la base de frames con FFIND
Paradigma lógicoParadigma lógico
Fco. Javier Alcalá Casado
Paradigma lógicoParadigma lógico
ð Introducción
ð Unificación de predicados
ð Encadenamiento de reglas dirigido por el objetivo
IntroducciónIntroducción
ð Procesamiento realizado por el lenguaje de programación PROLOG
ð Representación basada en:
û Términos: variables (A, B, X), constantes (juan, 2, caballo) y funciones cuyos argumentos son términos (f(x), padre(juan))
û Predicados: símbolos de n argumentos (que son términos) que toman valor verdadero o falso
caballo(X), valioso(veloz), es-padre(veloz, padre(cometa))
û Cláusulas de Horn: hechos o reglas formadas por varios antecedentes (conjunción) y un consecuente
consecuente :- antecedente1, antecedente2 ...
La disyunción se representa añadiendo reglas
Unificación de predicadosUnificación de predicados
ð La unificación es un proceso por el cual se transforman dosexpresiones lógicas para hacerlas idénticasNo siempre es posible realizarla
ð Algoritmo para unificar dos predicados:
û Los símbolos de los predicados han de ser iguales y con el mismonúmero de argumentos. Si no se termina con FALLO
û Por cada término de ambos predicados puede suceder: Si un término es una variable y el otro es cualquier término que
no contenga a esa variable, se sustituye la variable por el término Si los dos términos son constantes con el mismo valor, ya están
unificados. Si el valor es distinto se termina con FALLO Si los términos son funciones, deberán llamarse igual y tener el
mismo número de argumentos. Se aplica recursivamente el algoritmo a los argumentos de la función Si no se cumple ningún caso, se termina con FALLO
Ejemplos de unificación de predicadosEjemplos de unificación de predicados
ð Unificar:û tos(X), tos(juan) ⇒ <X,juan>
û amigo(X,Y), amigo(andres,julio) ⇒<X,andres> <Y,julio>
û colocado(X,Y,atras), colocado(X,grande,X) ⇒<X,atras> <Y,grande>
û B(a,g(X,b),Y), B(Z,g(c,b),d) ⇒ <X,c> <Y,d> <Z,a>
û A(X,g(Y)), A(c,Y) ⇒ FALLO
û A(X,g(Y)), A(c,Z) ⇒ <X,c> <Z,g(Y)>
Encadenamiento de reglas dirigido por el objetivoEncadenamiento de reglas dirigido por el objetivo1. Se parte de una lista L de objetivos O1 O2 ... On
2. Selección2.1 Seleccionar un objetivo Oi por orden de aparición2.2 Seleccionar una cláusula Rj por orden de aparición.
Renombrar sus variables.Si el consecuente de Rj puede unificarse con Oi, se crea una nueva rama realizando las sustituciones necesarias;si no se puede unificar ⇒ la rama termina en FRACASO
3. Resolución: Oi se sustituye en L por el antecedente de Rj . A todas las cláusulas de L se les aplica las sustituciones de la unificación
4. Si L vacía ⇒ la rama termina en ÉXITOsi no, volver al paso 2
El algoritmo termina cuando se han recorrido todas las ramas
Métodos de Exploración en Espacios de EstadosMétodos de Exploración en Espacios de Estados
Fco. Javier Alcalá Casado
Métodos de exploración en espacios de estadosMétodos de exploración en espacios de estados
ð Introducción
ð Algoritmos de búsqueda
û Expansión de un camino
û Esquema básico de un algoritmo de búsqueda
û Método de escalada
û Primero el mejor
û Algoritmo A*
ð Representación en árbol
IntroducciónIntroducción
ð La exploración de espacios de estados es una de las técnicas más importantes en IA
ð Se manejan estados (hechos del problema), transiciones(reglas) y funciones heurísticas (metaconocimiento). La inferencia se realiza a través de algoritmos de búsqueda
ð Un estado es cada configuración posible de un problema. Se representan con estructuras de datos.Ej: Problema del Metro ⇒ estado: “estar en la estación X”
û Los sucesores son los estados que se pueden alcanzar en un único paso desde un estado. Son el resultado de una transición de estadoEj: Metro ⇒ sucesores: “estaciones consecutivas”
Introducción (II)Introducción (II)
ð Una transición permite obtener una lista de estados a los que se llega desde un estado previo tras la aplicación de operaciones definidas en el dominio del problema.Se describe con un algoritmo y puede tener un costeasociado.Ej: Metro ⇒ coste: “tiempo medio entre estaciones”
ð Una función heurística o heurístico es una función matemática que devuelve un valor numérico menor cuanto más cerca está un estado cualquiera del estado objetivo. El valor no tiene por qué ser exacto.Ej: Metro ⇒ función: “distancia euclídea entre estaciones”
Introducción (III)Introducción (III)
ð Elementos a definir para la exploración de espacios de estados:
û Una estructura de datos para los estados
û Operaciones aplicables a un estado para obtener nuevos estados (y un coste asociado, si es preciso)
û Una función heurística que devuelva la proximidad entre un estado cualquiera y el estado objetivo
û Una función que determine si un estado X es o no un estado solución
Algoritmos de búsquedaAlgoritmos de búsqueda
ð Un algoritmo de búsqueda permite encontrar, desde un estado inicial, una secuencia de estados hasta alcanzar el estado objetivo.
ð Cada estado intermedio es consecuencia de aplicar una regla de transición al estado precedente
ð Se llama camino a una secuencia de estados que lleva de un estado a otro
û Camino solución es el que va desde el estado inicial hasta el estado objetivo
û Camino parcial es el que va desde el estado inicial hasta un estado que no es solución (estado actual)
Expansión de un caminoExpansión de un camino
ð La expansión de un camino C resulta de añadir a C cada uno de los nuevos estados alcanzables desde el último estado de C. Se excluyen los caminos cíclicos, es decir, los que llegan a un nodo que ya está incluido en C
ð EXPANDIR ( C )
û Calcular los sucesores del último estado de C utilizando reglas de transición
û Inicializar R =
û Para cada sucesor Ei que no esté en CAñadir a la lista R un nuevo camino, obtenido de añadir a C el estado Ei
û Devolver R
Expansión de un camino (II)Expansión de un camino (II)
ð Camino = (A B D)
ð EXPANDIR ( Camino )Sucesores: B, C, E, FR = R = (A B D C) R = (A B D C), (A B D E) R = (A B D C), (A B D E), (A B D F)
ð En LISP, las listas se crean a la inversa
A
C
B
D F
E
Esquema básico de un algoritmo de búsquedaEsquema básico de un algoritmo de búsqueda
BUSCAR ( INICIO OBJETIVO HEURISTICO COSTE )
1. Formar la lista CP de caminos pendientes (lista de posibles caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ y estado actual del primer camino ≠ OBJETIVO Expandir primer camino obteniendo una nueva lista E Quitar de CP el primer camino Formar una nueva lista CP combinando CP y E y la
información de HEURISTICO y COSTE
3. Si CP = , devolver FALLOen caso contrario, devolver como solución el primer camino
Método de escaladaMétodo de escalada
ESCALADA ( INICIO OBJETIVO HEURISTICO )
1. Formar la lista CP de caminos pendientes (lista de posibles caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ y estado actual del primer camino ≠ OBJETIVO Expandir primer camino obteniendo una nueva lista E Quitar de CP el primer camino Ordenar E de menor a mayor según el valor devuelto por
HEURISTICO Añadir E por delante a la lista CP
3. Si CP = , devolver FALLOen caso contrario, devolver como solución el primer camino
ð Se da prioridad a los nuevos caminos más prometedores
Representación en árbolRepresentación en árbol
ð Se coloca en la raíz el estado inicial
ð Por cada estado seleccionado se indica en el árbol el número de iteración con un recuadro y se añaden sus descendientes (expansión)
ð Se selecciona el siguiente nodo a expandir según el algoritmo de exploración que se esté utilizando
ð Junto a cada nodo se anota el valor de la función heurística (para escalada y “primero el mejor”) o de la función de estimación (para A*).En el A* se señalan también las “podas” realizadas por la programación dinámica (PD)
Problemas del método de escaladaProblemas del método de escalada
ð Sensible a mínimos locales: un mínimo local se produce cuando estando en un estado la función heurística se hace mínima localmente. Esto lleva a caminos que no conducen a la solución o a caminos más largos
ðMesetas: se produce cuando la función heurística toma valores similares en todos los caminos pendientes. El progreso hacia la solución es lento
ð Importancia del heurístico: un buen heurístico debe dar valores bajos cuando el estado actual esté cerca de la solución.Un heurístico ideal nos guiaría hacia la solución con un coste computacional mínimo y con el menor número de nodos
Primero el mejorPrimero el mejor
PRIMERO_EL_MEJOR ( INICIO OBJETIVO HEURISTICO )
1. Formar la lista CP de caminos pendientes (lista de posibles caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ y estado actual del primer camino ≠ OBJETIVO Expandir primer camino obteniendo una nueva lista E Quitar de CP el primer camino Añadir E por detrás a la lista CP Ordenar la nueva lista CP de menor a mayor según el valor
devuelto por HEURISTICO
3. Si CP = , devolver FALLOen caso contrario, devolver como solución el primer camino
ð La ordenación se realiza en todos los caminos pendientes
ð Da mejores resultados que el método de “escalada” con mayor carga computacional
Algoritmo A*Algoritmo A*
ð A* encuentra la solución óptima siempre que la función heurística cumpla la condición de minorancia:
h(e) ≤ h*(e) ∀eh(e) valor del heurístico en el estado eh*(e) coste real del menor camino desde e hasta el estado soluciónLa distancia euclídea cumple la condición de minorancia
ð Utiliza dos nuevos elementos:
û Programación dinámica: si hay dos caminos que llegan al mismo nodo, se eliminan los de mayor coste
û Función de estimación: f(c) = g(c) + h(c)g(c) coste acumulado desde el inicio hasta el estado actualh(c) valor del heurístico desde el estado actual hasta el objetivof(c) estimación del coste total que tendrá el camino solución
Algoritmo A* (II)Algoritmo A* (II)
A* ( INICIO OBJETIVO HEURISTICO COSTE )
1. Formar la lista CP de caminos pendientes (lista de posibles caminos solución). Inicialmente CP contiene el estado INICIO
2. Mientras CP ≠ y estado actual del primer camino ≠ OBJETIVO Expandir primer camino obteniendo una nueva lista E Quitar de CP el primer camino Añadir E por detrás a la lista CP Ordenar la nueva lista CP de menor a mayor según la función
de estimación (HEURISTICO + COSTE acumulado) Aplicar programación dinámica: si hay dos caminos que llegan
al mismo nodo, se elimina el de mayor coste
3. Si CP = , devolver FALLOen caso contrario, devolver como solución el primer camino
Exploración de Árboles de JuegosExploración de Árboles de Juegos
Fco. Javier Alcalá Casado
Exploración de árboles de juegoExploración de árboles de juego
ð Introducción
ð Juegos de suma cero
ð Implementación de juegos
ð Los jugadores y la heurística
ð Algoritmo Minimax
ð Algoritmo Alfa-beta
IntroducciónIntroducción
ð Shannon (1950) publicó “Programando un ordenador para jugar al ajedrez”
ð El ajedrez plantea problemas similares a los de la deducción lógica: hay que elegir entre varias situaciones posibles y el objetivo no está totalmente definido
ð El modelo discreto que define Shannon se conoce como árbol de juego y el modelo matemático como teoría de juegos de suma cero de dos jugadores con información completa
û Juego de suma cero: aquél en el que los intereses de los jugadores son contrarios. Si uno gana el otro pierde
û Juego de información completa: aquél en el que cada jugador conoce las posibles jugadas que puede realizar el adversario
Juegos de suma ceroJuegos de suma cero
ð Características:
û Suelen ser juegos de dos contrarios con turno alternativo
û Terminan en dos o tres resultados posibles: ganar, perder o tablas (no se da en todos)
û Cada movimiento implica una elección sobre todas las jugadas posibles. La elección sigue criterios determinados por el juego y no depende del azar (como en los dados, cartas...)
û En todo momento los jugadores conocen las jugadas ya realizadas y las que se pueden realizar
û Cada jugador tiene un nº determinado de movimientos en un momento dado. El árbol resultante es finito
Implementación de juegosImplementación de juegos
ð Son necesarios 4 elementos:
û abstracción de datos: para almacenar y representar el tablero (estado del juego)
û generador de movimientos: genera todas las posibles jugadas inmediatas a partir de una situación del juego
û función heurística: devuelve un valor, llamado valor estático, que evalúa cómo de favorable es cada jugada para orientar al algoritmo de búsqueda
û estrategia de búsqueda: permite decidir qué estrategia es la más apropiada en cada momento
Los jugadores y la heurísticaLos jugadores y la heurística
ð Se consideran dos jugadores, MAX y MIN, que intentan maximizar y minimizar la función heurística
ðMAX (ordenador) elige la posición que tenga más valor en la evaluación de la función heurística
ðMIN (adversario) elige la posición con menos valor
ð La función heurística debe asignar valores tanto mayores cuanto mejor sea el estado del juego. Los valores deberán ser positivos para MAX y negativos para MIN
ð Si MAX gana, la función devolverá +∞; si gana MIN, -∞
Algoritmo MinimaxAlgoritmo Minimax
ð El objetivo es encontrar una buena jugada rápidamente
ð La generación y la exploración del árbol están separadas
ð Algoritmo:
û Generar el árbol con profundidad n etiquetando cada nivel con MAX y MIN, alternativamente. El primer nivel es MAX
û Calcular los valores estáticos para los nodos hoja
û Explorar desde el nivel n hasta la raíz: Si el nivel es MIN, elegir el menor valor de sus nodos hijos.
Si el nivel es MAX, elegir el mayor valor de sus nodos hijos Etiquetar el nodo con ese valor
û Elegir como mejor jugada la correspondiente al valor elegido por el nodo raíz
Algoritmo Alfa-betaAlgoritmo Alfa-betað Alfa-beta mejora el minimax utilizando dos valores:û alfa (α): asociado a MAX; no puede decrecer; inicio, α = -∞û beta (β): asociado a MIN; no puede crecer; inicio, β = +∞
ð ALFA-BETA (nodo, profundidad, F, α, β, jugador)
Iniciar α, β localmenteSi profundidad = 0 ó es final de juego, devolver FSi jugador = MIN
Repetir hasta terminar todos los hijos ó α ≥ βV = ALFA-BETA ( HIJOi, profundidad-1, F, α, β, MAX)Si V < β entonces β = V
Si α ≥ β, devolver -∞ (corte β); si no, devolver βSi jugador = MAX
Repetir hasta terminar todos los hijos ó α ≥ βV = ALFA-BETA ( HIJOi, profundidad-1, F, α, β, MIN)Si V > α entonces α = V
Si α ≥ β, devolver +∞ (corte α); si no, devolver α
Planificación de TareasPlanificación de Tareas
Fco. Javier Alcalá Casado
Planificación de TareasPlanificación de Tareas
ð Visión general
ðMétodo STRIPS
ð Operador STRIPS
ð Algoritmo STRIPS
Cogercuchillo
Visión GeneralVisión General
ð La planificación pertenece al campo de resolución de problemas
ð La planificación se basa en la división de un problema en subproblemas más pequeños que se resuelven por separado. La combinación de todas las subsolucionesforma la solución del problema original
Barra depan entera
Tenedor enla mano
Pan cortado
Cortarpan
Dejartenedor Mano libre Cuchillo en
la mano
Visión General (II)Visión General (II)
ð La planificación debe encontrar un conjunto de acciones, operaciones o tareas que transformen un estado inicial en un estado objetivo
ð La solución del problema estará formada por una sucesión de operaciones denominado plan
PLAN = Dejar Tenedor, Coger Cuchillo, Cortar Pan
Visión General (II)Visión General (II)
ð El primer planificador, desarrollado por Newell y Simon(1957), fue el sistema GPS (General Problem Solver). Su objetivo era resolver cualquier tipo de problema
ð La principal aportación de GPS a los planificadores de tareas se centra en la organización de los datos:
û Selector: atributo que define una característica relevante del entorno del problema (subobjetivos)
û Estado: conjunto de selectores que definen una situación del mundo en un instante concreto
û Operador: acción que transforma un estado en otro
Método STRIPSMétodo STRIPS
ð STRIPS (STanford Research Institute Problem Solver) utiliza la lógica para mejorar la resolución del problema
ð Utiliza gran parte de los elementos del sistema GPS
ð Realiza una exploración en profundidad sobre el espacio de estados del problema (despliega un árbol)
ð Opcionalmente, proporciona un mecanismo de aprendizaje utilizando la información de tareas resueltas previamente (tablas triangulares)
Operador STRIPSOperador STRIPS
ð Un operador STRIPS consta de los siguientes elementos:
û Nombre del operador
û Parámetros del operador. Son opcionales
û Precondiciones (P): lista de selectores que se tienen que cumplir para poder aplicar el operador
û Lista de Adición (A): lista de selectores que se añaden al estado actual al aplicar el operador
û Lista de Supresión (S): lista de selectores que se suprimen del estado actual al aplicar el operador
Algoritmo STRIPSAlgoritmo STRIPS
ð STRIPS consiste en seleccionar un operador que permita alcanzar el objetivo al aplicarlo. Las precondiciones pasan a ser subobjetivos que deben alcanzarse
ð Se seguirá descomponiendo hasta que todas las precondiciones se cumplan y se pueda aplicar el operador
ð Un nodo de exploración contiene dos variables:
û ESTADO, que almacena el estado en ese nodo
û PILA, que almacena selectores, operadores y conjunciones de selectores
ð Un nodo de FALLO es aquél en el cual, para alcanzar un determinado objetivo A, es necesario que A se cumpla
Algoritmo STRIPS (II)Algoritmo STRIPS (II)ESTADO = ESTADO_INICIAL; PILA = OBJETIVO
REPETIR HASTA que PILA = ø ó todos los nodos sean de FALLOSI la cima de la PILA es un operadorENTONCES aplicarlo y obtener el nuevo ESTADO (suprimiendo y
añadiendo selectores), suprimirlo de la cima (PLAN++)SI la cima de la PILA es una conjunción de selectoresENTONCES SI se verifica la conjunción
ENTONCES suprimirla de la cimaEN CASO CONTRARIO añadir la precondición que falla
SI la cima de la PILA es un selector ∈ ESTADOENTONCES suprimirlo de la cimaEN CASO CONTRARIO
SI el selector aparece más abajo en la PILAENTONCES es un nodo de FALLO, la rama se aborta
y recorre otra rama en profundidad
Determinar operadores que contenga en su listade adición el selector de la cima de la pila
POR CADA operadorAñadir la instancia del operadorAñadir la conjunción de sus precondicionesAñadir cada una de sus precondiciones
SI PILA ≠ øENTONCES devolver FALLO, no hay soluciónEN CASO CONTRARIO hemos ejecutado el PLAN
Aprendizaje Simbólico a partir de EjemplosAprendizaje Simbólico a partir de Ejemplos
Fco. Javier Alcalá Casado
Aprendizaje Simbólico a partir de EjemplosAprendizaje Simbólico a partir de Ejemplos
ð Introducción
ð Parámetros del algoritmo ID3
ð Algoritmo ID3
ð Generación de las reglas derivadas del árbol ID3
IntroducciónIntroducción
ð El aprendizaje automático se puede clasificar en:û Métodos simbólicos: basados en símbolos Sintéticos o inductivos: ID3 Analíticos o deductivos
û Métodos subsimbólicos: basados en cantidades numéricas
ð El objetivo del algoritmo ID3 consiste en clasificar varios elementos, utilizando ejemplos y valores de condición, representándolos en forma de árbol de decisión
û Cada ejemplo es un individuo
û Los valores de condición son propiedades
û Los elementos se clasifican según el valor de una propiedad concreta binaria llamada resultado (con 2 valores posibles)
Introducción (II)Introducción (II)
ð El árbol de decisión resultante determina el conjunto al que pertenece un individuo según los valores que toman alguna de sus propiedades (no todas)û Cada nodo interno representa una propiedad
û Cada rama es un valor posible de esa propiedad
û Cada hoja es un valor de la propiedad resultado
ð Un individuo nuevo se clasifica atravesando las ramas del árbol hasta llegar a una propiedad resultado ⇒ REGLAS
ð Para clasificar los individuos se utiliza la idea de entropía.La entropía mide la cantidad de información necesaria para representar los datos de un conjunto (nº bits).A menor valor de entropía, mayor orden en los datos
Parámetros del algoritmo ID3Parámetros del algoritmo ID3ð Del conjunto inicial de ejemplos se definen:û nt: número total de ejemplosû c: valores posibles para el resultadoû nc: nº individuos que tienen el valor c como resultadoû P: nombre de las propiedadesû d: propiedad decisora de la propiedad resultadoû b: valores posibles para una propiedad dû nb: nº individuos con valor b para una propiedad
û nbc: nº individuos con valor b para una propiedad y un valor c para un resultado
û Pc: probabilidad de que un individuo tenga como resultado valor c (Pc = nc / nt)
û Pb: probabilidad de que suceda b (Pb = nb / nt)
û Pbc: probabilidad de que suceda c suponiendo que sucede b (Pbc= nbc / nb )
Parámetros del algoritmo ID3 (II)Parámetros del algoritmo ID3 (II)ð Estos parámetros se utilizan para calcular la entropía:
û Entropía de un conjunto
û Entropía del valor de una propiedad decisora
û Entropía media de una propiedad decisora
(Recordatorio: ; si x=0, )
ð Un conjunto es homogéneo si todos los ejemplos dan como resultado el mismo valor cUn conjunto es equilibrado si los valores de su propiedad resultado son equiprobables (máxima entropía)
∑ ∑−=−=c c t
c
t
ccc n
nnn
PPEntropía 22 loglog
∑ ∑−=−=c c b
bc
b
bcbcbc n
nnn
PPbEntropía 22 loglog)(
∑ ∑∑∈ ∈
−∗=∗=db c b
bc
b
bc
db t
bb n
nnn
nn
bEntropíaPddiaEntropíaMe 2log)()(
2lnln
log2
xx = 0log2 =xx
Algoritmo ID3Algoritmo ID3
ID3 ( Conjunto, P )SI Entropía = 0
Devolver un nodo hoja etiquetado con la claseSI NO
Calcular EntropiaMedia(P)Seleccionar la PROPIEDAD con menor EntropiaMediaHacer PROPIEDAD raíz del árbol actualBorrar PROPIEDAD de PPara cada valor b de PROPIEDAD
Crear una rama del árbol etiquetada con bCrear CONJUNTOb con todos los elementos con valor b
para PROPIEDADID3 ( CONJUNTOb, P )
Generación de las reglas derivadas del árbol ID3Generación de las reglas derivadas del árbol ID3
ð A partir del árbol ID3 generado se puede obtener un conjunto de reglas para clasificar nuevos individuos
ð Cada nodo hoja genera una regla diferente
ð Para ello:
û Se recorre el árbol desde la raíz hasta las hojas
û El antecedente de cada regla se crea tomando la etiqueta de la raíz más la etiqueta de la rama que recorre
û Se añade un AND por cada pareja raíz-rama que se recorre
û El consecuente de la regla es el nodo hoja
Aprendizaje con Algoritmos GenéticosAprendizaje con Algoritmos Genéticos
Fco. Javier Alcalá Casado
Aprendizaje con Algoritmos GenéticosAprendizaje con Algoritmos Genéticos
ð Introducción
ð Componentes de un Algoritmo Genético
û Representación de individuos
û Procedimientos generales de elección aleatoria
û Operador selección
û Operador emparejamiento
û Operador mutación
ð Algoritmo general
IntroducciónIntroducción
ð Los algoritmos genéticos son adecuados cuando se dispone de mecanismos para establecer el rendimiento de un sistema, modificando ciertos parámetros
ð El problema de aprendizaje consiste en encontrar una configuración adecuada de los parámetros, para que el rendimiento sea óptimo
ð Ejemplo: ajuste del flujo de agua de un generador hidroeléctrico para que la producción eléctrica sea máxima
ð Los algoritmos genéticos se apoyan en las teorías evolutivas de Charles Darwin (1859, El Origen de las Especies)
Introducción (II)Introducción (II)
ð En cada generación se crea un nuevo conjunto de individuos utilizando parte del material genético de los mejores individuos de la generación anterior
ð Objetivos de los algoritmos genéticos:
û abstraer y explicar los procesos adaptativos de los sistemas naturales
û diseñar sistemas artificiales basados en estos procesos
ð La principal característica es la robustez del sistema
ð Surge una nueva rama, la Programación Genética: generación automática de programas que evolucionan para resolver cada vez mejor la tarea encomendada
Principios de Evolución por Selección NaturalPrincipios de Evolución por Selección Natural
1. Cada individuo tiende a transmitir sus rasgos a su progenie
2. La naturaleza produce individuos con rasgos diferentes
3. Los individuos más adaptados, cuyos rasgos son más favorables para desenvolverse en el medio, tienden a producir más progenie
4. Durante largos períodos de tiempo se puede acumular la variación produciendo nuevas especies completamente adaptadas a nichos particulares
Componentes de un Algoritmo GenéticoComponentes de un Algoritmo Genético
ð Los componentes básicos de un algoritmo genético son los siguientes:
û Una representación para los individuos
û Una función de calidad, que da una medida del grado de adaptación de un individuo al medio
û Un operador selección, con probabilidad de selección de cada individuo proporcional a la calidad (principio 3)
û Un operador emparejamiento o reproducción, que producirá nuevos individuos en la siguiente generación (principio 1)
û Un operador mutación, capaz de alterar el código de los nuevos individuos, incrementando la riqueza genética de la población (principio 2)
Representación de IndividuosRepresentación de Individuos
ð Se utiliza la idea de cromosoma, que es una secuencia que determina la estructura de un individuo
ð La secuencia es de longitud L y se compone de caracteres que pertenecen a un alfabeto Ω. Cada carácter es un gen
ð Dado un cromosoma C, se puede construir el individuo I al que representa aplicando una función
ð Normalmente se utiliza el alfabeto binario, Ω = 0,1
Procedimientos Generales de Elección AleatoriaProcedimientos Generales de Elección Aleatoria
ð Se utiliza una función random(), devuelve un real ∈ [0,1)
ð Hay tres situaciones en las que es necesario realizar elecciones aleatorias:
A) Ejecutar una acción con probabilidad p:
IF (random() < p) THEN <acción>
B) Elegir entre N elementos equiprobables: Generar random() y ver dónde cae Elegir el elemento correspondiente al tramo en el que caiga el
valor aleatorio
E1 E2 E3
0 1/N 2/N 3/N 1...
Procedimientos Generales de Elección Aleatoria (II)Procedimientos Generales de Elección Aleatoria (II)
C) Elegir entre N elementos no equiprobables: Calcular las probabilidades acumuladas Generar random() y ver dónde cae
E1 E2 E3
0 a1 a2 a3 1...
∑=
=k
iik pa
1
Operador SelecciónOperador Selección
ð Cada vez que se necesita, se extraen ciertos individuos de la población. Para ello, se calcula la probabilidad de selección de cada individuo proporcional a la calidad
ð Existen dos métodos: estándar y del rango
ðMétodo estándar:
û Establecer la calidad de cada individuo de la población
û Calcular la probabilidad de selección de cada individuo dividiendo cada calidad por la calidad total
û Elegir un individuo entre N elementos no equiprobables(procedimiento C)
Operador Selección (II)Operador Selección (II)
ðMétodo del rango:
û Fijar una probabilidad a priori de elección, p
û Establecer la calidad de cada individuo de la población
û Ordenar los individuos según su calidad (de mayor a menor)
û Para cada individuo i desde 1 hasta N-1 Elegir, con probabilidad p, el individuo i (procedimiento A)
Si se ha elegido uno, salir y devolver dicho individuo
û Si no se ha elegido ninguno, devolver el individuo N
Operador EmparejamientoOperador Emparejamiento
ð Este operador intercambia información genética entre dos individuos seleccionados
ð Dados 2 individuos a emparejar:
û Ejecutar el emparejamiento con probabilidad Pe(procedimiento A). Si no hay que emparejar, salir.
û Elegir un punto de corte de las cadenas entre 1 y L-1 (procedimiento B)
û Las cadenas que representan a los individuos se parten en dos trozos y se intercambian, dando lugar a dos individuos nuevos
Operador MutaciónOperador Mutación
ð Altera aleatoriamente el código genético de un individuo para variar ligeramente sus características
ð Permite que aparezcan rasgos en los nuevos individuos que no existían antes en la población original
ð La probabilidad de aplicación de este operador debe ser pequeña
ð Dado 1 individuo a mutar:
û Para cada gen del cromosoma, hacer: Con probabilidad Pm (procedimiento A), cambiar el valor del
gen por un nuevo valor. El nuevo valor se elige (procedimiento B) sobre los elementos del alfabeto Ω
Algoritmo GeneralAlgoritmo GeneralEVOLUCIONAR (NI Pe Pm N)û Generar una POBLACION aleatoria de NI individuosû Repetir hasta haber realizado N iteraciones Hacer NUEVA_POBLACION = Repetir hasta que NUEVA_POBLACION tenga NI individuos
Aplicar operador SELECCIÓN para extraer 2 individuos de POBLACION
Aplicar operador EMPAREJAMIENTO con probabilidad Pe a los individuos seleccionados.Esto genera 2 nuevos individuos
Aplicar operador MUTACION con probabilidad Pm a cada individuo generado en el paso anterior
Añadir el resultado a NUEVA_POBLACION Copiar NUEVA_POBLACION en POBLACION
û Devolver el individuo con mayor calidad de POBLACION