83
Introducción a Soft Computing Tomás Arredondo Vidal 26/06/08

Introduccion a Soft Computing - Departamento de …profesores.elo.utfsm.cl/~tarredondo/info/soft-comp/Introduccion a... · • Creación evolutiva de ... posibles alarmas y errores

Embed Size (px)

Citation preview

Introducción a Soft Computing

Tomás Arredondo Vidal26/06/08

Introducción a Soft Computing

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

based systems)• Redes semánticas• 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

• La base de conocimientos (knowledge base) de un sistema inteligente (Knowledge Based System o KBS) están formados de conocimientos y habilidades

• Los conocimientos pueden ser considerados como información que ha sido adquirida y puesta en un formato estructurado que puede ser utilizado como la base de futuras decisiones y conocimientos

• De esta forma la base de conocimientos se va continuamente refinando y actualizando como resultado de nueva información que es recibida de fuentes externas como sensores e interfaces (percepción sensorial) y de inferencias o decisiones al interpretar el significado de esta 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 vehiculo autonomo– ALVINN (Pomerleau 1989)

• Aprender a clasificar objetos celestiales– (Fayyad et al 1995)

• Aprender a jugar backgammona 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 automaticamente a 70 mph en una carretera publica

Imagen de camara

30x32 pixelsde input

30 outputspara manejar

4 unidadesescondidas

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

GOLEM: Evolvable Robot

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

• El término “machine intelligence” puede representar cualquier proceso, planta, o aparatoque posea inteligencia

• Machine intelligence puede o no estar distribuida por el sistema

• Un sensor inteligente podría consistir de un sensor convencional pero incluyendo procesamiento de señales y la toma de decisiones basadas en KBS integradas

• Hasta la maquina mas sofisticada podría beneficiarse de tener un interfaz mas natural e intuitivo para el usuario

Introducción a los sistemas inteligentes

Proceso 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– Sicología (cognitiva y de desarrollo)– Neurobiología– Lingüística– Filosofía

Clasificación

• Dado:– Una descripción de una instancia (datos), x∈X, 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 x∈X, 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

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:

negativetriangleredsmall3

positivecircleredlarge2

positivecircleredsmall1

negativecirclebluelarge4

CategoryShapeColorSizeExample

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)

Inducción

• Deducción es inferir conclusiones especificas desde reglas generales (axiomas) y algunos hechos específicos.

• Inducción es inferir reglas generales y teorías desde datos empíricos específicos.

• Inducción se puede ver como deducción inversa.– Encontrar una hipótesis h desde datos D de

manera que• h ∪ B |― D

en el cual B son conocimientos opcionales

Introducción a Soft Computing

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

based systems)• Redes semánticas• Introducción a soft computing

Sistemas basados en conocimientos

