Optimización de descenso de gradiente

9

Estoy tratando de entender la optimización de descenso de gradiente en algoritmos ML (aprendizaje automático). Tengo entendido que hay una función donde el costo es el objetivo de minimizar el error y - y . En un escenario donde los pesos w 1 , w 2 se están optimizando para dar el error mínimo y se están utilizando derivadas parciales, ¿cambia w 1 y w 2 en cada paso o es una combinación (por ejemplo, solo en algunas iteraciones w 1 se cambia y cuando w 1 ya no reduce el error, la derivada comienza con w 2y^yw1,w2w1w2w1w1w2)? La aplicación podría ser un modelo de regresión lineal, un modelo de regresión logística o algoritmos de refuerzo.

Pb89
fuente

Respuestas:

10

El descenso de gradiente actualiza todos los parámetros en cada paso. Puedes ver esto en la regla de actualización:

w(t+1)=w(t)-ηF(w(t)).

Como el gradiente de la función de pérdida F(w) tiene un valor vectorial con una dimensión que coincide con la de w , todos los parámetros se actualizan en cada iteración.

La tasa de aprendizaje η es un número positivo que reescala el gradiente. Dar un paso demasiado grande puede rebotar sin cesar en la superficie de pérdida sin mejorar su función de pérdida; un paso demasiado pequeño puede significar un progreso tediosamente lento hacia lo óptimo.

Aunque podría estimar los parámetros de regresión lineal utilizando el descenso de gradiente, no es una buena idea.

Del mismo modo, hay mejores formas de estimar los coeficientes de regresión logística.

Sycorax dice reinstalar a Mónica
fuente
Entonces, ¿el algoritmo puede probar diferentes combinaciones como aumentar w1, disminuir w2según la dirección de la derivada parcial para alcanzar los mínimos locales y solo para confirmar que el algoritmo no siempre dará los mínimos globales siempre?
Pb89
¿y la derivada parcial también ayuda a explicar cuánto aumento o disminución se debe hacer w1y w2eso se hace aprendiendo la tasa / contracción mientras que la derivada parcial solo proporciona dirección de descenso?
Pb89
El gradiente es un vector, por lo que da una dirección y una magnitud. Un vector puede ser escalado arbitrariamente por un escalar positivo y tendrá la misma dirección, pero el cambio de escala cambiará su magnitud.
Sycorax dice Reinstate Monica el
Si la magnitud también es dada por el gradiente, ¿cuál es el papel de la contracción o la tasa de aprendizaje?
Pb89
F(X)w(t)η
7

Cuando la optimización ocurre a través de derivadas parciales, en cada turno cambia tanto w1 como w2 o es una combinación como en algunas iteraciones solo se cambia w1 y cuando w1 no reduce más el error, la derivada comienza con w2 - a alcanzar los mínimos locales?

En cada iteración, el algoritmo cambiará todos los pesos al mismo tiempo según el vector de gradiente. De hecho, el gradiente es un vector. La longitud del gradiente es igual al número de pesos en el modelo.

Por otro lado, existía el cambio de un parámetro a la vez y se llama algoritmo decente de coordenadas , que es un tipo de algoritmo de optimización libre de gradiente . En la práctica, puede no funcionar tan bien como el algoritmo basado en gradiente.

Aquí hay una respuesta interesante sobre el algoritmo libre de gradiente

¿Es posible entrenar una red neuronal sin propagación hacia atrás?

Haitao Du
fuente
1

El objetivo del descenso de gradiente es minimizar la función de costo. Esta minimización se logra ajustando los pesos, para su caso w1 y w2. En general, podría haber n tales pesos.

El descenso de gradiente se realiza de la siguiente manera:

  1. Inicializar pesos al azar.
  2. Calcule la función de costo y el gradiente con pesos inicializados.
  3. Pesos de actualización: puede suceder que el gradiente sea O para algunos pesos, en ese caso esos pesos no muestran ningún cambio después de la actualización. por ejemplo: Digamos que el gradiente es [1,0], el W2 permanecerá sin cambios.
  4. verifique la función de costo con ponderaciones actualizadas, si la disminución es lo suficientemente aceptable, continúe las iteraciones, de lo contrario terminará.

mientras se actualizan los pesos cuyo peso (W1 o W2) se cambia, se decide por gradiente. Todos los pesos se actualizan (algunos pesos pueden no cambiar según el gradiente).

A Santosh Kumar
fuente
"si el decremento es lo suficientemente aceptable, continúe las iteraciones, de lo contrario terminará", ¿existe un valor predeterminado que se aplique en paquetes de python ( sklearn) o paquetes R como caret? ¿Puede ser especificado por el usuario solo en una función de descenso de gradiente creada manualmente?
Pb89
1

Gradientcente se aplica a ambos w1y w2para cada iteración. Durante cada iteración, los parámetros se actualizan según los gradientes. Probablemente tendrían una derivada parcial diferente.

Mira aquí .

Hola Mundo
fuente