Чому слід вивчати опуклу оптимізацію для теоретичного машинного навчання?


27

Я працюю над теоретичним машинним навчанням - над трансферним навчанням, щоб бути конкретним - для моєї доктора наук.

  • Чому з цікавості я повинен пройти курс опуклої оптимізації?

  • Які переваги від опуклої оптимізації я можу використовувати у своїх дослідженнях теоретичного машинного навчання?


2
Незрозуміло, чи заперечуєте ви проти опуклої частини, оптимізаційної частини чи обох.
Мехрдад

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

Опукла оптимізація та оптимізація математики - це інструмент для побудови моделей - ця техніка застосовується для побудови моделей / керування / пошуку параметрів зрозумілого явища аж до певної невпевненості.
bruziuz

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

FYI "Опуклу оптимізацію не можна використовувати для глибокого навчання - S.Boyd" - youtu.be/uF3htLwUHn0?t=2810
bruziuz

Відповіді:


59

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

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

Приклад реального життя, невипуклий пейзаж втрат.

(джерело: https://www.cs.umd.edu/~tomg/projects/landscapes/ та arXiv: 1712.09913 )

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

З іншого боку, невипуклі алгоритми оптимізації, такі як еволюційні алгоритми, начебто набувають все більшого визнання у спільноті ML, наприклад, навчання нейронних мереж нейроеволюцією, здається, є нещодавньою темою дослідження (див. Також arXiv: 1712.07897 ).


5
ця відповідь, схоже, не стосується "опуклості"
Хайтао,

@ hxd1011 Я прокоментував це.
Тім

Чудова відповідь! Дійсно стосується того, наскільки критична оптимізація є для ML, і як ML спрощує, використовуючи опуклі наближення, які працюють з градієнтом.
ChuckCottrill

Це має бути прийнятою відповіддю.
Ян Кукацька

11

Я думаю, тут є два питання.

  • Навіщо вивчати оптимізацію
  • Чому опукла оптимізація

Я думаю, що у @Tim є хороша відповідь, чому оптимізація. Я повністю погоджуюся і рекомендую всім, хто цікавиться машинним навчанням, опановувати постійну оптимізацію. Оскільки процес оптимізації / пошук кращого рішення з часом - це процес навчання для комп’ютера.

Хочу детальніше поговорити про те, чому нас цікавлять опуклі функції. Причина проста: опуклі оптимізації "легше вирішити", і у нас є маса надійно розв'язаного алгоритму.

Але хіба світ опуклий? Ні. Чому одержимий опуклістю? Перевірте цю метафору

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


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

Ця відповідь є хибною на багатьох рівнях. Порівнювати опуклий аналіз з ефектом вуличного світла просто неправильно . Я б порадив вам звернутися до вступного підручника « Оптимізація опуклості» Бойда та Ванденберге, щоб дізнатися більше про цю тему.
Дігіо

2

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

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

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


33
Так, у машинному навчанні ми шукаємо найкращі наближення. Але ви помиляєтесь , сказавши, що обидві речі "принципово різні". Алгоритми ML використовують оптимізацію для мінімізації функцій втрат та пошуку оптимальних параметрів з урахуванням даних та мети. Коли ви налаштовуєте свої гіперпараметри, ви шукаєте оптимальне їх поєднання. У кожному з випадків ви максимізуєте або мінімізуєте щось для досягнення своєї мети, тому ви використовуєте певну оптимізацію.
Тім

@Tim: Правда, я повинен був це по-різному сформулювати.
Тобі

17
якщо ви згодні, то, ймовірно, вам варто перефразовувати це.
Тім

19
Ця відповідь явно неправильна. Значна кількість проблем машинного навчання зводиться до проблем оптимізації.
Відновіть Моніку

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

2

Як сказано в hxd1011, опуклі проблеми легше вирішити, як теоретично, так і (як правило) на практиці. Так, навіть для невипуклих проблем багато алгоритмів оптимізації починаються з "кроку 1. зменшення проблеми до опуклої" (можливо, в циклі "час").

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


1

Якщо ваші інтереси полягають у (опуклої) оптимізації, застосованій до глибокого навчання (ви згадуєте трансферне навчання, яке широко застосовується на практиці в нейромережах), я настійно рекомендую вам розглянути розділ 8 (оптимізація для навчання глибоких нейронних мереж) http : //www.deeplearningbook.org/

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


0

Як я чув від Джерома Х. Фрідмана, методи, розроблені в машинному навчанні, насправді не належать до спільноти машинного навчання.

З моєї точки зору Машинне навчання більше схоже на сукупність різних методів з інших полів.

З точки зору статистичного навчання три основні питання регресії та класифікації:

  1. Що таке сімейство функцій, з якого ви тягнете апроксиматор

  2. Які критерії, як ви потягнете функцію

  3. Який спосіб знайти найкращу функцію


Оперувати деяким конструктивним способом на (1) - не так очевидно, як використання математичної оптимізації може допомогти

Оперувати деяким конструктивним способом на (2) - очевидно, що мета - мета. І математична оптимізація може допомогти в цьому.

Щоб якось конструктивно діяти на (3) - вам потрібна математична оптимізація.


Є кілька частин математичної оптимізації:

  1. Опукла оптимізація / опуклий аналіз - дуже класна область математики. Недиференційованість не є проблемою. І є 50 узагальнень опуклих функцій, з яких більше двох корисних з точки зору застосування є квазіконвекс та log-увігнуті.

Також є способи, як якось боротися зі «стохастичністю», навіть «Ніхто не знає, як вирішити стохастичну опуклу оптимізацію».

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

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


Тож я, принаймні, думаю, що вам довіряю:

I) Опукла оптимізація - це головне для більшості проблем з оптимізацією.

II) "01:15 Оптимізація насправді є більшою темою, ніж ML або AI, але насправді вона є більшою." ( https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s )


Це невеликий короткий опис стандартів цього веб-сайту як відповідь - ви думаєте, що ви могли б розширити його? В іншому випадку це може бути найкраще підходить як коментар.
Срібна рибка

Добре. Я розширюся, але насправді можна написати статтю про зв’язок з різними полями. Насправді я запитав Стівена П. Бойда про питання стосовно того, чи думали люди раніше і коли - youtu.be/XV1E-Jnc4SU?t=242 . Він сказав, що цього дня світ розбитий.
bruziuz

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