• Sistemas basados en conocimientos (Knowledge basedsystems 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 tener más flexibilidad para dar soluciones a problemas en los cuales el comportamiento puede no ser conocido (complejo o no lineal)

• Por ejemplo en control de procesos en plantas industriales hay muchísimas combinaciones de variables, características, perturbaciones, desgaste y fallas de componentes, posibles alarmas y errores de medición en los sensores.

• En estas aplicaciones los KBS tienen un gran potencial para aplicaciones que requieren de inferencias como: monitoreo de procesos, diagnostico de errores, manejo de alarmas, ordenamiento de procesos, optimización y control

Sistemas basados en conocimientos

• Un KBS es capaz de percibir y tomar decisiones usando su motor de inferencias

• Esto lo hace interpretando el significado y la implicancia de la nueva información usando las capacidades de su base de conocimientos

• Estas inferencias pueden formar los outputs del sistema, la tarea de decisión es una actividad de procesamiento inteligente que puede causar la mejora de la base de conocimientos de KBS (aprendizaje)

Sistemas basados en conocimientos

• I = M [ P(D), K ], en la cual I es la inferencia, M es el operador de matching (acuerdos), K es la base de conocimientos, y P es un operador de preprocesamiento que convierte el contexto (input, datos actuales o D) a un formato compatible con K

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• Un sistema de producción esta basado en reglas que son

apropiados para la representación y procesamiento de conocimiento (knowledge)

• Un sistema experto es un tipo de sistema de producción• En un sistemas de producción:

– El conocimiento se representa por un conjunto de reglasalmacenadas en una base de conocimientos

– La base de datos contiene los datos actuales (contexto) del proceso– El motor de inferencia es el mecanismo de razonamiento que

controla el uso de reglas y coordina/organiza la secuencia de pasos usado para resolver un problema particular y resuelve conflictos

– El motor de inferencia trata de calzar nuevos datos con los antecedentes (if …) de las reglas y si hay un acuerdo dispara la regla correspondiente (then …) esto puede causar que cambie el contexto y despues se disparen otras reglas (forward chaining)

– Si hay conflictos en la resolución de reglas se pueden aplicar difererentes mecanismos de resolución como: primer acuerdo (firstmatch), acuerdo mas difícil (toughest match), acuerdo mas reciente (latest match)…

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

• Un sistema de frames (marcos) es otra estructura para representar y procesar conocimientos en aplicaciones de AI

• Un frame es una estructura de datos desarrolladas para representar datos esperados (e.g. conocimientos sobre una situación dada)

• Conocimiento de sentido común se puede representar de esta manera y nueva información (nuevos frames) puede ser interpretada usando información antigua (frames antiguos) en una manera jerárquica

• Un frame puede contener conocimiento de contexto(datos o situaciones) y conocimiento de acciones(relaciones de causa efecto o reglas)

Sistemas basados en conocimientos

• Un frame contiene una etiqueta de frame (framelabel) y un grupo de casillas (slots)

• Un slot puede contener reglas u otro slot que esta mas abajo en la jerarquía, de esta manera se puede representar el conocimiento en diferentes niveles de detalle (o resolución)

• Generar frames es un procedimiento evolutivo:1. Dar un nombre al frame2. Dar nombre a los slots que representan objetos3. Abrir cada slot y programar reglas o definir nuevos

frames (paso 2)4. Repetir el paso 3 como sea requerido, dependiendo de

los niveles en la jerarquía

Sistemas basados en conocimientos

• Un frame básico

• Razonamiento comienza cuando un comando externodispara un frame de acuerdo a alguna heurística

• Slots en el frame se comparan con el contexto actual (i.e. datos actuales incluyendo inputs sensoriales) que nos pueden llevar a la posible actualización de valores de slotsen el frame actual y que puede disparar framessubsecuentes dependiendo de cómo se comparan futuras condiciones (contextos) con esos frames

• Finalmente se ejecutan procedimientos en los frames de acciones (reglas)

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

High Normal

Wind

Strong Weak

No Yes

Yes

YesNo

Árbol de Decisión para Jugar Tenis

Outlook

Sunny Overcast Rain

Humidity

High Normal

No Yes

Each internal node tests an attribute

Each branch corresponds to anattribute value node

Each leaf node assigns a classification

Introducción a Soft Computing

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

based systems)• Redes semanticas• Introducción a soft computing

Redes semánticas

• Métodos de representar y procesar el conocimiento (knowledge) incluyen: – Redes semanticas– Lógica (e.g. diagramas Venn, logica Booleana)– Frames– Sistemas de producción (reglas)– Lógica difusa

• Unos de estos métodos son las redes semánticas que son útiles en la representación gráfica y procesamiento del conocimiento– Objetos de conocimiento se representan como nodos y su relación como

arcos entre los nodos– Los arcos están orientados indicando la dirección de la relación entre los

objetos

Segmento de una red semántica

Redes semánticas

Ejemplo de red semántica

Introducción a Soft Computing

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

based systems)• Redes semanticas• 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)

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 Booleanacon 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) :

µ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

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

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

