Explicación detallada del principio del algoritmo de clasificación de redes neuronales

Tabla de contenido

Explicación detallada del principio del algoritmo de clasificación de redes neuronales

Flujo de trabajo de red neuronal

algoritmo de retropropagación

1) El principio de retropropagación

2) Ejemplo de aplicación

Resumir


Propagación hacia adelante

(propagación hacia adelante): se refiere al orden de la red neuronal a lo largo de la capa de entrada a la capa de salida, y calcula y almacena secuencialmente las variables intermedias del modelo.

retropropagación

(Back-propagation): A lo largo del orden de la capa de salida a la capa de entrada, según la regla de la cadena, calcula y almacena secuencialmente el gradiente de las variables intermedias y los parámetros de la función objetivo relacionados con cada capa de la red neuronal . Backpropagation es un método para calcular gradientes de parámetros de redes neuronales

Explicación detallada del principio del algoritmo de clasificación de redes neuronales

Antes de que el algoritmo de red neuronal se volviera popular, el algoritmo más preocupado en el campo del aprendizaje automático era el " Algoritmo de máquina de vector de soporte (algoritmo SVM)". Ahora que la red neuronal está en ascenso, es posible que tenga curiosidad. De manera similar, ¿por qué apilar tantas capas de redes neuronales? Al igual que por qué el modelo de perceptrón de una sola capa no puede resolver el problema XOR, pero ¿puede resolverse agregando una capa oculta? Quien al final dotó a la red neuronal con tan maravilloso poder mágico.

En términos generales, cuantas más capas tenga la red neuronal, mayor será la capacidad de aprendizaje del modelo de red y mejor se adaptará a la distribución de datos complejos. Pero este es solo un estado ideal, porque a medida que la red se profundice, también surgirán otros problemas, como que la dificultad de cálculo también aumentará y el modelo será más difícil de entender. Por lo tanto, elegir el número apropiado de capas de red para resolver escenarios adecuados es un punto difícil en los algoritmos de redes neuronales.

Flujo de trabajo de red neuronal

Usemos un ejemplo simple para entender cómo funciona una red neuronal:
 

Flujo de trabajo de red neuronal


Figura 1: modelo de red neuronal artificial


Como se muestra en la Figura 1, A, B, C y D son cuatro personas ciegas que quieren jugar el juego "El ciego tocando el elefante". En el conjunto de datos hay los siguientes cuatro animales: elefante, jabalí, rinoceronte, alce. Entre las cuatro personas, A, B y C son responsables de tocar los animales (es decir, las características de los animales), y D es responsable de resumir y analizar la información que le envían A, B y C. Al mismo tiempo, alguien le dirá a D qué animal tocaron en esta ronda. Además, se estipula que solo cuando A, B y C toquen las siguientes tres características, informarán a D:

Característica 1: Como un pilar (pata) 
Característica 2: Como un abanico de totora (oreja) 
Característica 3: Como un látigo (cola)

Tenga en cuenta que el juego se juega en condiciones ideales, sin tener en cuenta otros factores externos. A continuación, sigue el proceso de aprendizaje supervisado, primero entrena y luego predice. El proceso de tocar animales es en realidad el proceso de obtener las características de las partes de los animales. Debido a que hay 4 animales, es necesario encuestar 4 veces aquí. La siguiente es la información resumida por D después de completar las cuatro rondas, de la siguiente manera:

La primera vez, un elefante: 
A: como un pilar (pata) 
B: como un abanico (oreja) 
C: como un látigo (cola) 
La segunda vez, un jabalí: 
B: como un abanico 
C: como un látigo 
El tercera vez, rinoceronte: 
A: como un abanico 
C: como un látigo 
La cuarta vez, alce: 
C: como un látigo

A través del análisis de la información resumida anterior, D cree que lo que informa C es lo menos valioso (es decir, el peso es pequeño), porque sea un elefante o no, lo que informa es lo mismo. D cree que, en comparación, los informes de A y B son más valiosos (peso pesado), pero habrá errores en sus respectivos informes. Después de la investigación sobre D, se encuentra que siempre que se agregue la información de A y B, cuando las dos personas tocan el [pilar y el abanico] al mismo tiempo, el animal tocado es un elefante, de modo que incluso los ciegos puede tocar el elefante a través de la solidaridad.Ven.

Para el ejemplo anterior, A/B/C/D en realidad constituye un modelo de red neuronal simple, son equivalentes a cuatro neuronas, y A/B/C es responsable de "tocar", es decir, volver a diferentes dimensiones. Los datos de entrada constituyen la capa de entrada de la red neuronal. Cuando los tres obtengan los datos, le dirán a D, y a través del análisis de resumen de D, darán el resultado de la predicción final, es decir, juzgarán si es un elefante o no, que es equivalente a la capa de salida del neural red. Las redes neuronales pueden agregar información dispersa para extraer la información más valiosa y autorizada . Si solo selecciona un nodo independiente en la red, es una generalización parcial.Por ejemplo, C piensa que todos los que tienen colas como látigos son elefantes, lo que obviamente no es razonable. La red neuronal distingue la importancia de diferente información asignando diferentes valores de peso a

