Как построить нейронные сети, которые хорошо обобщают

Независимо от того, строим ли мы модель классификации или прогнозирования, наша цель состоит в том, чтобы модель хорошо работала с данными, которые мы раньше не видели. Именно здесь мы создаем ценность нашей модели. Хорошая работа с данными, которые уже помечены или были просмотрены ранее, не очень важна для повышения ценности.

Когда мы обучаем нейронные сети, наша цель состоит в том, чтобы модель работала хорошо за пределами обучающих данных, для которых она изучает параметры. Говорят, что в этом случае модель хорошо обобщается.

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

Почему важна регуляризация

Как упоминалось во введении, одной из основных целей конвейера машинного обучения является обеспечение того, чтобы модель хорошо обобщалась или хорошо работала с данными, которые она еще не видела. В этой статье Zhang et al. изучить проблему обобщения в задачах классификации. Они находят главную проблему в нейронных сетях.

«Глубокие нейронные сети легко вписываются в случайные метки»

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

В статье утверждается, что как неявная, так и явная регуляризация полезны для улучшения ошибки обобщения. Неявная регуляризация происходит в результате определенных сетевых решений, таких как использование стохастического градиентного спуска (SGD), который сходится к малой норме, но не пытается явно регуляризовать. Хотя неявная регуляризация определенно заслуживает упоминания, она менее изучена, поэтому в этой статье мы сосредоточимся на методах явной регуляризации, таких как снижение веса, выпадение и увеличение данных.

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

В этой статье мы видим, что модель обманом заставили поверить, что изображение панды является гиббоном с вероятностью 99,3%, слегка изменив пиксели на изображении. Другой, более серьезный пример состязательных атак - это обман сети обнаружения спама, заставив ее поверить, что спам-электронное письмо не является спамом.

Если модель плохо обобщается, она будет значительно более восприимчива к этим атакам и будет значительно легче понять, как атаковать. Как правило, эти атаки выполняются путем создания сети, аналогичной той, которая используется в производственной среде, а затем с использованием функции потерь при изменении данных при максимальном увеличении вероятности того, что модель предсказывает неверный класс. Методы регуляризации, которые мы обсудим ниже, помогают усложнить этот процесс.

Лучшие практики регуляризации

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

Снижение веса

Снижение веса, также обычно называемое L2-регуляризацией или регуляризацией Риджа, представляет собой метод, который добавляет квадратичный член к функции кросс-энтропийных потерь для весов модели.

Модели с большими весами могут более эффективно соответствовать обучающим данным. При добавлении члена для весов в модели к функции потерь процесс обучения теперь штрафуется за большие веса. Это заставляет модель минимизировать как ошибки классификации, так и величину весов. Это приводит к худшей точности обучения, но, как правило, к лучшей проверке и точности тестирования (или к увеличению ошибки обобщения).

Выбывать

Другой распространенный и эффективный метод регуляризации известен как Dropout. Как следует из названия, Dropout случайным образом отбрасывает или удаляет определенные узлы и соответствующие им соединения во время обучения.

Этот документ демонстрирует эффективность слоя исключения 50% для обобщения и устранения совместной адаптации обнаружения признаков. Когда нейроны отбрасываются случайным образом, каждый другой нейрон вынужден изучать веса для полезной классификации данных. Этот метод значительно повышает производительность.

«Если взаимосвязь между входом и правильным выходом сложна и в сети достаточно скрытых единиц для точного моделирования, обычно будет много различных настроек весов, которые могут почти идеально моделировать обучающий набор, особенно если есть только ограниченное количество помеченных обучающих данных. Каждый из этих весовых векторов будет делать разные прогнозы на удерживаемых тестовых данных, и почти все они будут работать хуже с тестовыми данными, чем с обучающими данными, потому что детекторы признаков были настроены так, чтобы хорошо работать вместе с обучающими данными, но не с обучающими данными. данные испытаний. " - Хинтон и др.

Увеличение данных

При классификации многие объекты данного класса имеют очень похожие характеристики с небольшими изменениями в базовых данных. Например, при классификации изображений собака в правом верхнем углу изображения является той же собакой, если она находится в левом нижнем углу экрана, повернута на 180 градусов или при другом освещении.

Увеличение данных - это метод, используемый для создания новых обучающих выборок из уже существующих данных. При создании моделей с помощью PyTorch существует множество различных доступных здесь преобразований, целью которых является добавление этих небольших скорректированных выборок к обучающим данным.

С помощью этих слегка скорректированных изображений модель может узнать полезные характеристики каждого класса и лучше подготовиться к классификации изображений, которые она еще не видела. Больше данных для обучения почти всегда лучше. Этот метод позволяет генерировать больше данных без затрат на сбор и маркировку данных (обычно дорогостоящий процесс) за счет использования существующих данных.

Вывод

Мы изучили, почему регуляризация важна, и рассмотрели некоторые из лучших методов в современной литературе. Регуляризация помогает нейронным сетям значительно лучше работать с данными, которые они еще не видели, а также повышает шансы модели на защиту от враждебных атак.

Хотя снижение веса, выпадение и увеличение данных - не единственные три доступных метода регуляризации, они очень просты в реализации и весьма эффективны. Если вы заинтересованы в более глубоком изучении темы, другие методы, такие как ранняя остановка, настройка размера пакета и методы неявной регуляризации, - хорошие темы для продолжения чтения.

Спасибо, что прочитали эту статью!