Reconocimiento
de Patrones
Redes Neuronales Artificiales
Curso de posgrado
Enrique Ferreira
Instituto de Ingeniería Eléctrica
07 de octubre de 2015
Objetivos
 Introducir el concepto de redes neuronales,
perspectiva histórica, estructuras principales y
aplicaciones fundamentales
 Describir en detalle estructuras y algoritmos a
utilizar en el contexto de reconocimiento de
patrones
 Conceptos de optimización
 Conceptos de sistemas dinámicos
07/10/2015
Reconocimiento de Patrones
2
Hipótesis de trabajo
 No se pretenden cubrir todas las estructuras
neuronales y sus algoritmos respectivos
 Complejidad
 Objetivos y duración del curso
 Dar las herramientas para que Uds. puedan seguir
profundizando en el tema conforme a sus
necesidades.
07/10/2015
Reconocimiento de Patrones
3
Organización
 Motivación, Historia
 Ingeniería inversa de procesos biológicos para el
desarrollo de nuevos modelos de computación
 Resolución de problemas complejos
 Introducción
 Conceptos fundamentales, notación a usar
 Ejemplos de redes neuronales
 Concepto de Aprendizaje
 Métodos de entrenamiento
 Aplicaciones
 Problemas fundamentales
07/10/2015
Reconocimiento de Patrones
4
Perspectiva Histórica
 Modelado de la estructura y funcionamiento cerebral
 Es un modelo computacional completamente diferente del
desarrollado en las computadoras digitales actuales.





distribuido
paralelo
no-lineal
auto-organizable
capacidad de aprendizaje
 Realiza ciertas tareas mucho más rápido que las computadoras
actuales, trabajando a velocidades mucho más lentas
 reconocimiento de patrones, lenguaje, actividad sensorial y motora
 no circunscrito solamente al cerebro humano
 Evolutivamente optimizado
 alta especialización anatómica y funcional
 plasticidad: capacidad de adaptación
07/10/2015
Reconocimiento de Patrones
5
Perspectiva Histórica
 Modelado de la estructura y funcionamiento cerebral
 Estructura funcional dentro del funcionamiento global del
individuo
 sistema reactivo
 especialización
 Neurona como unidad básica funcional del sistema
 Topología de red o interconexión entre neuronas
 Funcionamiento
 entrada-salida
 flexible, adaptable, a través de aprendizaje
Estímulos
Receptores
07/10/2015
Red
Neuronal
Reconocimiento de Patrones
Respuesta
Efectores
6
Funcionamiento Cerebral
 Modelado de la estructura y funcionamiento
cerebral
 Estructura jerárquica en capas
 Niveles de organización y funcionamiento
cerebral
 crecen en complejidad
 Sinapsis: nivel elemental de comunicación
 Microcircuitos neuronales:
 ensamble de sinapsis que producen operación
deseada (~ASIC)
 orden de m y velocidades de ms.
 Circuitos locales:
Sistema Nervioso Central
Circuitos Inter-regionales
Circuitos Locales
Neuronas
Árbol dendrítico
Microcircuitos neuronales
 ensambles de neuronas ( ~ 1 mm) para
desarrollar operaciones localizadas del cerebro
Sinapsis
 Inter-regionales:
 mapas, caminos que involucran diferentes
partes del cerebro
07/10/2015
Reconocimiento de Patrones
Moléculas
7
Neurona biológica
 Estructura
 cuerpo: del orden de 100 m
 dendritas: receptores (apical, basal)
 axón: trasmisor de impulsos
 Redes, interconexión
 sinapsis: conexión entre neuronas
 excitadora o inhibidora
 base química, neuro-trasmisores
 potenciales de acción
 descarga neuronal (burst) (~ 50mV)
 del orden de miles de sinapsis por
neurona (en dendritas y axón)
 Modelos
 axón: línea de trasmisión
 modelo eléctrico
07/10/2015
Reconocimiento de Patrones
8
Neurona Artificial
 Modelo simplificado de neurona
biológica
 estático
 representación entrada-salida.
bias
Entradas
u1
u2
w1
w2
 Múltiples entradas, salida única
 diferente influencia de entradas en
salida mediante “pesos” (wi)
 w: parámetros de la neurona
un
w0
wn

s
f(.)
Sumador
pesos sinápticos
 Relación entrada-salida no-lineal
 diferentes opciones para f(.)

