Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ABSTRACT
This document contains the formulation to carry out the training of a neural
network using the Backpropagation algorithm, in which a little usual method
has been used, which is its formulation using matrices. This is made taking
advantage of the fact that some operations allow to be done like which usually
they are used with matrices, and in addition the matrix operations provide a
notation and a programming much more summarized, which is reflected in the
computational time.
1. INTRODUCCIÓN W L , A L ;1 ≤ L ≤ M
Las redes neuronales en el desarrollo científico moderno
se han consolidado como una de las herramientas más en donde WL es una colección de matrices, llamadas
útiles, no obstante, esta herramienta depende matrices de pesos y AL es una colección de funciones
estrictamente de un adecuado entrenamiento. El escalares de variable escalar no lineales, y M es el
entrenamiento de una red neuronal depende de muchos tamaño de la colección [1]. Para ilustrar el
factores tales como la forma de los datos, y los comportamiento del flujo de datos por el paradigma, se
parámetros de la arquitectura de la red neuronal. realiza un gráfico que ilustra la estructura de la red
neuronal, como se ve en la figura 1.
Muchos documentos actuales presentan algunas 1 2 M
1 w 1,(no+1) 1 w 1,(n1+1) 1 w 1,(nM +1)
metodologías para el entrenamiento de las redes 2
w 11
1
M
1 1 Z1
neuronales [1,2], pero no siempre éstos especifican la
M
1 w 1,1
w 11 2
w n1,1 w 21
2 M
w 2,(nM +1)
forma que debe tener el algoritmo de entrenamiento para x1
1
M
w n1,1 w 21
1
2 2 2
que converja de forma más rápida. En este artículo se Z2
M
w 1,2
1
w 1,n1 w nM ,1
w 2,no 1 2 M
w 1,(nM +1)
variaciones en los parámetros de la arquitectura de la red. xno
1
w n1,2
w n1(no+1)
2
w n2(n1+1)
2
w 2,n1 w n2,2 M
w nM ,2 M
1
w n1,no n1 2
n2 M
nM ZnM
Se dan inicialmente los conceptos que definen la w n2,n1 w nM ,nM -1
xn
W0
El paradigma usado para ajustar las matrices de pesos es:
1
W(t + 1) = W(t ) + ∆W(t )
Figura 2. Neurona genérica de una red neuronal.
Si ésta es la neurona i correspondiente a la capa L, la Donde ∆W(t) tiene varios métodos de cálculo; en este
L artículo se va a usar el llamado Backpropagation, pues
salida z i está dada por [2]: contiene cálculos relativamente simples. Este método
⎛ L ⎡ z L −1 ⎤ ⎞ consiste en hacer que el paso ∆W(t) sea un pequeño
⎛ nL−1
⎞
ziL = f ⎜ wiL, nL−1 + ∑ wijL x j ⎟ = f ⎜ w i ⎢ ⎥ ⎟⎟ incremento de las matrices de pesos en la dirección del
⎜ 1 gradiente negativo de E respecto a W, que es la dirección
⎝ j =1 ⎠ ⎝ ⎣ ⎦⎠
del máximo descenso de E en el punto W(t) [5], esto es:
3. ENTRENAMIENTO DE LA RED NEURONAL ∂E
∆W(t ) = −η
Partiendo de un conjunto de datos experimentales de un ∂W
modelo desconocido de cualquier índole (por ejemplo un
sistema físico), se pueden obtener dos subconjuntos de El proceso se realiza iterativamente hasta obtener una
datos, uno para entrenar y otro para validar. El objetivo tolerancia de error medio cuadrático, o un número de
de este procedimiento es que pueda obtenerse un criterio iteraciones dado, para un η dado. La dificultad de este
de generalización para el modelo, en el caso en que la proceso está en que todas las matrices de pesos están
entrada no coincida con las entradas del conjunto de acopladas mediante operaciones matemáticas no lineales,
entrenamiento, lo cual es muy probable. Se dan entonces, y el cálculo del gradiente puede ser costoso. A
en este orden, los conjuntos: continuación se presenta la deducción de una
metodología de cálculo para este gradiente.
{x(l ), d(l ); l ∈ Ω1} y {x(l ), d(l ); l ∈ Ω 2 }
Para una capa dada, se tiene:
En los que Ω1 y Ω2 son disjuntos y definen los conjuntos ⎛ u1L ⎞
de entrenamiento y de validación. ⎜ L⎟ nL−1
u2
u = ⎜ ⎟ , uiL = wiL( nL−1 +1) + ∑ wijL z Lj −1 , 1 ≤ i ≤ nL (1)
L
Para realizar el entrenamiento de la red, se ajusta la ⎜ ⎟ j =1
colección de matrices WL para producir el resultado ⎜ L⎟
⎜ un ⎟
deseado [3]. Esto se realiza minimizando la función ⎝ L⎠
definida como el promedio de los errores medios Por lo cual:
cuadráticos de las salidas de la capa M entre todo el ⎡ z L −1 ⎤
( )
T
conjunto de entrenamiento {x(k ), d( k );1 ≤ k ≤ K } [4]:
L −1T
u = WL ⎢ ⎥ = W z ,1 , donde
L L
⎣ 1 ⎦
1 1
( )
K nM
∑ 2 ∑ ⎡⎣d ( k ) − z ( k )⎤⎦
2
E= q
M
q z = f u ,
L L
1≤ L ≤ M
K k =1 q =1
0
Aquí, k se refiere a la muestra de entrenamiento evaluada Se entiende que en la capa de entrada z se toma como
del conjunto de K muestras y q es una neurona genérica el vector de entrada.
{ }
en la capa de salida. Cada superíndice L hace referencia a ∂E 1 K nM ∂
∑∑ L ⎣ q( )
⎡ d k − zqM ( k ) ⎤⎦ =
2
la capa L en un total de M capas, a su vez cada capa tiene =
∂W L
2 K k =1 q =1 ∂W
nM neuronas. Se usará el subíndice i para denotar
neuronas de la capa actual y el subíndice j para denotar
neuronas de la capa anterior, de modo que cada matriz de 1 K nM
∂zqM ( k )
pesos WL se asigna a la capa L y tiene dimensiones =
2K
∑∑
k =1 q =1
−2 ⎣ d q ( k ) − z q ( k ) ⎦
⎡ M
⎤
∂W L
nL x (nL-1 + 1), y L = 1 corresponde a la primera capa
oculta.
∂zqM ( k )
Para determinar se tiene:
El error E es función de las matrices WL y el problema de ∂W L
entrenamiento consiste en hallar dichas matrices de tal
Scientia et Technica Año XIII, No 34, Mayo de 2007. Universidad Tecnológica de Pereira 105
∂E ⎪ k k =1 q =1
∂E 1 K nM
∂zqM ( k ) ∂uiL ( k ) =⎨
∂wijL
=−
K
∑∑ ⎡ d
⎣ q ( k ) − z M
q ( k ) ⎤
⎦ ∂u L ( k ) ∂wL
∂wijL ⎪ 1 K nM
− ∑∑ ⎣⎡ d q ( k ) − zqM ( k ) ⎦⎤ δ iL ( k , q ) , j = nL −1 + 1
k =1 q =1 ⎪
⎩ k k =1 q =1
i ij
Por lo tanto:
Entonces:
∂z M
(k ) ∂z ( k ) ∂u ( k )
nL+1 M L +1
=∑ ∂uiL ( k )
⎡ z L −1 ( k ) ⎤
q q r
∂z i
L
( k ) r =1 ∂u ( k ) ∂z ( k )
L +1
r i
L
= ⎢ ⎥ (2)
∂wi
L
⎣ 1 ⎦
De la ecuación (1): independiente del valor de i : 1 ≤ i ≤ nL .
∂urL +1 ( k )
= wriL +1
∂zi ( k )
L+1
L
Se puede presentar también W como un arreglo por
con lo cual: columnas:
W = ⎡⎣ w1 , … , w nL , w nL +1 ⎤⎦ , donde
L +1 L +1 L +1 L +1
∂zqM ( k ) nL+1
∂zqM ( k )
= f ' ( uiL ( k ) ) ∑ wriL +1 . wi
L +1
= ⎡⎣ w1Li +1 ,… , w(Ln+L1−1 )i ⎤⎦ es la columna i .
∂uiL ( k ) L +1
r =1 ∂ur (k )
Se define: Así:
∂zqM ( k )
nL+1
∑δ (k, q) w = ⎡⎣ w i ⎤⎦ δ ( k , q ) donde
L +1 T
L +1
L +1 L +1
δ iL ( k , q ) , de manera que,
(k )
r ri
∂u i
L
r =1
nL+1
δ iL ( k , q ) f ' ( uiL ( k ) ) ∑ δ rL +1 ( k , q )wriL +1 δ L +1 ( k , q ) = ⎡⎣δ1L +1 ( k , q ) ,… , δ nL+1 ( k , q ) ⎤⎦
L+1
r =1
última capa: ⎢ 1 ⎥
∂z M ( k ) ⎢ L +1 ⎥
( ) ) ( ) δ ( k , q )⎥
T L +1
δ iM ( k , q ) = qM = f ' uiM ( k ) δ ( q − i )
∂ui ( k ) (
δ L ( k , q ) = f ' u L ( k ) ∗ ⎢⎢ 2
w
⎥
⎢ ⎥
⎢ L +1 ⎥
( ) δ ( k , q )⎥
T L +1
Donde δ(r) es la función delta de Kronecker [6]: ⎢⎣ w nL ⎦
⎧1, r = 0
δ (r ) = ⎨
⎩0, r ≠ 0
106 Scientia et Technica Año XIII, No 34, Mayo de 2007. Universidad Tecnológica de Pereira
así:
Con todo:
⎡e1q δ L (1, q ) , e2q δ L ( 2, q ) , …, ekq δ L ( K , q ) ⎤
(
δ L ( k , q ) = f ' u L ( k ) ∗ ⎡⎢ ) (( ) δ L +1 ( k , q ) ⎤⎥ Λ qL
T
nL +1)
W L +1 ⎣ ⎦
⎣ ⎦
donde Λ qL puede obtenerse como:
o también:
Donde la notación ( p) A indica que a la matriz A se le ha 1{nL ,1} es un vector columna de nL unos, y la
retirado la columna p, de manera que la notación operación * se ha definido antes.
matricial queda:
Con lo anterior:
⎡z ( k )⎤ L −1 T
∂E 1 K nM
(3)
=− ∑∑ ⎣⎡d ( k ) − z ( k )⎦⎤δ ( k , q ) ⎢ 1 ⎥
M L
∂E 1 nM K ⎡ z L −1 ( k ) ⎤
T
∂W
∑∑ e δ (k, q) ⎢
L q q
K ⎣ ⎦ =− q L
k =1 q =1
⎥
∂W L k
K q =1 k =1 ⎣ 1 ⎦
o también:
⎡ z L −1 (1) z L −1 ( 2 ) … z L −1 ( K ) ⎤
T
∂E 1 nM
∂E
=−
1
∑∑ ⎡⎣d ( k ) − z ( k )⎤⎦δ ( k , q ) ⎡⎣⎢( z ( k ) )
K nM
M L L −1 T
,1⎤ ∂W L
=− ∑ Λ qL ⎢
…
⎥
∂W L K
q q
⎦⎥
K q =1 ⎣ 1 1 1 ⎦
k =1 q =1
Sea:
Esto debido a que en (2), ∂ui (k ) no depende de i sino
L
⎡ z L −1 (1) z L −1 ( 2 ) … z L −1 ( K ) ⎤
T
⎡ Z L −1 ⎤
∂wijL 1Z L −1
=⎢ ⎥ = ⎢ ⎥
solo de j y por tanto la expresión: ⎣ 1 1 … 1 ⎦ ⎣1{1, K }⎦
∂W L
=−
K
∑Λ L
q 1Z L −1
da como resultado el producto externo: q =1
La expresión (3) se puede simplificar aun más, si se tiene Nombre Fórmula Derivada
en cuenta lo siguiente: Logística o
f ( x) =
1 f '
( x ) = f ( x ) ⎣⎡1 − f ( x )⎦⎤
Sigmoid 1 + e− x
⎡ z L −1 ( k ) ⎤
T Tangente e x − e− x f ' ( x ) = 1 − ⎡⎣ f ( x ) ⎤⎦
2
∂E 1 f ( x) = x −x
nM K
=− ∑∑ ⎡ ( ) − ( ) ⎤δ ( ) hiperbólica
L
d
⎣ q k z M
k ⎦ k , q ⎢ ⎥ e +e
∂W L
q
K q =1 k =1 ⎣ 1 ⎦ Lineal f ( x) = x f ' ( x) = 1
función y no de su parámetro, esto resulta útil en el La importancia de la expresión obtenida para el gradiente
entrenamiento. del error, es que solo debe realizar una suma por las
neuronas de la ultima capa, pues el resto se calcula con
4. RESULTADOS OBTENIDOS una operación de multiplicación de matrices que se
obtienen a partir de los datos de entrenamiento.
Dada la formulación anterior, es realizado un algoritmo
en Matlab ®, que calcula en cada iteración, el gradiente Fue realizado un algoritmo en Matlab ®, que realiza las
del error y actualiza las matrices de pesos con varias tasas operaciones necesarias y sirve para entrenar en forma
de entrenamiento η. Además de esto se puede aplicar en general una red neuronal de M capas con cualquier
algunos casos el método del momento, para varios cantidad de neuronas en cada capa. En este se ha notado
valores de la constante de momento µ. El algoritmo con que el tiempo que tarda el algoritmo en realizar una
momento se da mediante la expresión [1, 2]: actualización de las matrices de pesos no depende en
forma estricta del número de neuronas en cada capa, ni
W ( t + 1) = W ( t ) + ∆W ( t ) + µ ⎡⎣ W ( t ) − W ( t − 1) ⎤⎦ del número de datos de entrenamiento, sino más bien del
número de capas.
Para hacer uso del algoritmo se ha realizado el Se ha mostrado como la notación matricial para el
entrenamiento de una red neuronal, como un sistema que entrenamiento de redes neuronales además de simplificar
modela el músculo humano del antebrazo en [8], en ésta el número de cálculos, también presenta un mejor
se realizó el entrenamiento de once redes neuronales rendimiento al ser implementada en Matlab ® ya que este
entre las cuales se obtienen resultados para el programa esta basado en la computación matricial.
entrenamiento con una capa oculta y para dos capas
ocultas como se muestra en las tablas 1 y 2.
6. BIBLIOGRAFÍA
Error Error Tiempo de
Parámetros (Nm)2 porcentual entrenamiento [1] MathWorks, Neural Network Toolbox: User’s Guide
η=0,006, µ=0,6 23,9910 0,09% 41 min Version 4. For Use with MATLAB, The MathWorks,
η=0,05, µ=0 18,6003 0,08% 25 min Inc., Natick, MA, 2000.
η=0,07, µ=0 22,6619 0,09% 33 min [2] Y. H. Hu and J.-N. Hwang, Handbook of Neural
Network Signal Processing. CRC Press LLC, 2002.
Tabla 1. Resultados del entrenamiento del modelo del músculo,
con 50 neuronas en la capa oculta.
[3] B. Widrow and M. H. Jr., Adaptive Switching
Circuits, IRE WESCON Convention Record, Pt. 4, pp.
Error Error Tiempo de
Parámetros 96–104, 1960.
(Nm)2 porcentual entrenamiento
Capa 1, 25; [4] M. T. Hagan, H. B. Demuth, and M. Beale, Neural
Capa 2, 25 5,1495 0,04% 48 min Network Design. Boston, MA, USA: PWS Publishing
Co., 1996.
η=0,05, µ=0 3,9447 0,04% 26 min
η=0,07, µ=0 2,0372 0,03% 55 min [5] T. M. Apostol, Calculus, 2nd ed., 1967, vol. 2.
Tabla 2. Resultados del entrenamiento del modelo del músculo, [6] L. Kronecker, Mémoire Sur les Facteurs Irreductibles
con 2 capas ocultas y con η=0,01 ,µ=0,2. de l’expression x n − 1 , vol. 19, pp. 177–192, 1854,
reprinted in Werke, Vol. I, pp. 77–92.
5. CONCLUSIONES Y RECOMENDACIONES
[7] A. Gelb, J. Kasper, R. Nash, C. Prince, and A.
Se ha realizado la deducción de una forma matricial para Sutherland, Applied Optimal Estimation. USA: M.I.T.
el entrenamiento de una red neuronal Backpropagation, Press, 1974.
para lo cual se han usado propiedades básicas de las
operaciones con matrices, que permiten calcular de forma [8] J. E. Molina, “Desarrollo de un sistema de control de
directa el gradiente del error con respecto a todos los un exoesqueleto para asistencia del movimiento tipo
pesos de una capa. Lo anterior ha sido deducido para la flexión y extensión”, Universidad Tecnológica de
forma general de una red neuronal multicapa, donde el Pereira, 2006.
gradiente es calculado por capas y de forma no recursiva.
Se obtiene en cada capa, el valor del gradiente como una
matriz que es entrada directamente al algoritmo de
actualización de las matrices de pesos de la red neuronal.