Regla de Aprendizaje del
Perceptrón
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.
Reglas de Aprendizaje de las
RNA
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.
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 de las
RNA
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.
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.
Reglas de Aprendizaje de las
RNA
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.
Aprendizaje no supervisado:
Los pesos y los sesgos se modifican en respuesta a las
entradas solamente. No hay salidas pre-establecidas para las
entradas.
Reglas de Aprendizaje de las
RNA
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.
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.
La regla de aprendizaje del perceptrón es del tipo supervisado.
Arquitectura del perceptrón
p W
Rx1
SxR
n a
+ Sx1 Sx1
1 b
S
Sx1
La salida de la red perceptrónica esta dada por:
a = hardlim(Wp+b)
Redes de perceptrones
w1,1 w1,2 ….. w1,R wi,1
w2,1 w2,2 ….. w2,R wi,2
W= ….. y sea iw = ....
wS,1 wS,2 ….. wS,R wi,R
un vector compuesto por los elementos de la i-ésima fila de W.
1wT
2wT
W = ….
swT
ai = hardlim(ni) = hardlim(iwTp + bi)
Redes de perceptrones
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.
Cada neurona en la red divide el espacio de entradas en dos
regiones. Hay que averiguar las fronteras entre esas regiones.
Perceptrón único de dos entradas: R = 2 y S = 1
a = hardlim(n) = hardlim(Wp+b)
= hardlim(1wTp+b) = hardlim(w1,1p1 + w1,2p2 + b)
Redes de perceptrones
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
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.
Redes de perceptrones
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
p2
a=1
1
1w
1 p1
a=0
n=0
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
a = hardlim(n) = hardlim(Wp+b)
= hardlim(1wTp+b) = hardlim(w1,1p1 + w1,2p2 + b) = hardlim(2-1) = 1
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 de perceptrones
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.
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 de perceptrones
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:
pi ti
0 0 0
0 1 0
1 0 0
1 1 1
Redes de perceptrones
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:
1w
AND
Redes de perceptrones
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.
Una sería 1w = [2 2]T
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
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á:
a = hardlim(n) = hardlim(1wTp2+b) = hardlim = [2 2] 0 - 3 = hardlim(-1) = 0
1
la cual es la salida t2 = 0.
Hay que experimentar con diferentes fronteras de decisión.
Redes de perceptrones
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.
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.
Redes de perceptrones
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}.
Problema de prueba. Para desarrollar la intuición de cómo
trabaja la regla de aprendizaje tenemos un ejemplo.
Sean los siguientes pares entrada/salida:
pi ti
1 2 1
-1 2 0
0 -1 0
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).
2 1 1w
CONSTRUCCIÓN DE LA REGLA DE APRENDIZAJE
El entrenamiento comienza asignando algunos valores iniciales a los
parámetros de la red. Inicializamos los dos pesos con valores aleatorios:
1wT = [1.0 –0.8]
Se le presentan los vectores de entrada a la red.
Comenzamos con p1:
a = harlim(1WT p1) =hardlim [1.0 –0.8] 1 = hardlim(-0.6) = 0
2
La red no obtuvo el valor correcto que es t1 = 1. Gráficamente
podemos observar que fue lo que pasó.
Los valores iniciales del vector de pesos dan origen a una
frontera de decisión que clasifica de manera incorrecta al vector
p1.
Se requiere alterar el vector de pesos que apunte hacia el vector
p1 para que en el futuro tenga una clasificación correcta.
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).
2 1
1w
3
Otra posibilidad sería agregar p1 a 1w. Esto haría que 1w apunte más en
la dirección de p1. Haciendo repetidas presentaciones de p1 a la red haría
que la dirección de 1w se aproxime asintóticamente a la dirección de p1.
La regla sería como sigue:
Si t = 1 y a = 0 entonces 1wnuevo = 1Wviejo + p
Aplicando esta regla a nuestro problema, el nuevo vector de pesos será:
1wnuevo = 1Wviejo + p1 = + =
-0.8 2 1.2
Esta operación se ilustra a continuación:
2 1
1w
3
Ahora nos movemos sobre los próximos
vectores de entrada y cambiamos los pesos
repetidamente, hasta que las entradas sean
clasificadas correctamente.
Trabajando con p2 encontramos como salida de la red:
a = harlim(1WT p2) = hardlim [2.0 1.2] -1 = hardlim(0.4) = 1
2
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:
Si t = 0 y a = 1 entonces 1wnuevo = 1Wviejo - p
Aplicando la regla:
2.0 -1 3
1wnuevo = 1Wviejo - p2 = - =
1.2 2 -0.8
2 1
1w
3
Ahora le presentamos el vector p3:
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:
3.0 0 3
1wnuevo = 1Wviejo – p3 = - =
-0.8 -1 0.2
2 1
1w
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.
Ahora tenemos la regla final:
Si t = a entonces 1wnuevo = 1Wviejo
Resumen de las reglas que cubren todas las combinaciones
posibles de las salidas obtenidas y las esperadas:
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
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 = 1 entonces 1wnuevo = 1Wviejo + p
Si e = -1 entonces 1wnuevo = 1Wviejo - p
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
Esta regla se puede extender para entrenar el sesgo sabiendo que éste es
simplemente un peso con entrada 1. La regla del perceptrón para el sesgo es:
bnuevo = bviejo + e
ENTRENAMIENTO DE PERCEPTRONES CON MÚLTIPLES
NEURONAS
Se generaliza la regla que conocemos para una neurona. Se modifica la i-ésima
fila de la matriz de pesos:
iwnuevo = iWviejo + eip y para modificar el i-ésimo elemento del vector de
sesgo es: ibnuevo = ibviejo + ei
2 1
1w
3
Ahora le presentamos el vector p3:
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:
3.0 0 3
1wnuevo = 1Wviejo – p3 = - =
-0.8 -1 0.2
2 1
1w
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.
Ahora tenemos la regla final:
Si t = a entonces 1wnuevo = 1Wviejo
Resumen de las reglas que cubren todas las combinaciones
posibles de las salidas obtenidas y las esperadas:
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
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
1 -1 -1 0
1 1 -1 1
(como se está usando hardlim en lugar de hardlims se está usando salida 0 en
lugar de –1 para las naranjas).
Típicamente los pesos y los sesgos se inicializan con números aleatorios
pequeños.
Supongamos w = [0.5 –1 –0.5], b = 0.5
El primer paso es aplicar el primer vector p1 de entrada a la red:
1
a = harlim(W p1 + b) = hardlim [0.5 –1 –0.5] -1 + 0.5 = hardlim(2.5) = 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
esto completa la primera iteración.
La segunda iteración de la regla del perceptrón:
a = harlim(W p2 + b) = hardlim [-0.5 0 0.5] 1 - 0.5 = hardlim(-1.5) = 0
-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
La tercera iteración comienza de nuevo con el primer vector de entrada:
a = harlim(W p1 + b) = hardlim [0.5 1 –0.5] -1 + 0.5 = hardlim(0.5) = 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
Si se continua con las iteraciones encontraremos que los dos vectores de
entrada serán clasificados correctamente. El Algoritmo converge a una
solución. La frontera de decisión final no es la misma que la encontrada cuando
se describió el ejemplo la primera vez, aunque las dos clasifican correctamente
las entradas.
Hacerlo.
PRUEBA DE CONVERGENCIA
La regla de aprendizaje del perceptrón es simple pero muy poderosa.
Siempre converge a los pesos que logran la clasificación, cuando esos pesos
existen.
Prueba de convergencia para un perceptrón de una neurona:
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.
Notación:
1w
x= el vector de pesos aumentado.
b
zq = el vector de entrada aumentado
1
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
El error puede ser 1, -1 ó 0 por lo tanto los pesos pueden cambiar o no en cada
iteración. Si se cuentan solo las iteraciones para los cuales el vector de pesos
cambia, la regla de aprendizaje será:
x(k) = x(k-1) + z,(k-1) (el peso actual depende del peso anterior y de la entrada
anterior).
z,(k-1) es el miembro apropiado del conjunto
{z1, z2, ..., zQ, -z1, -z2, ... , -zQ}
Supondremos que existe un vector de pesos que puede clasificar de manera
correcta todos los vectores de entrada Q. Esa solución la simbolizaremos como x*.
Para este vector de pesos asumiremos que:
Bibliografía
Inteligencia artificial un enfoque moderno 2da edición Russell.
Norvig. Stuart Russell. Peter Norvig. 2ª Edición. 2ª Edición
Fundamentos en Inteligencia Artificial y Redes Neuronales
9788483227565 INTELIGENCIA ARTIFICIAL: RUSSELL –
2004
Inteligencia artificial: métodos, técnicas y aplicaciones
por Palma Méndez, José Tomás Marín Morales, Roque 2011