Градиентный спуск: интуиция и одна формула
Почти любой метод обучения моделей упирается в одну задачу: найти минимум функции, которую нельзя решить аналитически. Градиентный спуск отвечает на неё грубо, но универсально — идёт вниз по склону мелкими шагами.
θt+1 ← θt − η · ∇J(θt)fig.01 — шаг обновления
Почему это работает
Градиент — локально самое крутое направление роста. Шаг против него уменьшает
значение функции при достаточно малом η.
заметка на полях
Фиксированный η почти не используют — планировщики и Adam меняют шаг по ходу.
Минимальная реализация
# один шаг спуска для J(θ) = θ²
def step(theta, lr=0.1):
grad = 2 * theta # ∇J(θ) = 2θ
return theta - lr * grad