Sei sulla pagina 1di 47

Introduccin a Soft Computing

Toms Arredondo Vidal


4/05/09

Introduccin a Soft Computing


Contenidos
Introduccin a los sistemas inteligentes
Sistemas basados en conocimientos o KBS
(Knowledge Based Systems)
Introduccin a soft computing

Introduccin a los sistemas inteligentes


Dado que una simple definicin de inteligencia no esta
disponible
Los sistemas inteligentes generalmente tienen la
capacidad de adquirir informacin, 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, utilizacin de
memoria, inferir y razonar en situaciones inesperadas o
nuevas basndose en informacin incompleta
Reconocimiento de patrones y clasificacin son parte
importante del procesamiento inteligente de la
informacin


Introduccin a los sistemas inteligentes

Ejemplos de tareas tpicas:
Diagnosis medico
Aplicaciones de tarjetas de crdito o transacciones / detectar
fraude en e-commerce
Detectar spam, viruses y troyanos en email
Personalizar noticias o sistemas web o educacin
Recomendar inversiones financieras
Reconocer palabras habladas
Discriminar huellas digitales
Catalogar imgenes astronmicas
Resolver problemas de calculo
Jugar damas, ajedrez
Pndulo invertido
Manejar un vehculo
Volar un avin o un cohete
Controlar un ascensor o un sistema de frenos u otro sistema
Controlar un agente inteligente en un juego o una aplicacin
Controlar un robot

Introduccin a los sistemas inteligentes

Reconocimientos de palabras habladas
SPHINX (Lee 1989)
Aprender a manejar un vehculo autnomo
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 automticamente a 70 mph en
una carretera pblica

Imagen de
cmara
30x32 pixels
de input
30 outputs
para manejar
4 unidades
escondidas
GOLEM: Artificial Life
GOLEM Project (Nature: Lipson, Pollack 2000)
http://demo.cs.brandeis.edu/golem
Se evolucionan maquinas electromechanicas simples desde
bloques bsicos (barras, actuadores, neuronas artificiales) en
una simulacin del mundo real (con gravedad, friccin etc)
Los mejores individuos son fabricados usando prototipos
rpidos
GOLEM: Evolvable Robot
Evolved Creatures
Evolved creatures: Sims (1994)
http://genarts.com/karl/evolved-virtual-creatures.html
Creacin evolutiva de criaturas que pueden nadar,
saltar, seguir, competir etc


Introduccin 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 percepcin sensorial con entendimiento
es muy importante para el comportamiento
inteligente
Los humanos usamos visin, olfato,
escuchar, tocar y sentir para facilitar nuestro
comportamiento inteligente
Tambin se necesita una mente o machine
intelligence
Asimo
Mars rover:
Spirit
Introduccin a los sistemas inteligentes


Modelo de Mquina inteligente
Introduccin a los sistemas inteligentes


