¿Por qué se requiere el descenso de gradiente?

9

Cuando podemos diferenciar la función de costo y encontrar parámetros resolviendo ecuaciones obtenidas a través de la diferenciación parcial con respecto a cada parámetro y descubrir dónde la función de costo es mínima. También creo que es posible encontrar múltiples lugares donde las derivadas son cero, por lo tanto, podemos verificar todos esos lugares y podemos encontrar mínimos globales

¿Por qué se realiza el descenso de gradiente en su lugar?

Niranjan Kotha
fuente
2
¿Cómo se establece genéricamente las derivadas a 0 para una función? Con algoritmos, como el descenso de gradiente.
Cliff AB
3
Puede pensar en el descenso de gradiente como el método utilizado para resolver las ecuaciones a las que se refiere. Si crees que puedes resolver genéricamente tales ecuaciones con una manipulación algebraica inteligente, te invito a que intentes hacerlo para la regresión logística.
Matthew Drury
1
También vea stackoverflow.com/questions/26804656/…
Glen_b -Reinstate Monica
No puedes resolver todo analíticamente. Incluso si pudiera, si hubiera, innumerables ceros, tardaría mucho tiempo en verificar todos los puntos críticos.
Pinocho

Respuestas:

7

Incluso en el caso de, por ejemplo, modelos lineales, donde tiene una solución analítica, puede ser mejor utilizar un solucionador iterativo.

Como ejemplo, si consideramos la regresión lineal, la solución explícita requiere invertir una matriz que tenga complejidad . Esto se vuelve prohibitivo en el contexto de big data.O(N3)

Además, muchos problemas en el aprendizaje automático son convexos, por lo que el uso de gradientes garantiza que lleguemos a los extremos.

Como ya se señaló, todavía hay problemas relevantes no convexos, como las redes neuronales, donde los métodos de gradiente (retropropagación) proporcionan un solucionador eficiente. Nuevamente, esto es especialmente relevante para el caso del aprendizaje profundo.

jpmuc
fuente
2
Invertir una matriz es un poco raro aquí ya que la descomposición de QR con pivote parcial es más precisa y rápida, pero sí, QR sigue siendo . Estoy de acuerdo en que para sistemas suficientemente grandes (por ejemplo,> 10,000 variables) eso puede comenzar a convertirse en un problema. El enfoque moderno y de alta tecnología consiste en aproximar la solución con métodos iterativos de subespacio de Krylov (p. Ej., Gradiente conjugado, GMRES). O(n3)
Matthew Gunn
1
Un punto que algunas personas pueden encontrar confuso es cómo resolver un sistema lineal es un problema de optimización. La respuesta, por supuesto, es que resolver un sistema lineal se puede replantear como minimizar un objetivo cuadrático. Algunos métodos iterativos para resolver sistemas lineales son más fáciles de entender desde la perspectiva de que están minimizando un objetivo cuadrático de manera iterativa. (Por ejemplo, la dirección de paso del gradiente conjugado del método del subespacio de Krylov se basa en el gradiente ... está estrechamente relacionado con el descenso del gradiente)
Matthew Gunn
12

No se requiere descenso de gradiente. ¡Resulta que el descenso de gradiente es a menudo un algoritmo de optimización terriblemente ineficiente! Para los métodos iterativos, a menudo es posible encontrar una mejor dirección para moverse que donde el gradiente es más empinado.

Sin embargo, esa es una respuesta un poco volteada. Su pregunta realmente debería ser, "¿por qué necesitamos métodos iterativos?" P.ej. ¿por qué no ir directamente a la solución si el problema es convexo, la condición de Slater se mantiene y las condiciones de primer orden son necesarias y suficientes para un óptimo? Es decir, cuando la solución puede describirse como la solución de un sistema de ecuaciones, ¿por qué no simplemente resolver el sistema? La respuesta es que:

  • Para un problema de optimización cuadrática, la condición de primer orden es un sistema de ecuaciones lineales, y podemos ir casi directamente a la solución porque los sistemas lineales se pueden resolver de manera eficiente. Nos qué utilizamos las condiciones de primer orden y resolver el sistema (por ejemplo. Con descomposición QR, salvedad abajo).
  • Sin embargo, en términos más generales, las condiciones de primer orden definen un sistema no lineal de ecuaciones y un sistema no lineal puede ser bastante difícil de resolver. De hecho, la forma en que a menudo resuelve numéricamente un sistema de ecuaciones no lineales es reformularlo como un problema de optimización ...
  • Para sistemas lineales extremadamente grandes , resolver el sistema directamente con descomposición QR y pivote parcial se vuelve inviable. ¡¿Que hace la gente?! Métodos iterativos! (por ejemplo, métodos iterativos de subespacio de Krylov ...)
Matthew Gunn
fuente
7

En el cálculo 101 aprendimos sobre cómo optimizar una función usando el "método analítico": solo necesitamos obtener la derivada de la función de costo y establecer la derivada en 0 y luego resolver la ecuación. Esto es realmente un problema de juguete y casi nunca sucederá en el mundo real.

X7 7+X3-5 52+miX+losol(X+X2)+1/ /X=0 0X=1.4786, pero no conozco solución analítica). Debemos usar algunos métodos numéricos (verifique por qué aquí en casos polinomiales el Teorema de Abel Ruffin ).

F(X)=X2X=0 0X=1.1234×10-20

F(X1,X2)=X12+X22+El |X1+X2El |(1,1)4.0 4.0(X1,X2)X1 X2Xy(1,1)(3,3)α=0.001(-0.003,-0.003)1,1(0,997,0,997)

Haitao Du
fuente
se puede encontrar más información en esta publicación relacionada
Haitao Du
4

El enfoque que mencionó solo se puede usar para resolver un conjunto de ecuaciones lineales, por ejemplo, en el caso de la regresión lineal, pero digamos que para resolver un conjunto de ecuaciones no lineales, en casos como redes neuronales con activaciones sigmoideas, el enfoque de descenso de gradiente es el ir por. Por lo tanto, la pendiente de gradiente es un enfoque más genérico.

Incluso para ecuaciones lineales, el tamaño de las matrices dadas por el conjunto de ecuaciones lineales es enorme, y puede ser difícil limitar el requisito de memoria.

Amitoz Dandiana
fuente