глоссарий

AdaGrad

AdaGrad

AdaGrad — это алгоритм оптимизации для обучения нейросетей, который подбирает отдельный шаг для каждого параметра модели. Вместо единого темпа обучения он смотрит на историю градиентов: чем чаще параметр участвовал в вычислениях, тем меньше становится его шаг. Это важно для разреженных данных, где одни признаки встречаются почти в каждом примере, а другие — крайне редко. Обычный метод с постоянным шагом вынужден идти на компромисс: большой шаг расшатывает частые веса, маленький — слишком медленно учит редкие.

Представьте спуск с горы в тумане. Для каждого направления вы запоминаете, сколько шагов уже сделали. Если по одному направлению прошли много, шаги уменьшаются, чтобы не проскочить мимо впадины. Если направление почти не использовалось, вы идёте большими шагами и быстро навёрстываете упущенное. AdaGrad делает нечто похожее: он накапливает квадраты градиентов для каждого параметра и делит на них текущее обновление. В результате редкие признаки не застревают в обучении, а частые не переобучаются.

Прикладной пример — предсказание кликов в интернет-рекламе. Признак «возраст» есть во всех записях, а запрос «дешёвые перелёты в Токио» встречается у единиц. AdaGrad не даёт частому признаку подавить редкий, поэтому модель лучше улавливает индивидуальное поведение пользователя.

Итог: AdaGrad — важный шаг к адаптивным оптимизаторам. Он хорошо работает с разреженными данными, но накопленная сумма квадратов градиентов неограниченно растёт, и обучение может преждевременно остановиться. Именно эта проблема привела к созданию более совершенных методов — RMSProp и Adam.