Redes Neuronales Multicapa

Anuncio
Redes Neuronales Multicapa
Introducción al Reconocimiento de Patrones
IIE - FING - UdelaR
2015
Outline
Redes neuronales multicapa (MLNN)
Las funciones discriminantes lineales puras tienen limitaciones:
las fronteras de decisión son hiperplanos.
Con funciones no lineales φ se pueden obtener fronteras de
decisión complejas: mayor poder de expresión.
¿Cómo determinar o aprender las no linealidades φ para lograr
bajos errores de clasificación?
Idea de MLNN: aprender las no-linealidades al mismo
tiempo que los discriminantes lineales.
Estructura de una red multicapa
Ejemplo: red de 3 capas – entrada, capa oculta y capa de salida.
Redes de 3 capas
Cada unidad de la capa oculta:
netj =
d
X
wji xi + wj0 =
i=1
yj = f (netj ),
d
X
wji xi = wjt x
i=0
e.g. f : función signo o sigmoide.
Unidades de la capa de salida: idem pero tomando las salidas de
la capa oculta como entradas:
netk =
nH
X
wkj yj + wk0 = wkt y
j=1
zk = f (netk ), f : en general (no necesariamente) igual a las de la capa oculta.
Redes
de 3 capas
6.2. FEEDFORWARD OPERATION AND CLASSIFICATION
7
Ejercicio Problema XOR: mostrar que se resuelve con esta red.
z
1
0
1
-1
0
-1
0
-1
1
zk
output k
y1
-1
1
0
1
-1
0
-1
0
-1
1
.5
hidden j
1
1 1
1
0
-1.5
bias
y2
-.4 wkj
.7
1
-1
0
-1
0
1 wji
-1
1
input i
x2
x1
x2
z= -1
R2
z=1
R2
R1
x1
z= -1
(2-2-1 fully connected)
Figure 6.1: The two-bit parity or exclusive-OR problem can be solved by a three-layer
network. At the bottom is the two-dimensional feature space x1 − x2 , and the four
Feedforward (clasificación)
La forma general de las salidas de una red de tres capas es:


