Transcript of A Prendi Za Je Percept Ron
Presentación de PowerPointRedes Neuronales Artificiales, 2004
Historia: En 1943, W. McCulloch y W. Pitts produjeron una de las
primeras neuronas artificiales. La característica principal de ese
modelo es que comparaba una suma pesada de sus entradas con un
umbral para obtener la salida.
Regla de Aprendizaje del Perceptrón
Objetivo: Entrenar perceptrones para que aprendan a resolver
problemas de clasificación.
Problema: Determinar la matriz de pesos y el vector de sesgos para
las redes perceptrónicas con muchas entradas, donde es difícil
obtener gráficamente las fronteras de decisión.
Redes Neuronales Artificiales, 2004
Problema: A diferencia de las neuronas biológicas, los parámetros
se debían diseñar, ya que no habían métodos de entrenamiento.
Regla de Aprendizaje del Perceptrón
Cuando la suma es mayor o igual al umbral, la salida es 1 y 0 en
caso contrario. Ellos pensaron que una red con este tipo de
neuronas podría calcular cualquier función aritmética o
lógica.
Finalizando los 1950, F. Rosenblatt y sus colaboradores
desarrollaron una clase de red neural que llamaron perceptrónes.
Las neuronas de esas redes eran similares a las de McCulloch y
Pitts.
Redes Neuronales Artificiales, 2004
Contribución: Rosenblatt introdujo una regla de aprendizaje para
entrenar las redes perceptrónicas para resolver problemas de
reconocimiento de patrones. El probó que la regla de aprendizaje
siempre converge a los pesos correctos, si esos pesos existen, es
decir, si el problema tiene solución. Es un aprendizaje simple y
automático donde “la red aprende de sus errores”.
El perceptrón aprende incluso cuando se inicializan sus pesos y
sesgos con valores aleatorios.
“Desafortunadamente el perceptrón es limitado”. La limitación fue
publicada en el libro Perceptrones de Minsky y Papert. Donde se
demostraba que una red de perceptrones era incapaz de implementar
ciertas funciones elementales
Regla de Aprendizaje del Perceptrón
Redes Neuronales Artificiales, 2004
Problema Resuelto: Las limitaciones fueron superadas en la década
de 1980 con redes perceptrónicas multicapas y nuevas reglas de
aprendizaje.
Posteriormente: Las redes perceptrónicas jugaron un rol importante.
Hay muchas clases de problemas que pueden resolver rápida y
eficientemente. Entender las operaciones de los perceptrones es la
base para entender redes más complejas.
Regla de Aprendizaje del Perceptrón
Redes Neuronales Artificiales, 2004
Aprendizaje supervisado:
La red dispone de un conjunto de patrones ejemplos (conjunto de
entrenamiento) a partir de los cuales aprende: {p1,t1}, {p2,t2},
....,{pQ,tQ}
Reglas de aprendizaje: procedimientos para modificar los pesos y
los sesgos de las redes. También se habla de etapa de
entrenamiento. El propósito del aprendizaje es entrenar la red para
que realice alguna tarea.
Hay muchos tipos de reglas de aprendizajes neurales que se
clasifican en tres categorías: aprendizaje supervisado, aprendizaje
no supervisado y aprendizaje por reforzamiento.
Reglas de Aprendizaje de las RNA
Redes Neuronales Artificiales, 2004
La regla de aprendizaje se usa para ajustar los pesos y los sesgos
con el fin de mover las salidas de la red tan cerca como sea
posible de las salidas pre-establecidas.
Pq es una entrada a la red y tq es la salida correcta para esa
entrada. A medida que las entradas se aplican a la red, las salidas
obtenidas se comparan con las salidas pre-establecidas.
Reglas de Aprendizaje de las RNA
Redes Neuronales Artificiales, 2004
Aprendizaje no supervisado:
Los pesos y los sesgos se modifican en respuesta a las entradas
solamente. No hay salidas pre-establecidas para las entradas.
Aprendizaje reforzado:
Es similar al supervisado pero en lugar de poseer la salida
correcta para cada entrada, el algoritmo solamente da un valor
aproximado. Ese score es una medida de la capacidad de la red de
reconocer secuencias de entradas. Este tipo de aprendizaje es menos
común que el supervisado y aparece en aplicaciones de sistemas de
control.
Reglas de Aprendizaje de las RNA
Redes Neuronales Artificiales, 2004
Las redes aprenden a categorizar los patrones de entrada en un
número finito de clases. Son especialmente útiles en aplicaciones
donde se realiza cuantificación vectorial.
Aunque parece poco práctico entrenar una red si no sabemos qué debe
obtener como salida, muchos de estos algoritmos realizan algún tipo
de operación de agrupamiento.
La regla de aprendizaje del perceptrón es del tipo
supervisado.
Reglas de Aprendizaje de las RNA
Redes Neuronales Artificiales, 2004
Arquitectura del perceptrón
ai = hardlim(ni) = hardlim(iwTp + bi)
un vector compuesto por los elementos de la i-ésima fila de
W.
Redes de perceptrones
Redes Neuronales Artificiales, 2004
Cada neurona en la red divide el espacio de entradas en dos
regiones. Hay que averiguar las fronteras entre esas
regiones.
Si el producto interno de la i-ésima fila de la matriz de pesos con
el vector de entrada es mayor o igual a –bi, la salida es 1, de lo
contrario es 0.
Redes de perceptrones
Perceptrón único de dos entradas: R = 2 y S = 1
a = hardlim(n) = hardlim(Wp+b)
Redes Neuronales Artificiales, 2004
Esto define una recta en el espacio de entradas, donde a un lado de
la recta, la red sacará un 0 y del otro lado y sobre ésta sacará un
1.
La frontera de decisión la determinan los vectores de entrada para
los cuales la entrada de red n es cero:
w1,1p1 + w1,2p2 + b = 0
Si asignamos los siguientes valores a los pesos y al sesgo:
w1,1 = 1, w1,2 = 1, b = -1
la frontera de decisión será entonces: p1 + p2 - 1 = 0
Redes de perceptrones
Redes Neuronales Artificiales, 2004
Para dibujar la recta, buscamos los puntos donde intersecta a los
ejes p1 y p2.
Para encontrar el punto de intersección con p2, hacemos p1 = 0,
luego p2 = 1 y la intersección con p1, será donde p2 = 0, es decir,
en p1 = 1.
Redes de perceptrones
La frontera de decisión se observa en la figura.
Para probar a cuál lado de la frontera corresponde la salida de un
1, tomemos un punto de entrada p = [2 0]T, con lo que la salida de
la red será:
Redes de perceptrones
Redes de perceptrones
Por lo tanto la salida de la red será 1 para la región de arriba y
a la derecha de la frontera de decisión.
También podemos encontrar la frontera de decisión en forma
gráfica.
Notemos que la frontera es siempre ortogonal a 1w y que está
definida por:
1wTp+b = 0
Redes Neuronales Artificiales, 2004
Para todos los puntos sobre la frontera, el producto interno del
vector de entrada con el vector de pesos es el mismo. Eso significa
que los vectores de entrada (sobre la frontera) tendrán todos la
misma proyección sobre el vector de pesos, es decir, ellos están
sobre una recta ortogonal al vector de pesos.
Redes de perceptrones
Además, cualquier vector en la región sobre y a la derecha de la
frontera tendrá un producto interno mayor que –b y el resto tendrá
un producto interno menor que –b. El vector de pesos 1w apuntará
siempre a la región donde la neurona saca un 1 (averiguar si
siempre el vector de pesos apunta a esa región en todas las
redes).
Redes Neuronales Artificiales, 2004
Ejemplo: implementación de la función lógica AND con una red
perceptrónica. Los pares de entrada/salida para esa compuerta
lógica son:
Redes de perceptrones
Redes Neuronales Artificiales, 2004
El primer paso del diseño es seleccionar una frontera de decisión.
Queremos una recta que separe las salidas 1 de las salidas 0. Hay
un número infinito de soluciones a este problemas. Parece razonable
la siguiente, cuando cada punto es un par:
Redes de perceptrones
Una sería 1w = [2 2]T
El siguiente paso es escoger un vector de pesos ortogonal a la
frontera de decisión. El vector de pesos puede ser de cualquier
longitud, así que hay infinitas posibilidades.
Finalmente necesitamos un vector de sesgo b. Podemos escoger un
punto sobre la frontera de decisión que satisfaga 1wTp+b = 0.
Redes de perceptrones
Redes de perceptrones
a = hardlim(n) = hardlim(1wTp2+b) = hardlim = [2 2] 0 - 3 =
hardlim(-1) = 0
1
Si se escoge p = [1.5 0]T, entonces 1wTp+b = [2 2] 1.5 + b = 3 + b
= 0,
luego b = -3 . 0
Ahora podemos probar la red con cualquier par de entrada/salida. Si
aplicamos la entrada p2 = [0 1]T la salida será:
la cual es la salida t2 = 0.
Hay que experimentar con diferentes fronteras de decisión.
Redes Neuronales Artificiales, 2004
Un perceptrón de múltiples neuronas puede clasificar entradas en
muchas categorías, cada categoría está representada por un vector
de salida diferente. Dado que cada elemento del vector de salida
puede ser 0 ó 1, hay 2S categorías posibles.
Red perceptrónica de múltiples neuronas: (una frontera de decisión
para cada neurona). La frontera de decisión para la neurona i
estará definida por: iwTp+bi = 0.
Un perceptrón de una neurona puede clasificar los vectores de
entradas en dos categorías dado que su salida puede ser 0 ó
1.
Redes de perceptrones
Redes Neuronales Artificiales, 2004
Problema de prueba. Para desarrollar la intuición de cómo trabaja
la regla de aprendizaje tenemos un ejemplo.
Regla de aprendizaje del perceptrón: es un ejemplo del aprendizaje
supervisado, en el cual la regla de aprendizaje requiere un
conjunto de ejemplos del comportamiento esperado de la red:
{p1,t1}, {p2,t2}, ....,{pQ,tQ}.
Redes de perceptrones
Redes Neuronales Artificiales, 2004
pi ti
Supongamos la red sin sesgo, es decir, la frontera de decisión pasa
por el origen.
a = harlim(Wp)
Debemos encontrar una frontera que separe los vectores p2 y p3 del
vector p1 (hay un número infinito de posibilidades, un número
infinito de vectores de pesos).
Deseamos una regla de aprendizaje que encuentre un vector de pesos
que apunte en una de esas direcciones (no importa su longitud, sólo
su dirección).
1
2
1
-1
2
0
0
-1
0
1wT = [1.0 –0.8]
Se le presentan los vectores de entrada a la red. Comenzamos con
p1:
1w
1
2
3
Redes Neuronales Artificiales, 2004
Se requiere alterar el vector de pesos que apunte hacia el vector
p1 para que en el futuro tenga una clasificación correcta.
a = harlim(1WT p1) =hardlim [1.0 –0.8] 1 = hardlim(-0.6) = 0
2
Redes Neuronales Artificiales, 2004
Un enfoque sería hacer al vector de pesos igual a p1 pero
desafortunadamente esta regla no encontraría una solución, ya que
es imposible que el vector de pesos sea ortogonal a una frontera
que separe correctamente todos los vectores de entrada de una misma
clase (el vector de pesos oscilaría sin encontrar una
solución).
Redes Neuronales Artificiales, 2004
Aplicando esta regla a nuestro problema, el nuevo vector de pesos
será:
1w
1
2
3
1w
1
2
3
Ahora nos movemos sobre los próximos vectores de entrada y
cambiamos los pesos repetidamente, hasta que las entradas sean
clasificadas correctamente.
Esta operación se ilustra a continuación:
1wnuevo = 1Wviejo + p1 = + =
-0.8 2 1.2
Trabajando con p2 encontramos como salida de la red:
El vector de la clase 0 fue clasificado como clase 1. Como nos
gustaría mover el vector de pesos lejos de esta entrada se puede
modificar la regla a:
a = harlim(1WT p3) = hardlim [3.0 –0.8] 0 = hardlim(0.8) = 1
El vector de pesos actual produce una frontera de decisión que no
puede clasificar a p3. Aplicamos la regla:
1w
1
2
3
El diagrama muestra que la red perceptrón ha aprendido a clasificar
los tres vectores de forma apropiada. Si presentamos cualquiera de
los tres vectores de entrada a la neurona, ésta obtendrá la clase
correcta para ese vector.
1wnuevo = 1Wviejo – p3 = - =
-0.8 -1 0.2
3.0 0 3
Si t = 1 y a = 0 entonces 1wnuevo = 1Wviejo + p
Si t = 0 y a = 1 entonces 1wnuevo = 1Wviejo - p
Si t = a entonces 1wnuevo = 1Wviejo
Redes Neuronales Artificiales, 2004
Regla de aprendizaje unificada:
Es una expresión compacta para las tres reglas vistas. Se define
una nueva variable como el error del perceptrón e:
e = t-a
Si e = 0 entonces 1wnuevo = 1Wviejo
Como el signo de p es el mismo de e y como en la tercera regla, la
ausencia de p corresponde a un e = 0, se pueden unificar las tres
reglas en:
1wnuevo = 1Wviejo + ep = 1Wviejo + (t-a)p
Redes Neuronales Artificiales, 2004
iwnuevo = iWviejo + eip y para modificar el i-ésimo elemento del
vector de sesgo es: ibnuevo = ibviejo + ei
Redes Neuronales Artificiales, 2004
En general, la regla del perceptrón se escribe en forma matricial
como:
wnuevo = Wviejo + epT
bnuevo = bviejo + e
Consideremos de nuevo el problema de reconocer manzanas y
naranjas:
pi ti
(como se está usando hardlim en lugar de hardlims se está usando
salida 0 en lugar de –1 para las naranjas).
El primer paso es aplicar el primer vector p1 de entrada a la
red:
1
-1
-1
0
1
1
-1
1
a = harlim(W p2 + b) = hardlim [-0.5 0 0.5] 1 - 0.5 = hardlim(-1.5)
= 0
-1
a = harlim(W p1 + b) = hardlim [0.5 –1 –0.5] -1 + 0.5 =
hardlim(2.5) = 1
-1
1
e = t1 – a = 0 – 1 = -1
wnuevo = Wviejo + epT = [0.5 –1 –0.5] + (-1)[1 –1 -1] = [-0.5 0
0.5]
bnuevo = bviejo + e = 0.5 –1 = -0.5
1
e = t2 – a = 1 – 0 = 1
wnuevo = Wviejo + epT = [-0.5 0 0.5] + (1)[1 1 -1] = [0.5 1
-0.5]
bnuevo = bviejo + e = -0.5 + 1 = 0.5
Redes Neuronales Artificiales, 2004
a = harlim(W p1 + b) = hardlim [0.5 1 –0.5] -1 + 0.5 = hardlim(0.5)
= 1
-1
1
e = t1 – a = 0 – 1 = -1
wnuevo = Wviejo + epT = [0.5 1 –0.5] + (-1)[1 –1 -1] = [-0.5 2
0.5]
bnuevo = bviejo + e = 0.5 –1 = -0.5
PRUEBA DE CONVERGENCIA
La salida del perceptrón se obtiene como: a = harlim(1WT p +
b)
los ejemplos del comportamiento adecuado son: {p1,t1}, {p2,t2},
....,{pQ,tQ}.
Cada salida tq es un 0 ó un 1.
b
1
pq
La entrada de red n = 1wTp + b = xTzq
La regla de aprendizaje para el perceptrón de una neurona se puede
escribir como:
xnuevo = xviejo + ez
{z1, z2, ..., zQ, -z1, -z2, ... , -zQ}
Supongamos que el vector de pesos se inicializa con cero: x(0) =
0
Después de k iteraciones tenemos x(k) = z,(0) + z,(1) + ... +
z,(k-1)
Suponiendo x*Tz,(i) > entonces x*Tx(k) > k (los pesos en la
dirección de las entradas)
Redes Neuronales Artificiales, 2004
ahora queremos un límite superior para la longitud del vector de
pesos: comenzamos por buscar el cambio en la longitud en la
iteración k:
||x(k)||2 = xT(k)x(k)
= xT(k-1)x(k-1) + 2 xT(k-1) z,(k-1) + z,T(k-1) z,(k-1)
De la desigualdad Cauchy-Schwartz (x*Tx(k))2 || x* ||2
||x(k)||2
Donde ||x||2 = xTx
Combinando las dos penúltimas ecuaciones, se puede poner un límite
inferior al cuadrado de la longitud del vector de pesos en la
iteración k:
||x(k)||2 >
Repitiendo el proceso para ||x(k-1)||2 , ||x(k-2)||2 , ... se
obtiene
||x(k)||2 ||z,(0)||2 + ||z,(1)||2 + .... + ||z,(k-1)||2
si M = max(||z,(i)||2), este límite superior se puede simplificar a
||x(k)||2 kM.
Redes Neuronales Artificiales, 2004
1.- Existe una solución tal que se satisfaga x*Tz,(i) > .
NOTA: Debido a la generalidad de la prueba hay muchas variantes de
la regla de aprendizaje del perceptrón.
Redes Neuronales Artificiales, 2004
Un perceptrón de una neurona divide el espacio de entrada en dos
regiones. La frontera entre las regiones está definida por la
ecuación 1wT+b = 0.
La frontera es líneal (Hiperplano). Los perceptrones se pueden
utilizar para clasificar vectores de entrada que se puedan separar
por una frontera líneal.
Desafortunadamente muchos problemas no son linealmente separables.
Un ejemplo clásico es la función lógica XOR.
Pi ti
Aparecen los perceptrones multicapas, las cuales pueden resolver
problemas de clasificación arbitrarios (aparece el backpropagtion
para entrenar tales redes).
£