Які альтернативи Gradient Descent?


46

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

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

Відповіді:


38

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

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

Додавання терміну регуляризації, наприклад, зниження ваги, може допомогти згладити функцію витрат, що може трохи зменшити проблему місцевих мінімумів, і я б все-таки рекомендував би як засіб уникнути перенапруження.

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


9
Дуже правильно. Проблема не знаходження глобального мінімуму завищена.
байерж

2
Перевизначення трапляється, коли ви використовуєте багато параметрів у моделі (типовий випадок використання NN), це не пов’язано з локальними мінімумами - принаймні, не очевидними способами. Ви можете застрягти в поганому локальному мінімумі навіть при невеликій NN, тобто з дуже невеликими вільними параметрами.
carlosayam

1
@DikranMarsupial, ви можете мати багато локальних мінімумів, навіть з одним параметром моделі. Це залежить від форми функції втрат. Надуманий, але простий приклад: , де найближчі та 2-й найближчі сусіди до . Неважко помітити, що між кожними двома пунктами поспіль існує локальний мінімум, тобто чим більше даних, тим більше локальних мінімумів! Глобальний досягається між найближчими точками набору даних. Я знаю це надзвичайно, але я бачив подібну поведінку, яка вирішує проблеми зміни. L(ω)=(x(1)ω)2+(x(2)ω)2x(1),x(2)ω
carlosayam

1
@DikranMarsupial - У мене не було достатньо символів, щоб закінчити своє речення :) Я бачив подібну поведінку, яка вирішує проблеми зміни точки ... за допомогою нейронних мереж. У таких проблемах місцевий мінімум зазвичай поганий; тому я не згоден, що ця проблема завищена.
carlosayam

1
@carlosayam "завищений" не означає "неважливий", лише те, що це проблема з нейронними мережами, яка, як правило, завищена. Завжди буде проблема з усім методом навчання, не існує панацеї від усього, і завжди потрібно діагностувати проблеми з будь-якою моделлю.
Дікран Марсупіал

24

Спуск градієнта - це алгоритм оптимізації .

Є багато алгоритмів оптимізації , які працюють на фіксоване число з дійсних значень , які корелюють ( нерозбірний ). Ми можемо розділити їх приблизно на 2 категорії: оптимізатори на основі градієнтів та оптимізатори без похідних. Зазвичай ви хочете використовувати градієнт для оптимізації нейронних мереж у контрольованих умовах, оскільки це значно швидше, ніж оптимізація без похідних. Існує численні алгоритми оптимізації на основі градієнта, які використовувались для оптимізації нейронних мереж:

  • Стохастичний градієнтний спуск (SGD) , міні-партія SGD, ...: Вам не доведеться оцінювати градієнт для всього навчального набору, а лише для одного зразка або міні-партії зразків, як правило, це набагато швидше, ніж спуск градієнта партії. Мініатюри використовувались для згладжування градієнта та паралельної передачі вперед і назад. Перевага перед багатьма іншими алгоритмами полягає в тому, що кожна ітерація знаходиться в O (n) (n - кількість ваг у вашому NN). SGD зазвичай не застряє в місцевих мінімумах (!), Оскільки стохастичний.
  • Нелінійний кон'югатний градієнт : здається, дуже вдалий в регресії, O (n), вимагає градієнт партії (отже, може бути не найкращим вибором для величезних наборів даних)
  • L-BFGS : здається, дуже успішний у класифікації, використовує наближення Гессі, вимагає пакетний градієнт
  • Алгоритм Левенберга-Маркарда (LMA) : Це насправді найкращий алгоритм оптимізації, який я знаю. Він недоліком є ​​те, що його складність становить приблизно O (n ^ 3). Не використовуйте його для великих мереж!

І було запропоновано багато інших алгоритмів для оптимізації нейронних мереж, ви можете використовувати Google для оптимізації без гессіанського типу або v-SGD (існує багато типів SGD з адаптивними показниками навчання, див., Наприклад, тут ).

Оптимізація для NN не є вирішеною проблемою! На мій досвід, найбільшим завданням є не знайти хорошого місцевого мінімуму. Однак виклик полягає в тому, щоб вийти з дуже рівних регіонів, вирішити проблеми з умовними помилками і т. Д. Саме тому LMA та інші алгоритми, що використовують наближення Гессі, зазвичай так добре працюють на практиці, і люди намагаються розробляти стохастичні версії які використовують інформацію другого порядку з низькою складністю. Однак часто дуже добре налаштований параметр для minibatch SGD кращий за будь-який складний алгоритм оптимізації.