Sistemas de inferencia tradicionales:

• Típicamente los controladores se relacionan con el mundo externo a través de valores exactos (no difusos)

velocidad controlador flujo de gasolina

• Si el controlador usa lógica difusa va a ser necesario alguna conversión

Introducción a la Lógica Difusa

Sistemas de inferencia usando lógica difusa (cont):

• Esto se denomina fuzzificacion y defuzzificacion.

input exacto

fuzzificadorcontrolador

difuso defuzzificador output exacto

Introducción a la Lógica Difusa

Ejemplo Mamdani FLC (Fuzzy Logic Controller):

• Este ejemplo es un sistema de control de temperatura...

FL engine

Heater

Cooler

Ambiente a Controlar

Cmd

Temp

Output

Introducción a la Lógica Difusa

Ejemplo Mamdani FLC (Fuzzy Logic Controler) (cont):• En el ejemplo se quiere minimizar el error entre el valor de

temperatura deseado (Cmd) y la temperatura en el area (Temp) que se esta regulando: Error = Cmd - Temp

Introducción a la Lógica Difusa

Ejemplo: Sistema Mamdani para control de temperatura

Función de pertenencia del input error (e):

e(k)= -1.0F (hay calor): • eneg(-1) = 0.5 • ezero(-1) = 0.5 • epositive(-1) = 0

Función de pertenencia del input ∆e:

∆e(k) = 2.5 F (esta enfriandose): � ∆enegative(2.5) = 0� ∆ezero(2.5) = 0.5 � ∆epos(2.5) = 0.5

1

-2 0 2 4-4

negativo zero positivoµ

µ(e):

1

-5 0 5 10-10

negativo zero positivoµ

µ(∆∆e):

e

∆e

Introducción a la Lógica Difusa

Ejemplo Mamdani FLC (Fuzzy Logic Controler) (cont):

En la lógica difusa se asocian significados lingüísticos a los diferentes valores de nuestras variables difusas:• Significados lingüísticos usadas en el ejemplo:

– "N" = "negative" error or error-dot input level (input negativo) – "Z" = "zero" error or error-dot input level (input zero)– "P" = "positive" error or error-dot input level (input positivo)– "H" = "Heat" output response (output es calentar o “Heat”)– “NC" = "No Change" to current output (output es ningun

cambio)– "C" = "Cool" output response (output es enfriar o “Cool”)

Introducción a la Lógica DifusaEjemplo (cont):

Premisas:e(k) = Negativa (hace calor)e(k) = Zero (temp ok)e(k) = Positiva (hace frio)

∆e(k) = Negativa (esta calentadose)∆e(k) = Zero (no esta cambiando)∆e(k) = Positiva (esta enfriandose)

Matriz:

HHCP

HNCCZ

HCCN

PZN

e(k)

∆e(k)

Introducción a la Lógica Difusa

Ejemplo Mamdani FLC (Fuzzy Logic Controler) (cont):

Para calcular el output del controlador difuso:Paso 1 y 2: Encontrar nivel de disparo y output de cada una de las reglas:

“error” = -1.0 -> la funcion de membresía e neg(-1) = 0.5 y ezero(-1) = 0.5"error-dot“ = +2.5 -> la funciones de membresía ∆ezero(2.5) = 0.5 y ∆epos (2.5)= 0.5

Paso 3: Determinar reglas que disparan y agregar su output:"Error" selecciona reglas 1,2,4,5,7,8, "error-dot" reglas 4 a 9.Agregar outputs usando producto lógico (AND) para ob tener las reglas que se activan (intersección ∩ en rojo)... se activaron 4, 5, 7, 8

