Эксперименты с градиентным спуском
Зачем смотреть внутрь обучения
До этого момента мы рассматривали модели как законченные объекты. Есть данные, есть формула, есть результат. Линейная регрессия, например, выглядит почти статично в готовом виде: мы подставили признаки, получили коэффициенты, сделали прогноз.
Но в реальности модель не появляется из ниоткуда. Прежде чем коэффициенты станут "правильными", они проходят длинный путь. Этот путь и есть обучение.
Градиентный спуск – не просто формула и не абстрактный алгоритм, а процесс. Это последовательность маленьких шагов, в каждом из которых параметры модели немного изменяются в сторону уменьшения ошибки. Чтобы понять его по-настоящему, недостаточно увидеть итоговые коэффициенты. Нужно посмотреть, как они движутся.
От моделей к движению параметров
Именно поэтому в этой части книги мы временно забудем про бизнес-задачи и прикладные сценарии. Вместо этого мы будем наблюдать сам процесс обучения: как меняется параметр от шага к шагу, как ведет себя ошибка, что происходит при удачном и неудачном выборе скорости обучения, и почему иногда модель будто бы "застревает".
Эти эксперименты намеренно просты. В них нет сложных датасетов, хитрых признаков или продвинутых моделей. Зато в них максимально прозрачно видно то, что обычно скрыто внутри метода train(): направление движения, роль производной и влияние каждого шага.
Цель этой главы – сформировать интуицию. После нее градиентный спуск перестает быть магией и начинает восприниматься как обычный, почти механический процесс. А когда понятен процесс, становятся понятны и его ограничения.
В следующих разделах мы последовательно разберем несколько характерных экспериментов:
Пример 1. Как параметр модели шаг за шагом движется к минимуму ошибки
Пример 2. Как выбор learning rate влияет на скорость и устойчивость обучения
Пример 3. Что происходит, когда градиент становится почти нулевым и возникает эффект плато
Пример 4. Чем отличается batch gradient descent от стохастического и почему шум в обучении – это нормально.
Каждый из этих экспериментов будет реализован на чистом PHP и снабжен комментариями, чтобы можно было буквально увидеть и почувствовать, как работает градиентный спуск изнутри.
Last updated