Зазвичай ви не хочете знайти глобального оптимуму. Тому що це зазвичай вимагає перевиконання даних про навчання.


16

Цікавою альтернативою спуску градієнта є алгоритми навчання на основі населення, такі як еволюційні алгоритми (ЕА) та оптимізація рою частинок (ПСО). Основна ідея підходів, орієнтованих на населення, полягає в тому, що створюється сукупність кандидатських рішень (NN векторів ваги), і рішення кандидатів ітеративно досліджують простір пошуку, обмінюючись інформацією та врешті-решт конвергуючи мінімум. Оскільки використовується багато вихідних точок (кандидатських рішень), шанси на сходження на глобальних мінімумах значно збільшуються. Було показано, що PSO та EA дуже конкурентоспроможні, часто (хоча і не завжди) перевершуючи градієнтний спуск по складним проблемам тренувань з ПП.


+1 Варто мати на увазі, хоча те, що агресивна оптимізація критерію тренінгу, ймовірно, призведе до надмірної підгонки, якщо не буде вжито заходів для його запобігання, тому я б уникнув ПСО та ЕА, якщо критерій навчання не включає якусь форму регуляризації чи іншу складність штраф.
Дікран Марсупіал

5
@ anna-earwen, чи не могли б ви надати кілька посилань, де PSO виступає конкурентоспроможно в порівнянні з SGD?
emrea

8

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

Ідея полягає у заміні кожної ваги w на w + t, де t є випадковим числом, яке слідує за Гауссовим розподілом. Кінцевим виходом мережі є середній вихід після всіх можливих значень t. Це можна зробити аналітично. Потім можна оптимізувати проблему або за допомогою спуску градієнта, або LMA, або інших методів оптимізації. Після оптимізації у вас є два варіанти. Один із варіантів - зменшити сигму в гауссовій дистрибуції і робити оптимізацію знову і знову, поки сигма не досягне 0, тоді у вас буде кращий локальний мінімум (але, можливо, це може спричинити надмірне розміщення). Інший варіант - продовжувати використовувати той, який має випадкове число у вазі, він, як правило, має кращу властивість узагальнення.

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

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

Далі наведено приклади виходів для задачі з двома спіралями. Архітектура мережі однакова для всіх трьох: існує лише один прихований шар з 30 вузлів, а вихідний шар лінійний. Використовуваний алгоритм оптимізації - LMA. Ліве зображення - для налаштування ванілі; середина використовує перший підхід (а саме багаторазове зменшення сигми до 0); третій - за допомогою сигми = 2.

Результат двоспіральної задачі за трьома підходами

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

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


1

Extreme Learning Machines По суті це нейронні мережі, де ваги, що з'єднують входи до прихованих вузлів, призначаються випадковим чином і ніколи не оновлюються. Ваги між прихованими вузлами та виходами вивчаються за один крок, розв’язуючи лінійне рівняння (матриця, обернена).


0

Якщо мова йде про завдання глобальної оптимізації (тобто спроба знайти глобальний мінімум цільової функції), ви можете поглянути на:

  1. Пошук шаблонів (також відомий як прямий пошук, пошук без похідних або пошук у чорному ящику), який використовує шаблон (набір векторів) для визначення точок пошуку при наступній ітерації.{vi}
  2. Генетичний алгоритм, який використовує поняття мутації, кросовера та відбору для визначення сукупності балів, що підлягають оцінці при наступній ітерації оптимізації.
  3. Оптимізація рою частинок, яка визначає набір частинок, які "проходять" по простору, шукаючи мінімум.
  4. Сурогатна оптимізація, яка використовує сурогатну модель для наближення цільової функції. Цей метод може бути використаний, коли об'єктивну функцію оцінити дорого.
  5. Багатоцільова оптимізація (також відома як оптимізація Парето ), яка може бути використана для проблеми, яка не може бути виражена у формі, що має єдину цільову функцію (скоріше, вектор цілей).
  6. Симульований відпал , який використовує концепцію відпалу (або температури) для видобутку та експлуатації. Він пропонує нові бали для оцінювання на кожній ітерації, але при збільшенні кількості ітерацій "температура" падає, і алгоритм стає все менше і менше шансів досліджувати простір, таким чином "сходячись" до свого найкращого поточного кандидата.

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

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