SGD и импульс

У нас будет краткий обзор оптимизации и того, зачем она нужна, а позже мы обсудим несколько известных алгоритмов.

Зачем нужны алгоритмы оптимизации?

Все проблемы машинного обучения, будь то регрессия или классификация, преследуют цель достижения оптимальной производительности. Качество модели напрямую связано с тем, насколько хорошими могут быть прогнозы, т. е. для задачи классификации модель должна быть способна правильно идентифицировать вещи, тогда как для задачи регрессии прогнозы модели задачи должны быть достаточно близки к реальным значениям. Чтобы разработать «хорошую модель», мы часто связываем эмпирический риск с проблемой и пытаемся уменьшить его с помощью итеративного процесса. Важным отличием алгоритмов оптимизации машинного обучения от других алгоритмов оптимизации является то, что они останавливаются не после достижения локального минимума, а при достижении критерия остановки. В глубоком обучении и общей ИНС мы часто можем использовать суррогатные функции потерь вместо минимизации эмпирического риска, потому что они склонны к переоснащению.

Обучение нейронной сети сталкивается с дополнительными проблемами. Проблемы могут возникнуть из-за плохо обусловленных матриц Гессе, что приводит к очень медленным шагам, седловым точкам, которые можно спутать с локальными минимумами, и взрывным градиентам, которые делают обучение нестабильным. Кроме того, аппроксимация градиентов с использованием мини-пакетов обучающих примеров может привести к неточным оценкам и заставить градиент двигаться в направлении, отличном от наиболее оптимального, которое могло быть получено с помощью градиента по всему набору данных.

В то время как SGD является классическим и до сих пор находит применение для многих задач, наметилась тенденция к использованию адаптивных алгоритмов.

1. Стохастический градиентный спуск

Стохастический градиентный спуск — простой для понимания алгоритм для новичка. Он во многом похож на свой предшественник, пакетный градиентный спуск, но дает преимущество над ним в том смысле, что он быстро прогрессирует в снижении целевого риска с меньшим количеством проходов по набору данных. Алгоритм следующий:

По сути, алгоритм на каждой итерации выбирает m точек данных, вычисляет для них средний градиент, обновляет параметры и делает это для различных скоростей обучения, чтобы получить наиболее оптимальную модель. Этот процесс повторяется до тех пор, пока не будет выполнен определенный критерий сходимости.

Почему нам нужно изменить скорость обучения? Случайная выборка обучающих примеров добавляет к градиенту случайный шум, и он не уменьшается даже при локальных минимумах. Следовательно, чтобы гарантировать сходимость, мы позволяем скорости обучения уменьшаться для нескольких начальных итераций и позволяем ей фиксироваться после этого. Достаточным условием, гарантирующим сходимость, является

Здесь epsilon-k — скорость обучения после k-й итерации.

Согласно книге по глубокому обучению, мы установили окончательное фиксированное значение эпсилон примерно в 1% от начального значения. Важным свойством SGD является то, что обновление параметров за итерацию зависит только от размера пакета m и, следовательно, время вычисления за итерацию не меняется с увеличением количества обучающих примеров. Для выпуклой задачи ошибка обобщения (разница между значением функции потерь после текущей итерации и минимальным значением функции потерь) уменьшается на каждом шаге на O(1/sqrt(k)). Согласно границе Крамера-Рао, эта ошибка обобщения не может уменьшаться более чем на O(1/k) за одну итерацию.

2. Импульс

Импульс с SGD используется для преодоления проблемы плохо обусловленной матрицы Гессе и дисперсии градиентов, связанных с SGD. Он достигает этой цели, поддерживая скользящее среднее значение своих градиентов. Теперь обновление зависит не только от текущего градиента, но и от последовательности градиентов из прошлого. По сути, он поддерживает другую переменную v, которая будет накапливать градиенты, и использует эту переменную для обновления параметров. Алгоритм следующий:

Важно отметить, что сейчас у нас есть еще один гиперпараметр. На следующем рисунке красными линиями показано движение градиента с импульсом. Он быстрее и больше направлен на достижение цели, так как учитывает направление прошлых градиентов, а также усредняет их. Контурные линии представляют квадрат функции потерь

Использованная литература:



Далее Алгоритмы оптимизации 2 по адаптивным методам.