introducción a soft computing

47
Introducción a Soft Computing Tomás Arredondo Vidal 4/05/09

Upload: zahi

Post on 12-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introducción a Soft Computing

Introducción a Soft Computing

Tomás Arredondo Vidal

4/05/09

Page 2: Introducción a Soft Computing

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

Page 3: 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

Page 4: Introducción a Soft Computing

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

Page 5: Introducción a Soft Computing

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

Page 6: Introducción a Soft Computing

ALVINN

Maneja automáticamente a 70 mph en una carretera pública

Imagen de cámara

30x32 pixelsde input

30 outputspara manejar

4 unidadesescondidas

Page 7: Introducción a Soft Computing

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

Page 8: Introducción a Soft Computing

GOLEM: Evolvable Robot

Page 10: Introducción a Soft Computing

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

Page 11: Introducción a Soft Computing

Introducción a los sistemas inteligentes

Modelo de Máquina inteligente

Page 12: Introducción a Soft Computing

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

Page 13: Introducción a Soft Computing

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.

Page 14: Introducción a Soft Computing

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:

)()(: )(, xcxhDxcx Consistencia

Page 15: Introducción a Soft Computing

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: Example Size Color Shape Category

1 small red circle positive

2 large red circle positive

3 small red triangle negative

4 large blue circle negative

Page 16: Introducción a Soft Computing

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.

Page 17: Introducción a Soft Computing

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.

Page 18: Introducción a Soft Computing

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)

Page 19: Introducción a Soft Computing

Introducción a Soft Computing

Contenidos• Introducción a los sistemas inteligentes• Sistemas basados en conocimientos (Knowledge-

based systems)• Introducción a soft computing

Page 20: 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 limitado usando 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)

Page 21: Introducción a Soft Computing

Sistemas basados en conocimientos

Componentes de un sistema experto

Page 22: Introducción a Soft Computing

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)

Page 23: Introducción a Soft Computing

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.

Page 24: Introducción a Soft Computing

Sistemas basados en conocimientos

Representación de una celda de manufactura usando frames

Page 25: Introducción a Soft Computing

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)

Page 26: Introducción a Soft Computing

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

Page 27: Introducción a Soft Computing

Árbol de Decisión para Jugar Tenis

Outlook

Sunny Overcast Rain

Humidity

High Normal

Wind

Strong Weak

No Yes

Yes

YesNo

Page 28: Introducción a Soft Computing

Introducción a Soft Computing

Contenidos• Introducción a los sistemas inteligentes• Sistemas basados en conocimientos (Knowledge-

based systems)• Introducción a soft computing

Page 29: 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.

Page 30: Introducción a Soft Computing

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)

Page 31: Introducción a Soft Computing

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

Page 32: Introducción a Soft Computing

Introducción a la Lógica Difusa

Un set exacto (crisp set) :

μs(x)

x

μ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

N

función característica 1

Page 33: Introducción a Soft Computing

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)

-40 -20 0 10 20 30

1

0

μF(x)

x (Co)

fríomas o menos frío

No tan frío

Definitivamente no frío

Page 34: Introducción a Soft Computing

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.

Page 35: Introducción a Soft Computing

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

Page 36: Introducción a Soft Computing

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:

Page 37: Introducción a Soft Computing

Introducción a la Lógica Difusa

Ejemplo en la robótica: HEXAPOD (cont)

• Reglas fuzzy:

Page 38: Introducción a Soft Computing

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.

Page 39: Introducción a Soft Computing

Introducción a la Lógica Difusa

Ejemplo en la robótica: HEXAPOD (cont)

• Rutas:

Page 40: Introducción a Soft Computing

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 patrones basado 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

Page 41: Introducción a Soft Computing

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

1

1.5 0.5

x1

x2 1 1

1

y

X1 X2 Y0 0 00 1 11 0 11 1 0

1

1 1

-2

1

1

1

)( iii SfO

001

00)( xwxwxwxwS iTi

n

jijiji

i

n

jijijxw

1

)(

Page 42: Introducción a Soft Computing

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

xi1

xin

wi1

win

f Oi

Bias

TeacherAlgoritmo de Aprendizaje

Calculo deError

Ti

Si

Eixi1

xin

Neurona

Page 43: Introducción a Soft Computing

Introducción a los Algoritmos 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

Page 44: Introducción a Soft Computing

Introducción a los Algoritmos Genéticos

Poblacióngeneración = n

Mecanismo aleatorio de reproducción

Poblacióngeneración = n+1

Page 45: Introducción a Soft Computing

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

Page 46: Introducción a Soft Computing

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

Page 47: Introducción a Soft Computing

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