step, sat, sigm, tanh
 Capacidad de adaptación
 variación de sus “pesos” con algún
objetivo
 Existen otros modelos



07/10/2015
agregando dinámica,
modelos no deterministas
relacionados con estructuras de redes
especificas
Reconocimiento de Patrones
función de
activación
9
y
salida
Redes Neuronales Artificiales
 Interconexión entre neuronas
 Decide flujo de información en red
 Total
 genera lazos en flujo de datos
 redes recurrentes
u
y
 Parcial
 en capas: entrada, internas, salida
 Recurrente: contiene lazos
 Feedforward: no contiene lazos
 Junto con pesos y funciones de salida de cada
neurona definen comportamiento global de la red
 Se debe definir la forma de actualización de
estados de cada neurona en la red
 secuencial, asíncrono, sincrónico
 especialmente importante en redes recurrentes o con
dinámica temporal
07/10/2015
Reconocimiento de Patrones
10
Ejemplo de Neurona: Perceptron
 Perceptron
 Separa espacio con hiperplano
 y = f ( w1 u1 + w2 u2 + ... + wn un ),
 f(s) = { 1 si s0, 0 si s<0 }
 Puede incluir offset w0.
u2
u1
wt.u=0
 Importante históricamente
 estudiado muy detalladamente (Minsky y Papert ‘69)
 Es un clasificador lineal en 2 clases.
 bueno si patrones linealmente separables
 XOR problem
 Análogo a clasificador de Bayes gaussiano.
 minimiza probabilidad de error
 clasificador denominado paramétrico
07/10/2015
Reconocimiento de Patrones
11
Ejemplo de Neurona: Adaline
 Adaptive Linear Element
 Estructura:
y=0
 Como un Perceptron pero con
función lineal a la salida.
 Permite trabajar con problemas
mas generales
 Widrow y Hoff propusieron un
método más eficiente
computacionalmente denominado
LMS para determinar parámetros
del Adaline (1962).
 similar a aplicar gradiente
descendente
 muy intuitivo
07/10/2015
Reconocimiento de Patrones
n
y 
wx
 w0
i
i
p
 yp
i 1
Ep 
1
2
t
2
 p w i   t p  y p  x i
12
Ejemplo de Red: Perceptron Multicapa
 Perceptron Multicapa
 Todos los nodos tienen igual función de
salida
u1
Wij2
Wij1
x12
Wij3
x11
x13
y1
x22
u2
x2
1
x2
3
f (u ) 
y2
x32
 Representación matricial
 x: activación neuronal
 v: entrada neta
 Wi : pesos en capa i
1
1 e
 ni

1

x  f 1 v   f l  W ij u j 


j

1


1
i
l
i
X  f l W X
l
l
l 1
yi  xi
L
07/10/2015
Reconocimiento de Patrones
u
13
, l  1
Ejemplo de Red: Perceptron Multicapa
 Representación ordenada
 Werbos (1972)
 Red lineal
 Activaciones dependen:
 entradas
 activaciones de neuronas
precedentes
u1
Wij
Wij2
1
3
Wij3
1
6
y1
7
y2
4
u2
2
5
 Derivadas ordenadas 
backpropagation
y1
u1
1
2
3
4
5
6
y2
7
u2
 i 1
x i  f i   w ij x j 

 j 1
07/10/2015

 w u k   i 
k 1

ni
0
ik
Reconocimiento de Patrones
14
Ejemplo: Radial Basis Function Network
 Red feed-forward
 Combinación lineal de funciones base o
receptores dadas.
 Funciones Base:
 Gaussianas, Logistic
 Normalizadas en gral
Wi
x1
y

x2
 Aplicaciones




Aproximación funcional, interpolación
Clasificación de datos
Clustering
Modelado y control de sistemas
y(x) 
dinámicos
 Comparable con sistema FIS
07/10/2015
Reconocimiento de Patrones
N
N
 w . R ( x )   w .e
i
i 1
i
i
i 1
15

x  i
2 i
2
2
Ejemplo: Redes de Hopfield
 Hopfield
u
 McCulloch-Pitts (1943): modelo discreto.
 Recurrente, totalmente conectada
 Asociada con sistema dinámico
 Actualización de activaciones
 Extensiones: Neuronas con constante de
tiempo, uso de probabilidad en salida
 Concepto de energía y entropía desarrollado
 Aplicaciones
 Descripción de sistemas cristalinos, y
