Допустим, мы обучаем классификатор при помощи обучения с учителем и уже применили к датасету различные методы для уменьшения переобучения. Как можно улучшить модель или цикл обучения, чтобы добиться еще более заметного эффекта?
Наиболее эффективные методы борьбы с переобучением включают в себя различные техники регуляризации, такие как Dropout и сокращение весов. Как правило, модели с большим количеством параметров требуют больше тренировочных данных для успешного обобщения. Поэтому иногда уменьшение размера модели может помочь снизить степень переобучения. Наконец, одним из самых действенных способов борьбы с переобучением является создание ансамблей моделей. Однако этот метод иногда связан с повышенными вычислительными затратами.
В этой главе мы обсудим ключевые идеи и методы, которые помогают снизить переобучение при помощи модификации моделей, и сравним их между собой. В заключение мы обсудим, как выбрать между различными техниками уменьшения переобучения, включая те, о которых мы говорили в предыдущей главе.
Общие методы
Существуют различные техники позволяющие уменьшить переобучение, которые ориентированы на работу с моделями и циклом обучения. Их можно разделить на три большие категории: (1) добавление регуляризации, (2) выбор более простых моделей и (3) построение ансамблей моделей.
Регуляризация
Мы можем рассматривать регуляризацию как своего рода штраф за сложность. Классические подходы к регуляризации для нейронных сетей включают регуляризацию и соответствующий метод сокращения весов. Реализация
регуляризации осуществляется путем добавления штрафной компоненты к функции потерь, которая минимизируется в процессе обучения. Эта дополнение отражает размер весов, например, в виде суммы квадратов весов. Формула ниже показывает функцию потерь с
регуляризацией
где - гиперпараметр, который регулирует силу регуляризации.
Во время обратного распространения ошибки оптимизатор стремится минимизировать модифицированную функцию потерь, которая теперь включает штрафную компоненту, что приводит к уменьшению весов у модели и может улучшить обобщаемость модели к новым данным.
Метод сокращения весов (Weight Decay) похож на регуляризацию, но применяется напрямую к оптимизатору, а не к функции потерь. Поскольку оба метода дают тот же самый результат, их часто используют синонимично. Однако, в зависимости от деталей реализации и используемого оптимизатора, между ними могут быть небольшие отличия.
Существует множество других подходов, оказывающих регуляризующий эффект. Для краткости, мы обсудим лишь два из наиболее популярных методов: dropout и раннюю остановку.
Dropout помогает уменьшить переобучение путем случайного зануления некоторых нейронов скрытых слоев во время обучения. Из-за этого нейронная сеть не может полагаться на то, что определенные нейроны будут активированы. Вместо этого она учится использовать большее число нейронов и формирует несколько независимых представлений одних и тех же данных, что снижает риск переобучения.
В процессе ранней остановки, мы следим за качеством модели на валидационном сете во время обучения. Когда качество модели начинает снижаться, обучение останавливается, как показано на Рисунке 1.1.

