Comprensión de las redes de avance de múltiples capas

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.

Red de retropropagación (BPN)

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:

  1. En BPN, la función de activación utilizada debe ser diferenciable.
  2. 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:

  1. Cálculo de la salida, y.
  2. Retropropagación de errores, es decir, entre salida y capa oculta, capa oculta y de entrada.
  3. 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 ank * 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *