AdaGrad
Представьте спуск с горы в тумане. Для каждого направления вы запоминаете, сколько шагов уже сделали. Если по одному направлению прошли много, шаги уменьшаются, чтобы не проскочить мимо впадины. Если направление почти не использовалось, вы идёте большими шагами и быстро навёрстываете упущенное. AdaGrad делает нечто похожее: он накапливает квадраты градиентов для каждого параметра и делит на них текущее обновление. В результате редкие признаки не застревают в обучении, а частые не переобучаются.
Прикладной пример — предсказание кликов в интернет-рекламе. Признак «возраст» есть во всех записях, а запрос «дешёвые перелёты в Токио» встречается у единиц. AdaGrad не даёт частому признаку подавить редкий, поэтому модель лучше улавливает индивидуальное поведение пользователя.
Итог: AdaGrad — важный шаг к адаптивным оптимизаторам. Он хорошо работает с разреженными данными, но накопленная сумма квадратов градиентов неограниченно растёт, и обучение может преждевременно остановиться. Именно эта проблема привела к созданию более совершенных методов — RMSProp и Adam.
Поделиться