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 2)? La aplicación podría ser un modelo de regresión lineal, un modelo de regresión logística o algoritmos de refuerzo.
w1
, disminuirw2
segú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?w1
yw2
eso se hace aprendiendo la tasa / contracción mientras que la derivada parcial solo proporciona dirección de descenso?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?
fuente
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:
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).
fuente
sklearn
) o paquetes R comocaret
? ¿Puede ser especificado por el usuario solo en una función de descenso de gradiente creada manualmente?Gradientcente se aplica a ambos
w1
yw2
para 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í .
fuente