Я пытался научиться машинному обучению, используя материал Coursera . В этой лекции Эндрю Нг использует алгоритм градиентного спуска, чтобы найти коэффициенты модели линейной регрессии, которая минимизирует функцию ошибки (функцию стоимости).
Для линейной регрессии нужен ли градиентный спуск? Кажется, я могу аналитически дифференцировать функцию ошибки и установить ее на ноль, чтобы решить для коэффициентов; это правильно?
Ответы:
Линейные наименьшие квадраты могут быть решены с помощью
0) Использование высококачественного решателя линейных наименьших квадратов на основе SVD или QR, как описано ниже, для неограниченных линейных наименьших квадратов или на основе версии Квадратичного программирования или Конической оптимизации для связанных или линейно ограниченных наименьших квадратов, как описано ниже. Такой решатель предварительно консервирован, тщательно протестирован и готов к работе - используйте его.
1) SVD, который является наиболее надежным и численно точным методом, но также требует больше вычислений, чем альтернативы. В MATLAB SVD-решение неограниченной линейной задачи наименьших квадратов A * X = b имеет тип pinv (A) * b, что очень точно и надежно.
2) QR, который достаточно надежен и численно точен, но не так сильно, как SVD, и быстрее, чем SVD. В MATLAB QR-решение неограниченной линейной задачи наименьших квадратов A * X = b - это A \ b, что довольно точно и надежно, за исключением случаев, когда A плохо обусловлен, т. Е. Имеет большое число условий. A \ b быстрее вычисляется, чем pinv (A) * b, но не так надежно или точно.
3) Формирование нормальных уравнений (УЖАСНЫЕ с точки зрения надежности и числовой точности, потому что они возводят в квадрат число условий, что очень плохо делать) и
3a) решение по факторизации Холецкого (не хорошо)
3б) явно инвертирующая матрица (УЖАСНАЯ)
4) Решение задачи квадратичного программирования или конуса второго порядка
4a) Решить с помощью высококачественного программного обеспечения для квадратичного программирования. Это надежно и численно точно, но занимает больше времени, чем SVD или QR. Однако легко добавить связанные или общие линейные ограничения, или линейные или квадратичные (две нормы) штрафные или регуляризованные члены к целевой функции, и все же решить проблему, используя программное обеспечение для квадратичного программирования.
4b) Решить проблему конуса второго порядка с помощью высококачественного программного обеспечения Conic Optimization. Замечания те же, что и для программного обеспечения Quadratic Programming, но вы также можете добавить связанные или общие линейные ограничения и другие конические ограничения или термины целевой функции, такие как штрафные или регуляризованные условия в различных нормах.
5) Решить, используя высококачественное программное обеспечение нелинейной оптимизации общего назначения. Это все еще может работать хорошо, но в целом будет медленнее, чем программное обеспечение Quadratic Programming или Conic Optimization, и, возможно, не столь надежно. Однако может быть возможно включить не только ограниченные и общие линейные ограничения, но также и нелинейные ограничения в оптимизацию наименьших квадратов. Также может использоваться для нелинейных наименьших квадратов, и если к целевой функции добавляются другие нелинейные члены.
6) Решите, используя паршивые алгоритмы нелинейной оптимизации общего назначения -> НИКОГДА НЕ ДЕЛАЙТЕ ЭТОГО.
7) Решить, используя НАИБОЛЕЕ ВОЗМОЖНЫЙ алгоритм нелинейной оптимизации общего назначения, то есть градиентный спуск. Используйте это, только если вы хотите увидеть, насколько плох и ненадежен метод решения. Если кто-то скажет вам использовать градиентный спуск для решения линейных наименьших квадратов
7 i) Узнайте о статистических вычислениях от того, кто что-то знает об этом
7 ii) Изучите оптимизацию у того, кто что-то знает об этом
источник
Нахождение коэффициентов линейной модели технически представляет собой процесс нахождения решений для системы линейных уравнений .
Для вычисления таких решений, много
optimization techniques
было разработано иGradient Descent
является одним из них.Таким образом, градиентный спуск не единственный способ сделать это.
Эндрю Нг использует его в курсе потому, что его легко понять, не имея дело с продвинутой линейной алгеброй и числовыми вычислениями.
источник
GD
-градиент приличный - используется в качестве примера для введения более продвинутых методов (например,SGD
- стохастикGD
).SGD
, Поскольку у большинства людей нет очень больших матриц, разложение QR лучше. В целом QR-разложение сформировало числовой мир; SIAM выбрал его в качестве одного из 10 лучших алгоритмов 20-го века.