Documente Academic
Documente Profesional
Documente Cultură
Perceptron multicapa
3.1.
Introducci
on
Secci
on 3.2
3. Perceptron multicapa
3.2.
Arquitectura
3. Perceptron multicapa
3.2.1.
Secci
on 3.2
Propagaci
on de los patrones de entrada
El Perceptr
on multicapa define una relacion entre las variables de entrada y las variables de salida de la red. Esta relaci
on se obtiene propagando hacia adelante los valores
de las variables de entrada. Para ello, cada neurona de la red procesa la informacion recibida por sus entradas y produce una respuesta o activacion que se propaga, a traves de
las conexiones correspondientes, hacia las neuronas de la siguiente capa. A continuacion,
se muestran las expresiones para calcular las activaciones de las neuronas de la red.
Sea un Perceptron multicapa con C capas -C 2 capas ocultas- y nc neuronas en la
c ) la matriz de pesos donde w c representa el
capa c, para c = 1,2, ..., C. Sea W c = (wij
ij
peso de la conexi
on de la neurona i de la capa c para c = 2, ..., C. Denotaremos aci a
la activacion de la neurona i de la capa c. Estas activaciones se calculan del siguiente
modo:
Activaci
on de las neuronas de la capa de entrada (a1i ). Las neuronas de la capa
de entrada se encargan de transmitir hacia la red las se
nales recibidas desde el
exterior. Por tanto:
a1i = xi para i = 1, 2, ..., n1
(3.1)
donde X = (x1 , x2 , ...., xn1 ) representa el vector o patron de entrada a la red.
Activaci
on de las neuronas de la capa oculta c (aci ). Las neurones ocultas de la red
procesan la informaci
on recibida aplicando la funcion de activacion f a la suma
de los productos de las activaciones que recibe por sus correspondientes pesos, es
decir:
nc1
X
c1 c1
aci = f
wji
aj + uci para i = 1, 2, ..., nc y c = 2, 3, ..., C 1
(3.2)
j=1
donde ac1
son las activaciones de las neuronas de la capa c 1.
j
Activaci
on de las neuronas de la capa de salida (aC
i ). Al igual que en el caso anterior,
la activaci
on de estas neuronas viene dada por la funcion de activacion f aplicada
a la suma de los productos de las entradas que recibe por sus correspondientes
pesos:
nC1
X
C1 C1
para i = 1, 2, ..., nc
yi = aC
wji
aj
+ uC
(3.3)
i =f
i
j=1
Secci
on 3.2
3. Perceptron multicapa
1
1 + ex
(3.4)
fthip (x) =
1 ex
1 + ex
(3.5)
Funci
on tangente hiperb
olica:
Ambas son funciones crecientes con dos niveles de saturacion: el maximo, que proporciona salida 1, y el mnimo, salida 0 para la funcion sigmoidal y salida -1, para la
tangente hiperb
olica, como se observa en la figura 3.1.
En algunas ocasiones, la funcion de activacion en el Perceptron multicapa es com
un
a todas las neuronas de la red y es elegida por el dise
nador, eleccion que se realiza
u
nicamente bas
andose en los valores de activacion que se desee que alcancen las neuronas.
Ambas funciones est
an relacionadas mediante la expresion fthip (x) = 2fsigm (x) 1, por
lo que la utilizaci
on de una u otra se elige u
nicamente en funcion del recorrido que
interese.
En otras ocasiones, y dependiendo de la naturaleza del problema, las neuronas de
salida se distinguen del resto de neuronas de la red, utilizando otro tipo de funcion de
activaci
on. En este caso, las m
as usadas son la funcion identidad y la funcion escalon.
De las ecuaciones 3.1, 3.2 y 3.3, se observa que el perceptron multicapa define, a traves
de sus conexiones y neuronas, una funcion continua no lineal del espacio Rn1 -espacio
de los patrones de entrada- al espacio RnC -espacio de los patrones de salida-. Se puede
escribir, por tanto, que:
18
3. Perceptron multicapa
Secci
on 3.2
Y = F (X, W )
(3.6)
3.2.2.
Consideraciones de dise
no
Cuando se aborda un problema utilizando el Perceptron multicapa, uno de los primeros pasos a realizar es el dise
no de la arquitectura de la red. Este dise
no implica la
determinacion de la funci
on de activaci
on a emplear, el n
umero de neuronas y el n
umero
de capas de la red.
Como se ha comentado anteriormente, la eleccion de la funcion de activacion se suele
hacer basandose en el recorrido deseado, y el hecho de elegir una u otra, generalmente,
no influye en la capacidad de la red para resolver el problema [7].
En lo que respecta al n
umero de neuronas y capas, algunos de estros parametros
vienen dados por el problema y otros deben ser elegidos por el dise
nador. As, por
ejemplo, tanto el n
umero de neuronas en la capa de entrada, como el n
umero de neuronas
en la capa de salida, vienen dados por las variables que definen el problema. En algunas
aplicaciones pr
acticas, no hay lugar a duda sobre el n
umero de entradas y salidas. Sin
embargo, existen problemas los que el n
umero de variables de entrada relevantes para
el problema no se conoce con exactitud. En estos casos, se disponen de un gran n
umero
de variables, algunas de las cuales podran no aportar informacion relevante a la red,
y su utilizaci
on podra complicar el aprendizaje, pues implicara arquitecturas de gran
tama
no y con alta conectividad. En estas situaciones, es conveniente realizar un analisis
previo de las variables de entrada m
as relevantes al problema y descartar aquellas que
no aportan informaci
on a la red. Este analisis puede llegar a ser una tarea complicada
y requerir tecnicas avanzadas, como tecnicas basadas en analisis de correlacion, analisis
de componentes principales, an
alisis de importancia relativa, analisis de sensibilidad o
tecnicas basadas en algoritmos geneticos, entre otras.
El n
umero de capas ocultas y el n
umero de neuronas en estas capas deben ser elegidos por el dise
nador. No existe un metodo o regla que determine el n
umero optimo
de neuronas ocultas para resolver un problema dado. En la mayor parte de las aplicaciones practicas, estos par
ametros se determinan por prueba y error. Partiendo de una
arquitectura ya entrenada, se realizan cambios aumentando o disminuyendo el n
umero
de neuronas ocultas y el n
umero de capas hasta conseguir una arquitectura adecuada
para el problema a resolver, que pudiera no ser la optima, pero que proporciona una
solucion.
Si bien el n
umero de neuronas ocultas puede influir en el comportamiento de la red,
como se vera mas adelante -capacidad de generalizacion de la red-, es necesario indicar
que en el caso del Perceptron multicapa, generalmente, el n
umero de neuronas ocultas
no es parametro significativo, pues dado un problema, pueden existir una gran cantidad de arquitecturas capaces de resolver de manera adecuada dicho problema. Ademas,
19
Secci
on 3.3
3. Perceptron multicapa
a
nadir o eliminar una neurona oculta no influye, de manera significativa, en la capacidad
predictiva de la red.
En la actualidad existen lneas de investigacion abiertas centradas en la determinaci
on
autom
atica del n
umero de neuronas ocultas, as como de capas ocultas, para cada problema en particular. En el caso del Perceptron multicapa, la mayor parte de estos trabajos
se basan en la utilizaci
on de tecnicas evolutivas, las cuales realizan una b
usqueda en el
espacion de de las arquitecturas de redes guiada por la optimizacion del rendimiento de
la red [8], [9], [10].
3.3.
Algoritmo de Retropropagaci
on
(3.8)
n=1
donde N es el n
umero de patrones o muestras y e(n) es el error cometido por la red
para el patr
on n, dado por:
nC
1 X
e(n) =
(si (n) yi (n))2
nC
(3.9)
i=1
siendo Y (n) = (y1 (n), ..., ynC (n)) y S(n) = (s1 (n), ..., snC (n)) los vectores de salidas de
la red y salidas deseadas para el patron n, respectivamente.
De este modo, si W es un mnimo de la funcion error E, en dicho punto el error es
proximo a cero, lo cual implica que la salida de la red es proxima a la salida deseada,
alcanzando as la meta de la regla de aprendizaje.
20
3. Perceptron multicapa
Secci
on 3.3
e(n)
w
(3.10)
3.3.1.
Obtenci
on de la regla delta generalizada
A continuaci
on se va a desarrollar la regla delta generalizada para el aprendizaje
del Perceptron multicapa, que, como ya se ha comentado, no es mas que una forma
eficiente de aplicar el metodo del gradiente a los parametros -pesos y umbrales- de dicha
arquitectura. Para el desarrollo de esta regla es necesario distinguir dos casos: uno para
los pesos de la capa oculta C 1 a la capa de salida y para los umbrales de las neuronas
de salida, y otro para el resto de los pesos y umbrales de la red, pues las reglas de
modificacion de estos par
ametros son diferentes.
Adaptaci
on de pesos de la capa oculta C 1 a la capa de salida y umbrales
de la capa de salida
C1
Sea wji
el peso de la conexi
on de la neurona j de la capa C 1 a la neurona i de la
21
Secci
on 3.3
3. Perceptron multicapa
capa de salida. Utilizando el metodo de descenso del gradiente (Ecuacion 3.10), dicho
parametro se modifica siguiendo la direccion negativa del gradiente del error:
C1
C1
wji
(n) = wji
(n 1)
e(n)
C1
wji
(3.11)
(3.12)
A este punto, hay que calcular la derivada de la neurona de salida yi (n) respecto al
C1
peso wji
. La salida de la red es la funcion de activacion f aplicada a la suma de todas
las entradas por sus pesos, como se muestra en la Ecuacion (3.3). Aplicando la regla
de la cadena para derivar la composicion de dos funciones y teniendo en cuenta que, de
C1
todos los terminos del sumatorio (Ecuacion 3.3), el u
nico que interviene en el peso wji
C1 C1
es wji
aj , y por tanto, el u
nico cuya derivada es distinta de cero, se obtiene:
nC1
X
yi (n)
C1 C1
aC1 (n)
= f0
wji
aj
+ uC
(3.13)
i
j
C1
wji
j=1
Se define el termino asociado a la neurona i de la capa de salida -capa C- y al patr
on
n, iC (n), del siguiente modo:
nC1
X
C1 C1
(3.15)
C1
Finalmente, reemplazando la derivada del error e(n) respecto al peso wji
obtenida
en (3.15) en la Ecuaci
on (3.11), se obtiene la ley para modificar dicho peso, la cual toma
la siguiente expresi
on:
22
3. Perceptron multicapa
Secci
on 3.3
C1
C1
wji
(n) = wji
(n 1) + iC (n)aC1
j
(3.16)
(3.17)
Adaptaci
on de pesos de la capa c a la capa c + 1 y umbrales de las neuronas
de la capa c + 1 para c = 1, 2, ..., C 1
Con el objetivo de que el desarrollo de la regla de aprendizaje para el resto de los
pesos y umbrales de la red sea lo m
as claro posible, se elige un peso de la capa C 2 a
C1
la capa C 1. Sea wkj
el peso de la conexion de la neurona k de la capa C 2 a la
neurona j de la capa C 1. Siguiendo el metodo de descenso del gradiente, la ley para
actualizar dicho peso viene dada por:
C2
C2
wkj
(n) = wkj
(n 1) +
e(n)
C2
wkj
(3.18)
C2
En este caso, y a diferencia del anterior -pesos hacia la capa de salida-, el peso wkj
influye en todas las salidas de la red, por lo que la derivada del error e(n) (Ecuacion
3.9) respecto de dicho peso viene dada por la suma de las derivadas para cada una de
las salidas de la red, es decir:
nC
X
e(n)
yi (n)
=
(si (n) yi (n)) C2
C2
wkj
wkj
i=1
(3.19)
C2
Para calcular la derivada de la salida yi (n) respecto al peso wkj
es necesario tener
en cuenta que este peso influye en la activacion de la neurona j de la capa oculta C 1,
23
Secci
on 3.3
3. Perceptron multicapa
aC1
, y que el resto de las activaciones de las neuronas en esta capa no dependen de
j
dicho peso. Por tanto, y de acuerdo con la Ecuacion (3.3), se tiene que:
nC1
X
aC1
yi (n)
j
C1 C1
0
C C1
=f
(3.20)
wji aj
+ ui wji
C2
C2
wkj
wkj
j=1
Sustituyendo este valor en la Ecuacion (3.19) y de acuerdo con la definicion de en
el punto anterior (Ecuaci
on 3.14), se obtiene que:
nC
X
aC1
e(n)
j
C1
C
=
(n)w
i
ji
C2
C2
wkj
w
kj
i=1
(3.21)
C2
Para obtener la ley de aprendizaje para el peso wkj
, solo falta derivar la activaci
on
C1
de la neurona j de la capa oculta C 1, aj , respecto a dicho peso. De nuevo, aplicando
la regla de la cadena a la Ecuacion (3.2), dicha derivada es:
!
nC2
X
aC1
j
C2 C2
C1
0
wkj ak + uj
aC2
(n)
(3.22)
=f
k
C2
wkj
k=1
(3.23)
i=1
Sustituyendo (3.22) en la Ecuacion (3.21) y de acuerdo con el valor de jC1 (n) definido
anteriormente, se obtiene que:
e(n)
= jC1 (n)aC2
(n)
k
C2
wkj
(3.24)
C2
Y como consecuencia, la ley de aprendizaje para modificar el peso wkj
viene dada
por:
C2
C2
wkj
(n) = wkj
(n 1) + jC1 (n)aC2
(n)
k
(3.25)
3. Perceptron multicapa
Secci
on 3.3
(3.26)
=f
nc
X
k=1
c c
ak
wkj
ucj
! nc+1
X
c
ic+2 (n)wji
(3.27)
i=1
(3.28)
Derivada de la funci
on de activaci
on El calculo de los valores de (Ecuaciones
3.15 y 3.27) para cada neurona del Perceptron multicapa requiere el calculo de la derivada
de la funcion de activaci
on. Como se ha comentado, el Perceptron multicapa puede
utilizar dos tipos de funciones de activacion -funcion sigmoidal (Ecuacion 3.4) y funcion
tangente hiperb
olica (Ecuaci
on 3.5), por lo que los valores de dependen, en principio,
de la funcion de activaci
on empleada. A continuacion, se van a obtener las derivadas
para ambas funciones de activaci
on, quedando as completado el calculo de los valores
de .
25
Secci
on 3.3
3. Perceptron multicapa
Derivada de la funci
on sigmoidal
Derivando la expresi
on dada por la Ecuacion (3.4), se obtiene que:
f10 (x) =
1
ex
1
(ex ) =
x
2
x
(1 + e )
1 + e 1 + ex
(3.29)
Por tanto,
f10 (x) = f1 (x)(1 f1 (x))
(3.30)
Como consecuencia, cuando se utiliza la funcion sigmoidal, los valores de asociados a las neuronas de salida (Ecuacion 3.14) adoptan la siguiente forma:
iC (n) = (si (n) yi (n))yi (n)(1 yi (n)) para i = 1, 2, ..., nC
(3.31)
Y los valores de para el resto de las neuronas de la red (Ecuacion 3.27), vienen
dados por:
nc+1
c
c+2 (n)wji
(3.32)
i=1
Derivada de la funci
on tangente hiperbolica
Teniendo en cuenta que f2 (x) = 2f1 (x) 1, la derivada de la funcion f2 (x) es:
f20 (x) = 2f1 (x)(1 f1 (x))
(3.33)
26
(3.34)
3. Perceptron multicapa
3.3.2.
Secci
on 3.3
Raz
on de aprendizaje. Inclusi
on del momento en la ley de aprendizaje
3.3.3.
Como se ha comentado en el apartado anterior, el objetivo del aprendizaje o entrenamiento del perceptr
on multicapa es ajustar los parametros de la red -pesos y umbralescon el fin de que las entradas presentadas produzcan las salidas deseadas, es decir, con
el fn de minimizar la funci
on de error E. En esta seccion se van a detallar los pasos
que involucra el proceso completo de aprendizaje del perceptron multicapa de acuerdo
al algoritmo de retropropagaci
on.
Sea {(X(n), S(n)), n = 1, ...N } el conjunto de muestras o patrones que representan
el problema a resolver, donde X(n) = (x1 (n), ..., xn1 (n)) son los patrones de entrada a
la red, S(n) = (s1 (n), ..., snc (n)) son las salidas deseadas para dichas entradas y N es
el n
umero de patrones disponibles. Generalmente, es frecuente encontrar los patrones
de entrada y salida normalizados o escalados mediante una transformacion lineal en los
intervalos [0,1] o [-1,1] dependiendo de las funcion de activacion empleada.
Los pasos que componen el proceso de aprendizaje del perceptron multicapa son los
siguientes:
1. Se inicializan los pesos y umbrales de la red. Generalmente, esta inicializacion es
aleatoria y con valores alrededor de cero.
27
Secci
on 3.3
3. Perceptron multicapa
2. Se toma un patr
on n del conjunto de entrenamiento, (X(n), S(n)), y se propaga
hacia la salida de la red el vector de entrada X(n) utilizando las ecuaciones (3.1),
(3.2) y (3.3), obteniendose as la respuesta de la red para dicho vector de entrada,
Y (n).
3. Se eval
ua el error cuadr
atico cometido por la red para el patron n utilizando la
ecuaci
on (3.9).
4. Se aplica la regla delta generalizada para modificar los pesos y umbrales de la red.
Para ello se siguen los siguientes pasos:
a) Se calculan los valores para todas las neuronas de la capa de salida utilizando
la ecuaci
on (3.14).
b) Se calculan los valores para el resto de las neuronas de la red utilizando
la ecuaci
on (3.27) empezando desde la u
ltima capa oculta y retropropagando
dichos valores hacia la capa de entrada.
c) Se modifican los pesos y umbrales de la red siguiendo las ecuaciones (3.16) y
(3.17) para los pesos y umbrales de la capa de salida y (3.26) y (3.28) para el
resto de par
ametros de la red.
5. Se repiten los pasos 2, 3 y 4 para todos los patrones de entrenamiento, completando
as un ciclo de aprendizaje, o epoch.
6. Se eval
ua el error total E ecuacion (3.8) cometido por la red. Dicho error tambien
recibe el nombre de error de entrenamiento, pues se calcula utilizando los patrones
de entrenamiento.
7. Se repiten los pasos 2, 3, 4, 5 y 6 hasta alcanzar un mnimo del error de entrenamiento, para lo cual se realizan m ciclos de aprendizaje.
Existe una variante del proceso de aprendizaje descrito anteriormente en la que los
parametros de la red se modifican una vez que todos los patrones han sido prentados a
la red, y no para cada patr
on de entrenamiento. Esta variante se conoce como proceso
batch.
Entrenar una red neuronal para para aprender patrones presentes en los datos de
entrada implica presentarle de forma iterativa ejemplos de las respuestas correctas conocidas. El fn del entrenamiento es encontrar un conjunto de pesos y umbrales que
determine un mnimo global en la funcion de error.
Si el modelo no est
a sobreentrenado, -ver secciones 4.5.1 y 4.5.2- este conjunto de
parametros debera proporcionar una correcta generalizacion. Los entrenamientos que
utilizan el metodo de descenso del gradiente ajustan progresivamente dichos parametros
en la direcci
on de m
axima pendiente decreciente en la superficie del error. Encontrar el
mnimo global de dicha superficie no esta garantizado ya que esta puede incluir muchos
mnimos locales en los que el proceso de entrenamiento converge. La inclusion del factor
de momento en la funci
on de aprendizaje y la ejecucion del entrenamiento con varios
28
3. Perceptron multicapa
Secci
on 3.3
3.3.4.
Early stopping
Secci
on 3.4
3.4.
3.4.1.
3. Perceptron multicapa
El metodo de Levenberg-Marquardt (LM) [29] [30] es un tipo de algoritmo de entrenamiento similar a los denominados quasi-Newton. Para entender la funcionalidad del
metodo LM es conveniente empezar por comprender el metodo de Newton. El metodo
de Newton es un metodo de segundo orden que constituye una alternativa a los metodos
de gradiente conjugado para optimizacion rapida. El paso basico del metodo de Newton
durante el epoch n es
w(n + 1) = w(n) H(n)1 g(n)
(3.36)
(3.37)
(3.38)
(3.39)
donde el par
ametro act
ua como tasa de aprendizaje. Cuando es cero, el algoritmo
se convierte en el metodo de Newton empleando la forma aproximada del calculo de la
matriz Hessiana:
w(n + 1) = w(n)H1 g
30
(3.40)
3. Perceptron multicapa
Secci
on 3.4
(3.41)
El metodo de Newton es m
as eficaz cerca de un mnimo de error, as que el objetivo
es migrar al metodo de Newton tan pronto como sea posible. As pues, se reduce tras
cada paso exitoso (cada vez que el error se logra reducir) y solo se aumenta cuando el
error aumenta respecto a la iteraci
on anterior. Con esta metodologa, la funcion de error
siempre disminuye tras cada iteraci
on del algoritmo.
El algoritmo LM parece ser el metodo mas rapido para entrenar redes feedforward
de tama
no moderado (hasta varios centenares de parametros). Su principal desventaja
es que requiere almacenar las matrices Jacobianas que, para ciertos conjuntos de datos,
pueden ser muy grandes, lo que significa un gran uso de memoria.
3.4.2.
Regularizaci
on bayesiana
La regularizaci
on constituye un criterio de parada de entrenamiento alternativo al
earlystopping visto en la Secci
on 3.3.4. El metodo de regularizacion bayesiana (BR)
implica modificar la funci
on de coste, normalmente el MSE. El MSE sobre el conjunto
de datos de test (MSEd) se expresa mediante una suma de cuadrados de los errores
individuales ei de cada muestra de un conjunto de test de N datos de la siguiente forma:
N
1 X
M SEd =
(ei )2
N
(3.42)
i=1
La modificaci
on comentada tiene el proposito de mejorar la capacidad de generalizacion del modelo. Para conseguirlo, la funcion de coste de la Ecuacion 3.42 se ampla con
la adicion de un termino M SEw que incluye el efecto de la suma de cuadrados de los
pesos de la red. Es decir:
M SEw =
N
1 X
(ew )2
N
(3.43)
i=1
Y la funci
on de coste modificada queda as:
M SE = M SEd + M SEw
(3.44)
Secci
on 3.4
3. Perceptron multicapa
32