[Serie de aprendizaje automático vernáculo] Descenso de gradiente vernáculo

Descenso del gradiente vernáculo

El descenso de gradientes es uno de los algoritmos de optimización más comunes en el aprendizaje automático. Comprender su implementación básica es la base para comprender todos los algoritmos de optimización avanzados que se basan en ella.

Insertar descripción de la imagen aquí

mejoramiento

Insertar descripción de la imagen aquí

En el aprendizaje automático, la optimización es el proceso de encontrar parámetros o pesos ideales para maximizar o minimizar una función de costo o pérdida. El máximo global es el valor máximo sobre el dominio de la función, mientras que el mínimo global es el valor mínimo de la función. Si bien sólo hay un máximo y/o mínimo global, puede haber muchos máximos y mínimos locales. Un valor mínimo o máximo global de la función de costo indica que los parámetros del modelo generan predicciones cercanas al objetivo real. Los máximos y mínimos locales pueden causar problemas al entrenar un modelo, por lo que siempre debes estar consciente de su presencia. La imagen de arriba muestra un ejemplo de cada tipo de máximo/mínimo.

Existen varias categorías diferentes de algoritmos de optimización: algoritmos de bracketing, algoritmos de descenso local, algoritmos de primer orden y algoritmos de segundo orden. Este artículo se centra en algoritmos de primer orden para la optimización utilizando derivadas de primer orden. En esta categoría, el algoritmo de descenso de gradiente es el más popular.

Descenso de gradiente 1D

El descenso de gradiente es un algoritmo de optimización iterativo de primer orden que se utiliza para minimizar una función de costo. Al utilizar derivadas parciales, direcciones y tasas de aprendizaje, el descenso de gradiente reduce el error o la diferencia entre los valores previstos y reales.

La idea detrás del descenso de gradiente es que la derivada de cada peso revelará su dirección y su impacto en la función de costos. En la siguiente figura, la función de costo es f ( w ) = w 2 f(w) = w^2f ( w )=w2 , que es una parábola. El valor mínimo se ubica en (0,0) y el peso actual es− 5,6 -5,65.6 . La pérdida actual es31,36 31,3631.36 , la línea naranja representa la derivada, o la tasa de cambio actual del peso, que es− 11.2 -11.211.2 . Esto muestra que los pesos deben moverse "cuesta abajo" - o volverse correctos - para alcanzar una pérdida de0 00 . Aquí es donde entra en juego el descenso de gradientes.

Insertar descripción de la imagen aquí

El resultado se minimiza escalando el gradiente con un valor llamado tasa de aprendizaje y restando el gradiente escalado del valor actual de sus pesos. Esto se puede ver en la imagen de abajo. En diez iteraciones ( w 0 → w 9 w_0 \to w_9w0w9), se utiliza una tasa de aprendizaje de 0,1 para minimizar la función de costos.

Insertar descripción de la imagen aquí

En los siguientes pasos del algoritmo, los pesos vienen dados por www significa,jjj representa su valor actual,j + 1 j+1j+1 por su nuevo valor. La función de costo que mide el error esfff significa que la derivada parcial es el gradiente de la función de costos con respecto a los parámetros. La tasa de aprendizaje utilizaα \alphadijo α .

  1. Elija la tasa de aprendizaje y el número de iteraciones.

  2. Seleccionar valores aleatorios para los parámetros.

  3. Actualice los parámetros con la siguiente fórmula.

wj + 1 = wj − α ∂ ∂ wjf ( wj ) w_{j+1} = w_j-\alpha\frac{\partial}{\partial_{w_j}}f(w_j)wj + 1=wjawjf ( wj)

  1. Repita el paso tres hasta alcanzar el número máximo de iteraciones.

