Creo que todo el mundo encontrará problemas con el algoritmo BP cuando entre en contacto por primera vez con las redes neuronales. Cómo comprender la red neuronal BP de manera vívida y rápida es el placer avanzado de nuestro aprendizaje (voz en off: ¿Diversión? ¿Me estás hablando de diversión?)
Esta publicación de blog te ayudará a comenzar con BP neural red de forma rápida y sencilla.
¿Cuál es la definición de red neuronal BP? Mire esta oración: Red de avance multicapa entrenada con un "algoritmo de propagación hacia atrás de errores"
La idea de BP es utilizar el error después de la salida para estimar el error de la capa anterior de la capa de salida. Y luego use esto El error de una capa se usa para estimar el error de la capa anterior, obteniendo así todas las estimaciones de error de cada capa. La estimación del error aquí puede entenderse como una derivada parcial, en función de la cual ajustamos los pesos de conexión de cada capa y luego usamos los pesos de conexión ajustados para recalcular el error de salida. Hasta que el error de salida cumpla con los requisitos o el número de iteraciones exceda el valor establecido.
Después de todo, se ha hablado mucho de la palabra "error", ¿lo que significa que este algoritmo tiene mucho que ver con el error?
Sí, el objeto de propagación de BP es "error", y el propósito de la propagación es obtener el error estimado de cada capa.
La regla de aprendizaje es: utilizar el método de descenso más pronunciado para ajustar continuamente los pesos y umbrales de la red mediante retropropagación (es decir, capa por capa) y, en última instancia, minimizar el coeficiente de error global.
La esencia de su aprendizaje es: ajuste dinámico del peso de cada conexión.
La topología es como se muestra arriba: capa de entrada, capa oculta y capa de salida.
La ventaja de la red BP es que puede aprender y almacenar una gran cantidad de relaciones de entrada-salida sin señalar esta relación matemática de antemano. Entonces, ¿cómo aprende?
BP utiliza una función de activación que es diferenciable en todas partes para describir la relación entrada-salida de esta capa, y la función en forma de S δ se usa a menudo como función de activación.
Ahora comenzamos a supervisar el algoritmo de aprendizaje de la red neuronal BP:
1. La propagación hacia adelante obtiene el error de la capa de salida, e.
= & gtCapa de entrada muestra de entrada= & gtCada capa oculta= & gtCapa de salida
2.
= & gtSi el error de la capa de salida no coincide con el valor esperado= & gtPropagación hacia atrás
3. Error de propagación hacia atrás
= & gtError display At todos los niveles => Corrija los pesos de cada capa hasta que el error se reduzca a un nivel aceptable.
El algoritmo es relativamente sencillo de explicar, y luego se puede conocer la verdadera cara de BP a través de fórmulas matemáticas.
Supongamos que nuestra estructura de red es una capa de entrada con n neuronas, una capa oculta con p neuronas y una capa de salida con q neuronas.
Estas variables son las siguientes:
Después de conocer las variables anteriores, comience el cálculo:
1. Inicialice una función de error con un número aleatorio dentro de (-). 1, 1), establezca la precisión ε y el número máximo de iteraciones m.
2. Seleccione aleatoriamente la k-ésima muestra de entrada y la salida esperada correspondiente.
Repita los siguientes pasos hasta que el error cumpla con los requisitos:
3. Calcule la entrada y salida de cada neurona en la capa oculta.
4. Calcule la derivada parcial de la función de error e para cada neurona de la capa de salida, en función de la salida esperada y la salida real de la capa de salida, la entrada de la capa de salida y otros parámetros.
5. Calcule la derivada parcial de la función de error para cada neurona en la capa oculta de acuerdo con la sensibilidad de la última capa (aquí está la capa de salida) (la sensibilidad se presentará más adelante) δo(. k), el peso de conexión w de esta última capa se calcula utilizando el valor de entrada de esta capa.
En sexto lugar, utilice las derivadas parciales del paso 4 para corregir los pesos de conexión de la capa de salida.
7. Utilice las derivadas parciales del paso 5 para modificar los pesos de conexión de la capa oculta.
8. Calcule el error global (m muestras, q categorías)
Introdujo un método de cálculo más específico y luego utilizó una fórmula matemática relativamente simple para resumir aproximadamente el proceso. Creo que después de leer los pasos detallados anteriores, comprenderé y comprenderé un poco.
Supongamos que nuestra red neuronal es así, con dos capas ocultas.
Primero entendamos qué es la sensibilidad.
Por favor, mira la siguiente fórmula:
Esta fórmula es la derivada parcial del error con respecto a B. ¿Qué es este B? Es un número base y la sensibilidad δ es la tasa de cambio del error al número base, que es la derivada.
¿Porque? tu/? B=1, ¿y qué? MI/? b=? MI/? U=δ, es decir, ¿la sensibilidad de la base de desviación? MI/? b = δ es igual a la derivada del error e con respecto a todas las entradas u de un nodo? MI/? u .
También se puede considerar que la sensibilidad aquí es igual a la derivada del error e en la entrada de la capa. Tenga en cuenta que la entrada aquí es la entrada de la capa U en la figura anterior, es decir, la entrada después de que se completan los cálculos de la capa y el peso de la capa.
La sensibilidad de la primera capa de cada capa oculta es:
"?" Aquí hablamos de la multiplicación de cada elemento. Si no lo entiendes, puedes compararlo. con la fórmula detallada arriba.
La sensibilidad de la capa de salida se calcula de manera diferente, de la siguiente manera:
El peso de corrección final es la sensibilidad multiplicada por el valor de entrada de la capa. Tenga en cuenta que la entrada aquí es la entrada que no se multiplica por el peso, que es el nivel Xi en la figura anterior.
Para cada peso (W)ij, existe una tasa de aprendizaje específica ηIj, que es aprendida por el algoritmo.