Навіщо використовувати спуск градієнта з нейронними мережами?


22
  1. Під час тренування нейронної мережі з використанням алгоритму зворотного розповсюдження використовується метод градієнтного спуску для визначення оновлень ваги. Моє запитання: Замість того, щоб використовувати метод градієнтного спуску, щоб повільно знаходити мінімальну точку щодо певної ваги, чому ми не просто встановимо похідну , і знайти значення вагиw,яке мінімізує помилку?d(Error)dw=0w

  2. Крім того, чому ми впевнені, що функція помилок у зворотному розповсюдженні буде мінімальною? Чи не може вийти, що функція помилок максимальна? Чи є специфічна властивість функцій сквошінгу, яка гарантує, що мережа з будь-якою кількістю прихованих вузлів з довільними вагами та векторами вводу завжди надасть функцію помилок, яка має деякі мінімуми?


2
Усі заголовки шапки тут не є стандартними (будь ласка, огляньтесь навколо себе), а тут і в інших місцях широко застаріли як небажані ЗНО.
Нік Кокс

@Nick Cox мої вибачення
Мінай

Цікаво бачити, коли в моделях машинного навчання використовуються приховані або приховані змінні, оптимізація (майже?) Завжди стає нелінійною, невипуклою і просто важче оптимізувати.
Владислав Довгалець

Відповіді:


30
  1. Тому що ми не можемо. Оптимізаційна поверхня як функція ваг w нелінійна, і для d S ( w ) не існує рішення закритої формиS(w)w.dS(w)dw=0

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


Якби ця функція була увігнутою, градієнт пристойний спускався б назавжди, оскільки єдиний шлях - це вниз. Ви хочете сказати, що поверхня помилок гарантовано не буде увігнутою? Крім того, мені не зрозуміло, чому похідна функції помилки не мала б рішення закритої форми. Чи не помилка форми де K - константа? Ця функція виглядає досить диференційованою, а отриманий вираз аналітично вирішим. Будь ласка, допоможіть мені уточнити, що я щось не бачу. K11+eΣwx
Мінай

8
Це не може статися, оскільки всі часто використовувані функції помилок мають суворий теоретичний мінімум 0. Помилки ніколи не можуть стати негативними.
Marc Claesen

2
Ще одна можлива інтерпретація 1. "Це саме те, що ми робимо, рівняння вирішується за допомогою градієнтного спуску".
Метью Друрі

1
явно є закрита форма для градієнта (саме так ми робимо спуск градієнта ефективно). Проблема не в закритому вигляді корінь градієнта = 0
seanv507

@ seanv507 це те, що я мав намір сказати, вибачте за плутанину. Редагував мою публікацію.
Marc Claesen

10

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


1
Я відредагував ваш коментар до преамбули, оскільки, здається, ви вже залучаєте кілька оновлень! Ласкаво просимо на сайт!
Метью Друрі

Спасибі! Я не був впевнений, чи повинен це бути коментар чи відповідь, і не хотів, щоб моя перша відповідь була прихильна до забуття лише на основі цього.
Джаред Бекфорт

6

d(error)dw=0

  • Потрібно мати справу з другими похідними (гессійськими, а саме продуктами вектора Гессі).
  • "Крок вирішення" дуже обчислювально дорогий: за час, який потрібно зробити для вирішення, можна було б зробити багато ітерацій спуску градієнта.

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

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


Я думаю, ви помиляєтесь. Люди користуються мережами з 90-х років, і вони добре знають методи другого порядку. проблема полягає лише в тому, що мережі є успішними, коли є багато даних, які потім підтримують безліч параметрів, і в цьому випадку обмеження часу та пам'яті методів другого порядку малоефективні. див., наприклад, leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507

@ seanv507 Не дуже. Обговорення методів другого порядку в цій роботі має багато недоліків, оскільки вони припускають, що треба побудувати і перевернути цілу щільну гессіану, щоб використовувати методи другого порядку. Це просто не так, як це робиться в сучасній масштабній чисельній оптимізації. У сучасних методах другого порядку обчислюється дія Гессіана на вектори, розв’язуючи суміжні задачі, і використовує їх у рамках ітеративного (криловського) розв'язувача. Як правило, перша внутрішня ітерація повертає градієнтний напрямок, а наступні ітерації покращують його.
Нік Альгер

Хоча я не є шанувальником цієї статті, я не думаю, що це правда. Раніше він обговорював / впроваджував діагональні та зменшені наближення гессіану. А як щодо швидкого точного множення перламуттера на папері 1994 року на гессіан?
seanv507

Правильно. Якщо у вас є швидкі програми гессі (через Pearlmutter чи що у вас є), ви можете робити неточні гессіанські рішення за допомогою методів Крилова, таких як спряжений градієнт. Роблячи це, можна ефективно перенести труднощі з кондиціонуванням подалі від нелінійного ітеративного оптимізатора на лінійну ітераційну алгебру алгебри, де існує багато механізмів та методів попередньої підготовки, щоб вирішити цю проблему. Хорошим посиланням є розділ про область довіри CG-Steihaug у класичній "Числовій оптимізації" від Nocedal і Wright.
Нік Альгер

Моя думка полягає в тому, що це множення на графіки гессіану та спряжених було відоме в мережах спільноти з 1994 року. Тож я вважаю, що напевно є причина, чому SGD використовується замість методів другого порядку (і я, безумовно, хотів би чіткого рішення, чому це )
seanv507
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.