1. If (e < 0) AND (∆e < 0) then Cool 0.5 & 0.0 = 0.0 2. If (e = 0) AND (∆e < 0) then Cool 0.5 & 0.0 = 0.0 3. If (e > 0) AND (∆ e < 0) then Heat 0.0 & 0.0 = 0.04. If (e < 0) AND (∆e = 0) then Cool 0.5 & 0.5 = 0.55. If (e = 0) AND (∆e = 0) then No_Chng 0.5 & 0.5 = 0.5 6. If (e > 0) AND (∆e = 0) then Heat 0.0 & 0.5 = 0.07. If (e < 0) AND (∆e > 0) then Cool 0.5 & 0.5 = 0.58. If (e = 0) AND (∆e > 0) then Heat 0.5 & 0.5 = 0.59. If (e > 0) AND (∆e > 0) then Heat 0.0 & 0.5 = 0.0

Introducción a la Lógica Difusa

Ejemplo Mamdani FLC (Fuzzy Logic Controler) (cont):

Paso 4:Defuzificar para obtener un valor exacto

• Primero se combinan las contribuciones de todas las reglas para obtener el grado de activación de las funciones de salida .

• En este ejemplo usamos el método de Root Sum Squared ( RSS) 1. "negative " = (R1 2 + R22 + R42 + R72) (Cooling) = (0 2 + 02 + 0.502 +

0.502) 0.5 = 0.7072. "zero" = (R5 2) 0.5 = (0.502) 0.5 (No Change) = 0.5003. "positive " = (R3 2 + R62 + R82 + R92) (Heating) = (0 2 + 02 + 0.52 + 02) 0.5

= 0.5

• Defuzificar usando el centroide para obtener un valor exacto que es el próximo valor de output para a) calentar o b) enfri ar el ambiente controlado...

OUTPUT = (neg_center * neg_strength + zero_center * ze ro_strength + pos_center * pos_strength) / (neg_strength + zero_str ength + pos_strength)

(-100 * 0.707 + 0 * 0.500 + 100 * 0.5)/ (0.707 + 0.500 + 0.5) = -12.12%

Introducción a la lógica difusa

Ejemplo (cont):

• Output:– -100 a 0 = Cooling (enfriar)– 0 a 100 = Heating (calentar)

• El centroide da el valor de salida. • El valor de -12.12% (12% Enfriando) es lógico ya qu e e = -1

indica que todavía hay un poco de calor en las sala .

Introducción a la Lógica Difusa

Ejemplo: Lógica difusa en la robótica

• Como puede un robot autónomo usar la lógica difusa para resolver la cantidad de decisiones y problemas de control que tiene?

– El robot tiene un espacio de input mucho mayor que típicas aplicaciones difusas

– Mas inputs incrementa el numero de evaluaciones exponencialmente

– Al crecer el numero de reglas la descripción manual es muy difícil

– Operación en tiempo real es limitada a HW especifico

Introducción a la Lógica Difusa

Ejemplo de lógica difusa en la robótica: MARGE

• En el robot MARGE se utilizaron controladores difusos independientes (agentes)

• Las reglas difusas especificaron el accionar de cada agente independientemente y el output de cada agente es un singleton

• Reglas de arbitración hace decisiones en el caso que hallan contradicciones o competencias entre el output de los agentes independientes

• Esta arquitectura replica la operación de los cerebros biológicos ya que no hay un repositorio centralizado de datos y la comunicación entre regiones es a veces limitada

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 usaron sensores IR Sharp GP2D02 que indican distancia y presencia de obstáculos

• El output del sensor (x) no es lineal y se tiene que modelar para obtener la distancia al objeto (y)

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

Introducción a las Redes Neuronales

Redes Neuronales

• Este ejemplo de un multilayerneural 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 stepfunction 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 Y

