Voy a ver los videos del curso gratuito de aprendizaje automático en línea de Andrew Ng en Stanford. Analiza el Descenso de degradado como un algoritmo para resolver regresión lineal y funciones de escritura en Octave para realizarlo. Presumiblemente podría reescribir esas funciones en R, pero mi pregunta es si la función lm () ya no me da la salida de la regresión lineal. ¿Por qué querría escribir mi propia función de descenso de gradiente? ¿Hay alguna ventaja o es puramente como un ejercicio de aprendizaje? ¿Lm () hace descenso en gradiente?
14
Respuestas:
El descenso de gradiente es en realidad una forma bastante pobre de resolver un problema de regresión lineal. La
lm()
función en R usa internamente una forma de descomposición QR , que es considerablemente más eficiente. Sin embargo, el descenso de gradiente es una técnica generalmente útil y vale la pena introducirlo en este contexto simple, para que sea más claro cómo aplicarlo en problemas más complejos. Si desea implementar su propia versión como un ejercicio de aprendizaje, vale la pena hacerlo, perolm()
es una mejor opción si todo lo que desea es una herramienta para hacer una regresión lineal.fuente
La razón por la que el gradiente en línea es útil es para aplicaciones a gran escala. En cualquier caso, ahora hay bibliotecas que lo implementan para que no necesite programarlo. Es una buena manera de aprender cómo funcionan las cosas.
En palabras de Leon Bottou:
Aprendizaje a gran escala
proyecto sgd
fuente