Al tomar derivadas parciales o gradientes de una función, solo se evalúa un parámetro a la vez y los demás parámetros se tratan como constantes. Para el ejemplo anterior, f ( w ) = w 2 f(w) = w^2f ( w )=w2 , solo hay un parámetro, por lo que la derivada esf ′ ( w ) = 2 w f'(w) = 2wF (w)=2w._ _ _ La fórmula para actualizar los parámetros es la siguiente:
wj + 1 = wj − α ( 2 wj ) w_{j+1} = w_j-\alpha(2w_j)wj + 1=wjun ( 2 semanasj)
suponiendo que la tasa de aprendizaje es0,1 0,10,1 , el peso inicial es− 5,6 -5,65.6 , las primeras diez iteraciones son las siguientes:

Insertar descripción de la imagen aquí

La tabla anterior muestra cómo cada componente de la fórmula ayuda a minimizar las pérdidas. Al escalar negativamente la pendiente, los nuevos pesos se acercan a 0 y la pendiente se vuelve menos pronunciada. A medida que la pendiente se hace progresivamente más pequeña, cada iteración produce actualizaciones más pequeñas.

Esta implementación básica del descenso de gradiente se puede aplicar a casi cualquier función de pérdida, incluidas aquellas con una gran cantidad de pesos.

descenso del gradiente de error cuadrático medio

¿Qué es el error cuadrático medio?

