Document

Anuncio
REDES ALIMENTADAS
HACIA ADELANTE
❧ El perceptrón
❧ Redes multicapa
● Back-Propagation
● Algoritmos de Diseño Basados en VoD
● Aprendizaje no Supervisado
● Redes Probabilísticas
El perceptrón:
Reconocimiento de patrones
El perceptrón es una máquina para el
reconocimiento de patrones
Fue propuesto por McCulloch y Pitts en el
año 1943 para el reconocimiento de
letras.
Se puede considerar la neurona básica
como un modelo muy simplificado de
una neurona biológica.
Se pretende que dadas dos clases de
patrones, una neurona pueda distinguir
si un patrón es de una clase o de la otra.
ù
én
y = fh ê wi xi −θ
ë i=1
La salida de la neurona deberá ser entonces:
ù
é
y = fh ê wi xi −θ ú
ë i=1
n
donde xi es la entrada, wi es el peso correspondiente a xi,
θ representa el umbral y fh es la función:
ì1 si x > 0
f h ( x) = í
0 si x ≤ 0
Geométricamente la ecuación:
w1 x1 + w 2 x 2 + ..... + w n x n = θ
representa un hiperplano en Rn.
La neurona básica podría también utilizarse como un
clasificador del conjunto {0, 1}n, ya que podría decirse que
todo {x1, x2, ...., xn}∈ {0, 1}n, pertenece o bien a la clase [1],
si {x1, x2, ...., xn} es un punto situado encima del hiperplano,
es decir si
w1 x1 + w 2 x 2 + ..... + w n x n > θ
é
y = fh ê
ë
n
i =1
wi xi − θ
ù
=1
o bien a la clase [0], si {x1, x2, ...., xn} es un punto situado
debajo del hiperplano, es decir si
é
y = fh ê
ë
n
i =1
wi xi − θ
ù
= 0
APRENDIZAJE DE LA
NEURONA SIMPLE
A
B
¿Podemos conseguir que
la neurona distinga las
Aes de las Bes?
Imagen digitalizada
El problema consiste en
encontrar los pesos para
que reconozca el patrón
digitalizado de A como
perteneciente a [A]
Queremos que al presentar una A se supere el umbral θ y al
presentar una B no se supere, por tanto, en el instante t + 1, si se ha
presentado una A los pesos aumentarán:
wi (t +1) = wi (t) + µ xi donde 0 < µ ≤1
y en general:
w1(t +1).x1 +....+ wn (t +1).xn = [w1(t).x1 +....+ wn (t).xn ] + µ(x1 +...+ xn )
A
B
ì x ∈ [A] Þ 1 ≥ µ > 0
í
x ∈ [B ] Þ −1 ≤ µ < 0
ìx∈[A] Þµ (x1 +...+ xn ) > 0
í
x∈[B] Þµ (x1 +...+ xn ) < 0
¿Converge?
Por último se sustituye el umbral por una nueva conexión de
entrada que lo emule, obteniendo así un hiperplano vectorial:
w1 x1 + w2 x2 + ..... + wn xn − θ = 0 ⇔ w1 x1 + w2 x2 + ..... + wn xn + wn +1 xn +1 = 0
wn+1 = -θ
xn+1 = 1
ALGORITMO DE APRENDIZAJE
Se trata de obtener el vector de pesos (w1 , w2 , ... wn ,
wn+1 ) de forma que los elementos de [A] queden por
encima del hiperplano y los de [B] por debajo.
El algoritmo consistiría en:
• Asignar valores aleatoriamente a los pesos y al umbral.
• Presentar un input.
• Calcular un output.
• Alterar los pesos reforzándolos o debilitándolos según
lo anteriormente expuesto.
ALGORITMO DE APRENDIZAJE
1. Hacer t = 0, y asignar aleatoriamente, ∀i = 1,..., n, valores
a los pesos wi
2. Tomar un patrón x = {x1,...,xn} de L conjuntamente con la
respuesta deseada d (que será 1 o 0), y hacer [wn+1(t) = - θ]
y [xn+1(t) = 1]
3. Hacer [wi(t) ← wi ], ∀i = 1,..., n, y calcular la salida actual
4.
é n +1
ù
y (t + 1) = f h ê wi (t ). xi
ë i =1
Adaptar los pesos:
Si [d= y(t+1) ], STOP
Si [d= 1 ] y [y(t+1) = 0 ], Hacer [wi← wi(t)+µxi ], ∀i = 1,..., n, 0<µ ≤ 1
Si [d= 0 ] y [y(t+1) = 1 ], Hacer [wi← wi(t)-µxi ], ∀i = 1,..., n, 0<µ ≤ 1
Hacer t = t+1. Ir a 3.
ALGORITMO DE APRENDIZAJE II
(considerando el espacio aumentado Rn+1 y µ=1)
Inicio:
Elegir un valor arbitrario de w.
Test:
Si ya se han elegido todos los elementos de L, STOP.
Elegir x de L1 ∪ L0
Si (x ∈ L1) y (w.x > 0) ir a Test.
Si (x ∈ L1) y (w.x ≤ 0) ir a Sumar.
Si (x ∈ L0) y (w.x < 0) ir a Test.
Si (x ∈ L0) y (w.x ≥ 0) ir a Test.
Sumar:
Reemplazar w por (w + x). Ir a Test.
Restar:
Reemplazar w por (w - x). Ir a Test.
ALGORITMO DE APRENDIZAJE III
(en vez de valores binarios se consideran valores bipolares)
Inicio:
Elegir un valor arbitrario de w.
Test:
Si ya se han elegido todos los elementos de L, STOP.
Elegir x de L1 ∪ L0
Si (x ∈ L0) cambiar x por -x
Si (w.x > 0) ir a Test
en caso contrario ir a Sumar.
Sumar:
Reemplazar w por (w + x).
Ir a Test.
ALGORITMO DE APRENDIZAJE IV
(considerando F = L1 ∪ -L0)
Inicio:
Elegir un valor arbitrario de w.
Test:
Si ya se han elegido todos los elementos de L, STOP.
Elegir x de F
Si (w.x > 0) ir a Test
en caso contrario ir a Sumar.
Sumar:
Reemplazar w por (w + x).
Ir a Test.
TEOREMA DE CONVERGENCIA
Partimos de la hipótesis de que existe un vector solución w* (el cual
se toma normalizado, es decir |w*| = 1), tal que:
w*. x > 0
para todo x (también normalizado) de L.
El mínimo m de los ,
w*. x , ∀x ∈ L
será por tanto, también, mayor que cero. Tomando un δ arbitrario tal
que δ (0, m), se tendría un número δ fijo positivo, de modo que se
cumple:
w* . x > δ ,
∀x ∈ L
TEOREMA DE CONVERGENCIA
Por la definición de producto interno, se sabe que, para todo vector de
pesos w se cumple que:
w .w * = w . w * cos( w , w * ) = w cos( w , w * )
Definiendo G, como la función que a todo vector de pesos w, le hace
corresponder el coseno del ángulo entre w y w*, es decir:
se puede asegurar que para todo w, se verifica que G(w) ≤ 1.
Elegimos como valor arbitrario inicial de w el vector w0 = 0, y vamos
a estudiar como se comporta G, cada vez que en el algoritmo se pasa
por sumar.
Definimos un contador t de las veces que se pasa por sumar. Despues
de t veces
w* . w(t + 1) = w* . (w(t)+ x ) = w* . w(t)+ w* .x ≥ w* . w(t) + δ
es decir,
w * . w(t + 1) ≥ w * . w(t) + δ
Dado cualquier número natural n, cuando se haya pasado n veces por
sumar, se tendrá que w* por el vector de pesos actual w(n), será, al
menos, igual al valor inicial más todos los incrementos que ha
sufrido. Es decir:
w * . w(n) ≥ n δ
Luego ya tenemos una cota del numerador de
Para ver ahora una cota del denominador podemos decir que como,
w( t + 1 ) = w( t + 1 ). w( t + 1 ) = (w( t ) + x )(w( t ) + x ) = w( t ) + 2w( t )x + x
2
2
y el algoritmo se pasa por sumar si w(t).x es negativo (es decir si
2w(t).x < 0) y como |x|=1, se deduce que
2
w( t + 1 ) < w( t ) + 1
Luego, después de pasar n veces por sumar, se verifica que
2
w( n ) < n
es decir
w( n ) < n
2
w ( n ). w *
nδ
1 ≥ G ( w ( n )) =
>
=δ
w( n )
n
n
es decir
1
n≤ 2
δ
Luego el número de veces n que en el algoritmo se puede
pasar por sumar es un número acotado y por tanto finito. Es
decir, en caso de existir un vector de pesos w* solución, dicha
solución es obtenida.
ESPACIO SOLUCIÓN
El problema ahora es saber si existe solución.
Si tuviésemos por ejemplo sólo dos patrones en R2 L = { x1, x2}
w2
x12w1 + x22w2 = 0
x = (x , x )
1
1
1
1
2
Región
Solución
w1
x1
x11w1 + x21 w2 = 0
x 2 = ( x12 , x22 )
CAPACIDAD DEL PERCEPTRÓN
Dicotomía Lineal
Si en un espacio de patrones aumentado de dimensión n+1,
se toman aleatoriamente p patrones cualesquiera
{
}
L = x 1 , x 2 ,..., x p ,
x j = ( x1j , x2j ,..., xnj+1 ), ∀j = 1,.., p
Una dicotomía de L, es una partición de L en dos subconjuntos L0 y
L1; es decir (L1 ∪ L0 = L) y (L1 ∩L0 = ∅ ).
Si existe un hiperplano separador de los dos subconjuntos, se dice
que es una dicotomía lineal.
¿Cuál será la probabilidad de que dada una dicotomía de L esta sea
lineal? Si la probabilidad es muy grande, se dice que la capacidad
de la red es muy grande; en caso contrario, será muy pequeña.
CAPACIDAD DEL PERCEPTRÓN
En un espacio de dimensión n+1, el máximo número de patrones o
vectores linealmente independientes es n+1.
Si los p vectores de L, se han tomado aleatoriamente lo más
probable es que los vectores sean linealmente independientes.
Por ejemplo si L tuviese solo dos vectores x1 e x2, estos serían
linealmente dependientes si vistos los vectores x1 e x2 como puntos
del espacio, estos están alineados con el origen.
Es evidente la probabilidad de que dos puntos elegidos al azar estén
alineados con el origen es prácticamente nula.
De la misma forma la probabilidad de que tres puntos elegidos al
azar estén situados en un plano que pasa por el origen, también tiene
una probabilidad nula de que ocurra. Y así sucesivamente.
CAPACIDAD DEL PERCEPTRÓN
Se puede entonces definir el concepto de posición genérica.
p patrones, en un espacio de dimensión n+1 están en posición
genérica si los patrones (o vectores) de cualquier subconjunto de
n+1 elementos (o menos) son linealmente independientes
Un conjunto de puntos tomados mediante una función de
distribución aleatoria y continua, estarán obviamente en posición
genérica, excepto posibles coincidencias (las cuales tendrán una
probabilidad cero de que ocurran).
TEOREMA DE COVER
Dado un conjunto aleatorio de vectores L = {x1, x2, ..., xp}∈
{0,1}n+1, la probabilidad P(p,n+1), de que una dicotomía
aleatoria cualquiera de L sea lineal, cuando esta dicotomía se
realiza mediante un perceptrón con n unidades de proceso y un
valor umbral asociado, es:
ì 1− p
2
P( p,n + 1 ) = í
î1
æ p − 1ö
çç
i =0 è i
n
si p > n + 1
si p ≤ n + 1
TEOREMA DE COVER
Si consideramos por ejemplo p = 2 (n+1) es decir, el número
de puntos es doble de la dimensión del espacio en el cual están
inmersos, la probabilidad de que una dicotomía sea lineal será:
n 2n + 1
2
(
1
)
1
n
+
−
æ
ö
æ
ö
-1- 2n
1−2( n+1)
P(2(n + 1), (n + 1)) = 2
çç
çç
÷÷ = 2
i
i
i =0 è
i =0 è
n
que operando resulta ser igual a 1/2, es decir siempre que
tengamos doble número de puntos p que dimensión tiene el
espacio en el cual están inmersos, la probabilidad de encontrar
un hiperplano que los separe será igual a 1/2
EJEMPLO: LA FUNCIÓN XOR
Veamos cual es la probabilidad de que un perceptrón simule la
función XOR:
(1,1)
(0,1)
(0,0)
(1,0)
Obviamente es imposible encontrar un hiperplano (recta)
separador, pero la probabilidad de que exista según el teorema
de Cover es 1/2.
EJEMPLO: LA FUNCIÓN XOR
Por tanto no es computable por el perceptrón, lo que supuso en
su tiempo un serio revés en el desarrollo del mismo.
Para resolver el problema, Rosenblatt, aplicó una transformación a los patrones, pasando a un espacio de dimensión
superior donde sí es computable:
R2 R3
(1,1,1/2)
(0,0,-1/2)
(1,0,-1/2)
(1,0,-1/2)
(0,1,1/2)
(0,1,-1/2)
Descargar