la información de entrada . En el proceso de entrenamiento del modelo, ajustando el peso correspondiente de la función lineal, aumentando el peso de entrada de información valiosa y reduciendo el peso de entrada de otra información de valor, esta es la idea central de [ajustar el peso], a través de la El método anterior puede mejorar la precisión de predicción de la predicción del modelo de red.

Cuanto mayor sea el número de nodos de neuronas y el número de capas, mayor será la capacidad expresiva de la red neuronal o mayor será la capacidad de ajustar datos. Es por eso que el algoritmo de red neuronal es adecuado para procesar imágenes en comparación con otros algoritmos de aprendizaje automático. La causa raíz de tareas complejas como reconocimiento, reconocimiento de voz, etc.

algoritmo de retropropagación

Hay dos componentes importantes en el modelo de red neuronal, a saber: la función de activación y el algoritmo BP de retropropagación.

Sabemos que la red neuronal artificial está compuesta por nodos de neuronas, y el papel de estos nodos es recibir y transmitir información. Al igual que las neuronas en el cerebro, reciben estímulos externos y transmiten señales excitatorias.

En un modelo de red neuronal artificial, comenzando desde la capa de entrada, pasando a la capa de salida y finalmente devolviendo el resultado, este método de propagación de señal se denomina "propagación hacia adelante" (u operación hacia adelante, propagación hacia adelante). En el modelo de red neuronal, si la entrada pasa capa por capa hasta que la capa de salida produce una salida, la propagación hacia adelante termina.

La retropropagación es similar a la propagación directa, pero debido a que la dirección de propagación es opuesta, se denomina algoritmo de retropropagación (conocido como algoritmo BP).Este algoritmo apareció por primera vez en la década de 1960, pero no atrajo la atención hasta 1986. Después de volver a describir por Hinton et al., volvió a entrar en el campo de visión del público. Este algoritmo resuelve con éxito el problema del cálculo del [parámetro de peso] de una red neuronal de pocas capas.
 

Operación hacia adelante y retropropagación


Figura 2: Diagrama esquemático de operación hacia adelante y retropropagación

1) El principio de retropropagación

El algoritmo de retropropagación (BP) es un algoritmo de aprendizaje supervisado , es decir, aprende a través de datos de entrenamiento etiquetados, y es uno de los métodos comunes para entrenar modelos de redes neuronales artificiales. En pocas palabras, el algoritmo BP debe aprender de los errores hasta que el error se minimice, mejorando así la confiabilidad del modelo.

El proceso de aprendizaje del algoritmo BP consta de dos partes: el proceso de propagación hacia adelante y el proceso de propagación hacia atrás .

En el proceso de propagación directa, la información de entrada pasa a través de la capa oculta a través de la capa de entrada, se procesa capa por capa y se transmite a la capa de salida.Si hay un error entre el valor de salida y el valor marcado,

Luego el error se propaga desde la capa de salida a la capa de entrada a través de la capa oculta (es decir, retropropagación), y en este proceso se utiliza el algoritmo de descenso de gradiente para optimizar los parámetros de peso de las neuronas.Cuando el error llega al mínimo , el entrenamiento del modelo de red El final, es decir, el final de la retropropagación.

El diagrama de flujo es el siguiente:
 

algoritmo de retropropagación


Figura 3: Entrenamiento del modelo de red neuronal


Resumir el proceso anterior: la capa de entrada acepta datos de entrada x, e inicializa un parámetro de peso ω al mismo tiempo.Después del cálculo de la capa oculta, la capa de salida genera el resultado y se completa la operación de avance. Después de eso, compare el resultado de la capa de salida con el valor marcado para obtener el valor de desviación y propague el valor de desviación de la capa de salida a la capa de entrada (etapa de propagación hacia atrás). En esta etapa, se utiliza el algoritmo de descenso de gradiente para optimizar repetidamente los parámetros de peso Cuando el valor de desviación es el más pequeño, se obtiene un conjunto de parámetros de peso óptimos (ω).

2) Ejemplo de aplicación

El modelo de red neuronal existente es el siguiente, que consta de tres capas, a saber, la capa de entrada, la capa oculta y la capa de salida, y utiliza la función Sigmoid como función de activación de la red neuronal. Echemos un vistazo a cómo funciona el algoritmo de retropropagación y cómo lograr el ajuste de parámetros.
 

Caso de retropropagación


Figura 4: Modelo de red neuronal


Primero, haga una breve descripción de los datos del modelo de red:

Capa de entrada: i1=0,05, i2 = 0,1 

Parámetros de peso de inicialización: w1=0,15, w2=0,2, w3=0,25, w4=0,3, w5=0,4, w6=0,45, w7=0,5, w8=0,55 valor de marca de capa de salida 

( es decir, valor esperado): o1=0,01, o2=0,99 

Valor ponderado del elemento sesgado: b1=0,35, b2=0,6

A continuación, se utiliza el algoritmo de retropropagación para que la salida real y el valor marcado sean lo más parecidos posible, es decir, la desviación entre el valor real y el valor marcado sea la menor. Calculamos paso a paso de acuerdo con el proceso anterior.

