Derivada de la operación tensorial: gradiente

El gradiente es la derivada de la operación tensorial. Es la extensión del concepto de derivada a la derivada de funciones multivariadas. Las funciones multivariadas son funciones que toman tensores como entrada.
Supongamos que hay un vector de entrada x, una matriz W, un objetivo y y una pérdida de función de pérdida. Puede usar W para calcular la predicción y_pred, y luego calcular la pérdida, o la distancia entre el valor predicho y_pred y el objetivo y.
y_pred = punto (W, x)
loss_value = loss (y_pred, y)
Si los datos de entrada x e y permanecen sin cambios, esto puede verse como una función que asigna W al valor de pérdida.
loss_value = f (W)
supone que el valor actual de W es W0. La derivada de f en W0 es un gradiente tensorial (f) (W0), cuya forma es la misma que W, y cada gradiente de coeficiente (f) (W0) [i, j] significa que el valor de pérdida cambia cuando se cambia W0 [i, j] Dirección y tamaño.
El gradiente tensorial (f) (W0) es la derivada de la función f (W) = valor de pérdida en W0. Se ha visto anteriormente que la derivada de la función univariada f (x) puede considerarse como la pendiente de la función f curva. De manera similar, el gradiente (f) (W0) también puede considerarse como un tensor que representa la curvatura de f (W) alrededor de W0.

Descenso de gradiente estocástico

Dada una función diferenciable, el valor mínimo se puede encontrar analíticamente en teoría: el valor mínimo de la función es el punto cuya derivada es 0, por lo que solo necesita encontrar todos los puntos cuya derivada es 0, y luego calcular en qué punto la función tiene El valor mínimo.
La aplicación de este método a una red neuronal es obtener el valor de peso correspondiente a la función de pérdida mínima analíticamente. Este método se puede lograr resolviendo W para el gradiente de ecuación (f) (W) = 0. Esta es una ecuación polinómica con N variables, donde N es el número de coeficientes en la red.

Derivación en cadena: Algoritmo de propagación hacia atrás

En el algoritmo anterior, suponemos que la función es diferenciable, por lo que su derivada se puede calcular explícitamente. En la práctica, las funciones de red neuronal contienen muchas operaciones de tensor conectadas entre sí, y cada operación tiene una derivada simple y conocida. Por ejemplo, la siguiente red f contiene tres operaciones de tensor a, byc, y tres matrices de peso W1, W2 y W3.
f (W1, W2, W3) = a (W1, b (W2, c (W3)))
Según el conocimiento del cálculo, este tipo de cadena de funciones se puede derivar utilizando la siguiente identidad, que se llama la regla de la cadena (cadena regla): (f (g (x))) '= f' (g (x)) * g '(x). Aplicando la regla de la cadena al cálculo de valores de gradiente en redes neuronales, el algoritmo resultante se denomina retropropagación (a veces también se denomina diferenciación en modo inverso). La retropropagación comienza desde el valor de pérdida final y actúa inversamente desde la capa superior hasta la capa inferior. La regla de la cadena se utiliza para calcular la contribución de cada parámetro al valor de pérdida.

Iterar sobre todos los datos de entrenamiento una vez se llama época

304 artículos originales publicados · 51 alabanzas · 140,000 visitas

Supongo que te gusta

Origin blog.csdn.net/qq_39905917/article/details/104665450
Recomendado
Clasificación