Actualmente existen
Muchos algoritmos efectivos y eficientes disponible
Gran cantidad de datos y recursos computacionales disponible en
lnea
Disciplinas relacionadas
Inteligencia artificial
Minera de datos
Probabilidad y estadstica
Teora de la informacin
Optimizacin numrica
Teora de complejidad computacional
Teora de control adaptativo
Psicologa (cognitiva y de desarrollo)
Neurobiologa
Lingstica
Filosofa
Clasificacin
Dado:
Una descripcin de una instancia (datos), xeX, en el
cual X es el lenguaje de instancia o espacio de
instancia.
Un conjunto fijo de categoras: C={c
1
, c
2
,c
n
}
Determinar:
La categora de x: c(x)eC, 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 funcin binaria C = {0,1} ({true,false},
{positive, negative}) entonces se llama un concepto.
Aprender para la Clasificacin
Un ejemplo de entrenamiento es una instancia
xeX, apareada con su categora correcta c(x):
<x, c(x)> para una funcin de categorizacin, c.
Dado un conjunto de ejemplos de
entrenamiento, D.
Encontrar una funcin de categorizacin
(hiptesis), h(x), la cual:

) ( ) ( : ) ( , x c x h D x c x = e > <
Consistencia
Aprender para la Clasificacin
Espacio de instancia: <size, color, shape>
size e {small, medium, large}
color e {red, blue, green}
shape e {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
Seleccin de Hiptesis
Muchas hiptesis 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 hiptesis.
Generalizacin
Las hiptesis deben correctamente generalizar
para correctamente clasificar instancias no en
los datos de entrenamiento.
Simplemente memorizando datos de
entrenamiento es una hiptesis consistente que
no generaliza.
Occams razor:
Encontrar una hiptesis lo mas simple posible ayuda
a garantizar la generalizacin.
Espacio de las Hiptesis
Se puede restringir las funciones aprendidas a un espacio
de hiptesis, H, de las funciones h(x) que pueden ser
consideradas como definiciones de c(x).
Para aprender conceptos en instancias descritas por n
caractersticas de valores discretos, considere el espacio
de hiptesis conjuntivas representados por un vector de n
restricciones
<c
1
, c
2
, c
n
> en el cual cada c
i
es uno de:
?, cualquier valor (wild card) indicando que no hay restriccin
Un valor especifico del dominio de la caracterstica numero i
indicando que no hay valor aceptable
Algunas hiptesis conjuntivas son:
<big, red, ?>
<?, ?, ?> (hiptesis ms general)
< , , > (hiptesis ms especfica)
Introduccin a Soft Computing


Contenidos
Introduccin a los sistemas inteligentes
Sistemas basados en conocimientos (Knowledge-
based systems)
Introduccin 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 tcnicas de programacin
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 combinacin de arquitecturas de
bases de conocimiento. Algunas de ellas son:
Sistemas de produccin (reglas)
Sistemas de marcos (frames)
Sistemas de pizarra (blackboard)
rboles de decisin (decision trees)
Sistemas basados en conocimientos


Ejemplo: Considere un sistema de produccin para seleccionar una tcnica
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 seleccin de H-control.

Sistemas basados en conocimientos


Representacin de una celda de manufactura usando frames
Sistemas basados en conocimientos


Una arquitectura de blackboard (pizarra) es una estructura cooperativa
para resolver problemas
La caracterstica principal de estos sistemas es un rea comn 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 decisin son otra base de conocimientos para poder
tomar decisiones
La toma de decisiones requiere aproximar funciones objetivos de valores
discretos
Los rboles de decisin tambin pueden ser representados como
conjunto de reglas (ifthen) para lectura mas facil
Los rboles de decisin clasifican instancias ordenando desde la raz
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 raz del rbol y avanzar
nodo a nodo probando los atributos hasta llegar a una hoja terminal
En general estos rboles representan una disyuncin de conjunciones de
constricciones en los valores de atributos de las instancia
Existen varios algoritmos para generar un rbol de decisin entre los que
estn ID3, su sucesor C4.5 y otros
rbol de Decisin para Jugar Tenis
Outlook
Sunny Overcast Rain
Humidity
High Normal
Wind
Strong Weak
No Yes
Yes
Yes No
Introduccin a Soft Computing


Contenidos
Introduccin a los sistemas inteligentes
Sistemas basados en conocimientos (Knowledge-
based systems)
Introduccin 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.
Introduccin 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 mtodos y algoritmos computacionales de
soft computing estn basados principalmente en
conceptos biolgicos como:
la lgica inexacta (lgica difusa),
los sistemas neuronales (redes neuronales),
la computacin evolutiva (algoritmos genticos,
programacin gentica)

Introduccin a la Lgica Difusa


La lgica difusa es una extensin de la lgica
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 generalizacin de un subset exacto
(crisp subset) tradicional
Los subsets exactos usan lgica Booleana
con valores exactos como por ejemplo la
lgica binaria que usa valores de 1 o 0 para
sus operaciones.

Lotfi Zadeh
Introduccin a la Lgica 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
funcin
caracterstica
1
Introduccin a la Lgica Difusa
Funcin de pertenencia de x al set difuso F:
F
(x)

Ej:
F
(x) corresponde al grado de pertenecia de x a F
(nivel de fro medido en la variable x)
-40 -20 0 10 20 30
1




0

F
(x)
x (C
o
)
fro
mas o menos fro
No tan fro
Definitivamente
no fro
Introduccin a la Lgica 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 lingsticas 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 conclusin.

Introduccin a la Lgica Difusa

Ejemplo de lgica difusa en la robtica: HEXAPOD

En el robot hexapodo MKIII se utilizaron reglas
fuzzy para interpretar valores de sus sensores y
actuar para evitar obstculos [7]
En el caso de un hexapodo este siempre tiene
estabilidad dado que siempre mantiene tres pies en
el suelo en una configuracin estable
Introduccin a la Lgica Difusa

Ejemplo en la robtica: HEXAPOD (cont)

Se uso un sistema de reglas de
inferencia fuzzy para evitar obstculos
Variables lingsticas (y funciones de
membresa) usadas fueron:
A es el set fuzzy, x es el input o output,
es el centro y el ancho:
FIS:
Introduccin a la Lgica Difusa

Ejemplo en la robtica: HEXAPOD (cont)

Reglas fuzzy:
Introduccin a la Lgica Difusa

Ejemplo en la robtica: HEXAPOD (cont)

Resultados fueron que el robot lograra navegar sin chocar incluyendo
obstculos dinmicos
Pequeos ajustes a las reglas fueron necesarios para evitar que se
entrampara en mnimas 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 funcin B
m
(para la regla m),
Am
(x
i
)

es el grado de
membresia de x
i
a la regla A
m
y M =27 es el numero de reglas.
Introduccin a la Lgica Difusa

Ejemplo en la robtica: HEXAPOD (cont)

Rutas:
Introduccin a las Redes Neuronales


Que son las redes neuronales artificiales (ANNs)?
Las ANNs son un paradigma para hacer cmputo y
para la deteccin de patrones basado en la
interconexin 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
Introduccin 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 lneas
indican pesos y los en los crculos
indican umbrales (thresholds)
La funcin 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
x
1
x
2
1 1
1
y
X
1
X
2
Y
0 0 0
0 1 1
1 0 1
1 1 0
1
1 1
-2
1
1
1
) (
i i i
S f O=
0 0
1
0 0
) ( x w x w x w x w S
i
T
i
n
j
ij ij i
= =

=
i
n
j
ij ij
x w O >

=1
) (
Introduccin 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 informacin

x
i1
x
in
w
i1
w
in
f
O
i
Bias
Teacher
Algoritmo de
Aprendizaje
Calculo de
Error
T
i
S
i
E
i
x
i1
x
in
Neurona
Introduccin a los Algoritmos Genticos


Que es un algoritmo gentico (GA)?
Los algoritmos genticos (GA) son algoritmos de
bsqueda y optimizacin basados en los mecanismos
de seleccin natural y gentica.
Los GA usan los siguientes mecanismos:
la sobrevivencia de los organismos con mejor
capacidad dentro de una poblacin
uso de secuencias de caracteres (generalmente 1s y
0s) en strings como representacin del ADN de estos
organismos (codificacin)
el uso de mtodos aleatorios (random) para la
generacin de la poblacin y para su reproduccin
Introduccin a los Algoritmos Genticos


Poblacin
generacin = n
Mecanismo aleatorio
de reproduccin
Poblacin
generacin = n+1
Introduccin a los Algoritmos Geneticos


Los GA utilizan lo siguiente:
Esquema de codificacin de la informacin de los
miembros en strings (ADN de 1s y 0s)
Evaluacin de capacidad (fitness) de cada miembro
Seleccin aleatoria de los miembros que se van a
reproducir
Cruce (crossover) de la informacin de los miembros
de la poblacin
Mutacin de la informacin de los miembros de la
poblacin
Introduccin a los sistemas inteligentes

Ejemplos de tareas tpicas:
Diagnosis medico
Aplicaciones de tarjetas de crdito o transacciones / detectar
fraude en e-commerce
Detectar spam, viruses y troyanos en email
Personalizar noticias o sistemas web o educacin
Recomendar inversiones financieras
Reconocer palabras habladas
Discriminar huellas digitales
Catalogar imgenes astronmicas
Resolver problemas de calculo
Jugar damas, ajedrez
Pndulo invertido
Manejar un vehculo
Volar un avin o un cohete
Controlar un ascensor o un sistema de frenos u otro sistema
Controlar un agente inteligente en un juego o una aplicacin
Controlar un robot

Introduccin 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., Muoz, C., Navarro, N., and Quirs, F.:
"Fuzzy Motivations for Evolutionary Behavior Learning by a Mobile
Robot". LNAI, Vol. 4031. Springer, Berlin (2006) p. 462-471

Potrebbero piacerti anche