Una función de pérdida popular en el aprendizaje automático es el error cuadrático medio (MSE).
MSE = 1 n ∑ i = 1 n ( Y ^ i − Y i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(\hat Y_i-Y_i)^2MSE=norte1yo = 1norte(Y^yoYyo)2

Esta función se utiliza para calcular la predicción del modelo ( Y ^ \hat YY^ ) y resultado esperado (YYY ) diferencia. Luego, la diferencia se eleva al cuadrado para garantizar que la salida sea siempre positiva. Esto significa que primero puedes considerarY ^ \hat YY^ Y Y Y. _ Esto se hace en un conjunto de tamañonn.Repita para n puntos. Sumando las diferencias al cuadrado de todos estos puntos y dividiendo pornnn , para obtener el error cuadrático medio (error). Esta es una forma sencilla de evaluar el rendimiento del modelo en todos los puntos simultáneamente. Aquí hay un ejemplo simple:

Insertar descripción de la imagen aquí

En esta fórmula, Y ^ \hat YY^ representa la predicción del modelo. En la regresión, la ecuación del modelo puede contener uno o más pesos, según los requisitos de los datos de entrenamiento. La siguiente tabla refleja estas situaciones.

Número de pesas Y ^ \hat Y Y^ MSE
1 wX wXwX 1 norte ∑ i = 1 norte ( w X i − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2norte1yo = 1norte( w XyoYyo)2
2 w 1 X + w 0 w_1X+w_0w1X+w0 1 norte ∑ i = 1 norte ( w 1 X i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2norte1yo = 1norte( w1Xyo+w0Yyo)2
3 w 2 X 2 + w 1 X 1 + w 0 w_2X_2+w_1X_1+w_0w2X2+w1X1+w0 1 norte ∑ i = 1 norte ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n(w_2X_{2i}+ w_1X_{1i}+w_0-Y_i)^2norte1yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)2
kkk semana X k + ⋯ + w 2 X 2 + w 1 X 1 + w 0 w_kX_k+\dots+w_2X_2+w_1X_1+w_0wkXk++w2X2+w1X1+w0 1 n ∑ i = 1 n ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 \frac{1}{n}\sum_{i=1}^n (w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2

Ahora, para realizar el descenso de gradiente utilizando cualquiera de estas ecuaciones, se deben calcular sus gradientes. El gradiente contiene la derivada parcial de la función:
∇ MSE = [ ∂ MSE ∂ w 0 … ∂ MSE ∂ wk ] \nabla \text{MSE} = \begin{bmatrix} \frac{\partial \text{MSE}}{ \partial w_0 } \\ \dots\\ \frac{\partial \text{MSE}}{\partial w_k} \end{bmatrix}EEM= w0 EEMwk EEM
Se deben calcular las derivadas parciales para cada peso. Las derivadas parciales se calculan de la misma manera que las derivadas ordinarias, pero cada variable no considerada debe tratarse como una constante.

peso único

∇ 1 n ∑ i = 1 n ( w X i − Y i ) 2 = [ ∂ ∂ w [ 1 n ∑ i = 1 n ( w X i − Y i ) 2 ] ] = 2 n ∑ i = 1 n X i ( w X i − Y i ) \nabla \frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2 = \Bigg[\frac{\partial}{\partial w} \Grande[\frac{1}{n}\sum_{i=1}^n(wX_i-Y_i)^2\Grande]\Bigg] = \frac{2}{n}\sum_{i=1}^ nX_i(wX_i-Y_i)norte1yo = 1norte( w XyoYyo)2=[w[norte1yo = 1norte( w XyoYyo)2 ]]=norte2yo = 1norteXyo( w XyoYyo)

Cuando se utiliza solo un peso para encontrar el gradiente de MSE, se puede calcular wwLa derivada de w . XXX Y Y Y ynnn debe tratarse como una constante. Teniendo esto en cuenta, las fracciones y sumas se pueden mover fuera de las derivadas:
1 n ∑ i = 1 n ∂ ∂ w [ ( w X i − Y i ) 2 ] \frac{1}{n}\sum_{i= 1}^n\frac{\partial}{\parcial w}\Big[(wX_i-Y_i)^2\Big]norte1yo = 1nortew[ ( wX _yoYyo)2 ]
A partir de ahora, puedes usar la regla de la cadena para calcularwww的导数:
1 n ∑ i = 1 n [ 2 ( w X i − Y i ) ∂ ∂ w ( w X i − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w X i − Y i ) X i ] \frac{1}{n}\sum_{i=1}^n\Big[2(wX_i-Y_i)\frac{\partial}{\partial w}(wX_i-Y_i)\Big]\\ \frac{1}{n}\sum_{i=1}^n\Big[2(wX_i-Y_i)X_i\Big]norte1yo = 1norte[ 2 ( wX _yoYyo)w( w XyoYyo) ]norte1yo = 1norte[ 2 ( wX _yoYyo) Xyo]
Esto se puede simplificar a:
2 n ∑ i = 1 n X i ( w X i − Y i ) \frac{2}{n}\sum_{i=1}^nX_i(wX_i-Y_i)norte2yo = 1norteXyo( w XyoYyo)

doble peso

∇ 1 norte ∑ yo = 1 norte ( w 1 X yo + w 0 − Y yo ) 2 = [ ∂ ∂ w 0 [ 1 norte ∑ yo = 1 norte ( w 1 X yo + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 ] ] = [ 2 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 n ∑ i = 1 n X i ( w 1 X i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i) ^2 &= \begin{bmatrix} \frac{\partial}{\partial w_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2\ Grande] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i)^2\Big] \end{ bmatrix}\\ &=\begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i) \\ \frac{2}{n}\sum_{i= 1}^nX_i(w_1X_i+w_0-Y_i) \end{bmatrix} \end{alineado}norte1yo = 1norte( w1Xyo+w0Yyo)2= w0[norte1yo = 1norte( w1Xyo+w0Yyo)2 ]w1[norte1yo = 1norte( w1Xyo+w0Yyo)2 ] =[norte2yo = 1norte( w1Xyo+w0Yyo)norte2yo = 1norteXyo( w1Xyo+w0Yyo)]

Cuando se utilizan dos pesos para encontrar el gradiente de MSE, los dos parámetros w 0 w_0 deben serw0suma w 1 w_1w1Encuentra derivadas parciales. par w 0 w_0w0Al encontrar derivadas parciales, XXX Y Y Ynnn sumaw 1 w_1w1se trata como una constante. par w 1 w_1w1Al encontrar derivadas parciales, XXX Y Y Ynnn sumaw 0 w_0w0se trata como una constante. Puedes repetir los mismos pasos que en el ejemplo anterior. En primer lugar, las fracciones y sumas se pueden trasladar fuera de las derivadas.
[ 1 norte ∑ i = 1 norte ∂ ∂ w 0 ( w 1 X i + w 0 − Y i ) 2 1 n ∑ i = 1 norte ∂ ∂ w 1 ( w 1 X i + w 0 − Y i ) 2 ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\frac{\partial}{\partial w_0}(w_1X_i+w_0-Y_i)^2 \\ \frac{1}{ n}\sum_{i=1}^n\frac{\partial}{\partial w_1}(w_1X_i+w_0-Y_i)^2 \end{bmatrix}[norte1yo = 1nortew0( w1Xyo+w0Yyo)2norte1yo = 1nortew1( w1Xyo+w0Yyo)2]
然后用链式法则计算每个权重的导数:
[ 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) ∂ ∂ w 0 ( w 1 X i + w 0 − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) ∂ ∂ w 1 ( w 1 X i + w 0 − Y i ) ] ] \begin{bmatrix} \frac{1 }{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)\frac{\partial}{\partial w_0}(w_1X_i+w_0-Y_i)\Big] \\ \frac{ 1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)\frac{\partial}{\partial w_1}(w_1X_i+w_0-Y_i)\Big] \end{bmatrix } norte1yo = 1norte[ 2 ( w1Xyo+w0Yyo)w0( w1Xyo+w0Yyo) ]norte1yo = 1norte[ 2 ( w1Xyo+w0Yyo)w1( w1Xyo+w0Yyo) ]

