Оптимизатор: 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. Здесь ε — небольшое положительное значение
Таким образом, когда итерация увеличивается, 𝓰ᵢ² будет увеличиваться, что, в свою очередь, поднимет γₜ, что означает, что α ′ упадет, поскольку α ′ обратно пропорционально γₜ. Возникает вопрос, почему у нас есть ε, если мы знаем, что γₜ всегда будет положительным значением, а не нулем из-за суммирования 𝓰ᵢ². Причина в том, чтобы избежать деления на ноль, поскольку градиент может быть равен нулю во время первойитерации.
Таким образом, каждый вес в каждом узле будет иметь разную скорость обучения, потому что значение градиента будет разным для каждого узла.
Преимущества использования Адаград:
- Разреженные функции будут иметь более высокую скорость обучения, в то время как плотные функции будут иметь более низкую скорость обучения.
- Нет необходимости в ручной настройке скорости обучения.
Недостаток:
По мере увеличения t уменьшается α ′, что означает, что чем больше число итераций, тем медленнее будет обучение, и, следовательно, сходимость будет занимать больше времени.