Стохастический градиентный спуск - Stochastic gradient descent
Стохастический градиентный спуск (часто сокращенно SGD) является итерационный метод за оптимизация ан целевая функция с подходящим гладкость свойства (например, дифференцируемый или же субдифференцируемый ). Его можно рассматривать как стохастическая аппроксимация из градиентный спуск оптимизация, поскольку он заменяет фактический градиент (рассчитанный на основе всего набор данных ) его оценкой (вычисленной на основе случайно выбранного подмножества данных). Особенно в многомерный проблемы оптимизации это уменьшает вычислительная нагрузка, достигая более быстрых итераций в торговле для более низкой скорости сходимости.[1]
Хотя основная идея стохастического приближения восходит к Алгоритм Роббинса – Монро 1950-х годов стохастический градиентный спуск стал важным методом оптимизации в машинное обучение.[2]
Фон
Обе статистический оценка и машинное обучение рассмотреть проблему сведение к минимуму ан целевая функция который имеет форму суммы:
где параметр что сводит к минимуму должна быть по оценкам. Каждая функция слагаемого обычно ассоциируется с -й наблюдение в набор данных (используется для обучения).
В классической статистике проблемы минимизации суммы возникают в наименьших квадратов И в оценка максимального правдоподобия (для независимых наблюдений). Общий класс оценок, возникающих как минимизаторы сумм, называются М-оценки. Однако в статистике давно признано, что требование даже локальной минимизации является слишком ограничительным для некоторых задач оценки максимального правдоподобия.[3] Поэтому современные статистические теоретики часто считают стационарные точки из функция правдоподобия (или нулей его производной, функция оценки, и другие оценочные уравнения ).
Проблема минимизации суммы возникает также при минимизация эмпирического риска. В этом случае, стоимость функция потерь в -й пример, и - эмпирический риск.
При использовании для минимизации указанной выше функции стандартный (или "пакетный") градиентный спуск метод будет выполнять следующие итерации:
куда размер шага (иногда называемый скорость обучения в машинном обучении).
Во многих случаях функции слагаемых имеют простую форму, которая позволяет проводить недорогие вычисления функции суммы и градиента суммы. Например, в статистике однопараметрические экспоненциальные семейства позволяют экономичные оценки функций и градиентов.
Однако в других случаях оценка суммарного градиента может потребовать дорогостоящих вычислений градиентов от всех функций слагаемых. Когда обучающий набор огромен и простых формул не существует, вычисление сумм градиентов становится очень дорогостоящим, потому что для вычисления градиента требуется оценка градиентов всех слагаемых функций. Чтобы сэкономить на вычислительных затратах на каждой итерации, стохастический градиентный спуск образцы подмножество слагаемых функций на каждом шаге. Это очень эффективно в случае масштабных задач машинного обучения.[4]
Итерационный метод
При стохастическом (или "оперативном") градиентном спуске истинный градиент аппроксимируется градиентом на одном примере:
По мере того, как алгоритм просматривает обучающий набор, он выполняет вышеуказанное обновление для каждого обучающего примера. По обучающей выборке можно сделать несколько проходов, пока алгоритм не сойдется. Если это будет сделано, данные могут быть перемешаны для каждого прохода, чтобы предотвратить циклы. Типичные реализации могут использовать адаптивная скорость обучения так что алгоритм сходится.
В псевдокоде стохастический градиентный спуск можно представить следующим образом:
- Выберите начальный вектор параметров и скорость обучения .
- Повторяйте, пока не получите приблизительный минимум:
- Случайным образом перемешайте примеры в обучающей выборке.
- За , делать:
Компромисс между вычислением истинного градиента и градиента в одном примере заключается в вычислении градиента для более чем одного обучающего примера (называемого «мини-пакетом») на каждом этапе. Это может работать значительно лучше, чем описанный "истинный" стохастический градиентный спуск, потому что код может использовать векторизация библиотеки, а не вычислять каждый шаг отдельно. Это также может привести к более плавной сходимости, поскольку градиент, вычисленный на каждом шаге, усредняется по большему количеству обучающих примеров.
Сходимость стохастического градиентного спуска проанализирована с использованием теорий выпуклая минимизация и из стохастическая аппроксимация. Вкратце, когда скорость обучения уменьшается с соответствующей скоростью, и при относительно мягких предположениях стохастический градиентный спуск сходится почти наверняка к глобальному минимуму, когда целевая функция выпуклый или же псевдовыпуклый, а в противном случае почти наверняка сходится к локальному минимуму.[5][6]Фактически это следствие Теорема Роббинса – Зигмунда.[7]
Пример
Предположим, мы хотим провести прямую линию к обучающей выборке с наблюдениями и соответствующие оценочные ответы с помощью наименьших квадратов. Целевая функция, которую необходимо минимизировать:
Последняя строка в приведенном выше псевдокоде для этой конкретной проблемы будет следующей:
Обратите внимание, что на каждой итерации (также называемой обновлением) только градиент оценивается в одной точке. вместо того, чтобы оценивать набор всех образцов.
Ключевое отличие от стандартного (пакетного) градиентного спуска заключается в том, что для вычисления шага используется только один фрагмент данных из набора данных, и этот фрагмент данных выбирается случайным образом на каждом шаге.
Известные приложения
Стохастический градиентный спуск - популярный алгоритм для обучения широкого круга моделей в машинное обучение, в том числе (линейные) опорные векторные машины, логистическая регрессия (см., например, Ваупал Ваббит ) и графические модели.[8] В сочетании с обратное распространение алгоритм, это де-факто стандартный алгоритм обучения искусственные нейронные сети.[9] О его использовании также сообщалось в Геофизика сообщества, особенно для приложений Full Waveform Inversion (FWI).[10]
Стохастический градиентный спуск конкурирует с L-BFGS алгоритм,[нужна цитата ] который также широко используется. Стохастический градиентный спуск используется как минимум с 1960 года для обучения. линейная регрессия модели, изначально под названием АДАЛИН.[11]
Другой алгоритм стохастического градиентного спуска - это наименьшие средние квадраты (LMS) адаптивный фильтр.
Расширения и варианты
Было предложено и использовано множество усовершенствований базового алгоритма стохастического градиентного спуска. В частности, в машинном обучении необходимо установить скорость обучения (размер шага) был признан проблематичным. Установка слишком большого значения этого параметра может привести к отклонению алгоритма; установка слишком низкого значения замедляет схождение.[12] Концептуально простое расширение стохастического градиентного спуска делает скорость обучения убывающей функцией ηт номера итерации т, давая график скорости обучения, так что первые итерации вызывают большие изменения параметров, а последующие - только точную настройку. Такие расписания известны со времен работы Маккуина над k-средства кластеризации.[13] Практическое руководство по выбору размера шага в нескольких вариантах SGD дает Сполл.[14]
Неявные обновления (ISGD)
Как упоминалось ранее, классический стохастический градиентный спуск обычно чувствителен к скорость обучения η. Для быстрой сходимости требуется большая скорость обучения, но это может вызвать численную нестабильность. Проблема в значительной степени решаема[15] С учетом неявные обновления при этом стохастический градиент оценивается на следующей итерации, а не на текущей:
Это уравнение неявно, поскольку появляется с обеих сторон уравнения. Это стохастическая форма метод проксимального градиента поскольку обновление также можно записать как:
В качестве примера рассмотрим метод наименьших квадратов с функциями и наблюдения. Мы хотим решить:
куда обозначает внутренний продукт. может иметь "1" в качестве первого элемента, включающего перехват. Классический стохастический градиентный спуск происходит следующим образом:
куда равномерно выбирается от 1 до . Хотя теоретическая сходимость этой процедуры происходит при относительно умеренных предположениях, на практике процедура может быть довольно нестабильной. В частности, когда указано неверно, так что имеет большие абсолютные собственные значения с высокой вероятностью, процедура может численно расходиться за несколько итераций. В отличие, неявный стохастический градиентный спуск (сокращенно ISGD) может быть решена в закрытом виде как:
Эта процедура останется численно стабильной практически для всех как скорость обучения теперь нормализовано. Такое сравнение классического и неявного стохастического градиентного спуска в задаче наименьших квадратов очень похоже на сравнение между наименьшие средние квадраты (LMS) и нормализованный фильтр наименьших средних квадратов (NLMS).
Хотя решение для ISGD в закрытой форме возможно только методом наименьших квадратов, эта процедура может быть эффективно реализована в широком диапазоне моделей. В частности, предположим, что зависит от только через линейную комбинацию с функциями , так что мы можем написать , куда может зависеть от также, но не на кроме как через . Наименьшие квадраты подчиняются этому правилу, как и логистическая регрессия, и большинство обобщенные линейные модели. Например, методом наименьших квадратов , а в логистической регрессии , куда это логистическая функция. В Регрессия Пуассона, , и так далее.
В таких настройках ISGD просто реализуется следующим образом. Позволять , куда является скалярным, тогда ISGD эквивалентно:
Коэффициент масштабирования можно найти через метод деления пополам поскольку в большинстве регулярных моделей, таких как упомянутые выше обобщенные линейные модели, функция убывает, поэтому границы поиска для находятся .
Импульс
Дальнейшие предложения включают импульсный метод, который появился в Румельхарт, Хинтон и Уильямс Статья об обучении с обратным распространением.[16] Стохастический градиентный спуск с импульсом запоминает обновление Δ ш на каждой итерации и определяет следующее обновление как линейная комбинация градиента и предыдущее обновление:[17][18]
что приводит к:
где параметр что сводит к минимуму должна быть по оценкам, размер шага (иногда называемый скорость обучения в машинном обучении) и экспоненциальный коэффициент распада между 0 и 1, который определяет относительный вклад текущего градиента и более ранних градиентов в изменение веса.
Название «Импульс» происходит от аналогии с импульс в физике: вектор веса , представленный как частица, путешествующая через пространство параметров,[16] вызывает ускорение из-за градиента потерь ("сила "). В отличие от классического стохастического градиентного спуска, он имеет тенденцию продолжать движение в одном и том же направлении, предотвращая колебания. Импульс был успешно использован компьютерными учеными при обучении искусственные нейронные сети в течение нескольких десятилетий.[19]
Усреднение
Усредненный стохастический градиентный спуск, независимо изобретенный Руппертом и Поляком в конце 1980-х годов, представляет собой обычный стохастический градиентный спуск, который регистрирует среднее значение вектора параметров во времени. То есть обновление такое же, как и для обычного стохастического градиентного спуска, но алгоритм также отслеживает[20]
- .
Когда оптимизация выполнена, этот усредненный вектор параметров заменяет ш.
АдаГрад
АдаГрад (для адаптивного градиент алгоритм) представляет собой модифицированный алгоритм стохастического градиентного спуска с индивидуальным параметром скорость обучения, впервые опубликовано в 2011 году.[21] Неформально это увеличивает скорость обучения для более разреженных параметров и снижает скорость обучения для менее разреженных. Эта стратегия часто улучшает производительность сходимости по сравнению со стандартным стохастическим градиентным спуском в условиях, когда данные разрежены, а разреженные параметры более информативны. Примеры таких приложений включают обработку естественного языка и распознавание изображений.[21] У него все еще есть базовая скорость обучения η, но это умножается на элементы вектора {граммj,j} которая является диагональю внешний продукт матрица
куда , градиент, на итерации τ. Диагональ равна
- .
Этот вектор обновляется после каждой итерации. Формула обновления теперь
или, записанные как обновления для каждого параметра,
Каждый {грамм(я,я)} дает коэффициент масштабирования для скорости обучения, который применяется к одному параметру шя. Поскольку знаменатель этого фактора, это ℓ2 норма Как и в случае с предыдущими производными, экстремальные обновления параметров затухают, в то время как параметры, которые получают несколько или небольшие обновления, получают более высокую скорость обучения.[19]
Хотя предназначен для выпуклые задачи, AdaGrad успешно применяется для невыпуклой оптимизации.[22]
RMSProp
RMSProp (для среднеквадратичного распространения) также является методом, в котором скорость обучения адаптирован под каждый из параметров. Идея состоит в том, чтобы разделить скорость обучения для веса на скользящее среднее значений недавних градиентов для этого веса.[23]Итак, сначала вычисляется скользящее среднее через средний квадрат,
куда, фактор забвения.
И параметры обновляются как,
RMSProp показал хорошую адаптацию скорости обучения в разных приложениях. RMSProp можно рассматривать как обобщение Rprop и может работать как с мини-партиями, так и только с полными.[24]
Адам
Адам[25] (сокращение от Adaptive Moment Estimation) - это обновление RMSProp оптимизатор. В этом алгоритме оптимизации используются средние значения как градиентов, так и вторых моментов градиентов. Данные параметры и функция потерь , куда индексирует текущую итерацию обучения (индексируется на ), Обновление параметров Адама определяется следующим образом:
куда небольшой скаляр (например, ) используется для предотвращения деления на 0, и (например, 0,9) и (например, 0,999) - коэффициенты забвения для градиентов и секундных моментов градиентов соответственно. Возведение в квадрат и извлечение квадратного корня выполняется поэлементно.
Поиск строки с возвратом
Поиск строки с возвратом еще один вариант градиентного спуска. Все нижеперечисленное взято по указанной ссылке. Он основан на условии, известном как условие Армийо – Гольдштейна. Оба метода позволяют изменять скорость обучения на каждой итерации; однако способ изменения иной. Поиск строки с обратным отслеживанием использует оценки функций для проверки состояния Armijo, и в принципе цикл в алгоритме определения скорости обучения может быть длинным и заранее неизвестным. Adaptive SGD не нуждается в цикле при определении скорости обучения. С другой стороны, адаптивный SGD не гарантирует "свойства спуска", которым обладает поиск по строке с возвратом, а именно для всех п. Если градиент функции стоимости глобально непрерывен по Липшицу, с константой Липшица L и скорость обучения выбрана порядка 1 / L, то стандартная версия SGD является частным случаем поиска строки с возвратом.
Методы второго порядка
Стохастический аналог стандартного (детерминированного) алгоритма Ньютона – Рафсона (метод «второго порядка») обеспечивает асимптотически оптимальную или почти оптимальную форму итерационной оптимизации в условиях стохастической аппроксимации.[нужна цитата ]. Метод, использующий прямые измерения Матрицы Гессе слагаемых в эмпирической функции риска был разработан Бердом, Хансеном, Нокедалом и Зингером.[26] Однако прямое определение требуемых матриц Гессе для оптимизации на практике может оказаться невозможным. Практические и теоретически обоснованные методы для версий SGD второго порядка, которые не требуют прямой гессенской информации, представлены Споллом и другими.[27][28][29] (Менее эффективный метод, основанный на конечных разностях, а не на одновременных возмущениях, дал Рупперт.[30]Эти методы, не требующие прямой гессенской информации, основаны либо на значениях слагаемых в приведенной выше эмпирической функции риска, либо на значениях градиентов слагаемых (т. Е. Входных данных SGD). В частности, оптимальность второго порядка асимптотически достижима без прямого вычисления матриц Гессе слагаемых в эмпирической функции риска.
Примечания
- ^ это поэлементный продукт.
Смотрите также
- Поиск строки с возвратом
- Координатный спуск - изменяет одну координату за раз, а не один пример
- Линейный классификатор
- Машинное обучение онлайн
- Стохастическое восхождение на холм
Рекомендации
- ^ Ботту, Леон; Буске, Оливье (2012). «Компромисс крупномасштабного обучения». В Шри, Суврит; Новозин, Себастьян; Райт, Стивен Дж. (Ред.). Оптимизация для машинного обучения. Кембридж: MIT Press. С. 351–368. ISBN 978-0-262-01646-9.
- ^ Ботту, Леон (1998). «Онлайн-алгоритмы и стохастические аппроксимации». Онлайн-обучение и нейронные сети. Издательство Кембриджского университета. ISBN 978-0-521-65263-6.
- ^ Фергюсон, Томас С. (1982). «Непоследовательная оценка максимального правдоподобия». Журнал Американской статистической ассоциации. 77 (380): 831–834. Дои:10.1080/01621459.1982.10477894. JSTOR 2287314.
- ^ Ботту, Леон; Буске, Оливье (2008). Компромиссы крупномасштабного обучения. Достижения в системах обработки нейронной информации. 20. С. 161–168.
- ^ Ботту, Леон (1998). «Онлайн-алгоритмы и стохастические аппроксимации». Онлайн-обучение и нейронные сети. Издательство Кембриджского университета. ISBN 978-0-521-65263-6.
- ^ Кивель, Кшиштоф К. (2001). «Сходимость и эффективность субградиентных методов квазивыпуклой минимизации». Математическое программирование, серия A. 90 (1). Берлин, Гейдельберг: Springer. С. 1–25. Дои:10.1007 / PL00011414. ISSN 0025-5610. МИСТЕР 1819784.
- ^ Роббинс, Герберт; Зигмунд, Дэвид О. (1971). «Теорема сходимости неотрицательных почти супермартингалов и некоторые приложения». В Рустаги, Джагдиш С. (ред.). Методы оптимизации в статистике. Академическая пресса. ISBN 0-12-604550-X.
- ^ Дженни Роуз Финкель, Алекс Климан, Кристофер Д. Мэннинг (2008). Эффективный, основанный на функциях, условный анализ случайных полей. Proc. Ежегодное собрание ACL.
- ^ ЛеКун, Ян А. и др. «Эффективный обратный ход». Нейронные сети: хитрости торговли. Springer Berlin Heidelberg, 2012. 9-48.
- ^ Диас, Эстебан и Гиттон, Антуан. «Быстрая полная инверсия формы сигнала со случайным прореживанием кадра». Расширенные тезисы технической программы SEG, 2011. 2804-2808
- ^ Ави Пфеффер. "CS181 Лекция 5 - Персептроны" (PDF). Гарвардский университет.[постоянная мертвая ссылка ]
- ^ Добрый парень, Ян; Бенхио, Йошуа; Курвиль, Аарон (2016). Глубокое обучение. MIT Press. п. 291. ISBN 978-0262035613.
- ^ Процитировано Даркен, Кристиан; Муди, Джон (1990). Быстрая адаптивная кластеризация k-средних: некоторые эмпирические результаты. Int'l Joint Conf. в нейронных сетях (IJCNN). IEEE. Дои:10.1109 / IJCNN.1990.137720.
- ^ Сполл, Дж. К. (2003). Введение в стохастический поиск и оптимизацию: оценка, моделирование и управление. Хобокен, Нью-Джерси: Уайли. С. Разделы 4.4, 6.6 и 7.5. ISBN 0-471-33052-3.
- ^ Тулис, Панос; Эйрольди, Эдоардо (2017). «Асимптотические и конечно-выборочные свойства оценок на основе стохастических градиентов». Анналы статистики. 45 (4): 1694–1727. arXiv:1408.2923. Дои:10.1214 / 16-AOS1506. S2CID 10279395.
- ^ а б Румелхарт, Дэвид Э .; Хинтон, Джеффри Э .; Уильямс, Рональд Дж. (8 октября 1986 г.). «Изучение представлений путем обратного распространения ошибок». Природа. 323 (6088): 533–536. Bibcode:1986Натура.323..533R. Дои:10.1038 / 323533a0. S2CID 205001834.
- ^ Суцкевер, Илья; Мартенс, Джеймс; Даль, Джордж; Хинтон, Джеффри Э. (июнь 2013 г.). Санджой Дасгупта и Дэвид Макаллестер (ред.). О важности инициализации и импульса в глубоком обучении (PDF). В материалах 30-й международной конференции по машинному обучению (ICML-13). 28. Атланта, Джорджия. стр. 1139–1147. Получено 14 января 2016.
- ^ Суцкевер, Илья (2013). Обучение рекуррентных нейронных сетей (PDF) (Кандидат наук.). Университет Торонто. п. 74.
- ^ а б Цайлер, Мэтью Д. (2012). «ADADELTA: метод адаптивной скорости обучения». arXiv:1212.5701 [cs.LG ].
- ^ Поляк, Борис Т .; Юдицкий, Анатолий Б. (1992). «Ускорение стохастического приближения усреднением» (PDF). SIAM J. Control Optim. 30 (4): 838–855. Дои:10.1137/0330046.
- ^ а б Дучи, Джон; Хазан, Элад; Певец, Йорам (2011). «Адаптивные субградиентные методы для онлайн-обучения и стохастической оптимизации» (PDF). JMLR. 12: 2121–2159.
- ^ Gupta, Maya R .; Бенджио, Сами; Уэстон, Джейсон (2014). «Обучение высококлассных классификаторов» (PDF). JMLR. 15 (1): 1461–1492.
- ^ Хинтон, Джеффри. «Лекция 6e rmsprop: разделите градиент на скользящее среднее его недавней величины» (PDF). п. 26. Получено 19 марта 2020.
- ^ Хинтон, Джеффри. «Лекция 6e rmsprop: разделите градиент на скользящее среднее его недавней величины» (PDF). п. 29. Получено 19 марта 2020.
- ^ Дидерик, Кингма; Ба, Джимми (2014). «Адам: метод стохастической оптимизации». arXiv:1412.6980 [cs.LG ].
- ^ Byrd, R.H .; Hansen, S.L .; Nocedal, J .; Певица Ю. (2016). «Стохастический квазиньютоновский метод для крупномасштабной оптимизации». SIAM Journal по оптимизации. 26 (2): 1008–1031. arXiv:1401.7020. Дои:10.1137/140954362. S2CID 12396034.
- ^ Сполл, Дж. К. (2000). «Адаптивная стохастическая аппроксимация методом одновременных возмущений». IEEE Transactions по автоматическому контролю. 45 (10): 1839−1853. Дои:10.1109 / TAC.2000.880982.
- ^ Сполл, Дж. К. (2009). «Механизмы обратной связи и взвешивания для улучшения оценок якобиана в адаптивном алгоритме одновременных возмущений». IEEE Transactions по автоматическому контролю. 54 (6): 1216–1229. Дои:10.1109 / TAC.2009.2019793.
- ^ Bhatnagar, S .; Prasad, H.L .; Прашант, Л. А. (2013). Стохастические рекурсивные алгоритмы оптимизации: методы одновременных возмущений. Лондон: Спрингер. ISBN 978-1-4471-4284-3.
- ^ Рупперт, Д. (1985). "Версия Ньютона-Рафсона многомерной процедуры Роббинса-Монро". Анналы статистики. 13 (1): 236–245. Дои:10.1214 / aos / 1176346589.
дальнейшее чтение
- Ботту, Леон (2004), «Стохастическое обучение», Расширенные лекции по машинному обучению, LNAI, 3176, Springer, стр. 146–168, ISBN 978-3-540-23122-6
- Будума, Нихил; Locascio, Николас (2017), "За гранью градиентного спуска", Основы глубокого обучения: разработка алгоритмов машинного интеллекта нового поколения, О'Рейли
- ЛеКун, Ян А.; Ботту, Леон; Орр, Женевьева Б.; Мюллер, Клаус-Роберт (2012), «Эффективный BackProp», Нейронные сети: хитрости торговли, Springer, стр. 9–48, ISBN 978-3-642-35288-1
- Сполл, Джеймс С. (2003), Введение в стохастический поиск и оптимизацию, Wiley, ISBN 978-0-471-33052-3
внешняя ссылка
- Использование стохастического градиентного спуска в C ++, Boost, Ublas для линейной регрессии
- Алгоритмы машинного обучения
- "Градиентный спуск. Как обучаются нейронные сети". 3Синий 1Коричневый. 16 октября 2017 г. - через YouTube.
- Го (4 апреля 2017 г.). «Почему Momentum действительно работает». Дистиллировать. Интерактивная бумага, объясняющая импульс.