[ 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) 1 ] 1 n ∑ i = 1 n [ 2 ( w 1 X i + w 0 − Y i ) X i ] ] \ comenzar{bmatrix} \frac{1}{n}\sum_{i=1}^n\Big[2(w_1X_i+w_0-Y_i)1\Big] \\ \frac{1}{n}\sum_{i =1}^n\Grande[2(w_1X_i+w_0-Y_i)X_i\Grande] \end{bmatrix} norte1yo = 1norte[ 2 ( w1Xyo+w0Yyo) 1 ]norte1yo = 1norte[ 2 ( w1Xyo+w0Yyo) Xyo]

Conciliación:
[ 2 n ∑ i = 1 n ( w 1 X i + w 0 − Y i ) 2 n ∑ i = 1 n X i ( w 1 X i + w 0 − Y i ) ] \begin{ bmatrix} \ frac{2}{n}\sum_{i=1}^n(w_1X_i+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_i(w_1X_i+w_0- Y_i) \ fin {bmatriz}[norte2yo = 1norte( w1Xyo+w0Yyo)norte2yo = 1norteXyo( w1Xyo+w0Yyo)]
Tenga en cuenta que la única diferencia entre las ecuaciones esXXX. _

triple peso

∇ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 = [ ∂ ∂ w 0 [ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 2 [ 1 norte ∑ yo = 1 norte ( w 2 X 2 yo + w 1 X 1 yo + w 0 − Y yo ) 2 ] ] = [ 2 norte ∑ yo = 1 norte ( w 2 X 2 yo + w 1 X 1 yo + w 0 − Y yo ) 2 norte ∑ yo = 1 norte X 1 yo ( w 2 X 2 yo + w 1 X 1 yo + w 0 − Y yo ) 2 norte ∑ yo = 1 norte X 2 yo ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_{i=1}^n&(w_2X_{2i}+w_1X_{1i }+w_0-Y_i)^2 \\ &= \begin{bmatrix} \frac{\partial}{\partial w_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_2X_ {2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^ n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_2}\Big[\frac{1}{n}\sum_{i= 1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Grande] \end{bmatrix}\\&=\begin{bmatrix} \frac{2}{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\ sum_{i=1}^nX_{1i}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{2i}(w_2X_ {2i}+w_1X_{1i}+w_0-Y_i) \end{bmatrix} \end{aligned}norte1yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)2= w0[norte1yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)2 ]w1[norte1yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)2 ]w2[norte1yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)2 ] = norte2yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX1 yo( w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX2i _( w2X2i _+w1X1 yo+w0Yyo)

Cuando se utilizan tres pesos para encontrar el gradiente MSE, se debe tomar la derivada parcial para cada parámetro. Al tomar derivadas parciales de un peso, XXX Y Y Ynnn y los otros dos pesos se tratarán como constantes. Se pueden repetir los mismos pasos que en el ejemplo anterior. En primer lugar, las fracciones y sumas se pueden trasladar fuera de las derivadas.
[ 1 n ∑ i = 1 n ∂ ∂ w 0 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 1 n ∑ i = 1 n ∂ ∂ w 1 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 1 n ∑ i = 1 n ∂ ∂ w 2 ( w 2 X 2 i + w 1 \frac{1}{n}\sum_{i=1}^n \frac{\partial}{\partial w_0}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ \frac{ 1}{n}\sum_{i=1}^n\frac{ \partial}{\partial w_1}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ \frac{1}{ n}\sum_{i=1}^n\frac{\partial} {\parcial w_2}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \end{bmatrix} norte1yo = 1nortew0( w2X2i _+w1X1 yo+w0Yyo)2norte1yo = 1nortew1( w2X2i _+w1X1 yo+w0Yyo)2norte1yo = 1nortew2( w2X2i _+w1X1 yo+w0Yyo)2
然后用链式法则计算每个权重的导数:
[ 1 n ∑ i = 1 n [ 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ∂ ∂ w 0 ( w 2 X 2 yo + w 1 X 1 yo + w 0 − Y yo ) ] 1 norte ∑ yo = 1 norte [ 2 ( w 2 X 2 yo + w 1 X 1 yo + w 0 − Y yo ) ∂ ∂ w 1 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] 1 n ∑ i = 1 n [ 2 ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ∂ ∂ w 1 ( w 3 X 2 i + w 1 X 1 i + w 0 − Y i ) ] ] \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n\Big[2(w_2X_{2i) }+w_1X_{1i}+w_0-Y_i)\frac{\partial}{\partial w_0}(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\Big] \\ \frac{1}{n} \sum_{i=1}^n\Big[2(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\frac{\partial}{\partial w_1}(w_2X_{2i}+w_1X_{1i}+ w_0-Y_i)\Big] \\ \frac{1}{n}\sum_{i=1}^n\Big[2(w_2X_{2i}+w_1X_{1i}+w_0-Y_i)\frac{\partial }{\parcial w_1}(w_3X_{2i}+w_1X_{1i}+w_0-Y_i)\Big] \end{bmatrix} norte1yo = 1norte[ 2 ( w2X2i _+w1X1 yo+w0Yyo)w0( w2X2i _+w1X1 yo+w0Yyo) ]norte1yo = 1norte[ 2 ( w2X2i _+w1X1 yo+w0Yyo)w1( w2X2i _+w1X1 yo+w0Yyo) ]norte1yo = 1norte[ 2 ( w2X2i _+w1X1 yo+w0Yyo)w1( w3X2i _+w1X1 yo+w0Yyo) ]
最后化简为:
[ 2 n ∑ i = 1 n ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 1 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 2 i ( w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{bmatrix} \frac{2 }{n}\sum_{i=1}^n(w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{1i} (w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i=1}^nX_{2i}(w_2X_{2i}+w_1X_{1i}+w_0- Y_i) \end{bmatrix} norte2yo = 1norte( w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX1 yo( w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX2i _( w2X2i _+w1X1 yo+w0Yyo)
Como se mencionó anteriormente, la única diferencia entre cada derivada parcial es la característica de entrada XXX._ _ Esto se puede generalizar a kken el siguiente ejemplo.k pesos.

Más de tres pesos

∇ 1 n ∑ i = 1 n ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 = [ ∂ ∂ w 0 [ 1 n ∑ i = 1 n ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 1 [ 1 n ∑ i = 1 n ( semana X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ∂ ∂ w 2 [ 1 n ∑ i = 1 n ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ⋮ ∂ ∂ wk [ 1 n ∑ i = 1 n ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 ] ] = [ 2 n ∑ i = 1 norte ( sem X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 1 i ( sem X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) 2 n ∑ i = 1 n X 2 i ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ⋮ 2 n ∑ i = 1 n X ki ( wk X ki + ⋯ + w 2 X 2 i + w 1 X 1 i + w 0 − Y i ) ] \begin{aligned} \nabla \frac{1}{n}\sum_ {i=1}^n&(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2 \\ &= \begin{bmatrix} \frac{\partial}{\partialw_0}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_1}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i }+w_0-Y_i)^2\Big] \\ \frac{\partial}{\partial w_2}\Big[\frac{1}{n}\sum_{i=1}^n(w_kX_{ki}+ \dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \\ \vdots \\ \frac{\partial}{\partial w_k}\Big[\frac{1}{n} \sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i)^2\Big] \end{bmatrix}\\ &=\begin{bmatrix } \frac{2}{n}\sum_{i=1}^n(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n }\sum_{i=1}^nX_{1i}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \frac{2}{n}\sum_{i =1}^nX_{2i}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \\ \vdots \\ \frac{2}{n}\sum_{i= 1}^nX_{ki}(w_kX_{ki}+\dots+w_2X_{2i}+w_1X_{1i}+w_0-Y_i) \end{bmatrix} \end{aligned}norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2= w0[norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2 ]w1[norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2 ]w2[norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2 ]wk[norte1yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)2 ] = norte2yo = 1norte( wkXa++w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX1 yo( wkXa++w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteX2i _( wkXa++w2X2i _+w1X1 yo+w0Yyo)norte2yo = 1norteXa( wkXa++w2X2i _+w1X1 yo+w0Yyo)

Cuando se usa kkAl calcular el gradiente de MSE para k pesos, se debe calcular la derivada parcial para cada parámetro. Al tomar una derivada parcial con respecto a un peso,XXX Y Y Ynnn y otrosk − 1 k-1k1 peso se tratará como una constante. Como se muestra en el ejemplo anterior, cuando los pesos exceden dos, solo cambian las características de entrada de cada derivada parcial.

derivación de matrices

La fórmula anterior muestra cómo realizar un descenso de gradiente sin aprovechar vectores y matrices. Sin embargo, la mayor parte del aprendizaje automático se realiza mejor mediante operaciones matriciales o tensoriales. El resto de este artículo se dedicará al uso del cálculo matricial para derivar las derivadas del MSE; para obtener más información, lea Vernacular Tensors y Vernacular Vector Dot Products . Primero, Y ^ \hat YY^ Y Y Se debe entender que Y tiene un tamaño ( n × 1 n\times1norte×1 ) matriz. Ambos son 1 columnannMatrices de n filas, o pueden tratarse como vectores de columna, lo que cambia su notación a minúsculas:
MSE = 1 n ∑ i = 1 n ( yi − y ^ i ) 2 MSE = \frac{1}{n }\sum_ {i=1}^n(y_i - \hat y_i)^2MSE=norte1yo = 1norte( yyoy^yo)2
MSE 是 y ^ \hat y y^ y y Resta vectorial por elementos entre y , seguida del producto escalar de la diferencia consigo mismo. Recuerde que los productos escalares solo se pueden calcular si las dimensiones son compatibles. Dado que el objetivo es obtener una salida escalar, se debe transponer el primer vector.
MSE = 1 n ( y − y ^ ) T ( y − y ^ ) MSE = \frac{1}{n}(y - \hat y)^T(y - \hat y)MSE=norte1( yy^)T (yy^)
entonces,y ^ \hat yy^Puede ser reemplazado por X w XwXw para regresión. XXX es un tamaño de (nnn muestras,núm númmatriz de n u m características),www es el tamaño (num numn u m características,1 11 ) vector de columna.
MSE = 1 n ( y − X w ) T ( y − X w ) MSE = \frac{1}{n}(y - Xw)^T(y - Xw)MSE=norte1( yXw )T (yXw )
El siguiente paso es simplificar la ecuación antes de tomar la derivada. Por favor tenga en cuenta quewww yXXLas X intercambian lugares para garantizar que su multiplicación siga siendo válida: (1 11 ,número númeron u m características) x (num numn u m características,nnn muestras) = ​​(1 11 ,nnn个样本)。
MSE = 1 n ( y T − w TXT ) ( y − X w ) = 1 n ( y T y − y TX w − w TXT y + w TXTX w ) \begin{aligned} MSE &= \frac{1}{n}(y^T - w^TX^T)(y - Xw) \\ &= \frac{1}{n}(y^Ty - y^TXw - w^TX^Ty + w^TX^TXw) \end{alineado}MSE=norte1( ytwTX _T )(yXw )=norte1( yT yyT_ _wTX _T y+wTX _T Xw).
Tenga en cuenta que el tercer término se puede transponer para reescribirlo y luego fusionarlo con el segundo término.
MSE = 1 n ( y T y − y TX w − ( w TXT y ) T + w TXTX w ) = 1 n ( y T y − y TX w − y TX w + w TXTX w ) = 1 n ( y T y − 2 y TX w + w TXTX w ) \begin{aligned} MSE &= \frac{1}{n}(y^Ty - y^TXw - (w^TX^Ty)T + w^TX^TXw ) \\ &= \frac{1}{n}(y^Ty - y^TXw - y^TXw + w^TX^TXw) \\ &= \frac{1}{n}(y^Ty - 2y ^TXw + w^TX^TXw) \end{alineado}MSE=norte1( yT yyT_ _( wTX _T y)T+wTX _T Xw)=norte1( yT yyT_ _yT_ _+wTX _T Xw)=norte1( yT y2 añosT_ _+wTX _T Xw).
A continuación, encuentre la derivada parcial de MSE con respecto a los pesos.
∂ MSE ∂ w = 1 n ∂ ∂ w ( y T y − 2 y TX w + w TXTX w ) \frac{\partial MSE}{\partial w} = \frac{1}{n}\frac{\partial }{\w parcial}(y^Ty - 2y^TXw + w^TX^TXw)w EEM=norte1w( yT y2 añosT_ _+wTX _T Xw)
这相当于对每一项求导:
∂ MSE ∂ w = 1 n [ ∂ ∂ w ( y T y ) − 2 ∂ ∂ w ( y TX w ) + ∂ ∂ w ( w TXTX w ) ] \ frac{\partial MSE}{\partial w} = \frac{1}{n}\Big[\frac{\partial}{\partial w}(y^Ty) - 2\frac{\partial}{\partial w}(y^TXw) + \frac{\partial}{\partial w}(w^TX^TXw)\Grande]w EEM=norte1[w( yT y)2w( yT Xw)+w( wTX _T Xw)]
exceptowwCada término excepto w puede tratarse como una constante. La derivada de cada componente se puede calcular usando la siguiente regla:
d A xx = A , dx TA x = AT , dx TA xx = 2 x TA , d A x = 0 \frac{dAx}{x} = A, \ quad \ frac{dx^TA}{x} = A^T, \quad \frac{dx^TAx}{x} = 2x^TA, \quad \frac{dA}{x} = 0Xd A x=un ,Xd xTA _=AT ,Xd xT Ax=2x _TA ,_Xd un=El primer término de la ecuación 0
se convierte en 0 siguiendo la cuarta regla. El segundo ítem sigue la primera regla y el tercer ítem sigue la tercera regla.
MSE = 1 n ( − 2 y TX + 2 w TXTX ) = 2 n ( − y TX + w TXTX ) \begin{aligned} MSE &= \frac{1}{n}(-2y^TX+2w^TX ^TX) \\ &= \frac{2}{n}(-y^TX+w^TX^TX) \end{aligned}MSE=norte1( 2 añosTX _+2 semanas _TX _TX )_=norte2( yTX _+wTX _Tx )_
Esta ecuación se puede utilizar para el descenso de gradiente mientras se calculan todas las derivadas parciales:
wj + 1 = wj − α 2 n ( − y TX + wj TXTX ) w_{j+1} = w_j-\alpha\frac{2}{n} (-y^TX+w_j^TX^TX)wj + 1=wjanorte2( yTX _+wjtXTX )_

en conclusión

Los detalles anteriores han deducido la fórmula de descenso de gradiente cuando se utiliza MSE como función de pérdida. Le mostraré en detalle cómo utilizar el descenso de gradiente en "Regresión lineal simple".

Supongo que te gusta

Origin blog.csdn.net/jarodyv/article/details/130910325
Recomendado
Clasificación