Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema4MC 05 PDF
Tema4MC 05 PDF
______________________________________________________________________
4.1 Introducción
Una de las características más significativas de las redes neuronales es su capacidad
para aprender a partir de alguna fuente de información interactuando con su entorno. En
1958 el psicólogo Frank Ronsenblant desarrolló un modelo simple de neurona basado
en el modelo de McCulloch y Pitts y en una regla de aprendizaje basada en la corrección
del error. A este modelo le llamó Perceptrón. Una de las características que más interés
despertó de este modelo fue su capacidad de aprender a reconocer patrones. El
Perceptrón está constituido por un conjunto de sensores de entrada que reciben los
patrones de entrada a reconocer o clasificar y una neurona de salida que se ocupa de
clasificar a los patrones de entrada en dos clases, según que la salida de la misma sea 1
(activada) o 0 (desactivada). Sin embargo, dicho modelo tenía muchas limitaciones,
como por ejemplo, no es capaz de aprender la función lógica XOR. Tuvieron que pasar
unos años hasta que se propusiera la regla de aprendizaje de retropropagación del error
para demostrarse que el Perceptrón multicapa es un aproximador universal.
donde xi∈Rn y f (xi) = zi∈{-1,1}, i=1,2,…,p. Dicha función realiza una partición en el
espacio Rn de patrones de entrada; por una parte estarían los patrones con salida +1 y
por otra parte los patrones con salida −1. Por lo tanto, diremos que la función f clasifica
a los patrones de entrada en dos clases. Ejemplos de funciones f de este tipo son la
función lógica OR o la función par.
Ahora vamos a construir un dispositivo sencillo que aprenda dicha función a partir de
un conjunto conocido de patrones (relaciones) de entrenamiento. Para ello vamos a
utilizar una unidad de proceso bipolar que como vimos es una función matemática con
dominio el conjunto n-dimensional {-1,1}n y rango el conjunto {-1,1}, definida por la
siguiente expresión:
⎧⎪ 1 si w1 x 1 + w2 x2 + ... + wn xn ≥ θ
f ( x1 , x2 ,..., xn ) = ⎨ (1)
⎪⎩− 1 si w1 x 1 + w2 x2 + ... + wn xn < θ
donde los parámetros w1,w2,…,wn, se llaman pesos sinápticos y son los pesos con los
que se ponderan los valores de entrada x1,x2,…,xn, o argumentos de la función; la suma
ponderada u = w1 x1 + w2 x 2 + ... + wn x n se llama potencial sináptico y el parámetro θ
se llama umbral o sesgo. También se puede expresar la función f mediante la función
signo, es decir,
f ( x1 , x 2 ,..., x n ) = sgn(u − θ )
siendo la función signo,
⎧ 1 x≥0
sgn(x) = ⎨
⎩− 1 x<0
x1
x2 y
x3
x
-1
0 x
72
Para la determinación de los pesos sinápticos y del umbral vamos a seguir un proceso
adaptativo que consiste en comenzar con unos valores iniciales aleatorios e ir
modificándolos iterativamente cuando la salida de la unidad no coincide con la salida
deseada. La regla que vamos a seguir para modificar los pesos sinápticos se conoce con
el nombre de regla de aprendizaje del Perceptrón simple y viene dada por la
expresión:
w j (k +1) = w j (k ) + ∆w j (k ) , k = 1,2,…
siendo
∆w j (k ) = η (k )[z (k ) − y (k )]x j (k ) (3)
esto nos indica que la variación del peso wj es proporcional al producto del error
z (k ) − y (k ) por la componente j-ésima del patrón de entrada que hemos introducido en
la iteración k, es decir, x j (k ) . La constante de proporcionalidad η(k) es un parámetro
positivo que se llama tasa de aprendizaje puesto que cuanto mayor es más se modifica
el peso sináptico y viceversa. Es decir, es el parámetro que controla el proceso de
aprendizaje. Cuando es muy pequeño la red aprende poco a poco. Cuando se toma
constante en todas las iteraciones, η (k ) = η > 0 tendremos la regla de adaptación con
incremento fijo.
Cuando la función de transferencia usada es la función signo (valores bipolares) la
regla de aprendizaje se puede escribir de la forma:
⎧w j (k ) + 2ηx j (k ) si y (k ) = −1 y z (k ) = 1,
⎪
w j (k + 1) = ⎨w j (k ) si y (k ) = z (k ) (4)
⎪
⎩w j (k ) − 2ηx j (k ) si y (k ) = 1 y z (k ) = −1
Por lo tanto, esta regla de aprendizaje es un método de detección del error y corrección.
Solo aprende, es decir, modifica los pesos, cuando se equivoca. Cuando tenemos un
patrón que pertenece a la primera clase (z(k)=1) y no es asignado a la misma, entonces
corrige el valor del peso sináptico añadiéndole una cantidad proporcional al valor de
entrada, es decir lo refuerza, mientras que si el patrón de entrada no pertenece a esta
clase y el Perceptrón lo asigna a ella, lo que hace es debilitar el peso restándole una
cantidad proporcional al patrón de entrada . No modificaremos los pesos cuando el valor
deseado coincida con la salida de la red.
¿Cómo se modifica el sesgo? De la misma manera, teniendo en cuenta que el sesgo
se puede considerar como el peso sináptico correspondiente a un nuevo sensor de
entrada que tiene siempre una entrada igual a xn+1=−1, y como peso sináptico el valor
del umbral, pues
w1 x1 + w2 x2 + ... + wn xn ≥ θ ⇔ w1 x1 + w2 x2 + ... + wn xn + wn +1 xn +1 ≥ 0
cuando wn+1=θ y xn+1= −1. Así, la red equivalente tendría n+1 sensores, su umbral
sería siempre cero, los patrones de entrada ( x1 , x 2 ,..., x n ) serán ahora ( x1 , x 2 ,..., x n ,−1 ),
los pesos asociados ( w1 , w2 ,..., wn ) serán ( w1 , w2 ,..., wn , wn +1 ) con wn +1 = θ y la regla de
aprendizaje:
73
∆θ (k ) = −η (k )[z (k ) − y (k )] , k=1,2,… (5)
Paso 0: Inicialización
Calcular
⎛ n +1 ⎞
y ( k ) = sgn ⎜⎜ ∑ w j x j (k ) ⎟⎟
⎝ j =1 ⎠
Paso 3: Parada
74
(a) (b)
w1x1+w2x2≥θ
w1x1+w2x2<θ
w1x1+w2x2=θ
75
En efecto, como los patrones son linealmente separables existirán unos valores
w1* , w2* ,..., wn*+1 tales que
n
∑w x
j =1
*
j j > wn∗+1 para los patrones de la clase 1 y
n
∑w x
j =1
*
j j < wn∗+1 para los patrones de la clase 2.
Supongamos que en la iteración k la red tiene que modificar los pesos sinápticos según
la regla de aprendizaje, puesto que la salida de la red y(k) no coincide con la salida
deseada z(k). Tendremos que:
∑ (w (k + 1) − w ) = ∑ (w (k ) + η [z (k ) − y(k )]x (k ) − w )
n +1 n +1
* 2 * 2
j j j j j
j =1 j =1
Desarrollando,
( )
n +1 n +1
= ∑ w j (k ) − w*j + η 2 [z (k ) − y (k )] ∑ x (k )
2
+
2 2
j
j =1 j =1
( )
n +1
+ 2η [z (k ) − y (k )]∑ w j (k ) − w*j x j (k ) (6)
j =1
( )
n +1 n +1
= ∑ w j (k ) − w*j + η 2 [z (k ) − y (k )] ∑ x (k )
2
+
2 2
j
j =1 j =1
n +1 n +1
+ 2η [z (k ) − y (k )](∑ w j (k ) x j (k )) −2η [z (k ) − y (k )]∑ w*j x j (k )
j =1 j =1
n +1 n +1
Obsérvese que [z (k ) − y (k )]∑ w j (k ) x j (k ) < 0, puesto que si ∑w j (k ) x j (k ) > 0 entonces
j =1 j =1
n +1
y(k)=1 y como la salida es incorrecta tiene que ser z(k)=−1; y si ∑ w (k ) x (k ) < 0
j =1
j j
Asimismo, el término
n +1
[z (k ) − y(k )]∑ w*j x j (k ) > 0
j =1
n +1
es positivo puesto que si ∑ w x (k ) > 0 entonces la salida deseada es z(k)=1 y la salida
j =1
*
j j
n +1
incorrecta de la red tiene que ser y(k)=−1, y si ∑ w x (k ) < 0
j =1
*
j j entonces z(k)=−1 y la
salida incorrecta de la red tiene que ser y(k)=1. Así, también se puede escribir de la
forma:
76
n +1
2 ∑ w*j x j (k )
j =1
∑ (w (k + 1) − w ) ≤ ∑ (w (k ) − w )
n +1 n +1 n +1 n +1
* 2 * 2
+ 4η 2 ∑ x j (k ) − 4η ∑ w*j x j (k )
2
j j j j (7)
j =1 j =1 j =1 j =1
( )
n +1
D(k + 1) = ∑ w j (k + 1) − w*j
2
Sea
j =1
( )
n +1
D(k ) = ∑ w j (k ) − w*j
2
j =1
⎪⎧ n +1 ⎪⎫
T = min ⎨ ∑ w*j x j ( k ) ⎬
1≤ k ≤ p
⎪⎩ j =1 ⎭⎪
n +1
∑ x ( k ) =n + 1,
2
Como j de la expresión (7) se deduce la siguiente desigualdad:
j =1
D ( k + 1) ≤ D ( k ) + 4η 2 (n + 1) − 4ηT
D ( k + 1) ≤ D ( k ) + 4η [η (n + 1) − T ]
n +1 n +1 n +1
E (η ) = D(k + 1) = D(k ) + 4η 2 ∑ x j (k ) − 4η ∑ w j (k )x j (k ) − 4η ∑ w*j x j (k )
2
j =1 j =1 j =1
77
∂E (η ) n +1 n +1 n +1
= 8η ∑ x j (k ) − 4 ∑ w j (k )x j (k ) − 4 ∑ w*j x j (k ) = 0
2
∂η j =1 j =1 j =1
n +1 n +1
∑ wj ( k ) x j ( k ) +
j =1
∑ w x (k )
j =1
*
j j
ηopt =
2(n + 1)
n +1
∑ w (k ) x (k )
j =1
j j
ηopt =
n +1
n +1 n +1
− 2 ∑ w j (k ) x j (k ) = [z (k ) − y (k )]∑ w j (k ) x j (k )
j =1 j =1
y así
n +1
− [ z (k ) − y (k ) ] ∑ w j ( k ) x j ( k )
j =1
ηopt =
2(n + 1)
∑ w (k ) x (k )
j j
w j (k + 1) = w j ( k ) − 2 j =1
xj (k ) (7)
n +1
Dicha regla se conoce con el nombre de regla del Perceptrón normalizada, pues si
partimos de un vector de pesos normalizado, es decir, w (k ) = 1, entonces todos los
78
pesos que se van obteniendo según la regla de aprendizaje se mantienen normalizados.
En efecto,
n +1
w (k + 1) = ∑ w j (k + 1) 2
2
j =1
2
⎛ n +1 ⎞ n +1
n +1 n +1
⎜ ∑ w j ( k ) x j ( k ) ⎟ ∑ w j (k ) x j (k ) n +1
2⎜ ⎟
= ∑ w j (k ) + ∑ x j ( k ) 2 n +1 ∑
j =1 j =1
2
− 4 n +1 w j (k ) x j (k )
⎜ ⎟
j =1 j =1
⎜ ∑ x j ( k ) 2
⎟ ∑ x j ( k ) 2 i =1
⎝ j =1 ⎠ j =1
n +1
= ∑ w j (k ) 2 = 1
j =1
n +1
wT x = ∑ w j x j < 0 , ∀x ∈ C2
j =1
Con ello se consigue que la salida de la red, y, coincida con la salida deseada, z, es
decir,
y = sgn(w T x) = z , ∀x ∈ C1 ∪ C 2
Para entender bien la regla del Perceptrón debemos de conocer el criterio elegido para
su deducción. Si el vector de pesos sinápticos está normalizado entonces la distancia de
un vector x0 al hiperplano de separación (llamado frontera de decisión), w T x = 0 , viene
dada por la expresión w T x 0 , puesto que el producto escalar de los vectores w y x0−x
nos da la longitud de la proyección del vector x0−x sobre el vector w (normalizado),
con signo positivo o negativo dependiendo si el punto x0 está por encima o por debajo
del hiperplano (ver la figura 5). Es decir, dicha distancia viene dada por la expresión
w T ( x 0 − x) = w T x 0 puesto que w T x = 0 . Si no estuviera normalizado el vector w
T T
w w 1
entonces dicha distancia sería ( x 0 − x) = x0 = w T x 0 , es decir,
w w w
proporcionar a w T x 0 .
79
x0
wTx=0
w
x
Para ello podemos utilizar el método del descenso del gradiente donde la dirección de
búsqueda viene dada por la dirección del gradiente pero en sentido opuesto:
∂D(w(k ))
∆w(k ) = −η
∂w(k )
⎧−η z (k )x(k ) si k ∈ I
=⎨
⎩0 si k ∉ I
Se puede observar que dicha regla es la regla del Perceptrón definida en (3) puesto que
y(k)= −z(k) para k∈I.
En caso de modificar los pesos sinápticos solamente después de haber introducido todos
los patrones del conjunto de entrenamiento y evaluar sus salidas se tiene que
∂D(w)
∆w = −η
∂w
⎪⎧−η ∑ z (k )x(k ) si k ∈ I
= ⎨ k∈I
⎪⎩0 si k ∉ I
ya que en este caso w no depende de k. La regla obtenida es la regla de aprendizaje por
lotes del Perceptrón simple.
80
⎧w (k ) + a(k ) si (a(k ))T w (k ) ≤ 0
w (k + 1) = ⎨ (8)
⎩w ( k ) en otro caso
⎧ x(k ) si z (k ) = 1
donde a(k) = ⎨
⎩− x(k ) si z (k ) = −1
a(k) w(k+1)
a(k)
w(k)
+
−
Por lo tanto, la regla de aprendizaje del Perceptrón intenta encontrar una solución w*
para el siguiente sistema de desigualdades:
81
Un procedimiento para minimizar dicha función criterio viene dado por el método del
descenso del gradiente, es decir, como la componente j del gradiente de J es ∂J / ∂w j ,
entonces de la expresión (10) se tiene que el gradiente de J(w) es:
∇J = ∑ (−a(k ))
k∈I ( w )
w (k + 1) = w (k ) − η (k )∇J
= w ( k ) + η ( k ) ∑ a( k )
k∈I ( w )
Aquí actualizamos el vector de pesos sinápticos después de evaluar las salidas de la red
para todos los patrones de entrenamiento. Por ello, se llama algoritmo del Perceptrón
con entrenamiento por lotes, que resumimos a continuación:
Paso 0: Inicialización
w (k + 1) = w (k ) + η (k ) ∑ a( k )
k∈I ( w )
Paso 2: Parada
82
4.5 Modificaciones: El algoritmo del Perceptrón con bolsillo
(1 1 –1), (1 –1 –1), (–1 1 –1), (1 1 1), (1 –1 1), (–1 1 1), (–1 –1 –1)
83
Figura 7. Experimento para el aprendizaje.
w1 = 0.8 θ = -2.1
w2 = 0.9
w3 = -0.9
Ahora modificamos el experimento de manera que para conseguir la comida tiene que
picar en el pulsador de la derecha, salvo cuando los dos están apagados, en cuyo caso
tiene que picar en el pulsador de la izquierda. ¿Podrá una paloma aprender esta regla? El
Perceptrón simple no. El problema se reduce a un problema de clasificación, donde las
entradas
a un fracaso (y=–1).
(–1 –1 1) (–1 1 1)
(1 –1 1)
(1 1 1)
(1 –1 –1) (1 1 –1)
84
En la figura 9 se puede observar como los patrones de entrenamiento son los vértices de
un cubo; los vértices que representamos por los círculos rellenos de negro se
corresponden con acierto mientras que los restantes con fracaso. Como estos vértices no
se pueden separar linealmente de los restantes, el Perceptrón simple no puede aprender
dicha regla o función lógica. Sin embargo, como veremos en el siguiente capítulo, si
utilizamos dos capas de neuronas artificiales podemos implementar cualquier función
Booleana, y, por lo tanto, dicha función.
4.7 La ADALINA
Otro modelo clásico de redes neuronales es la ADALINA (también llamada
ADALINE), pues corresponde al acrónimo de ADAptive Linear NEuron) o neurona con
adaptación lineal que fue introducida por Widrow en 1959. Esta neurona es similar al
Perceptrón simple pero utiliza como función de transferencia la función identidad en
lugar de la función signo. La salida de la ADALINA es simplemente una función lineal
de las entradas (ponderadas con los pesos sinápticos):
n
y = ∑ wj x j −θ
j =1
Si consideramos una entrada adicional con valor xn+1= −1 cuyo peso sináptico wn+1=θ,
entonces podemos escribir simplemente
n +1
y = ∑ wj x j
j =1
Así, de forma general podemos tratar el valor umbral θ como un peso sináptico
adicional con entrada igual a −1.
Con la ADALINA se pretende implementar la correspondencia entre las entradas y
las salidas de un sistema utilizando un conjunto finito de relaciones entre entradas y
{ }
salidas. Supongamos que disponemos de p patrones de entrada x 1 , x 2 ,..., x p y sus
{ }
correspondientes salidas deseadas z 1 , z 2 ,..., z p . Se trata de determinar los pesos
sinápticos que consiguen que las salidas de la red sean lo más parecidas a las salidas
deseadas para el conjunto dado de patrones de entrenamiento. Es decir, se trata de
determinar los pesos sinápticos de manera que se minimice la función de error
cuadrático siguiente:
2
1 p ⎛ n +1
⎞
E = ∑ ( z k − y ( k ) ) = ∑ ⎜ z k − ∑ w j (k ) x kj ⎟
1 p 2
2 k =1 2 k =1 ⎝ j =1 ⎠
Para ello vamos a seguir el método de descenso del gradiente, es decir, en la misma
dirección y en sentido opuesto al gradiente. Si en la iteración k hemos introducido el
patrón de entrenamiento xk, cuya salida deseada es zk, y los pesos sinápticos son wj(k),
j=1,2,…,n, entonces la modificación de los mismos motivada por dicho patrón es:
wr (k + 1) = wr (k ) + ∆wr (k ) ,
∂E
donde ∆wr (k ) = −η
∂wr (k )
85
[ ]
= η z k − y (k ) x rk , j = r, 2,…, n+1 (11)
El parámetro η controla la longitud del paso que vamos a dar en la dirección opuesta del
gradiente. Conforme mayor sea η mayor será la cantidad por la que se modificarán los
pesos sinápticos. Dicho parámetro debe ser un valor pequeño para evitar dar pasos
demasiado largos, es decir, que nos lleven a soluciones peores que la que teníamos,
puesto que el método del gradiente solamente garantiza el decrecimiento de la función
de error si nos desplazamos en la direcciones opuesta del gradiente pero en un entorno
suficientemente pequeño. A η lo llamaremos parámetro de aprendizaje o tasa de
aprendizaje.
En el proceso de entrenamiento hemos introducido un patrón en cada iteración, por
ello diremos que hemos realizado un aprendizaje en línea. También podemos
introducir los p patrones directamente y comparar las salidas de la red con las salidas
deseadas, pasando entonces a actualizar los pesos sinápticos, en cuyo caso diremos que
el aprendizaje es por lotes. La modificación de los pesos sinápticos se hace tomando
como función de error el error medio (se divide por p el error total), es decir,
2
1 p ⎛ k n +1 k ⎞
1 p k
∑ ( ( ) ) ∑ ⎜ z − ∑ wj x j ⎟
2
E= z − y k =
2 p k =1 2 p k =1 ⎝ j =1 ⎠
=η
1 p k
∑
p k =1
[ ]
z − y (k ) x kj (12)
Obsérvese que aquí el peso sináptico no depende del patrón introducido, es el mismo
para los p patrones puesto que se actualiza conjuntamente según el error medio para los
p patrones.
a) La función logística
86
g (x ) ≡
1
1 + exp(− 2 βx )
Se utiliza dicha función como función de transferencia puesto que su derivada, que
después vamos a utilizar en la regla de aprendizaje, es muy simple,
g ' ( x ) = 2 βg ( x )[1 − g ( x )] , es decir, es una función de la propia función.
e β x − e−β x
g ( x ) = tanh (βx ) =
e β x + e −β x
También se utiliza dicha función como función de transferencia puesto que su derivada
[ ]
es muy simple, g ' ( x ) = β 1 − g ( x ) , es decir, es también una función de la propia
2
87
w1
x1
w2
x2 y
w3
x3
Figura 12. Neurona analógica.
2 k =1 2 k =1 ⎝ j =1 ⎠
El método de descenso del gradiente (desplazar los pesos en sentido opuesto a la
dirección del gradiente) nos conduce a la siguiente regla de aprendizaje, conocida con el
nombre de regla de Widrow-Hoff, regla de mínimos cuadrados medios o regla LMS
(Least Mean Squares):
∂E
∆w j (k ) = −η
∂w j (k )
[ ]
= η z k − y (k ) g ' (h )x kj , j=1,2,…,n+1
=η
1 p k
∑
p k =1
[ ]
z − y (k ) g ' (h) x kj (13)
88