Comprendamos cómo se calculan los errores y cómo se actualizan los pesos en las redes de retropropagación (BPN).
Considere la siguiente red en la siguiente figura.
La red de la figura anterior es una red simple de alimentación hacia adelante o una red de retropropagación de múltiples capas. Contiene tres capas, la capa de entrada con dos neuronas x 1 y x 2 , la capa oculta con dos neuronas z 1 y z 2 y la capa de salida con una neurona y en.
Ahora escribamos los pesos y los vectores de sesgo para cada neurona.
Nota: Los pesos se toman al azar.
Capa de entrada: i/p – [x 1 x 2 ] = [0 1]
Aquí, dado que es la capa de entrada, solo están presentes los valores de entrada.
Capa oculta: z 1 – [v 11 v 21 v 01 ] = [0.6 -0.1 03]
Aquí v 11 se refiere al peso de la primera entrada x 1 en z 1 , v 21 se refiere al peso de la segunda entrada x 2 en z 1 y v 01 se refiere al valor de sesgo en z 1 .
z 2 – [v 12 v 22 v 02 ] = [-0.3 0.4 0.5]
Aquí v 12 se refiere al peso de la primera entrada x 1 en z 2 , v 22 se refiere al peso de la segunda entrada x 2 en z 2 y v 02 se refiere al valor de sesgo en z 2 .
Capa de salida: y en – [w 11 w 21 w 01 ] = [0.4 0.1 -0.2]
Aquí w 11 se refiere al peso de la primera neurona z 1 en una capa oculta en y in , w 21 se refiere al peso de la segunda neurona z 2 en una capa oculta en y in y w 01 se refiere al valor de sesgo en y in . Consideremos tres variables, k que se refiere a las neuronas en la capa de salida, ‘j’ que se refiere a las neuronas en la capa oculta e ‘i’ que se refiere a las neuronas en la capa de entrada.
Por lo tanto,
k = 1
j = 1, 2 (es decir, primera neurona y segunda neurona en la capa oculta)
i = 1, 2 (es decir, primera y segunda neurona en la capa de entrada)
A continuación se presentan algunas condiciones a seguir en los BPN.
Condiciones/restricciones:
- En BPN, la función de activación utilizada debe ser diferenciable.
- La entrada para el sesgo es siempre 1.
Para continuar con el problema, vamos a:
Valor objetivo, t = 1
Tasa de aprendizaje, α = 0,25
Función de activación = función sigmoidea binaria
Función sigmoidea binaria, f(x) = (1+e -x ) -1 eq. (1)
Y, f'(x) = f(x)[1-f(x)] eq. (2)
Hay tres pasos para resolver el problema:
- Cálculo de la salida, y.
- Retropropagación de errores, es decir, entre salida y capa oculta, capa oculta y de entrada.
- Actualización de pesos.
Paso 1:
El valor y se calcula encontrando y y aplicando la función de activación.
y en se calcula como:
y en = w 01 + z 1 * w 11 + z 2 * w 21 eq. (3)
Aquí, z 1 y z 2 son los valores de la capa oculta, calculados al encontrar z in1 , z in2 y aplicarles la función de activación.
z in1 y z in2 se calculan como:
z in1 = v 01 + x 1 * v 11 + x 2 * v 21 eq. (4)
z in2 = v 02 + x 1 * v 12 + x 2 * v 22 eq. (5)
de (4)
z en 1 = 0,3 + 0*0,6 + 1*(-0,1)
z en 1 = 0,2
z 1 = f(z en 1 ) = (1+e -0.2 ) -1 De (1)
z1 = 0,5498
de (5)
z pulg2 = 0,5 + 0*(-0,3) + 1*0,4
z pulg2 = 0,9
z 2 = f(z in2 ) = (1+e -0.9 ) -1 De (1)
z2 = 0,7109
de (3)
y en = (-0.2) + 0.5498*0.4 + 0.7109*0.1
y en = 0.0910
y = f(y en ) = (1+e -0.0910 ) -1 De (1)
y = 0.5227
Aquí, y no es igual al objetivo ‘t’, que es 1. Y procedemos a calcular los errores y luego actualizamos los pesos a partir de ellos para lograr el valor objetivo.
Paso 2:
(a) Cálculo del error entre la salida y la capa oculta
El error entre la salida y la capa oculta se representa como δ k , donde k representa las neuronas en la capa de salida como se mencionó anteriormente. El error se calcula como:
δ k = (t k – y k ) * f'(y tinta ) eq. (6)
donde, f'(y tinta ) = f(y tinta )[1 – f(y tinta )] De (2)
Dado que k = 1 (Supuesto arriba),
δ = (t – y) f'(y en ) eq. (7)
donde, f'(y en ) = f(y en )[1 – f(y en )]
f'(y en ) = 0.5227[1 – 0.5227]
f'(y en ) = 0.2495
Por lo tanto,
δ = (1 – 0.5227) * 0.2495 De (7)
δ = 0.1191, es el error
Nota: (Objetivo – Salida), es decir, (t – y) es el error en la salida, no en la capa. El error en una capa es contribuido por diferentes factores como pesos y sesgos.
(b) Cálculo del error entre la capa oculta y la de entrada
El error entre la capa oculta y la de entrada se representa como δ j , donde j representa el número de neuronas en la capa oculta como se mencionó anteriormente. El error se calcula como:
δ j = δ inj * f'(z inj ) eq. (8)
dónde,
δ inj = ∑ k=1 an (δ k * w jk ) eq. (9)
f'(z inj ) = f(z inj )[1 – f(z inj )] eq. (10)
Dado que k = 1 (Supuesto arriba) eq. (9) se convierte en:
δ inj = δ * w j1 eq. (11)
Como j = 1, 2, tendremos un valor de error para cada neurona y un total de 2 valores de error.
δ1 = δin1 * f'( zin1 ) eq . (12), Desde (8)
δ en 1 = δ * w 11 De (11)
δ in1 = 0.1191 * 0.4 De vectores de pesos
δ en 1 = 0,04764
f'(z en1 ) = f(z en1 )[1 – f(z en1 )]
f'(z en1 ) = 0.5498[1 – 0.5498] Como f(z en1 ) = z 1
f'(z en1 ) = 0.2475
Sustituyendo en (12)
δ1 = 0,04674 * 0,2475 = 0,0118
δ 2 = δ in2 * f'(z in2 ) eq. (13), de (8)
δ pulg2 = δ * w 21 De (11)
δ in2 = 0.1191 * 0.1 De vectores de pesos
δ pulg2 = 0.0119
f'(z en2 ) = f(z en2 )[1 – f(z en2 )]
f'(z pulg2 ) = 0.7109 [1 – 0.7109] Como f(z pulg2 ) = z 2
f'(z en2 ) = 0.2055
Sustituyendo en (13)
δ2 = 0,0119 * 0,2055 = 0,00245
Los errores se han calculado, los pesos deben actualizarse utilizando estos valores de error.
Paso 3:
La fórmula para actualizar los pesos de la capa de salida es:
w jk (nuevo) = w jk (antiguo) + Δw jk eq. (14)
donde, Δw jk = α * δ k * z j eq. (15)
Como k = 1, (15) se convierte en:
Δw jk = α * δ * z i eq. (dieciséis)
La fórmula para actualizar los pesos de la capa oculta es:
v ij (nuevo) = v ij (antiguo) + Δv ij eq. (17)
donde, Δv i = α * δ j * x i eq. (18)
De (14) y (16)
w 11 (nuevo) = w 11 (antiguo) + Δw 11 = 0,4 + α * δ * z 1 = 0,4 + 0,25 * 0,1191 * 0,5498 = 0,4164
w 21 (nuevo) = w 21 (antiguo) + Δw 21 = 0,1 + α * δ * z 2 = 0,1 + 0,25 * 0,1191 * 0,7109 = 0,12117
w 01 (nuevo) = w 01 (antiguo) + Δw 01 = (-0.2) + α * δ * bias = (-0.2) + 0.25 * 0.1191 * 1 = -0.1709, tenga en cuenta que el 1 tomado aquí es una entrada considerada para sesgo según las condiciones.
Estos son los pesos actualizados de la capa de salida.
De (17) y (18)
v 11 (nuevo) = v 11 (antiguo) + Δv 11 = 0,6 + α * δ 1 * x 1 = 0,6 + 0,25 * 0,0118 * 0 = 0,6
v 21 (nuevo) = v 21 (antiguo) + Δv 21 = (-0.1) + α * δ 1 * x 2 = (-0.1) + 0.25 * 0.0118 * 1 = 0.00295
v 01 (nuevo) = v 01 (antiguo) + Δv 01 = 0,3 + α * δ 1 * sesgo = 0,3 + 0,25 * 0,0118 * 1 = 0,00295, tenga en cuenta que el 1 tomado aquí es una entrada considerada para el sesgo según las condiciones.
v 12 (nuevo) = v 12 (antiguo) + Δv 12 = (-0,3) + α * δ 2 * x 1 = (-0,3) + 0,25 * 0,00245 * 0 = -0,3
v 22 (nuevo) = v 22 (antiguo) + Δv 22 = 0,4 + α * δ 2 * x 2 = 0,4 + 0,25 * 0,00245 * 1 = 0,400612
v 02 (nuevo) = v 02 (antiguo) + Δv 02 = 0,5 + α * δ 2 * sesgo = 0,5 + 0,25 * 0,00245 * 1 = 0,500612, tenga en cuenta que el 1 tomado aquí es una entrada considerada para el sesgo según las condiciones.
Estos son todos los pesos actualizados de la capa oculta.
Estos tres pasos se repiten hasta que la salida ‘y’ es igual al objetivo ‘t’.
Así es como funcionan los BPN. La retropropagación en BPN se refiere a que el error en la capa actual se utiliza para actualizar los pesos entre la capa actual y la anterior mediante la retropropagación de los valores de error.
Publicación traducida automáticamente
Artículo escrito por gchandana7799 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA