Оптимізація та машинне навчання


13

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


2
"робота з машинним навчанням" є невиразною концепцією - робота над розробкою кращих методів МЛ означатиме одну відповідь, а розвиток систем МЛ, які використовують відомі методи, - зовсім інша річ.
Петерсіс

Відповіді:


28

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

Y=Xβ+εE(ε)=0Var(ε)=σ2Iβ^

β^=argminbRp||YXb||2.

β^

f^=argminfF1ni=1nL(yi,f(xi))

Ff^

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


3
Варто чітко згадати en.wikipedia.org/wiki/Empirical_risk_minimization
Емре

13

На практиці багато пакунків піклуються про оптимізацію та більшість математичних деталей для вас. Наприклад, TensorFlow може автоматично робити зворотний + стохастичний градієнтний спуск для тренування нейронних мереж (потрібно лише вказати швидкість навчання). Інструменти ML ML scikit-learn, як правило, не вимагатимуть від вас фактичних відомостей про те, як відбувається оптимізація, але, можливо, просто встановіть деякі параметри настройки, і це допоможе решту (наприклад, кількість ітерацій, за якими працює оптимізатор). Наприклад, ви можете тренувати SVM, не знаючи жодної математики в scikit-learn-- просто подайте дані, тип ядра та рухайтеся далі.

Це означає, що знання базової оптимізації (наприклад, на рівні опуклої оптимізації Бойда та Ванденберге / Нелінійне програмування Берцекаса) може бути корисним у розробці та аналізі алгоритму / проблеми, особливо якщо ви працюєте над теоретичними матеріалами. Або реалізувати алгоритми оптимізації самостійно.

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

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