На Рисунке 1.1 видно, что по мере роста качества на валидации, разница между качеством на обучающем и валидационном сетах сокращается. Точка, где расхождение между качеством на обучающей и валидационном сетах минимально, является моментом, когда модель демонстрирует наименьшее переобучение. Часто это служит хорошим сигналом для принятия решения о ранней остановке.
Более простые модели
Классическая теория смещения и дисперсии предполагает, что уменьшение модели может уменьшить переобучение. Интуитивно это объясняется тем, что чем меньше у модели параметров, тем сложнее ей запомнить или адаптироваться к шумам в данных. В следующих параграфа мы рассмотрим различные методы. позволяющие уменьшить размер моделей, включая прунинг - процесс удаления параметров из модели, и дистилляцию знаний - способ переноса знаний в более компактную модель.
Помимо уменьшения количества слоев и их ширины в процессе подбора гиперпараметров, существует ещё один подход к получению более компактных моделей - итеративный прунинг. Этот подход предполагает обучение большой модели, которая показывает хорошее качество на исходном датасете. Затем мы итеративно удаляем параметры из модели, и повторно обучаем ее на исходном датасете стараясь сохранить предсказаельные способности на том же уровне. Гипотеза о лотерейном билете, которую мы обсуждали в Главе 4, использует итеративный прунинг как основной метод.
Другой популярный метод для создания более компактных моделей - дистилляция знаний. Основная идея этого подхода заключается в том, чтобы передать знания от более крупной и сложной модели-учителя к меньшей модели-ученику. В идеале ученик должен достичь того же уровня качества, что и учитель, но при этом быть более эффективным благодаря меньшему размеру. Как приятный бонус, ученик менее склонен к переобучению, чем его учитель.
Диаграмма ниже изображает этот процесс. На первом этапе учитель обучается стандартным способом - методом обучения с учителем для классификации примеров в датасете. В качестве функции потерь используется кросс-энтропия между предсказанными оценками и истинными метками классов. В то время, когда маленькая нейросеть-ученик обучается на том же самом датасете, целью обучения становится не только (а) минимизация кросс-энтропии между выходами и метками классов, но и (b) минимизация различий между выходами модели-ученика и модели-учителя. Это различие измеряется при помощи расхождения Кульбака-Лейблера, которое оценивает разницу между двумя вероятностными распределениями, вычисляя, насколько одно распределение отличается от другого с точки зрения информационного содержания.

Минимизация расстояния Кульбака-Лейблера между распределениями оценок учителя и ученика позволяет последнему учиться, как будто он подражает учителю. При этом он становится более эффективной моделью, оставаясь меньше, чем учитель.
Некоторые замечания про маленькие модели
В то время как прунинг и дистилляция знаний могут улучшить обобщаемость модели, эти подходы не являются основными или достаточно эффективными способами борьбы с переобучением.
Ранние исследования показывают, что прунинг и дистилляция знаний могут улучшить обобщаемость модели, вероятно, благодаря уменьшению её размеров. Однако, вопреки ожиданиям, последние исследования посвященные таким явлениям, как двойной спуск и грокинг, показывают, что большие модели с огромным количеством параметров демонстрируют лучшую обобщаемость, если их обучение продолжается даже после достижения точки переобучения. Двойной спуск относится к ситуации, когда модели с либо небольшим, либо с очень большим количеством параметров показывают хорошую обобщаемость, в то время как модели с количеством параметров, равным количеству обучающих точек, показывают плохую обобщаемость. Грокинг, в свою очередь, указывает на то, что по мере снижения размера датасета, необходимость оптимизаций возрастает и обобщаемость может быть достигнута далеко за пределами точки переобучения.
Как мы можем объяснить, что урезанные модели могут показывать лучшую обобщаемость несмотря на противоречивые наблюдения из исследований о двойном спуске и грокинге? Недавно исследователи выяснили, что улучшение процесса обучения частично объясняет уменьшение переобучения во время прунинга. Прунинг подразумевает более длительные периоды обучения, а также повторение схемы выбора шагов обучения, что может быть одной из причин улучшения обобщаемости.
Прунинг и дистилляция знания остаются прекрасными способами улучшить вычислительную эффективность модели. Однако, в то время как они могут улучшить обобщаемость модели, эти подходы не являются ключевыми или эффективными способами борьбы с переобучением.
Ансамбли моделей
Ансамблевые методы позволяют объединить предсказания нескольких моделей, чтобы улучшить общую предсказательную способность. Однако, использование нескольких моделей связано с дополнительными вычислительными затратами.
Мы можем представить ансамбли моделей в виде группы экспертов, которые высказывают свои мнения по поводу решения. Затем эти оценки объединяются каким-то образом, чтобы сформировать окончательное решение. Члены собрания часто имеют разный опыт. И в то время когда они соглашаются на простых решениях, часто они могут предотвратить принятие плохие решений путем принятия решения большинством. Это не значит, что большинство экспертов всегда право, но есть неплохой шанс, что в среднем большинство чаще оказывается правым, чем каждый эксперт отдельно.
Самый простой пример ансамбля - голосование большинством. Мы обучаем различных классификаторов и собираем предсказанные метки классов от каждого из этих
моделей для данного входного объекта. Затем мы возвращаем метку класса, которая встречается чаще всего, как итоговое предсказание. Если метки встречаются с одинаковой частотой (происходит ничья), то используя некий коэффициент уверенности, случайный выбор метки или выбор класса с наименьшим индексом.
Ансамбли моделей чаще применяются в классическом машинном обучении, чем в глубинном обучении, так как использование нескольких моделей обходится значительно дороже, чем использование одной. Другими словами, глубокие нейронные сети требуют значительно больше вычислительных ресурсов, что делает их менее подходящими для создания ансамблей.
Случайные леса и градиентный бустинг - наиболее популярные примеры ансамблей. Однако мы можем создавать ансамбли, сочетая различные группы моделей, используя такие методы, как голосование большинством или, например, стекинг. Такой ансамбль может состоять из SVM, многослойного перцептрона и kNN. Стекинг, также известный как стековое обобщение, представляет собой более продвинутый вариант голосования большинством. Он включает обучение новой модели, которая объединяет предсказания нескольких других моделей, а не просто получает метку путем голосования.
В индустрии широко используется метод построения моделей на основе k-фолдовой кросс-валидации. Это техника оценки моделей, при которой мы обучаем и оцениваем модель на k обучающих фолдах. Затем мы сравниваем средний показатель метрики качества, полученной среди всех k итераций для оценки общего качества модели. После оценки мы можем либо обучить модель на всем датасете, либо объединить несколько отдельных моделей в ансамбль, как показано на Рисунке 1.2.

