Чи потрібен нам градієнтний спуск, щоб знайти коефіцієнти лінійної регресійної моделі?


31

Я намагався засвоїти машинне навчання за допомогою матеріалу Coursera . У цій лекції Ендрю Нг використовує алгоритм спуску градієнта, щоб знайти коефіцієнти лінійної регресійної моделі, які мінімізують функцію помилок (функція витрат).

Для лінійної регресії нам потрібен градієнтний спуск? Здається, я можу аналітично диференціювати функцію помилок і встановити її в нуль для вирішення коефіцієнтів; це так?


3
Лінійні моделі були пристойно керовані з 1700-х років. Існує маса способів поводження з ними, які не потребують градієнтного спуску (GD). Існують нелінійні моделі, де більшість із цих методів лягають на обличчя. Ендрю змушує вас використовувати незнайомий, але дуже корисний метод проти дуже простої проблеми, щоб ви могли налагодити свій підхід. Коли ви добре використовуєте метод, ви можете застосувати його до приголомшливо нелінійних проблем, для яких GD - єдиний метод для отримання результатів.
EngrStudent

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

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

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

3
Дякую за те, що розмістив тет посилання на відео про Andre Ng, я переглянув декілька. Я вже знав це, хоч і не до цієї крайності, але страшно бачити, чому навчається переважна більшість людей, що «навчаються» оптимізації, не кажучи вже про те, що принаймні деякі з них навчаються статистичним обчисленням. Джин Голуб, піонер у галузі обчислень та використання SVD, перекинувся б на його могилу, якби він знав, про що вчать зараз у своєму відділі комп’ютерних наук в Стенфорді. Найсмішнішим відео є youtube.com/watch?v=B3vseKmgi8E , який рекомендує та порівнює 2 алгоритми WORST для найменших квадратів
Марк Л. Стоун,

Відповіді:


43

Лінійні найменші квадрати можна вирішити за допомогою

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) Формування нормальних рівнянь (ТЕРМІНОВО з точки зору надійності та чисельної точності, оскільки воно квадратирує номер умови, що дуже погано)

3а) розв язання методом Чолеського (не добре)

3b) явно інвертуюча матриця (ГОЛОВНА)

4) Розв’язування як задача квадратичного програмування або задача конуса другого порядку

4a) Вирішіть, використовуючи високоякісне програмне забезпечення для квадратичного програмування. Це надійно і чисельно точно, але займає більше часу, ніж SVD або QR. Однак легко додати цільові функції або загальні лінійні обмеження, або лінійні або квадратичні (двома нормами) штрафи або регуляризаційні умови до цільової функції, і все ж вирішити проблему за допомогою програмного забезпечення для квадратичного програмування.

4b) Вирішіть проблему конусу другого порядку, використовуючи високоякісне програмне забезпечення Conic Optimization. Зауваження такі ж, як і для програмного забезпечення для квадратичного програмування, але ви також можете додавати зв'язані або загальні лінійні обмеження та інші конічні обмеження або умови об'єктивної функції, такі як стягнення або терміни регуляризації в різних нормах.

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

6) Розв’яжіть, використовуючи хиткі алгоритми нелінійної оптимізації загального призначення -> НЕ ВЖЕ РОБИТИ ЦЕ.

7) Вирішіть за допомогою НАЙБІЛЬШЕ МОЖЛИВОГО алгоритму нелінійної оптимізації загального призначення існує, тобто градієнтне спуск. Використовуйте це лише в тому випадку, якщо ви хочете побачити, наскільки поганим і недостовірним може бути метод рішення. Якщо хтось скаже вам використовувати градієнтний спуск для вирішення найменших лінійних задач квадратів

7 i) Дізнайтеся про статистичні обчислення від того, хто щось знає про це

7 ii) Навчіться оптимізації у того, хто щось знає про це.


