Функція градієнта спуска проти lm () функція в R?


14

Я переглядаю відеозаписи на безкоштовному онлайн-курсі машинного навчання Ендрю Нґ в Стенфорді. Він розглядає спуск градієнта як алгоритм вирішення лінійної регресії та функції запису в Octave для його виконання. Імовірно, я міг би переписати ці функції в R, але моє запитання: чи функція lm () вже не дає мені вихід лінійної регресії? Чому я хотів би написати власну функцію спуску градієнта? Чи є якась перевага чи це виключно як навчальна вправа? Чи lm () робить спуск градієнта?


Я думаю, що вам може знадобитися здійснити градієнтне спускання іншою мовою у випадках, коли в R немає кращого рішення (наприклад, деякі зміни регресії, як-от регульована регресія з великими даними)
Manoel Galdino

Відповіді:


20

Спуск градієнта насправді є досить поганим способом вирішення задачі лінійної регресії. lm()Функція в R внутрішньо використовує форму QR - розкладання , яка є значно ефективнішим. Однак градієнтний спуск - це загалом корисна техніка, і її варто ввести в цьому простому контексті, щоб було зрозуміліше, як застосовувати її у складніших проблемах. Якщо ви хочете реалізувати власну версію як навчальну вправу, це варто зробити, але lm()це кращий вибір, якщо все, що вам потрібно, - це інструмент для лінійної регресії.


@Martin Чи може lm () все ж бути кращим, якщо ми маємо багато функцій?
користувач2626445

0

Причина градієнта в Інтернеті корисна в великих масштабах. У будь-якому випадку, зараз є бібліотеки, які реалізують його, тому не потрібно програмувати його. Це хороший спосіб дізнатися, як все працює.

У словах Леона Ботто:

Масштабне машинне навчання вперше підходило як інженерна проблема. Наприклад, для використання більшого навчального набору ми можемо використовувати паралельний комп'ютер для запуску відомого алгоритму машинного навчання або адаптувати більш досконалі чисельні методи для оптимізації відомої функції машинного навчання. Такі підходи покладаються на привабливе припущення, що можна роз'єднати статистичні аспекти від обчислювальних аспектів проблеми машинного навчання.

Ця робота показує, що це припущення є невірним, і що відмовитися від нього призводить до значно ефективніших алгоритмів навчання. Нова теоретична база враховує вплив наближеної оптимізації на алгоритми навчання.

Аналіз показує чіткі компроміси у випадку дрібних та масштабних проблем навчання. Маломасштабні проблеми навчання підлягають звичайному компромісу наближення – оцінка. Масштабні проблеми навчання підлягають якісно різній компромісі, що включає обчислювальну складність основних алгоритмів оптимізації нетривіальними способами. Наприклад, алгоритми стохастичного зменшення градієнта (SGD), як видається, є посередними алгоритмами оптимізації, проте, як показано, вони дуже добре справляються з масштабними проблемами навчання.

Широкомасштабне навчання

sgd проект

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.