Как показано на Рисунке 1.2, в k-фолдовый ансамбле каждая из моделей обучается на соответствующих
обучающих фолдах в каждом раунде. После оценки моделей на валидационных фолдах, мы можем объединить их в классификатор с голосованием большинством или построить ансамбль, используя стекинг - технику, которая объединяет несколько классификаторов или регрессионных моделей используя мета-модель.
Хотя ансамбли могут помочь уменьшить переобучение и повысить устойчивость, этот подход не всегда является оказывается подходящим. Например, могут возникнуть сложности с управлением и деплоем ансамблей моделей, что делает их более сложными и дорогими в вычислительном плане по сравнению с использованием одной модели.
Другие подходы
На данный момент мы рассмотрели лишь некоторые из наиболее многообещающих техник по уменьшению переобучения. В Главе 5 описаны методы уменьшения переобучения с точки зрения данных. Дополнительные подходы борьбы с переобучением, при помощи настройки моделей, включают использование сквозных связей между слоями (можно найти в сетях архитектуры ResNet, например), look-ahead оптимизаторы, стохастическое усреднение весов, обучение на нескольких задачах и ансамбли на основе снапшотов моделей.
Следующие методы формально не были разработаны для предотвращения переобучения, при этом они могут оказывать стабилизирующий эффект на обучение и часто служить в качестве регуляризаторов, что помогает снизить переобучение. К таким подходам относятся batch нормализация (BatchNorm) и нормализация слоя (LayerNorm), которые нормализуют входные данные слоев. Нормализация весов (WeightNorm), которая нормализует веса модели, а не входные данные слоев, также может улучшить обобщаемость, но этот эффект оказывается менее прямым, поскольку нормализация весов не действует как регуляризатор напрямую, в отличие от метода сокращения весов.
Выбор подхода к регуляризации
Улучшение качества данных - обязательный первый шаг на пути к снижению переобучения. Однако, в современных глубоких нейронных сетей с большим количеством параметров, нам нужны дополнительные меры, чтобы получить приемлемый уровень переобучения. Поэтому, наряду с традиционными методами, такими как dropout и сокращение весов, такие подходы как аугментация данных и предварительное обучение остаются важными методами уменьшения переобучения.
На практике мы можем и должны использовать сразу несколько методов уменьшения переобучения сразу для аддитивного эффекта. Чтобы получить наилучшие результаты, подход к выбору этих методов должен быть подобен задаче подбора гиперпараметров.