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