fenómenos físicos asociados
 Uso en optimización
 ej: TSP, distribución, despacho de carga


X i  sgn   W ij X j  U i 


j




P  X i   1   g   W ij X j  U i 


 j

i



  X i  f  W ij X j  U i 


dt
 j

dX
i
E  
 Memoria asociativa
 Deducir patrón asociado a partir de dato parcial
 Representables en hardware
 VLSI
07/10/2015
y
Reconocimiento de Patrones
1
W

2
ij
XiX
ij
W ij 
1
N
X
p
i
X
p
j
p
16
j
Mapas Auto-Organizados


Self-organizing maps (Kohonen, 1982)
Identificar estructura en datos de trabajo
 conservan topología de datos

Hipótesis:
 Entradas similares producen salidas similares
 Conjuntos entrada-salida similares
agrupables

Estructura
 red de una capa
capa
2D
 distribución espacial especificada
 capa competitiva
 entradas: dimensión de espacio
 Pueden usarse neuronas con dinámica

Neuronas competitivas - selección
 Dada entrada, selecciona neurona con mayor
activación
 Uso de pesos para inhibición lateral
 Cooperación:
 Adaptación restringida a vecindad de neurona
seleccionada

Aplicaciones
 Clasificación de datos, Clustering
 Componentes principales (PCA)
 Codificación
07/10/2015
Reconocimiento de Patrones
Entradas (u)
17
Propiedades: Mapeo Universal
 Pregunta:
 Qué tipo de funciones puedo representar con una ANN?
 La idea se remonta al problema #13 de Hilbert (1900).
 Representar función de N variables como combinación lineal de
funciones en una variable (bajar dimensionalidad del problema)
 Respuesta:






Puedo representar el conjunto de funciones “suaves”.
Hay varias pruebas para diferentes arquitecturas
Kolgomorov (1957)
Cybenko (1960)
Hornik (1989)
Chen (1991)
07/10/2015
Reconocimiento de Patrones
18
Propiedades: Mapeo Universal
 Idea:
 Usando red con 2 capas
ocultas es posible crear
funciones tipo localizadas que
combinadas pueden formar
cualquier función “suave”
 Prueba intuitiva:
 Fácil de ver en R2  R.
 Red: y = ANN (x1,x2)
 Paso 1:
 Que mapeo obtengo con una
sola neurona?
 y = logsig(.x1)
 y = logsig(.x2)
07/10/2015
Reconocimiento de Patrones
19
Propiedades: Mapeo Universal
x1
 Paso 2:
b

1
b
 Uso Perceptron Multicapa
 Puedo lograr “pico” en
cualquier valor de x1 con
red de 1 sola capa oculta

-b
1
b
y

1
-1
 el ancho del pico depende
del valor de b.
 Puedo hacer lo mismo con
x2.
07/10/2015
Reconocimiento de Patrones
20
Propiedades: Mapeo Universal
 Paso 3:
 Agrupo redes en cada entrada
en una sola red para combinar
picos en x1 y x2.
 Ajustando parámetros puedo
obtener un pico bien definido
centrado en cualquier punto de
R2.
x1
b

b
1
-b
1

b
1

1
x2
b

b
1
-b
1
07/10/2015
Reconocimiento de Patrones
b

21
-2
y
Propiedades: Mapeo Universal
x1
 Paso 4:
 Agregando una capa
adicional
 2 capas ocultas
 Combinando estos picos se
puede aproximar cualquier
función de R2  R con el
grado de error que desee.
a
-a
c1
x2
a
-a
x1

1

1
d1

e1
1
1
b1
1
a
-a
1
x2
a
Reconocimiento de Patrones
-a
1
f1
-2

1

1

1
dn
en


bn
cn
1
07/10/2015


fn

1
-2
22
y
Otras Propiedades
 Discriminante universal:
 Posibilidad de generar regiones para clasificar datos
 Similar a mapeo universal
 Generalización:
 Capacidad de inferir resultados sobre valores de entrada no usados
anteriormente.
 Basada en:
 capacidad interpoladora por continuidad funcional de salida
 capacidad de extrapolación (cotas y dimensión VC)
 Importante a la hora de determinar tamaño de red a usar
 Robustez:
 Al malfuncionamiento de alguna neurona (fault tolerance)
 Debido al almacenamiento distribuido de la información.
 Adaptabilidad:
 A través de sus parámetros (pesos, activación)
 También con la estructura de la red.
