Está en la página 1de 5

Scientia et Technica Año XIII, No 34, Mayo de 2007. Universidad Tecnológica de Pereira.

ISSN 0122-1701 103

NOTACIÓN MATRICIAL EN EL ENTRENAMIENTO DE REDES NEURONALES

RESUMEN JASON EDWIN MOLINA V.


Este documento contiene la formulación para efectuar el entrenamiento de una Ingeniero Electricista,
red neuronal con el algoritmo Backpropagation, en el cual se ha usado un Profesor
método poco usual, el cual es la formulación del mismo utilizando matrices. Universidad Tecnológica de Pereira
Esto se realiza aprovechando el hecho de que algunas operaciones permiten ser jason@ohm.edu.edu.co
realizadas como las que usualmente se utilizan con matrices. Además las
operaciones matriciales proporcionan una notación y una programación mucho CARLOS ALBERTO RESTREPO
más resumida, lo cual se ve reflejado en el tiempo computacional. Ingeniero Electricista,
Universidad Tecnológica de Pereira
PALABRAS CLAVES: Red neuronal, entrenamiento, Backpropagation, cr@utp.edu.co
notación matricial.

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.

KEYWORDS: Neural network, training, Backpropagation, Matricial notation.

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

desarrolla una forma matricial para entrenar una red x2


M
w 1,nM -1
neuronal, tomando como base la deducción del
entrenamiento Backpropagation, y se muestra que el 1
w 1,no 2

algoritmo desarrollado es muy general permitiendo


M

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

arquitectura grafica de una red neuronal, seguido de la


deducción de las operaciones matemáticas necesarias y Figura 1. Arquitectura gráfica de una red neuronal.
luego la deducción del algoritmo de optimización que
logra que la red neuronal alcance el objetivo, desde una En el gráfico se distingue una capa de entrada, M-1 capas
inicialización aleatoria. ocultas y una capa de salida. Las capas que no son de
entrada ni de salida se denominan ocultas. La capa de
2. ARQUITECTURA DE UNA RED NEURONAL entrada no tiene neuronas sino que sólo distribuye los
datos del vector de entrada a la primera capa oculta. Cada
Se define la red neuronal como el paradigma: neurona recibe cierto número de entradas y las procesa
para dar paso a una salida según se indica en la figura 2.

Fecha de Recepción: 09 Febrero de 2007


Fecha de Aceptación: 03 Mayo de 2007
104 Scientia et Technica Año XIII, No 34, Mayo de 2007. Universidad Tecnológica de Pereira

x1 manera que E sea mínimo; en cuyo caso, las matrices


W1 darán una aproximación considerable a las entradas del
conjunto de entrenamiento [2]. El mínimo valor que toma
x2 W2
Σ f(x) Z
E es cero, cuando las salidas del conjunto de
entrenamiento son iguales a las salidas de la red para todo
1 ≤ k ≤ K.
Wn

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

∂zqM ( k ) ∂zqM ( k ) ∂uiL ( k ) Con lo anterior se obtiene que:


=
∂w L
ij ∂u i
L
(k ) ∂w L
ij
⎧ 1 K nM
⎪− ∑∑ ⎡⎣ d q ( k ) − zq ( k ) ⎤⎦ δ i ( k , q ) z j ( k ) ,1 ≤ j ≤ nL −1
L −1
entonces:
M L

∂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

∂zqM ( k ) ∂zqM ( k ) ∂ziL ( k ) ∂zqM ( k )


∂uiL ( k )
=
∂ziL ( k ) ∂uiL ( k )
= f '
( i ) ∂z L ( k )
u L
( k ) Para recuperar la notación matricial mencionada al
principio, se presenta a WL como un arreglo por filas:
i

zqM (k ) es función de urL +1 ( k ) ; con 1 ≤ r ≤ n L+1 , y urL +1 ( k )


⎡ w1L ⎤
⎢ L⎥
es función de ziL ( k ) ; con 1 ≤ i ≤ nL , por lo cual, ⎢w ⎥
W L = ⎡⎣ w iL ⎤⎦ = ⎢ 2 ⎥ donde,
i =1:nL
aplicando la regla de la cadena [5] se tiene: ⎢ ⎥
⎢ w nL ⎥
∂zqM ( k ) ∂u L +1 ( k ) ⎣ L⎦
= ∇zqM ( k ) • w i = ⎡⎣ wiL1 , … , wiL( nL−1 ) , wiL( nL−1 +1) ⎤⎦ , es una fila de W .
L L
∂ziL ( k ) (k ) ∂ziL ( k )
L+1
u

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

Este último hecho, hace que el cálculo de δ i


L
(k, q) se
Con lo cual:
haga recursivo, calculando sus valores a partir de los
δ iL ( k , q ) = f ' ( uiL ( k ) ) ⎡⎣ w iL +1 ⎤⎦ δ L +1 ( k , q )
T

mismos en capas posteriores, haciendo un flujo de datos


hacia atrás respecto a las capas; de allí que reciba el
nombre de error Backpropagation [4]. Dado que el De la ecuación (1), se tiene:
cálculo es recursivo, requiere una inicialización en la
última capa, que se obtiene derivando la salida en la
(
⎡ w L +1
) δ L +1 ( k , q ) ⎤
T

ú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

El operador * entre dos vectores de igual dimensión se el vector:


define aquí, como la multiplicación de ellos componente ⎡⎣ d q ( k ) − zqM ( k ) ⎤⎦ δ L ( k , q ) = ekq δ L ( k , q ) ,
a componente, es decir:
para todo 1 ≤ k ≤ K , puede escribirse en forma matricial;
x ∗ y = diag ( x ) y = ⎡⎣ x ⋅ diag y ⎤⎦ ( )
T 1

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:

( k , q ) = diag ( f ' ( u L ( k ) ) ) ( ( n +1)W L+1 ) δ L+1 ( k , q ) 1{nL ,1} e ∗ ⎡⎣δ (1, q ) , δ ( 2, q ) , … , δ ( K , q ) ⎤⎦


q L L L
δ
L
T
Λ qL
L

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 }⎦

∂zqM ( k ) ∂uiL ( k ) Ahora el cálculo del gradiente se reduce a:


para todo 1 ≤ i ≤ nL , 1 ≤ j ≤ nL −1 + 1
∂ui
L
(k ) ∂w L
ij
∂E 1 nM

∂W L
=−
K
∑Λ L
q 1Z L −1
da como resultado el producto externo: q =1

Con todo se pasa a especificar la función f(u), la cual


∂zqM ( k ) ⎡ ∂uiL ( k ) ⎤
T

⎢ puede tomar varias formas. Entre éstas están las formas


L ⎥
∂u ( k ) ⎣ ∂ w i ⎦
L
diferenciables que son necesarias para evaluar cualquier
algoritmo basado en el gradiente. Estas formas son las
tal como se define el producto externo en [7]. siguientes [2]:

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

y sea: Tabla 1. Funciones de activación diferenciables.


ekq = d q ( k ) − zqM ( k ) y eq = ⎡⎣ e1q ,… , ekq ⎤⎦ Nótese que para el entrenamiento se hace necesario
evaluar las derivadas de las funciones de activación para
las neuronas, y con las funciones mencionadas antes se
1
Dicha operación es conmutativa.
pueden calcular de forma directa a partir del valor de la
Scientia et Technica Año XIII, No 34, Mayo de 2007. Universidad Tecnológica de Pereira 107

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.

También podría gustarte