480 likes | 715 Views
Introducción a Soft Computing. Tomás Arredondo Vidal 4/05/09. Introducci ó n a Soft Computing. Contenidos Introducción a los sistemas inteligentes Sistemas basados en conocimientos o KBS (Knowledge Based Systems) Introducción a soft computing. Introducci ó n a los sistemas inteligentes.
E N D
Introducción a Soft Computing Tomás Arredondo Vidal 4/05/09
Introducción a Soft Computing Contenidos • Introducción a los sistemas inteligentes • Sistemas basados en conocimientos o KBS (Knowledge Based Systems) • Introducción a soft computing
Introducción a los sistemas inteligentes • Dado que una simple definición de inteligencia no esta disponible… • Los sistemas inteligentes generalmente tienen la capacidad de adquirir información, aplicar y utilizar conocimientos en la manera que demuestra capacidades inteligentes para generar su output (idea de M. Minsky) • Algunas capacidades inteligentes incluyen por ejemplo: aprender de sus experiencias previas, utilización de memoria, inferir y razonar en situaciones inesperadas o nuevas basándose en información incompleta • Reconocimiento de patrones y clasificación son parte importante del procesamiento inteligente de la información
Introducción a los sistemas inteligentes • Ejemplos de tareas típicas: • Diagnosis medico • Aplicaciones de tarjetas de crédito o transacciones / detectar fraude en e-commerce • Detectar spam, viruses y troyanos en email • Personalizar noticias o sistemas web o educación • Recomendar inversiones financieras • Reconocer palabras habladas • Discriminar huellas digitales • Catalogar imágenes astronómicas • Resolver problemas de calculo • Jugar damas, ajedrez • Péndulo invertido • Manejar un vehículo • Volar un avión o un cohete • Controlar un ascensor o un sistema de frenos u otro sistema • Controlar un agente inteligente en un juego o una aplicación • Controlar un robot
Introducción a los sistemas inteligentes • Reconocimientos de palabras habladas • SPHINX (Lee 1989) • Aprender a manejar un vehículo autónomo • ALVINN (Pomerleau 1989) • Aprender a clasificar objetos celestiales • (Fayyad et al 1995) • Aprender a jugar backgammon a nivel internacional • TD-GAMMON (Tesauro 1992) • Diseno automatizado de ”organismos” electro-mechanicos • GOLEM (Lipton, Pollock 2000) • Ver otras en: http://en.wikipedia.org/wiki/Artificial_intelligence
ALVINN Maneja automáticamente a 70 mph en una carretera pública Imagen de cámara 30 outputs para manejar 4 unidades escondidas 30x32 pixels de input
GOLEM: Artificial Life • GOLEM Project (Nature: Lipson, Pollack 2000) http://demo.cs.brandeis.edu/golem • Se evolucionan maquinas electromechanicas simples desde bloques básicos (barras, actuadores, neuronas artificiales) en una simulación del mundo real (con gravedad, fricción etc) • Los mejores individuos son fabricados usando prototipos rápidos
Evolved Creatures • Evolved creatures: Sims (1994) http://genarts.com/karl/evolved-virtual-creatures.html • Creación evolutiva de criaturas que pueden nadar, saltar, seguir, competir etc
Introducción a los sistemas inteligentes • Un sistema o maquina inteligente puede tener un significado mas amplio que una computadora inteligente • Sensores, actuadores y controladores son componentes integrales de este tipo de proceso y trabajan cooperativamente en lograr que tenga “inteligencia” • La percepción sensorial con entendimiento es muy importante para el comportamiento inteligente • Los humanos usamos visión, olfato, escuchar, tocar y sentir para facilitar nuestro comportamiento inteligente • También se necesita una mente o “machine intelligence” Asimo Mars rover: Spirit
Introducción a los sistemas inteligentes Modelo de Máquina inteligente
Introducción a los sistemas inteligentes • Actualmente existen • Muchos algoritmos efectivos y eficientes disponible • Gran cantidad de datos y recursos computacionales disponible en línea • Disciplinas relacionadas • Inteligencia artificial • Minería de datos • Probabilidad y estadística • Teoría de la información • Optimización numérica • Teoría de complejidad computacional • Teoría de control adaptativo • Psicología (cognitiva y de desarrollo) • Neurobiología • Lingüística • Filosofía
Clasificación • Dado: • Una descripción de una instancia (datos), xX, en el cual X es el lenguaje de instancia o espacio de instancia. • Un conjunto fijo de categorías: C={c1, c2,…cn} • Determinar: • La categoría de x: c(x)C, en el cual c(x) es una funcion de categorizacion en el cual el dominio es X y el rango es C. • Si c(x) es una función binaria C = {0,1} ({true,false}, {positive, negative}) entonces se llama un concepto.
Aprender para la Clasificación • Un ejemplo de entrenamiento es una instancia xX, apareada con su categoría correcta c(x): <x, c(x)> para una función de categorización, c. • Dado un conjunto de ejemplos de entrenamiento, D. • Encontrar una función de categorización (hipótesis), h(x), la cual: Consistencia
Aprender para la Clasificación • Espacio de instancia: <size, color, shape> • size {small, medium, large} • color {red, blue, green} • shape {square, circle, triangle} • C = {positive, negative} • D:
Selección de Hipótesis • Muchas hipótesis pueden ser consistentes con los datos de entrenamiento. • red & circle • (small & circle) or (large & red) • (small & red & circle) or (large & red & circle) • not [ ( red & triangle) or (blue & circle) ] • not [ ( small & red & triangle) or (large & blue & circle) ] • Bias • Cualquier criterio aparte de la consistencia con los datos de entrenamiento que se usan para seleccionar una hipótesis.
Generalización • Las hipótesis deben correctamente generalizar para correctamente clasificar instancias no en los datos de entrenamiento. • Simplemente memorizando datos de entrenamiento es una hipótesis consistente que no generaliza. • Occam’s razor: • Encontrar una hipótesis lo mas simple posible ayuda a garantizar la generalización.
Espacio de las Hipótesis • Se puede restringir las funciones aprendidas a un espacio de hipótesis, H, de las funciones h(x) que pueden ser consideradas como definiciones de c(x). • Para aprender conceptos en instancias descritas por n características de valores discretos, considere el espacio de hipótesis conjuntivas representados por un vector de n restricciones <c1, c2, … cn> en el cual cada ci es uno de: • ?, cualquier valor (wild card) indicando que no hay restricción • Un valor especifico del dominio de la característica numero i • Ø indicando que no hay valor aceptable • Algunas hipótesis conjuntivas son: • <big, red, ?> • <?, ?, ?> (hipótesis más general) • < Ø, Ø, Ø> (hipótesis más específica)
Introducción a Soft Computing Contenidos • Introducción a los sistemas inteligentes • Sistemas basados en conocimientos (Knowledge-based systems) • Introducción a soft computing
Sistemas basados en conocimientos • Sistemas basados en conocimientos (Knowledge based systems o KBS) han sido ampliamente usados en sistemas expertos (Expert Systems) de la Inteligencia Artificial (AI) para emular la estrategia de razonamiento de uno o mas expertos humanos • Un KBS se puede definir como un programa que resuelve problemas dentro de un contexto limitadousando datos del problema, conocimientos relacionados y capacidades “inteligentes” de toma de decisiones • Esto es diferente de técnicas de programación tradicional que pueden resolver problemas al ejecutar un conjunto prescrito de pasos de acuerdo a un algoritmo que da soluciones fijas (o duras) a problemas fijos (o duros)
Sistemas basados en conocimientos Componentes de un sistema experto
Sistemas basados en conocimientos • Un KBS puede ser desarrollado y organizado de acuerdo a una o una combinación de arquitecturas de bases de conocimiento. Algunas de ellas son: • Sistemas de producción (reglas) • Sistemas de marcos (frames) • Sistemas de pizarra (blackboard) • Árboles de decisión (decision trees)
Sistemas basados en conocimientos Ejemplo: Considere un sistema de producción para seleccionar una técnica de control, dada por las siguientes reglas: • R1: If plant is linear and uncoupled then use Control Category A. • R2: If the plant is linear and coupled then use Control Category B. • R3: If the plant is nonlinear use Control Category C. • R4: If Category A and a plant model is known then use Subgroup 1. • R5: If Category B and a plant model is known then use Subgroup 2. • R6: If Subgroup 1 and high model uncertainty then use H-control. • R7:If Subgroup 1 and low model uncertainty then use LQG-control ...etc… Asumiendo que se recibe el siguiente contexto (inputs y datos actuales) : • I1: Linear, uncoupled; model available, model uncertainty high Que regla se dispara usando la estrategia de forward chaining?: En este case los dos primeros ítems en el contexto van a disparar R1. Estos resultados van a generar un nuevo ítem en el contexto. Este nuevo item en conjunto con el tercer ítem en el contexto antiguo dispara R4. R4 y el ultimo input va a disparar R6 que causa la selección de H-control.
Sistemas basados en conocimientos Representación de una celda de manufactura usando frames
Sistemas basados en conocimientos • Una arquitectura de blackboard (pizarra) es una estructura cooperativa para resolver problemas • La característica principal de estos sistemas es un área común de datos (blackboard) que es compartida y visible por el sistema completo • Un sistema de tipo pizarra tiene la flexibilidad de acomodar diferentes fuentes de conocimiento (knowledge sources) • Los knowledge sources cooperan como pares para la toma de decisiones • Una unidad de control (scheduler) supervisa el acceso a la pizarra (e.g. cuando se actualiza un dato en la pizarra activa la fuente de conocimiento correspondiente)
Sistemas basados en conocimientos • Los árboles de decisión son otra base de conocimientos para poder tomar decisiones • La toma de decisiones requiere aproximar funciones objetivos de valores discretos • Los árboles de decisión también pueden ser representados como conjunto de reglas (if…then) para lectura mas facil • Los árboles de decisión clasifican instancias ordenando desde la raíz hacia una de las hojas, cada nodo en el árbol especifica una prueba de un atributo de la instancia y cada rama es uno de los posibles valores del atributo • Una instancia se clasifica al comenzar desde la raíz del árbol y avanzar nodo a nodo probando los atributos hasta llegar a una hoja terminal • En general estos árboles representan una disyunción de conjunciones de constricciones en los valores de atributos de las instancia • Existen varios algoritmos para generar un árbol de decisión entre los que están ID3, su sucesor C4.5 y otros
Árbol de Decisión para Jugar Tenis Outlook Sunny Overcast Rain Humidity Yes Wind High Normal Strong Weak No Yes No Yes
Introducción a Soft Computing Contenidos • Introducción a los sistemas inteligentes • Sistemas basados en conocimientos (Knowledge-based systems) • Introducción a soft computing
From Wikipedia, the free encyclopedia: Soft computing refers to a collection of computational techniques in computer science, machine learning and some engineering disciplines, which study, model, and analyze very complex phenomena: those for which more conventional methods have not yielded low cost, analytic, and complete solutions. Hard computing is bound by a Computer Science concept called NP-Complete, which means, in layman's terms, that there is a direct connection between the size of a problem and the amount of resources needed to solve the problem (there are problems so large that it would take the lifetime of the Universe to solve them, even at super computing speeds). Soft computing aims to surmount NP-complete problems by using inexact methods to give useful but inexact answers to intractable problems.
Introducción a Soft Computing • Soft computing es un área importante de estudios en lo concierne a los sistemas inteligentes y los KBS • Ha efectivamente complementado la Inteligencia Artificial convencional (AI) en variadas aplicaciones • Los métodos y algoritmos computacionales de soft computing están basados principalmente en conceptos biológicos como: • la lógica inexacta (lógica difusa), • los sistemas neuronales (redes neuronales), • la computación evolutiva (algoritmos genéticos, programación genética)
Introducción a la Lógica Difusa • La lógica difusa es una extensión de la lógica tradicional (Booleana) que utiliza conceptos de pertenencia de sets mas parecidos a la manera de pensar humana • El concepto de un subset difuso fue introducido por L.A. Zadeh en 1965 como una generalización de un subset exacto (crisp subset) tradicional • Los subsets exactos usan lógica Booleana con valores exactos como por ejemplo la lógica binaria que usa valores de 1 o 0 para sus operaciones. Lotfi Zadeh
Introducción a la Lógica Difusa Un set exacto (crisp set) : función característica 1 μs(x) x N μS : X -> {0,1} μS(x) = 1 si x es un miembro de S μS(x) = 0 si x no es un miembro de S
Introducción a la Lógica Difusa Función de pertenencia de x al set difuso F: μF(x) • Ej: μF(x) corresponde al grado de pertenecia de x a F (nivel de frío medido en la variable x) frío mas o menos frío 1 0 No tan frío μF(x) Definitivamente no frío -40 -20 0 10 20 30 x (Co)
Introducción a la Lógica Difusa Reglas IF-THEN difusas: Una regla IF-THEN difusa es de la forma IF x is A THEN y is B • En la cual A y B son variables lingüísticas definidas por sets difusos en los universos X e Y. • La parte IF x is A es llamada el antecedente o premisa, mientras la parte THEN y is B es llamada la consecuencia o conclusión.
Introducción a la Lógica Difusa Ejemplo de lógica difusa en la robótica: HEXAPOD • En el robot hexapodo MKIII se utilizaron reglas fuzzy para interpretar valores de sus sensores y actuar para evitar obstáculos [7] • En el caso de un hexapodo este siempre tiene estabilidad dado que siempre mantiene tres pies en el suelo en una configuración estable
Introducción a la Lógica Difusa Ejemplo en la robótica: HEXAPOD (cont) • Se uso un sistema de reglas de inferencia fuzzy para evitar obstáculos • Variables lingüísticas (y funciones de membresía) usadas fueron: • A es el set fuzzy, x es el input o output, α es el centro y σ el ancho: • FIS:
Introducción a la Lógica Difusa Ejemplo en la robótica: HEXAPOD (cont) • Reglas fuzzy:
Introducción a la Lógica Difusa Ejemplo en la robótica: HEXAPOD (cont) • Resultados fueron que el robot lograra navegar sin chocar incluyendo obstáculos dinámicos • Pequeños ajustes a las reglas fueron necesarios para evitar que se entrampara en mínimas locales con algunas combinaciones de inputs. • Se uso fuzzificacion con singletons y defuzzificacion con promedios de centro (center average defuzzification) • y’i es el centro de la función Bm (para la regla m), μAm(xi)es el grado de membresia de xi a la regla Am y M =27 es el numero de reglas.
Introducción a la Lógica Difusa Ejemplo en la robótica: HEXAPOD (cont) • Rutas:
Introducción a las Redes Neuronales ¿Que son las redes neuronales artificiales (ANNs)? • Las ANNs son un paradigma para hacer cómputo y para la detección de patronesbasado en la interconexión paralela de unidades denominadas neuronas • La neurona artificial es un modelo basado en los complejos sistemas nerviosos de los animales y seres humanos con su gran cantidad de interconexiones y paralelismo
Introducción a las Redes Neuronales Redes Neuronales • Este ejemplo de un multilayer neural network es capaz de resolver el problema del XOR • Los valores sobre las líneas indican pesos y los en los círculos indican umbrales (thresholds) • La función no lineal es un step function con valores de 1 si el umbral el excedido y de 0 si el umbral no es excedido
Introducción a las Redes Neuronales Aprendizaje de las ANNs • El aprendizaje de las ANNs puede utilizar un entrenador (teacher) o puede depender de la capacidad de auto-organizarse (e.g SOM) y generalizar basado en conjuntos limitados de información
Introducción a losAlgoritmos Genéticos • ¿Que es un algoritmo genético (GA)? • Los algoritmos genéticos (GA) son algoritmos de búsqueda y optimización basados en los mecanismos de selección natural y genética. • Los GA usan los siguientes mecanismos: • la sobrevivencia de los organismos con mejor capacidad dentro de una población • uso de secuencias de caracteres (generalmente 1s y 0s) en strings como representación del ADN de estos organismos (codificación) • el uso de métodos aleatorios (random) para la generación de la población y para su reproducción
Introducción a los Algoritmos Geneticos Los GA utilizan lo siguiente: • Esquema de codificación de la información de los miembros en strings (ADN de 1s y 0s) • Evaluación de capacidad (fitness) de cada miembro • Selección aleatoria de los miembros que se van a reproducir • Cruce (crossover) de la información de los miembros de la población • Mutación de la información de los miembros de la población
Introducción a los sistemas inteligentes • Ejemplos de tareas típicas: • Diagnosis medico • Aplicaciones de tarjetas de crédito o transacciones / detectar fraude en e-commerce • Detectar spam, viruses y troyanos en email • Personalizar noticias o sistemas web o educación • Recomendar inversiones financieras • Reconocer palabras habladas • Discriminar huellas digitales • Catalogar imágenes astronómicas • Resolver problemas de calculo • Jugar damas, ajedrez • Péndulo invertido • Manejar un vehículo • Volar un avión o un cohete • Controlar un ascensor o un sistema de frenos u otro sistema • Controlar un agente inteligente en un juego o una aplicación • Controlar un robot
Introducción a Soft Computing Referencias: [1] Yager, R., Filev, D., Essentials of Fuzzy Modeling and Control, Wiley Interscience, NY, 1994 [2] Kartalopoulos, S., Understanding Neural Networks and Fuzzy Logic, IEEE PRESS, NY, 1994 [3] www.seattlerobotics.org [4] Mitchel, T., Machine Learning , McGraw Hill, 1997 [5] Karray, F., De Silva, C., Soft Computing and Intelligent Systems Design, Addison Wesley, 2004 [6] Jang, J., Sun, C., Mizutani, E., Neuro-Fuzzy and Soft Computing, Prentice Hall, 1997 [7] Kern, M., Woo, P., Implementation of a hexapod mobile robot with a fuzzy controller, Robotica, v23, p. 681-688, 2005. [8] Arredondo, T., Freund,W., Muñoz, C., Navarro, N., and Quirós, F.: "Fuzzy Motivations for Evolutionary Behavior Learning by a Mobile Robot". LNAI, Vol. 4031. Springer, Berlin (2006) p. 462-471