В чем понт В последнее время сети стали очень большими, и научились запоминать огромное количество информации. Это зачастую является проблемой, поскольку мы хотим от них генерализации, чтобы они давали правильные ответы на данных, которых никогда не наблюдали. В статье авторы пытаются понять, чем сети, которые генерализуют, отличаются от сетей, которые запоминают, какие регуляризаторы в связи с этим лучше использовать и как валидироваться.
Подробности ✏️Факт 1 Для сетей, которые запоминают,конкретные ячейки(например, нейроны) важнее, чем для генерализующих 🔎Пруф Первую сеть, которая на наш взгляд неплохо генерализует, обучаем на обычном датасете. Потом искажаем наш датасет, случайно перемешивая метки классов и пытаемся обучить на нем вторую сеть. В таком датасете заметно меньше логики, поэтому второй сети придется его запоминать. Важность конкретных ячеек для обеих сетей мы сравниваем, фиксируя активации для части ячеек в этих сетях и наблюдая за ухудшением качества. В запоминающей сети качество ухудшилось сильнее.
✏️Факт 2 Чтобы понимать, какую модель выбрать и когда останавливаться, необязательно использовать отложенный датасет(который круто было бы использовать для тренировки) 🔎Пруф Авторы строят график зависимости AUC от эпохи обучения, фиксируя ячейки в сети. Приходят к выводу, что эта кривая начинает менять характер своего поведения, когда начинается переобучение(начинает расти лосс на отложенной выборке).
✏️Факт 3 Dropout не панацея и не обеспечивает гарантированной генерализации 🔎Пруф При использовании dropout, сеть, обученная на датасете с перемешанными лейблами(негенерализующая) запоминает примеры многими методами, вместо того, чтобы обобщиться, что можно наблюдать при фиксации большого числа ячеек, чем при выкидывании в dropout.
✏️Факт 4 А batchnorm похоже панацея при генерализации :) 🔎Пруф Авторы обучают сети с batchnorm(нормализуют входные сигналы для нелинейностей в каждом скрытом слое) и без него, и смотрят, насколько качество предсказаний ухудшается с фиксацией части ячеек. Оказывается, что сети с batchnorm заметно более устойчивы к такому воздействию, а значит лучше генерализуют(см факт1)
✏️Факт 5 Batchnorm способствует преобладанию ячеек с информацией сразу о многих классах 🔎Пруф Авторы исследуют так называемый class selectivity - прогоняют через сеть данные из разных классов и смотрят, насколько средние активации ячеек рознятся между классами. Выясняется, что при применении batchnorm они рознятся заметно меньше, что означает, что в такой сети информация о всех классах распределена по сети более равномерно, а значит вся система в целом стабильней.
Что в итоге Статья, которая позволяет лучше понять, как и почему генерализуются сети (отойдя от парадигмы черного ящика), как на это влияют регуляризаторы, лишний раз обосновывает прелесть batchnorm и демонстрирует, что останавливать обучение и выбирать гиперпараметры можно и без отложенной выборки.