Приємний пост, чому ти вважаєш, що Чолеський не гарний, враховуючи, що твоя система є PD? (а не зі смішним номером умови) BTW, я думаю, ви хочете сказати (або додати) поняття узагальненого зворотного (в основному використовується для навчальних цілей, очевидно) або в точці "SVD", або в "явно перевернутому" пункті.
usεr11852 повідомляє Відновити Моніку

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

1
mldivide, тобто. зворотна косою рисою, тобто \ використовує QR, коли m ~ = n (найменші квадрати), як я зазначив у другому реченні мого абзацу (2) вище. Ви здивуєтеся, скільки лайна є в MATLAB, хоча - не тільки в наборах інструментів, деякі з яких абсолютно жахливі, але в меншій мірі і в деяких основних функціях.
Марк Л. Стоун

1
@ MarkL.Stone, чудова відповідь! Ви можете, будь ласка, поясніть трохи більше того, чому не рекомендується використовувати градієнтний спуск для вирішення найменших квадратів! (на мій погляд, це лише ітеративний підхід порівняно з іншими (підходи до вирішення напрямків), про які ви згадали вище). Більше того, Чи можете ви також прокоментувати проблему: "якщо у мене n> = 30 000 функцій для проблеми, метод нормального рівняння буде дуже повільним, оскільки інвертування матриці n * n було б жахливо! З іншого боку, GD буде працювати в цьому будь-яка думка про те, як виконають SVD & QR ". будь-яка пропозиція буде корисною.
ану

1
@ anu Використовуйте градієнтний спуск лише в крайньому випадку. і це було б лише в тому випадку, якщо проблема занадто велика, щоб її вирішити SVD або QR. Ніколи не формуйте Нормальні рівняння, не кажучи вже про те, щоб явно інвертувати матрицю для вирішення Нормальних рівнянь, НІКОЛИ. В даний час 30 000 функцій не дуже схожі на багато.
Марк Л. Стоун

0

Пошук коефіцієнтів лінійної моделі технічно є процесом пошуку розв’язків набору лінійних рівнянь .

Для обчислення таких рішень optimization techniquesбуло розроблено дуже багато і Gradient Descentє одним з них.
Таким чином, Gradient Descent - це не єдиний спосіб зробити це.

Ендрю Нг використовує його в курсі тому, що це просто зрозуміти, не маючи справи з вдосконаленою лінійною алгеброю та числовими обчисленнями.


Хоча я не помиляюсь, я думаю, що ваша відповідь пропускає більшу картину, зосереджуючись на нестандартному випадку. Переважна більшість лінійних регресійних моделей встановлюються за допомогою QR - розкладання , що використовує замкнутої формі розчину. GD-градієнтний пристосування - використовується як приклад для впровадження більш досконалих методів (наприклад, SGDстохастичних GD).
usεr11852 повідомляє Відновити Моніку

Чи можете ви зрозуміти, що таке розкладання QR?
Віктор

3
Ax=bA=QRRQAx=bQRx=bRx=QTbRQTQ=ISGD. Оскільки більшість людей не мають дуже великих матриць, краще розкладання QR. Загалом розкладання QR сформувало числовий світ; SIAM обрав його як один з 10 найкращих алгоритмів 20 століття.
usεr11852 повідомляє Відновити Моніку

@ usεr11852 так, звичайно. Це тому, що я хотів, щоб відповідь була простою, щоб уникнути таких понять, як розкладання QR, залишаючись відповідним домену курсу курсу Ng.
Вікас Ратурі

3
QR був одним з 10 найкращих алгоритмів 20 століття. Але час піде на шлях, і хоча ефективні алгоритми для обчислення SVD відносяться до 1960-х років, ви повинні подивитися на важливість областей застосування. Тому я вважаю, що SVD - це ТОП-алгоритм 21 століття. Відверто кажучи, ви коли-небудь чули, як QR використовується для рекомендування фільмів? Ні, SVD використовується для цього критичного опитування. SVD чітко - це алгоритм вибору, коли Twitter надсилає незапрошені рекомендації консервативним старим джизерам щодо того, яким підлітковим знаменитостям вони слід слідувати. Подивимося, QR це робить !!!
Марк Л. Стоун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.