Etapa de operación hacia adelante : capa de entrada -> capa oculta -> capa de salida, calcule la suma de peso de la neurona H1:
 

suma de pesos


Poniendo los datos de inicialización en la fórmula anterior, se pueden obtener los siguientes resultados:
 


El resultado de salida de H1 de la neurona de capa oculta, tenga en cuenta que este resultado debe ser mapeado por la función de activación:
 

Resultado del mapeo de la función de activación


De manera similar, la salida de la neurona H2 se puede calcular de acuerdo con el método anterior y los resultados son los siguientes:
 


El resultado de salida real de la capa de salida O1 se calcula de la siguiente manera:
 


Lleve los datos a la fórmula anterior y, a través del mapeo de la función de activación, se obtiene el resultado de la capa de salida O1:
 


De la misma manera, la salida real de O2 se puede calcular según el método anterior:
 

Resultado de salida de la capa de salida


A través del cálculo anterior, se puede concluir que el resultado de salida real está lejos del valor marcado, el resultado del cálculo es [0.75136507,0.772928465], pero el valor real marcado es [0.01,0.99]. A continuación, utilice el algoritmo de retropropagación para actualizar iterativamente los pesos y volver a calcular la salida.


En la etapa de retropropagación , capa de salida --> capa oculta --> capa de entrada, primero use la fórmula de error cuadrático medio de MSE para calcular el error total:
 

Nota: MSE es un método más conveniente para medir el "error promedio". MSE puede evaluar el grado de cambio de datos. Cuanto menor sea el valor de MSE, mejor será la capacidad de generalización del modelo de predicción.

El error total (Etotal) se obtiene a través del cálculo anterior, y este valor está compuesto "comúnmente" por todos los nodos de la red neuronal. Por lo tanto, es necesario calcular cuánto valor de desviación "aporta" cada nodo de neurona". Este es el problema central que debe resolver el algoritmo de retropropagación. Por supuesto, la solución también es muy simple, es decir, encontrar la derivada parcial, como la cantidad de pérdida que aporta el nodo A, solo calculamos la derivada parcial de este nodo.

Tomamos w5 como ejemplo para ajustarlo, para saber qué tanta influencia tiene w5 en el error total, aquí usamos la regla de la cadena para encontrar la derivada parcial, como se muestra a continuación:
 

cadena de reglas


Para obtener la derivada parcial de w5, es necesario obtener las derivadas parciales de las otras tres partes, como sigue:
 

encontrar derivadas parciales


La derivada parcial de w5 se puede obtener multiplicando los resultados de las tres partes anteriores y el valor resultante es 0,082167041. Finalmente, el valor del parámetro w5 se actualiza utilizando el algoritmo de descenso de gradiente de la siguiente manera:
 

Actualizar pesos

Nota: η es la tasa de aprendizaje en el algoritmo de descenso de gradiente, y el valor aquí es 0,5. Se ha introducido en la explicación anterior del algoritmo de descenso de gradiente. Consulte " Descenso de gradiente para Extremum ".

De esta manera, se completa la actualización del peso de w5. De manera similar, las actualizaciones de w6, w7 y w8 se pueden completar de acuerdo con el método anterior.

El proceso anterior solo se propaga desde la capa de salida a la capa oculta. Cuando se calcula el peso actualizado, comienza a propagarse desde la capa oculta a la capa de entrada y actualiza w1, w2, w3 y w4 en secuencia, completando así el primera ronda de actualización de peso. . Se puede ver que después de la primera ronda de actualización de peso, el error total disminuyó de 0,298371109 a 0,291027924. Después de 10 000 iteraciones, el error total es 0,000035085 y el valor de salida es [0,015912196, 0,984065734], que está muy cerca de lo esperado valor [0.01, 0.99] .

Resumir

El algoritmo de clasificación de redes neuronales es un algoritmo de aprendizaje supervisado. El uso del algoritmo de clasificación de redes neuronales generalmente requiere los siguientes cinco pasos:

  • Inicialice los pesos de todos los nodos de neuronas en la red neuronal;
  • La capa de entrada recibe la entrada y genera la salida a través de la propagación directa ;
  • De acuerdo con el valor previsto de la salida, la desviación se calcula en combinación con el valor real;
  • La capa de salida recibe la desviación y permite que todas las neuronas actualicen los pesos a través del mecanismo de retropropagación (inversión inversa);
  • Del paso 2 al paso 4 hay un proceso completo de entrenamiento del modelo, y este proceso se repite hasta que se minimiza el valor de la desviación.


El algoritmo de red neuronal permite que todas las neuronas realicen la actualización del peso a través del mecanismo de propagación hacia atrás. Cuando iteramos el proceso de entrenamiento anterior hasta que el valor de desviación sea el más pequeño, finalmente obtendremos un modelo de red óptimo, que realiza la mejor simulación de los datos. combinar

Supongo que te gusta

Origin blog.csdn.net/qq_38998213/article/details/132297022
Recomendado
Clasificación