0 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

)(

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

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

Introducción a los Algoritmos Genéticos

Poblacióngeneración = n

Mecanismo aleatorio de reproducción

Poblacióngeneración = n+1

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

Soft Computing en Robótica

Ejemplo: AGs y ANNs en YAKS• YAKS (Yet Another Kephera Simulator)• Una manera controlar robots es usando

robótica basado en acciones• En este método el robot depende directamente

de los inputs de sus sensores (y ANNs) para determinar sus acciones (movimientos) y no usa modelos complejos ni representación simbólica de su ambiente

Soft Computing en Robótica

AGs y ANNs en YAKS (cont)• El aprendizaje en la robótica usando

ANNs depende de la capacidad de auto-organizarse y generalizar basado en información limitada de aprendizaje– Muy útil cuando no existe un

modelo formal del mundo o de la tarea de control

• Los pesos de la red neuronal del robot se evolucionan usando AGs– Muy útil cuando no existe un

modelo formal del mundo o de la tarea de control

– Esto requiere de algún feedback (basado en un fitness o error)

Soft Computing en Robótica

AGs y ANNs en YAKS (cont)• La idea es que el robot

Kephera sea capaz de

– navegar en su medio ambiente

– evitar murallas

– recargar su batería cuando esta se descargue

Soft Computing en Robótica

Ejemplo: IRMA (Fuzzy + AGs + ANNs)• Se hizo un trabajo como parte del proyecto IRMA [8] para

la integración de motivaciones Fuzzy, AG y ANN en el simulador YAKS

Soft Computing en Robótica

IRMA: Fuzzy, AGs y ANNs (cont)• El simulador YAKS utiliza una población de soluciones (redes

neuronales) para optimizar rutas en diferentes piezas de acuerdo a una función de fitness

Soft Computing en Robótica

IRMA: Fuzzy, AGs y ANNs (cont):• En YAKS los robots aprenden

usando el AG en el simulador y usando una función de fitnessque penaliza rutas de acuerdo a:– choques

– descarga total de batería

– no volver a su casa

Soft Computing en Robótica

Set motivations:C, H,O, E Select one

environment (room)

GA:generate populationmember or End

Robot performsactions in

environment

Based on actions

computefitness values:

a, g, l, b

Compute fuzzy fitness F

based on:C, H, O, E,

and a, g, l, b

F

IRMA: Fuzzy, AGs y ANNs (cont):• Se modifico YAKS agregándole una función para el calculo

de fuzzy fitness F. • Para calcular F se usan valores obtenidos de la ruta hecha

por el robot y las motivaciones (C, H, O, E) entre 0-1:– homing, – curiosity,– orientation,– energy

• Para el calculo de F asociado a laorientación se utiliza una red SOM (Self Organizing Map).

IRMA: Fuzzy, AGs y ANNs (cont):• Hay 4 variables fuzzy:

– homing, – curiosity,– orientation,– energy

• Cada variable fuzzy tiene 5 posibles valores:

• Esto nos da un total de 1024 (45) reglas para calcular el Fuzzy fitness F.

1.0

0 0.25 0.5 0.75 1.0

Very low

X

µ( X )

Low Medium High Very high

0

Soft Computing en Robótica

IRMA: Fuzzy, AGs y ANNs (cont):• El esquema de acciones y entrenamiento en IRMA:

• AEM (Action Based Environment Modelling) es el método que implementa SOM para tratar de reconocer el ambiente en que esta corriendo (post previo entrenamiento).

Soft Computing en Robótica

Sensor_1

Sensor_8

Motor_L

Motor_R

Modifyweights

GA:

-Reproduction-Mutation-Elite

AEM

-Fuzzy Fitness

.

.

.

IRMA: Fuzzy, AGs y ANNs (cont):• AEM y entrenamiento de la red SOM

Soft Computing en Robótica

1 P...

...Environment

N

Environment vector (1:P)Action

sequence

RobotActions

Chain coding

SOMEnvironment

1

Introducción a Soft Computing

Referencias:[1] Yager, R., Filev, D., Essentials of Fuzzy Modelin g and Control, Wiley

Interscience, NY, 1994[2] Kartalopoulos, S., Understanding Neural Networks a nd 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 Intel ligent 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 mob ile 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 MobileRobot". LNAI, Vol. 4031. Springer, Berlin (2006) p. 462-471