Мам, я хочу double descent -
у нас есть double descent дома!💀 Феномен двойного спуска - явление, наблюдаемое в моделях машинного обучения, при котором при увеличении сложности модели на тестовых данных сначала наблюдается улучшение качества предсказаний (первый спуск), затем идёт ожидаемый рост ошибки (переобучение), а потом, внезапно, происходит улучшение обобщающей способности модели (второй спуск). Интересно, что похожую картинку можно получить на довольно простом примере полиномиальной регрессии. На анимации выше слева 50 точек синусоиды, которые используются в качестве train set для обучения полиномиальной регрессии.
😎 Типичное поведение при увеличении степени полинома - переобучение, т.е. почти нулевая ошибка на трейне (синих точках слева) и высокая ошибка на тесте (равномерно расположенные 100 точек на черной линии). Однако при дальнейшем увеличении сложности модели мы видим, что среди бесконечного множества решений задачи как-то выбираются более гладкие. То есть мы явно наблюдаем double descent.
🤩 Это, конечно, происходит не просто так. Конкретно в этой анимации с полиномами Чебышева среди бесконечного множества подходящих полиномиальных коэффициентов я выбирал те, что обладают наименьшей нормой. В машинном обучении часто нельзя явно так сделать, поэтому используется weight decay для выбора решений с не очень большой нормой.
👨💻 Код для построения анимации.
🧠 Часто в рассказах про double descent упоминают другое похожее явление -
grokking. Мой коллега Антон Разжигаев у себя в канале
@abstractDL выложил крутейший
пост со ссылкой на свое воспроизведение этого эксперимента в домашних условиях в колабе (и там получилось). Антон - молодой исследователь, который в канале выкладывает в том числе и свои серьезные оригинальные исследования, что я особенно ценю. Так же прикрепляю ссылку на папку (вы, скорее всего, её уже видели) с авторскими телеграм каналами про ИИ - на большую часть из них я подписан лично.
https://hottg.com/addlist/C_RSYpbW5mIyMjVi