Download Introduccion a las redes neuronales artificiales y sus aplicaciones

Document related concepts

RNA de base radial wikipedia , lookup

Redes neuronales probabilísticas wikipedia , lookup

Función de base radial wikipedia , lookup

Perceptrón multicapa wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Transcript
RBF
Redes Neuronales
con Base Radial
(Poggio y Girosi,1990)
Introducción a las Redes Neuronales Artificiales
RBF
Esquema de trabajo:
•Estructura de una RBF
•Problema de clasificación (otra vez)
•Ejemplo XOR
•Teorema de Cover (número de neuronas)
•Problema de Interpolación (aproximación) de funciones
•Aproximadores universales
•RBF
•RRBF
•GRBF
•Entrenamiento
•Comparación MLP vs RBF
•Resumen
•Practica
Introducción a las Redes Neuronales Artificiales
RBF
Estructura de la red:
Capa de entrada: tiene tantos dispositivos
como dimensionalidad de la data.
Capa oculta: Hay una sola, neuronas nolineales usualmente con funciones de
activación radial. El número de neuronas
depende de la aplicación. Todas las
neuronas son distintas.
Capa de salida
Capa salida: neurona lineal. Los pesos
entre la capa oculta y esta deben ser
determinados
Capa de entrada
Capa oculta
Estos pesos tienen la particularidad
que no se calculan, ellos están
determinados por la función distancia
Introducción a las Redes Neuronales Artificiales
RBF
Funciones de Activacion capa oculta:
φ (r ) = e
−
r2
2σ 2
σ > 0 con r ∈ ℜ
(σ=0.5,1.0,1.5)
Introducción a las Redes Neuronales Artificiales
RBF
Problema de clasificación
Sea H el conjunto de patrones de entrada que
pertenecen a una clase. H=H1 U H2. ={x1,x2, ...,xN}
Se dice que el conjunto es ϕ-separable si para un conjunto de
funciones {ϕ1ϕ2,.....,ϕm1}, existe un vector W en Rm1 tal que
Wtϕ(x) > 0,
Wtϕ(x) < 0,
x pertenece a H1
x pertenece a H2
Las funciones ϕi serán en un futuro
las funciones de capa oculta
Wtϕ(x)=0 es la superficie de separación.
ϕ(x) = [ϕ1 (x) ϕ2 (x) ,.....,ϕm1(x) ]t
Introducción a las Redes Neuronales Artificiales
RBF
Ejemplo:XOR
Sean
(1,1)
0
(0,0)
(0,1)
1
ϕ1(x)= exp(-||x-x1||)
ϕ2(x)= exp(-||x-x2||)
ϕ1
(1,0)
Σ
X
ϕ2
ϕ1
ϕ2
(1,1)
1
0.1353
(0,1)
0.3678
0.3678
(0,0)
0.1353
1
(1,0)
0.3678
0.3678
ϕ2
b=0.9
-1
-1
(1,1)
(0,0)
(0,1)
(1,0)
ϕ1
Introducción a las Redes Neuronales Artificiales
RBF
Cuantas Neuronas hacen falta en la capa oculta?
El teorema de Cover nos dice que mientras mas
neuronas coloquemos en la capa oculta la probabilidad
de que una dicotomía (particion binaria) sea ϕ –
separable aumenta.
∑
a i1 i 2 Λ
0 ≤ i1 ≤ i 2 ≤ Λ ≤ i r ≤ m 0
ir
x i1 x i Λ x i r = 0
2
ϕ(x)= xi1xi2.....xir son funciones no lineales (variedad racional de orden r)
r=1 Æ hiperplanos;
r=2 Æ hiperparabolas
r=2 + cond. En coeficientes Æ hiperesferas
Introducción a las Redes Neuronales Artificiales
RBF
Cuantos patrones son separables con m1 neuronas?
Si X1,X2,.....,XN es una secuencia de patrones. Sea N el mayor entero tal que la
secuencia es ϕ - separable
⎛ 1 ⎞ ⎛ n −1 ⎞
⎟⎟
P ( N = n ) = ⎜ ⎟ ⎜⎜
⎝ 2 ⎠ ⎝ m1 − 1⎠
n
E(N)=2m1
Con el problema del O exclusivo bastó con dos neuronas.
Cuantas Neuronas hacen falta en la capa
oculta?
OJO:
OJO:
Aunque
Aunquelas
las
formas
formasde
delaladem.
dem.
No
Noson
soniguales
igualesalal
de
delas
lasfunciones
funciones
radiales,
radiales,elel
argumento
argumentopuede
puede
mantenerse.
mantenerse.
Muchas!
Asintóticamente N=2m1
(si tengo m1 neuronas puedo esperar separar hasta 2m1 patrones)
Introducción a las Redes Neuronales Artificiales
RBF
Problema de Interpolación
z
Es una técnica para hacer ajustes de funciones o superficies
z
Utiliza la data para hacer tal aproximación
z
Interpola la data restante (nueva)
{
Queremos encontrar para N puntos X ∈ ℜ m 0
i
{d i ∈ ℜ}
distintos con salida deseada
Una función
F :ℜ → ℜ
N
F ( X i ) = di
}
1
tal que
i = 1,2,...., N
Introducción a las Redes Neuronales Artificiales
RBF
Un aproximador universal es buscar F de la forma
F ( X ) = ∑ wiφ ( X − X i
N
{φ ( X − X )
i
y
)
i = 1,2,3..., N
i =1
i = 1,2,3..., N }
Funciones no-lineales arbitrarias
Nuevo dato
Funcion desconocida
Data de
Entrenamiento
x
Introducción a las Redes Neuronales Artificiales
RBF
Los Xi son los centros, por esto decimos que todas las neuronas son distintas, que es una
diferencia importante de los perceptrones multicapas visto anteriormente.
F ( X i ) = di
i = 1,2,...., N
F (X ) =
∑ wφ( X
N
i =1
w1φ11 + w2φ12 +
w1φ21 + w2φ22 +
Μ
Μ
w1φ N 1 + w2φ N 2 +
Con
(
Λ
Λ
Λ
Λ
φ ji = φ x j − xi
i
− Xi
)
+ wN φ1N = d1
+ wN φ2 N = d 2
Μ
+ wN φ NN = d N
)
Introducción a las Redes Neuronales Artificiales
RBF
⎡ φ11 φ12 Λ
⎢φ
φ
Λ
21
22
⎢
⎢ Μ Μ Μ
⎢
⎣φ N 1 φ N 2 Λ
⎡ φ11 φ12 Λ
⎢φ
⎢ 21
Φ=
⎢ Μ
⎢
⎣φ N 1 φ N 2 Λ
φ1N ⎤
⎥
φ2 N ⎥
⎡ w1 ⎤ ⎡ d1 ⎤
⎢w ⎥ ⎢d ⎥
2⎥
2⎥
⎢
⎢
=
⋅
Μ ⎥ ⎢ Μ⎥ ⎢ Μ⎥
⎥ ⎢ ⎥ ⎢ ⎥
φ NN ⎦ ⎣ wN ⎦ ⎣d N ⎦
φ1N ⎤
⎥
φ2 N ⎥
Matriz de interpolación
Μ⎥
⎥
φ NN ⎦
Introducción a las Redes Neuronales Artificiales
RBF
Realmente puedo hacer esto?
Es invertible la matriz?
Teorema (Micchelli, 1986): La matriz Φ es nosingular si todos los
valores de la data son distintos y las funciones ϕ son de un cierta
clase amplia (que incluyen las multicuadráticas, multicuádraticas
inversas y las gausianas)
Introducción a las Redes Neuronales Artificiales
RBF
• Multicuadrática
φ (r ) = (r + c
2
2
)
1
2
c > 0 con r ∈ ℜ
• Multicuadrática Inversa
φ (r ) =
(r
1
2
+c
2
)
1
c > 0 con r ∈ ℜ
2
• Gausiana
φ (r ) = e
−
r2
2σ 2
σ > 0 con r ∈ ℜ
Introducción a las Redes Neuronales Artificiales
RBF
Resumen
• Ajusta el 100% de la data de entrenamiento (error=0)
• Entrenamiento (en dos etapas) no iterativo.
En
Enlalapráctica
práctica
podemos
podemostener
tener
sistemas
sobre
sistemas sobre
determinados.
determinados.El
El
sistema
sistemapodría
podría
ajustar
data
ajustar datacon
con
ruido
(agrega
ruido (agrega
incertidumbre).
incertidumbre).
• Primera etapa: determinar las neuronas (usando
unicamente los datos).
• Segunda etapa:Determinar los pesos resolviendo el sistema
de ecuaciones.
• Qué ocurre con la generalización?
Introducción a las Redes Neuronales Artificiales
RBF
Si entrenamos con una data que contiene ruido, la función que interpola
exactamente es altamente oscilatoria (poco deseable). Queremos una
función mas suave.
Modificaciones:
1.
2.
3.
4.
El número de funciones no es exactamente el número de datos.
Los centros no necesariamente son los mismos datos.
Los parametros de las neuronas ( σ ) no tienen que ser los mismos para
cada neurona.
Incluimos el sesgo (compensa con el valor promedio de las funciones de
activación y los correspondientes valores deseados).
Ahora tenemos una RBF (Radial Basis Function) o Red de Base Radial
Introducción a las Redes Neuronales Artificiales
RBF
1
Salida lineal
Capa de entrada
Funciones de base radial
y (X)=Σ wjϕj(x) + w0 = Σ wjϕj(x) con j=0..M < N
ϕj(x)= exp( - ||x-tj||2 / 2σj2 )
Introducción a las Redes Neuronales Artificiales
RBF
Tenemos un sistema de la forma
Y=WΦ
Podemos encontrar los pesos, mediante la minimización de la función de
error cuadrático. Con las neuronas fijas (los centros y el parámetro de
dispersión), podemos buscar minimizar la función de error con respecto a
los pesos. Esto resulta en resolver la ecuación: (ver tarea)
ΦTΦwT= ΦTD
(1)
La solución involucra la pseudoinversa de Φ = [ ( ΦΤΦ )−1 ΦΤ ].
En la práctica el sistema (1) se resuleve usando descomposición en
valores singulares.
Introducción a las Redes Neuronales Artificiales
RBF
Otra forma de garantizar regularización (usando todos los datos) es...
2
N
1
1
min E ( F ) = ∑ [d i − F ( xi )] + λ DF
2 i =1
2
Error de aproximación
2
Penalización
D es un operador lineal diferencial,
λ es un parámetro de regularización
La solución es de la forma:
Fλ ( x) =
N
1
λ
∑ [d
i =1
i
− F ( xi )]∗ G ( x, xi )
Introducción a las Redes Neuronales Artificiales
RBF
Fλ ( x) =
N
1
λ
∑ [d
i =1
i
− F ( xi )]∗ G ( x, xi )
En esta ecuación las G(x,xi) son las funciones de Green asociadas
con el operador diferencial L, definido como
~
L = DD
Las funciones de Green forman una base N-dimensional para la clase de
funciones suaves. Si el operador diferencial D tiene las propiedad de ser
translacionalmente invariante (depende solo de la distancia entre los
argumentos) y rotacionalmente invariante (igual para cualquier radio o
distancia), entonces
G ( x, xi ) = G ( x − xi
)
Introducción a las Redes Neuronales Artificiales
RBF
Redes Regularizadas
1
Salida lineal
Capa de entrada
Funciones de Green
Introducción a las Redes Neuronales Artificiales
RBF
Si
D =
∑
n
⎛ ∂
∂
⎜
+
+
2
2
⎜
∂x2
n !2 ⎝ ∂ x 1
σ
2n
i
n
2
2
∂
+
∂ x m2 0
2
Λ
⎞
⎟
⎟
⎠
n
Entonces,
⎛ 1
G ( x, xi ) = exp⎜⎜ − 2 x − xi
⎝ 2σ i
⎞
⎟⎟
⎠
Introducción a las Redes Neuronales Artificiales
RBF
wi es el i - esimo elemento de W = (G + λI )
−1
ρ
d
con
⎡ G11 G12 Λ
⎢G
21
⎢
G=
⎢ Μ
⎢
⎣GN 1 GN 2 Λ
y
G1N ⎤
⎥
G2 N ⎥
Μ⎥
⎥
GNN ⎦
Gij = G ( xi , x j ) = G ( x j , xi )
Además es positiva definida para ciertas clases de funciones (D), luego es
invertible. Si λ =0, entonces G= Φ para el caso de funciones de green
radiales.
Introducción a las Redes Neuronales Artificiales
RBF
GRBF
(Redes de base radial generalizadas)
Al igual que antes, una de las dificultades es el gran número de neuronas en la
capa oculta, lo cual requiere de un gran número de operaciones para hacer la
inversión de la matriz. (Dato: número de op. para invertir una matriz NxN es
O(N3)!!!!)
La idea es hacer una aproximación con una red sub-óptima, en el sentido de que el
error cometido es distinto de cero.
Esto se logra reduciendo la complejidad de la red, haciendo la expansión
sobre una familia de funciones (reducidas) linealmente independientes (como
hicimos antes).
m1
F * ( x) = ∑ wiϕi ( x) con mi < N
i =1
Introducción a las Redes Neuronales Artificiales
RBF
m1
F * ( x) = ∑ wiϕi ( x) con mi < N
i =1
Una escogencia natural son la funciones de base radial
ϕ i ( x ) = G ( x − ti
)
Con los centros ti a ser determinados. (Si N=m1 y ti=xi, tenemos la solución
anterior).
2
N
Queremos minimizar;
E ( F *) = ∑ [d i − F * ( xi )] + λ DF
2
i =1
(
)
2
⎡
⎤
= ∑ ⎢d i − ∑ w j G xi − t j ⎥ + λ DF
i =1 ⎣
j =1
⎦
N
m1
2
Introducción a las Redes Neuronales Artificiales
RBF
Esto se logra con la resolución del
siguiente sistema de ecuaciones:
Con:
(G G + λG )w = G d
T
T
0
⎡ G(x1, t1) G(x1, t2 ) Λ G(x1, tm1 ) ⎤
⎢G(x , t )
⎥
(
,
)
G
x
t
2 1
2 m1 ⎥
⎢
G=
⎢ Μ
Μ ⎥
⎢
⎥
⎢⎣G(xN , t1) G(xN , t2 ) Λ G(xN , tm1 )⎥⎦
⎡ G(t1, t1) G(t1, t2 ) Λ G(t1, tm1 ) ⎤
⎢ G(t , t )
⎥
(
,
)
G
t
t
2 1
2 m1 ⎥
G0 = ⎢
⎢ Μ
Μ ⎥
⎢
⎥
(
,
)
(
,
)
(
,
)
G
t
t
G
t
t
G
t
t
Λ
⎢⎣ m1 1
m1 2
m1 m1 ⎥
⎦
Introducción a las Redes Neuronales Artificiales
RBF
Ejemplo:XOR
Sean
(1,1)
0
(0,0)
(0,1)
1
ϕ1(x)= exp(-||x-x1||)
ϕ2(x)= exp(-||x-x2||)
ϕ1
(1,0)
Σ
X
ϕ2
ϕ1
ϕ2
(1,1)
1
0.1353
(0,1)
0.3678
0.3678
(0,0)
0.1353
1
(1,0)
0.3678
0.3678
ϕ2
b=0.9
-1
-1
(1,1)
(0,0)
(0,1)
(1,0)
ϕ1
Introducción a las Redes Neuronales Artificiales
RBF
Planteamos el sistema de ecuaciones….
G ( x1 − t1
G ( x2 − t1
G ( x3 − t1
G ( x4 − t1
)w + G( x
)w + G( x
)w + G( x
)w + G( x
1
1
1
1
− t2
2 − t2
3 − t2
4 − t2
1
)w
)w
)w
)w
+ b = d1
2 + b = d2
2 + b = d3
2 + b = d4
2
RBF-OExcl.m
Introducción a las Redes Neuronales Artificiales
RBF
Estrategias para la escogencia de los centros
1. Centros fijos seleccionados al azar.
•Mas sencillo de todos los métodos
•Tips:
•Escoger
(
G x − ti
2
) = exp ⎛⎜⎜ − dm
⎝
1
x − ti
max
2
⎞
⎟⎟
⎠
Con m1 =número de centros,
dmax=distancia máxima entre los centros
•Usar centros con gausianas mas anchas donde hay poca data
(requiere hacer experimentación con la data)
•Experimentar con distintos números de neuronas.
Introducción a las Redes Neuronales Artificiales
RBF
2. Selección de centros por clusters
• Busca centros apropiados donde existe similaridad en data y agruparlos. Se
quiere lograr que los centros sean aproximadamente la media del “cluster” . Hacer
la actualización de los pesos.
• Algortimo
1. Escoger m1 centros aleatoriamente, {tk(0)}, k=1,…,m1
2. Mientras ||tk(n+1)-tk(n)|| < tolerancia
1. Escoger patron x al azar
2. K(x)=argmin{||x - tk(n)||}, k=1,…,m1
tk(n) + α [ x - tk(n) ], k=k(x)
3. tk(n+1)=
tk(n)
caso contrario
Luego puedo usar la pseudoinversa para calcular los pesos o usar LMS pensando en
estas como entradas a un ADALINE.
Introducción a las Redes Neuronales Artificiales
RBF
3. Selección supervisada de centros.
Idea: Adaptar los parametros libres (pesos,centros, y parametros
de dispersion) usando LMS (descenso de gradiente) para minimizar
(
)
1
1 ⎛
⎞
2
E = ∑ e j = ∑ ⎜ d − ∑ wi G x j − ti ⎟
2 j =1
2 j =1 ⎝
i =1
⎠
N
N
M
2
Cada actualización requiere del gradiente de la función con respecto
al parámetro en cuestión.
Introducción a las Redes Neuronales Artificiales
RBF
Actualización de los pesos
(
N
∂E (n)
= ∑ e j (n)G x j − ti (n)
∂wi (n) j =1
)
wi ( n + 1) = wi ( n ) − η1
∂E ( n )
∂wi ( n )
Actualización de los centros
(
[)
N
x j − ti ( n)
∂E (n)
= wi (n)∑ e j (n)G ′ x j − ti (n)
∂ti (n)
2 x j − ti
j =1
]
∂E ( n )
t i ( n + 1) = t i ( n ) − η 2
∂t i ( n )
Introducción a las Redes Neuronales Artificiales
RBF
Para las dispersiones
(
)
N
∂E (n)
= − wi (n)∑ e j (n)G′ x j − ti (n) σ i−1 (n)
∂σ i (n)
j =1
∂E ( n )
σ i ( n + 1) = σ i ( n ) − η 3
∂σ i ( n )
Se hace tan computacionalmente intensivo como las MLP!!
Se puede usar un entrenamiento como los descrito anteriormenete y
hacer la entonación de los parámetros con este proceso.
Introducción a las Redes Neuronales Artificiales
RBF
4. Selección no-supervisada de centros (redes Kohonen).
Se representan los datos en una malla y se ejecuta un
algoritmo auto-organizativo para determinar los centros.
Introducción a las Redes Neuronales Artificiales
RBF
RBF
MLP
Tiene una sola capa oculta
Puede tener mas de una
capa oculta
La función de transferencia
en la capa oculta es distinta
(dependencia de centros)
Tipicamente las neuronas
en las capas escondidas
tienen la misma neurona
Capa oculta es no lineal
Las MLP todas las
mientras que la de salida es neuronas pueden ser
lineal
nolineales (puede variar
según aplicación)
El argumento de capa
oculta calcula norma
euclidea entre entrada y
centro
La función de activación
recibe el producto interno
entre los pesos y la entrada
Aproximador local
Aproximador global
Introducción a las Redes Neuronales Artificiales
RBF
Introducción a las Redes Neuronales Artificiales
RBF
Como calcular λ
Sea
1
2
I − A(λ ) y
V (λ ) = N
2
⎤
⎡1
[
]
tr
I
A
(
λ
)
−
⎥⎦
⎢⎣ N
Fλ = A( λ ) y
con
N
⎛
⎞
⎜ Fλ ( x k ) = ∑ a ki ( λ ) y i ⎟
i =1
⎝
⎠
El λ que minimiza V esta suficientemente cercano al λ que minimiza
1
R (λ ) =
N
N
2
[
]
f
(
x
)
−
F
(
x
)
∑ i λ i
i =1
cuando queremos aproximar
yi = f ( xi )+ ∈i
Introducción a las Redes Neuronales Artificiales