Подтвердить что ты не робот

Почему градиентный спуск, когда мы можем аналитически анализировать линейную регрессию

В чем преимущество использования Gradient Descent в пространстве линейной регрессии? выглядит так, что мы можем решить проблему (нахождение theta0-n, что минимальное значение func) с аналитическим методом, так почему мы все еще хотим использовать градиентный спуск, чтобы сделать то же самое? спасибо

4b9b3361

Ответ 1

Когда вы используете нормальные уравнения для решения аналитической функции затрат, вы должны вычислить:

enter image description here

Где X - ваша матрица входных наблюдений и y ваш выходной вектор. Проблемой с этой операцией является временная сложность вычисления инверсии матрицы nxn, которая равна O (n ^ 3), и при увеличении n это может занять очень много времени.

Когда n является низким (n < 1000 или n < 10000), вы можете думать, что нормальные уравнения являются лучшим вариантом для вычисления theta, однако для больших значений Градиентное спуска выполняется намного быстрее, поэтому единственной причиной является время:)

Ответ 2

Вам следует предоставить более подробную информацию о вашей проблеме - о чем именно вы спрашиваете - мы говорим о линейной регрессии в одном или многих измерениях? Простые или обобщенные?

В общем, почему люди используют GD?

  • легко реализовать
  • Это очень общий метод оптимизации - даже если вы измените свою модель на более общую, вы можете использовать ее

А как насчет аналитических решений? Мы используем делаем, ваше требование здесь просто неверно (если мы говорим вообще), например, метод OLS - это закрытая форма, аналитическое решение, которое широко используется. Если вы можете использовать аналитическое решение, это доступная вычислительная система (поскольку иногда GD просто дешевле или быстрее), то вы можете и даже должны использовать ее.

Neverlethles это всегда вопрос некоторых плюсов и минусов - аналитические решения тесно связаны с моделью, поэтому их реализация может быть неэффективной, если вы планируете обобщать/изменять свои модели в будущем. Они иногда менее эффективны, чем их числовые аппроксимации, а иногда их просто сложнее реализовать. Если ни одно из приведенных выше значений не является истинным, вы должны использовать аналитическое решение, и люди действительно это делают.

Подводя итог, вы скорее используете GD над аналитическим решением, если:

  • вы рассматриваете изменения в модели, обобщения, добавляете некоторые более сложные термины/регуляризацию/модификации
  • вам нужен общий метод, потому что вы мало знаете о будущем кода и модели (вы только один из разработчиков).
  • аналитическое решение более дорогостоящее вычисление, и вам нужна эффективность
  • аналитическое решение требует больше памяти, которой у вас нет
  • аналитическое решение сложно реализовать, и вам нужен простой, простой код

Ответ 3

Я увидел очень хороший ответ от https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent

В основном, причины таковы:

1. Для большинства задач нелинейной регрессии нет решения закрытой формы.

2. Даже в линейной регрессии (в одном из немногих случаев, когда доступно решение закрытой формы), использование формулы может быть нецелесообразным. В следующем примере показан один из способов, которым это может случиться.

Ответ 4

Другая причина заключается в том, что градиентный спуск сразу же полезен, когда вы обобщаете линейную регрессию, особенно если проблема не имеет решения с закрытой формой, например, в Lasso (который добавляет член регуляризации, состоящий из суммы абсолютных значений весового вектора).