07/10/2015
Reconocimiento de Patrones
23
Aprendizaje
 Dada estructura de red, proceso de modificación de
sus parámetros para lograr un comportamiento
deseado de la misma
 Estructura de la red también puede ser “aprendida”
 Métodos de aprendizaje:
 Supervisado
 existe “tutor” que me dice lo que la red debe hacer
 ej: reproducir mapeo entrada-salida dado (patrón)
 No supervisado
 generar clasificación propia de conjunto de patrones
 ej: clustering
 Reinforcement Learning
 aprende basado en señal de evaluación : bien/mal (reward)
 ej: ajedrez, backgammon (señal de refuerzo: gané/perdí)
07/10/2015
Reconocimiento de Patrones
24
Aprendizaje: On-line vs Off-line
 Diferentes formas de adaptar la red de acuerdo con
la forma en que se usa la información de
entrenamiento (e.g. patrones).
 Aprendizaje Off-line (batch)
 adaptación de parámetros de la red tomando el conjunto
total de patrones de entrenamiento
 usualmente llamado época (epoch)
 problemático con muchos datos
 Aprendizaje On-line (recursivo)
 adaptación de parámetros hecha a medida que los
patrones son obtenidos o usados en la red
 Métodos intermedios
 adaptación cada k patrones (epoch size)
07/10/2015
Reconocimiento de Patrones
25
Aprendizaje: Optimización
 La capacidad de aprender proviene de la elección de los
parámetros de la red.
 Comportamiento deseado de la red  error asociado
 Adaptación de parámetros  optimización de una función de
error
 Métodos de optimización:
 Error lineal en parámetros
 mínimos cuadrados y derivados
 batch o recursivo
 Error no-lineal en los parámetros
 con/sin uso de derivadas
 batch o recursivo
 Más complejos que lineales
 Combinación de ambos según arquitectura de ANN
 Aprendizaje de la estructura de ANN
 En gral se realiza en un lazo superior del algoritmo (batch).
07/10/2015
Reconocimiento de Patrones
26
Aplicaciones
 Aproximación funcional
 y=f(x)
 Supervisado:
 Series temporales
 trayectorias (uk, yk), k=1..N
 {(xi,yi) | yi=f(xi) }
 Interpolación, extrapolación
 Neuro-Control
Clasificación
Imágenes, voz, lenguaje
Supervisado: (ui , clasei)
no-supervisado
 extracción de
características
07/10/2015
 Modelado de Sistemas
físicos
 dx/dt = f(x,u,t), y=g(x,u,t)
 Reconocimiento de
patrones




 Identificación de modelos
 Planificación, Regulación,
Seguimiento
 Robótica, sistemas
complejos
 Supervisado,
Reinforcement Learning
Reconocimiento de Patrones
27
Simplificaciones prácticas
 Trabajaremos con redes feedforward
 elimina dinámica interna
 puede existir dinámica a partir de interconexiones con otros
sistemas
 mapa estático entrada-salida
 uso extendido en aplicaciones
 reconocimiento de patrones
 data mining
 neuro-fuzzy y neuro-control
 mayor desarrollo teórico y experiencia práctica
 mapeo universal
 aprendizaje
 algoritmos, convergencia, complejidad
 regularización
07/10/2015
Reconocimiento de Patrones
28
Software para ANN
 Stuttgart Neural Network
Simulator (SNNS)
 muy desarrollado
 Unix, Linux
 estructuras y algoritmos de
entrenamiento
 http://www-ra.informatik.unituebingen.de/SNNS/
 Matlab, Scilab
 toolboxes específicos
 GUI (matlab: nntool)
 análisis, optimización
 Programas específicos
 Dentro de aplicaciones
 Estadística, Control
07/10/2015
Reconocimiento de Patrones
29
Referencias
 C. Bishop, “Neural Networks for pattern recognition”,
Oxford Press, 1995.
 Simon Haykin, “Neural Networks”, Prentice Hall,
1999.
 Hertz, Krogh and Palmer, “Introduction to the theory
of Neural Computation”, Addison-Wesley, 1991.
 Jang et al. “Neuro-fuzy and Soft Computing”, Cap.
8-11, Prentice Hall, 1997.
 Duda and Hart, Cap. 5 y 6.
07/10/2015
Reconocimiento de Patrones
30
Descargar

Intro a Redes Neuronales