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

Что такое градиентный спуск?

Градиентный спуск — довольно общий алгоритм оптимизации, достаточно эффективный для поиска наилучших решений широкого круга задач.

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

Случайные значения инициализируются значением θ. Размер шагов определяется гиперпараметром скорости обучения, который равен α. Если скорость обучения слишком высока, мы можем выйти за глобальные минимумы и продолжать отскакивать, а если скорость обучения слишком мала, для достижения минимума потребуется много времени.

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

Пакетный градиентный спуск

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

Эпоха обучения — это один цикл по всему набору обучающих данных.

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

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

Стохастическая модель — это любая модель, которая имеет некоторую непредсказуемость, а стохастичность относится к степени случайности в рассматриваемой модели.

Благодаря своей стохастичности он способен избегать локальных минимумов. Однако,как только она приближается к глобальному минимуму, функция стоимости продолжает прыгать вверх и вниз, а не останавливаться на минимуме (это дает нам хорошее, но не идеальное значение для параметров модели, поиск оптимальной скорости обучения является решением этой проблемы).

Локальный минимум — это точка, в которой значение функции меньше, чем в соседних точках, но может быть больше, чем в удаленной точке, тогда как глобальный минимум — это точка, в которой значение функции меньше, чем во всех других возможных точках.

Мини-пакетный градиентный спуск

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

С точки зрения эффективности обработки пакетная обработка превосходит стохастический градиентный спуск. Нет необходимости хранить в памяти все обучающие данные. Мини-пакетный градиентный спуск в конечном итоге будет блуждать немного ближе к минимуму, чем стохастический градиентный спуск, но избежать локального минимума будет сложнее. Тем не менее, он будет сходиться как минимум, если используется график приличной скорости обучения.

Заключение:

Алгоритм градиентного спуска и его различные версии, включая пакетную, стохастическую и мини-пакетную, обсуждались в этом посте, а также различия между ними. Спасибо!