Redes neuronales: fundamentos del aprendizaje profundo

1. Concepto y derivación simple del algoritmo de retropropagación (BP)

El algoritmo de retropropagación (BP) es un algoritmo común que se utiliza junto con métodos de optimización (como el descenso de gradiente) para entrenar redes neuronales artificiales . El algoritmo BP calcula el gradiente de la función de pérdida para todos los pesos en la red y devuelve el gradiente al método de optimización para actualizar los pesos y minimizar la función de pérdida. El algoritmo primero calcula (y almacena en caché) el valor de salida de cada nodo mediante propagación hacia adelante y luego calcula la derivada parcial del valor de la función de pérdida con respecto a cada parámetro mediante propagación hacia atrás a través del gráfico .

A continuación, tomamos una capa completamente conectada, una red neuronal que utiliza la función de activación sigmoidea y Softmax + MSE como función de pérdida como ejemplo para deducir la lógica del algoritmo BP. Debido a limitaciones de espacio, aquí solo se realizará una derivación simple. Rocky escribirá un artículo dedicado sobre el proceso de derivación completo del algoritmo PB en el futuro, así que estad atentos.

Primero, veamos la expresión de la función de activación sigmoidea y sus derivadas:

expresión sigmoidea: σ ( x ) = 1 1 + e − x expresión sigmoidea: \sigma(x) = \frac{1}{1+e^{-x}}s i g m o i d expresión: σ ( x )=1+mi−x _1
sigmoide 导数: ddx σ ( x ) = σ ( x ) − σ ( x ) 2 = σ ( 1 − σ ) sigmoide 导数:\frac{d}{dx}\sigma(x) = \sigma(x) - \ sigma(x)^2 = \sigma(1- \sigma)s i g m o i d derivada:d xreσ ( x )=σ ( x )σ ( x )2=s ( 1s )

Se puede ver que la derivada de la función de activación sigmoidea se puede expresar en última instancia como una operación simple sobre el valor de salida.

Veamos la expresión de la función de pérdida MSE y sus derivadas:

Expresión de la función de pérdida MSE: L = 1 2 ∑ k = 1 K ( yk − ok ) 2 Expresión de la función de pérdida MSE: L = \frac{1}{2}\sum^{K}_{k=1 }( sí - está bien)^2Expresión de la función de pérdida MSE : L=21k = 1k( ykohk)2

Entre ellos yk y_kykRepresenta el valor de verdad fundamental (gt), ok o_kohkRepresenta el valor de salida de la red.

Derivada parcial de la función de pérdida MSE: ∂ L ∂ oi = ( oi − yi ) Derivada parcial de la función de pérdida MSE: \frac{\partial L}{\partial o_i} = (o_i - y_i)Derivada parcial de la función de pérdida MSE :∂o _yo∂L _=( oyoyyo)

Dado que la derivada parcial es simple y sólo si k = ik = ik=Sólo funcionará si i , por lo que está simplificado.

A continuación, veamos la salida del gradiente de la capa completamente conectada:

Expresión de la función de pérdida MSE: L = 1 2 ∑ i = 1 K ( oi 1 − ti ) 2 Expresión de la función de pérdida MSE: L = \frac{1}{2}\sum^{K}_{i= 1} (o_i^1-t_i)^2Expresión de la función de pérdida MSE : L=21yo = 1k( oi1tyo)2

Derivada parcial de la función de pérdida MSE: ∂ L ∂ wjk = ( ok − tk ) ok ( 1 − ok ) xj Derivada parcial de la función de pérdida MSE: \frac{\partial L}{\partial w_{jk}} = (o_k - t_k)o_k(1-o_k)x_jDerivada parcial de la función de pérdida MSE :wjk∂L _=( oktk) ok( 1ohk) Xj

Usamos δ k = ( ok − tk ) ok ( 1 − ok ) \delta_k = (o_k - t_k)o_k(1-o_k)dk=( oktk) ok( 1ohk) , se puede simplificar nuevamente:

Derivada parcial de la función de pérdida MSE: d L dwjk = δ kxj Derivada parcial de la función de pérdida MSE: \frac{dL}{dw_{jk}} = \delta_kx_jDerivada parcial de la función de pérdida MSE :d wjkre L=dkXj

Finalmente, veamos las derivadas parciales de cada capa en el algoritmo PB:

capa de salida:
∂ L ∂ wjk = δ k K oj \frac{\partial L}{\partial w_{jk}} = \delta_k^K o_jwjk∂L _=dkkohj
δ k K = ( ok − tk ) ok ( 1 − ok ) \delta_k^K = (o_k - t_k)o_k(1-o_k)dkk=( oktk) ok( 1ohk)

Penúltima capa:
∂ L ∂ wij = δ j J oi \frac{\partial L}{\partial w_{ij}} = \delta_j^J o_iwyo∂L _=djjohyo
δ j J = oj ( 1 − oj ) ∑ k δ k K wjk \delta_j^J = o_j(1 - o_j) \sum_{k}\delta_k^Kw_{jk}djj=ohj( 1ohj)kdkkwjk