!
nH
d
X
X
wji xi + wj0 + wk0 
gk (x) = zk = f 
wkj f
j=1
i=1
Interesa saber la capacidad expresiva de esta formulación: ¿Se
puede aproximar cualquier función?
Poder de expresión
Teorema de Kolmogorov: Para toda función g : [0, 1]n → R
continua (n ≥ 2), existen funciones Ξj y ψij tales que
g(x) =
2n+1
X
j=1
Ξj
d
X
!
ψij (xi ) .
i=1
Asegura viabilidad teórica, pero de poco utilidad práctica:
En general las Ξj y ψij son complejas y muy irregulares.
El teorema no nos dice mucho sobre como elegirlas o
aprenderlas de los datos, ni como elegir n.
While we can be confident that a complete set of functions, such as all polynomials, can represent any function it is nevertheless a fact that a single functional form
also suffices, so long as each component has appropriate variable parameters. In the
absence of information suggesting otherwise, we generally use a single functional form
for the transfer functions.
While these latter constructions show that any desired function can be implemented by a three-layer network, they are not particularly practical because for most
problems we know ahead of time neither the number of hidden units required, nor
the proper weight values. Even if there were a constructive proof, it would be of little
use in pattern recognition since we do not know the desired function anyway — it
is related to the training patterns in a very complicated way. All in all, then, these
results on the expressive power of networks give us confidence we are on the right
track, but shed little practical light on the problems of designing and training neura
networks — their main benefit for pattern recognition (Fig. 6.3).
Aproximando cualquier función
Intuitición
Poder de expresión
x2
fl
Two"layer
R1
R2
x1
x2
x1
x2
R1
Three"layer
...
R2
R2
R1
x1
x2
x1
Figure 6.3: Whereas a two-layer network classifier can only implement a linear decision
boundary, given an adequate number of hidden units, three-, four- and higher-layer
networks can implement arbitrary decision boundaries. The decision regions need not
be convex, nor simply connected.
Backpropagation - Aprendizaje
t: salida objetivo; z: salida de la red.
Función de error a minimizar:
c
1X
1
J(w) =
(tk − zk )2 = kt − zk2
2
2
k=1
La minimización se hace evaluando patrones conocidos
(feedforward), y corrigiendo los pesos en base a la diferencia
con lo esperado (aprendizaje).
Backpropagation - Aprendizaje
Hay que corregir los pesos para disminuir el error.
Haciendo el descenso por el gradiente, la corrección es:
∆w = −η
∂J
,
∂w
∆wpq = −η
∂J
∂wpq
w(m + 1) = w(m) + ∆w(m)
Backpropagation - Aprendizaje
Pesos de la capa oculta a la capa de salida:
∂netk
∂J
∂J ∂netk
=
= −δk
∂wkj
∂netk ∂wkj
∂wkj
∂J
es la sensibilidad del nodo k.
donde δk = − ∂net
k
∂netk
= yj ,
∂wkj
δk = −
∂J
∂J ∂zk
=−
= (tk − zk )f 0 (netk )
∂netk
∂zk ∂netk
⇒ ∆wkj = ηδk yj = η(tk − zk )f 0 (netk )yj
Backpropagation - Aprendizaje
Pesos de la capa de entrada a la capa oculta:
∂J
∂J ∂yj ∂netj
∂J 0
=
=
f (netj )xi
∂wji
∂yj ∂netj ∂wji
∂yj
c
1X
(tk − zk )2
2
∂J
∂
=
∂yj
∂yj
=−
c
X
k=1
!
=−
c
X
k=1
(tk − zk )f 0 (netk )wjk = −
k=1
c
(tk − zk )
c
X
X
∂zk ∂netk
∂zk
=−
(tk − zk )
∂yj
∂netk ∂yj
k=1
wkj δk
k=1
Sensibilidad, nodo de capa oculta: δj = f 0 (netj )
⇒ ∆wji = ηxi δj = ηxi f 0 (netj )
c
X
k=1
Pc
k=1 wkj δk .
wkj δk
Backpropagation - Aprendizaje Capa Oculta
δk = (tk − zk )f 0 (netk ), δj = f 0 (netj )
c
X
k=1
wkj δk
Backpropagation - Aprendizaje
La regla se puede generalizar para los casos:
Los nodos de entrada están conectados directamente a los de
la salida.
Más de una capa oculta
Se usan distintas f en distintas capas
Cada nodo tiene una f distinta
Cada nodo tiene un paso de aprendizaje diferente
Backpropagation - Protocolos de Aprendizaje
Tres esquemas básicos de aprendizaje:
Estocástico: se elige un subconjunto aleatorio de los patrones
Batch: se usan todos los patrones
En línea: uno a uno a medida que aparecen
Esquema Estocástico
Esquema Batch Backpropagation
Se considera todos los patrones y se actualiza con una suma del
aporte de todos, es decir tomando como error:
n
X
p=1
Jp
Backpropagation - Curvas de Aprendizaje
Se busca un mínimo de J que se puede ver como una
superficie de error.
Si tiene muchos mínimos locales, puede quedarse en uno.
Si es muy suave el descenso es muy lento.
En dimensiones grandes es muy probable obtener mínimos
locales. En la práctica se suele llegar a un mínimo local, mover
los pesos de ese punto y volver a iterar.
Backpropagation como un mapeo del espacio de
caractesrísticas
Como la última etapa es un discriminante lineal, el entrenamiento
se puede ver como una deformación del espacio en otro separable.
Graficamente para el XOR:
Backpropagation - Interpretación de los pesos aprendidos
Los pesos en uno de los nodos de la capa oculta representan los
valores que dan máxima respuesta de ese nodo. Se puede explicar
la solución como haber encontrado los pesos que corresponden a un
filtro matcheado.
Backpropagation - Bayes, probabilidad
Se puede probar que en el límite con infinitos datos, la red
entrenada aproxima en mínimos cuadrados las probabilidades a
posteriori:
gk (x, w) ≈ P (wk |x)
¡Pero asumiendo que hay suficientes nodos en la capa oculta!
Backpropagation - Bayes, probabilidad
La salida de la red se puede interpretar como una probabilidad:
Tomando:
f (netk ) ∝ enetk
y normalizando para que sean probabilidades:
enetk
netm
m=1 e
zk = Pc
Backpropagation - Consejos y Mejoras
La función de transferencia: f (.) debe ser:
No lineal
Que sature (acotada)
Continua y derivable (para poder hacer descenso por el
gradiente)
monotonía
Polinomios: hacen inestables la solución.
Se suele usar la sigmoide.
Backpropagation - Sigmoide
f (net) = a tanh(b.net) = a
2a
1 − eb.net
=
−a
b.net
1+e
1 + e−b.net
Backpropagation - Consideraciones
Normalizar la entrada: es conveniente modificar la entrada
para que las caracterísiticas tengan igual media y varianza.
Entrenar con ruido: puede ser útil entrenar agregando ruido de
hasta 10% en la entrada para evitar sobre-entrenamiento.
Transformar los datos de entrada: si se conoce
transformaciones que describan la variabilidad de los datos:
por ej en OCR: rotación, escala,negrita... entonces se puede
hacer crecer el conjunto de entrenamiento aplicando estas
transformaciones.
Backpropagation - Tamaño de la capa oculta
Relacionada con la complejidad de la superficie de decisión.
En general funciona bien la regla empírica:
Tantos nodos para que haya n/10 parámetros por determinar.
Backpropagation - Inicialización de los pesos
Se quiere aprender las clases a la misma velocidad:
Elección de pesos dist uniforme:
−ŵ < w < ŵ
con ŵ de forma que la salida de los nodos ocultos esté en un rango
no saturado, −1 < neti < 1, si no es dificil que esos nodos se
ajusten en el aprendizaje.
Ejemplo, d entradas:
1
ŵ = √
d
Lo mismo se aplica a los pesos de la capa final:
inicializar con
√
√
−1/ nH < wkj < 1/ nH
Backpropagation - Velocidad de aprendizaje
Se considera el óptimo como el que lleva al mínimo local en una
aproximación cuadrática:
∂2J
∂J
∆w =
2
∂w
∂w
Oteniendo:
ηopt =
∂2J
∂w2
−1
Backpropagation - Velocidad de aprendizaje
Backpropagation - Momento o inercia
Para evitar estancarse en mesetas:
w(m + 1) = w(m) + ∆w(m) + α∆w(m − 1)
en general con α cercano a 1.
Backpropagation - Paso variable
Weight Decay:
wnew = wold (1 − ε),
0 < ε < 1.
Se puede probar que es equivalente a tomar un nuevo J:
Jef (w) = J(w) +
2ε t
ww
η
Tiene el efecto de regularizar la frontera ( Porqué? ).
Backpropagation - Hints
Poner como salida una categorización jerárquica ayuda a aprender
mejor a la red. Esas salidas luego se descartan.
Backpropagation - Métodos de segundo orden
Se puede usar técnicas más elaboradas para llegar al mínimo:
Hessiana (aproximación de segundo orden)
Quickprop (aproximación rápida de segundo orden)
Gradiente conjugado (mantiene la dirección de descenso)
Otros tipos de redes
Las funciones no lineales son RBF.
TDNN (Time Delay) (con memoria).
Recursivas.
Descargar