Я хотел знать, сколько машинного обучения требует оптимизации. Из того, что я слышал, статистика - важная математическая тема для людей, работающих с машинным обучением. Точно так же, насколько важно для человека, работающего с машинным обучением, узнать о выпуклой или невыпуклой оптимизации?
machine-learning
optimization
Рональд Грейсон
источник
источник
Ответы:
На мой взгляд, статистика / машинное обучение говорит вам, что вы должны оптимизировать, а оптимизация - это то, как вы на самом деле это делаете.
Например, рассмотрим линейную регрессию с где и . Статистика говорит нам, что это (часто) хорошая модель, но мы находим нашу фактическую оценку , решая задачу оптимизацииЕ ( ε ) = 0 В г ( ε ) = σ 2 I βY= Хβ+ ε Е( ε ) = 0 Вa r ( ε ) = σ2я β^
Свойства известны нам по статистике, поэтому мы знаем, что это хорошая проблема для оптимизации. В этом случае это простая оптимизация, но это все еще показывает общий принцип.β^
В целом, большая часть машинного обучения может рассматриваться как решение где я пишу это без регуляризации, но это может быть легко добавлено.
Огромное количество исследований в области теории статистического обучения (SLT) изучало свойства этих аргументов, независимо от того, являются ли они асимптотически оптимальными, как они связаны со сложностью и многими другими подобными вещами. Но когда вы действительно хотите получить , часто вы сталкиваетесь с трудной оптимизацией, и это целая группа людей, которые изучают эту проблему. Я думаю, что история SVM является хорошим примером здесь. У нас есть такие люди из SLT, как Vapnik и Cortes (и многие другие), которые показали, что SVM - это хорошая проблема оптимизации, которую нужно решить. Но тогда это были другие, такие как Джон Платт и авторы LIBSVM, которые сделали это возможным на практике.F е^
Чтобы ответить на ваш точный вопрос, знание некоторой оптимизации, безусловно, полезно, но, как правило, никто не является экспертом во всех этих областях, поэтому вы узнаете столько, сколько сможете, но некоторые аспекты всегда будут для вас чем-то вроде черного ящика. Возможно, вы должным образом не изучили результаты SLT за вашим любимым алгоритмом ML, или, возможно, вы не знаете внутреннюю работу оптимизатора, который вы используете. Это путешествие на всю жизнь.
источник
На практике многие пакеты заботятся об оптимизации и большинстве математических деталей для вас. Например, TensorFlow может автоматически выполнять обратный + стохастический градиентный спуск для обучения нейронных сетей (вам просто нужно указать скорость обучения). Инструменты ML scikit-learn обычно не требуют от вас фактических знаний о том, как на самом деле происходит оптимизация, но, возможно, просто задайте некоторые параметры настройки, и они позаботятся обо всем остальном (например, количество итераций, для которых работает оптимизатор). Например, вы можете обучить SVM, не зная никакой математики в scikit-learn-- просто введите данные, тип ядра и двигайтесь дальше.
При этом знание базовой оптимизации (например, на уровне выпуклой оптимизации Бойда и Ванденберге / Нелинейного программирования Берцекаса) может помочь при разработке и анализе алгоритмов / задач, особенно если вы работаете над теоретическими вещами. Или, реализуя алгоритмы оптимизации самостоятельно.
Обратите внимание, что методы оптимизации учебника часто нуждаются в настройках, чтобы фактически работать на практике в современных условиях; Например, вы можете не использовать классический случайный градиентный спуск Роббинса-Манро, а более быстрый вариант с ускорением. Тем не менее, вы можете получить некоторые идеи от работы с проблемами оптимизации.
источник