Tercera capa de números invertidos:
∂ L ∂ wni = δ i I on \frac{\partial L}{\partial w_{ni}} = \delta_i^I o_nwes∂L _=diyoohnorte
δ i I = oi ( 1 − oi ) ∑ j δ j J wij \delta_i^I = o_i(1 - o_i) \sum_{j}\delta_j^Jw_{ij}diyo=ohyo( 1ohyo)jdjjwyo

Al derivarlo al revés de esta manera y luego optimizar iterativamente los parámetros de la red a través del algoritmo de descenso de gradiente, puede completar la lógica del algoritmo PB.

2. Conceptos relacionados de media móvil

La media móvil (media móvil exponencial), o la media móvil exponencialmente ponderada (media móvil exponencialmente ponderada), se puede utilizar para estimar la media local de una variable, de modo que la actualización de la variable esté relacionada con el valor histórico durante un período de tiempo .

variablevv_ _vatt __El tiempo t se registra como vt v_{t}vtθ t \theta_ {t}itpara la variable vvvatt __El valor después del entrenamiento en el momento t , cuando no se utiliza el modelo de media móvil,vt = θ t v_{t} = \theta_{t}vt=it, después de usar el modelo de media móvil, vt v_{t}vtLa fórmula de actualización es la siguiente:

En la fórmula anterior, β ϵ [ 0 , 1 ) \beta\epsilon[0,1)β ϵ [ 0 ,1 )β = 0 \beta = 0b=0 equivale a no utilizar una media móvil.

TTvariablevv en el tiempo tEl promedio móvil de v es aproximadamente igual al pasado 1 / ( 1 − β ) 1/(1-\beta)1/ ( 1β ) multiplicado porθ \thetapromedio de los valores theta . Y use la corrección de sesgo para cambiarvt v_{t}vtDividir por ( 1 − β t ) (1 - \beta^{t})( 1bt )corrige la estimación de la media.

Después de agregar la corrección de sesgo, vt v_{t}vtvbiasedt v_{biased_{t}}vsesgado _ _tLa fórmula de actualización es la siguiente:

cuando ttCuanto mayor sea t ,1 − β t 1 - \beta^{t}1bCuanto más cerca esté t de 1, los resultados obtenidos por las fórmulas (1) y (2) (vt v_{t}vtvsesgado 1 v_{sesgado_{1}}vsesgado _ _1) se acercará cada vez más.

Este β \betaCuanto mayor es β , más cerca está el valor obtenido por el promedio móvil deθ \thetaRelacionado con valores históricos de θ . Siβ = 0,9 \beta = 0,9b=0,9 , que es aproximadamente igual a los últimos 10θ \thetapromedio de los valores de θ ; siβ = 0,99 \beta = 0,99b=0,99 , que es aproximadamente igual a los últimos 100θ \thetapromedio de los valores theta .

La siguiente figura representa los resultados del cálculo de pesos de diferentes maneras:

Como se muestra en la figura anterior, el promedio móvil puede considerarse como el valor promedio de la variable en el período anterior. En comparación con la asignación directa de la variable, el valor obtenido por el promedio móvil es cada vez más suave en la imagen, con Menos fluctuación y no se verá afectado por Ciertos valores anormales hacen que el promedio móvil fluctúe mucho .

La ventaja del promedio móvil: ocupa menos memoria y no necesita guardar los últimos 10 o 100 historiales θ \thetaEl valor de θ se puede estimar como su valor medio. Aunque el promedio móvil no es tan preciso como calcular el promedio guardando todos los valores históricos, este último consume más memoria y es más costoso desde el punto de vista computacional.

¿Por qué se utiliza el promedio móvil durante las pruebas?

La media móvil puede hacer que el modelo sea más sólido con los datos de prueba .

Cuando se utiliza el algoritmo de descenso de gradiente estocástico para entrenar una red neuronal, el uso de un promedio móvil puede mejorar hasta cierto punto el rendimiento del modelo final en los datos de prueba en muchas aplicaciones.

Los pesos de la red neuronal durante el entrenamiento pesos pesosw e i g h t s usa un promedio móvil y luego usa los pesosdespués del promedio móvil durante la pruebaw e i g h t s se utiliza como peso durante la prueba, lo que tiene un mejor efecto en los datos de la prueba. Porque los pesos pesandespués de la media móvil.La actualización de los pesos es más suave . Para el descenso de gradiente estocástico, la actualización más suave significa que no se desviará mucho del punto óptimo. Por ejemplo, suponiendo una caída = 0,999, una comprensión más intuitiva es que durante las últimas 1000 veces de entrenamiento, el modelo ya ha sido entrenado y está en la etapa de jitter, y el promedio móvil equivale a promediar los últimos 1000 jitters, de modo que Las pesas serán más robustas.

Supongo que te gusta

Origin blog.csdn.net/weixin_51390582/article/details/135172910
Recomendado
Clasificación