Хотя алгоритм градиентного спуска является основой всего глубокого обучения, но заканчивается ли на этом история?

Ответ: абсолютно нет……..!

У нас также есть другие алгоритмы, или мы можем сказать, что они делают Gradient Descent более мощным и даже более быстрым.

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

Проблема с градиентным спуском (GD):

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

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

  1. Градиентный спуск на основе импульса.здесь мы обновляем алгоритм градиентного спуска по следующему правилу:

Итак, здесь мы собрали всю нашу историю изменения параметров в виде Vt и обновили наше правило GD. Это сделает GD намного быстрее в плоской области функции потерь, чтобы достичь точки впадины.

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

(не волнуйтесь, мы разберемся с этими колебаниями в нашем следующем правиле обновления или следующем алгоритме для GD)

2. Nesterov Accelerated GD:Итак, если мы заменим наше выражение Wt, как показано на изображении ниже, мы можем уменьшить наши колебания до минимума.

дополнительный коэффициент, который мы добавили в выражение Wt+1, будет направлять параметр обучения к минимальному значению функции потерь, тем самым уменьшая колебания.

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

3. Пакетный, стохастический и мини-пакетный GD:прежде чем начать, позвольте мне задать один вопрос:

Нужно ли брать целые данные для обучения, чтобы вычислить изменение параметра обучения (т. е. 1 эпоху)?

Нет, мы можем разделить наши данные на мини-пакеты (например: 20 000 тренировочных баллов в общей сложности 1 лакх тренировочных баллов, шаг = 5) и рассчитать приблизительное значение параметра обучения, который попадает в мини-пакетный градиентный спуск. .

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

В Стохастическом градиентном спуске мы обновляем наш параметр обучения после каждой точки обучения (из приведенного выше примера: step=1lakh).

вы получите четкое представление обо всем сценарии, взглянув на таблицу ниже:

4. Адаград:

прежде чем углубиться в это, мы сначала начнем понимать Adaptive Learning Rate, который составляет основу для Adagrad.

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

Разреженный объект (или столбец) – это объект, содержащий в основном нули и несколько ненулевых элементов. плотный элемент содержит в основном ненулевые значения.

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

Наконец, в Adagrad мы используем следующее правило обновления:

Как видно на рис. 7, изменение параметра обучения напрямую зависит от значения признака.

Таким образом, для разреженной функции значение Vt (на рис. 6) очень мало, поскольку дельта (W) большую часть времени равна нулю, а скорость обучения становится высокой. Следовательно, изменение параметра обучения также велико.

Для плотной функции значение Vt высокое, поэтому скорость обучения становится низкой (как и в предыдущем аргументе). Следовательно, изменение параметра Learning также невелико.

но проблема не совсем решена, вот новая проблема возникает из-за плотных особенностей данных, которые мы увидим в следующей теме Ограничение Адаграда

4.1 Ограничение Адаграда:

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

Как вы можете видеть на рис. 8 параметр b, связанный с плотным элементом, остановился вблизи точки долины и не достиг минимума функции потерь.

Как всегда, мы будем искать решение в нашем следующем предстоящем алгоритме, то есть RMSprop.

5. RMSProp:вздесь мы только что включили дополнительный параметр 'бета' для сравнения с Adagradвыражением, которое помочь Vt экспоненциально уменьшаться для плотных признаков данных и не достигать нуля.

Теперь посмотрите на рис. 10, включив коэффициент бета в выражение Vt, параметры (w и b) наконец достигли своего положения при минимальном значении функции потерь по сравнению с предыдущим рис. 8, где они не смогли этого сделать из-за очень малого значения скорости обучения.

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

6. Адам:

Здесь мы объединяем скорость (GD на основе импульса) и точность (RMSProp). Обновленное выражение показано на рис. 11.

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

На приведенном ниже рисунке мы видим движение (выделено голубым цветом) параметров функции потерь с использованием алгоритма Адама.

Теперь давайте перейдем к нашей итоговой части.

7. Резюме:

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

Отказ от ответственности: примечания One Fourth labs