Оптимизатор: Adagrad (адаптивный градиент)

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

В SGD и SGD+Momentum скорость обучения (α) всегда является постоянным значением, т. е. скорость обучения одинакова для всех весов на каждой итерации на этапе обучения. Но в Adagrad каждый вес имеет разную скорость обучения на каждой итерации. Теперь вопрос, зачем это вообще нужно?

Допустим, у вас есть некоторые разреженные функции (например, CBOW) и плотные функции (например, Word2Vec). В случае SGD у нас есть постоянная скорость обучения, которая затем вызовет проблему, заключающуюся в том, что шаг (который снова является постоянным из-за константы α), сделанный в направлении плотных признаков, выше, чем шаг, сделанный в направлении разреженных признаков.

В SGD имеем Wₜ = Wₜ₋₁ - α 𝓰ₜ,

где Wₜ — вес на итерации = t, а 𝓰ₜ — градиент на итерации t. Обратите внимание, что α остается постоянным на протяжении всей итерации от 1 до t.

Теперь для Адаграда уравнение выглядит так: Wₜ = Wₜ₋₁ — α ′𝓰ₜ, где Wₜ и 𝓰ₜ такие же, как и выше, но α ′ = α/ √(γₜ + ε), где γₜ = ∑ᵢ₌₁ t-1 𝓰ᵢ²

где 𝓰ᵢ = [ ∂L/ ∂W] при Wᵢ-1. Здесь ε — небольшое положительное значение

Таким образом, когда итерация увеличивается, 𝓰ᵢ² будет увеличиваться, что, в свою очередь, поднимет γₜ, что означает, что α ′ упадет, поскольку α ′ обратно пропорционально γₜ. Возникает вопрос, почему у нас есть ε, если мы знаем, что γₜ всегда будет положительным значением, а не нулем из-за суммирования 𝓰ᵢ². Причина в том, чтобы избежать деления на ноль, поскольку градиент может быть равен нулю во время первойитерации.

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

Преимущества использования Адаград:

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

Недостаток:

По мере увеличения t уменьшается α ′, что означает, что чем больше число итераций, тем медленнее будет обучение, и, следовательно, сходимость будет занимать больше времени.