"Научный аспект №2-2019" - Технические науки

Методы борьбы с переобучением искусственных нейронных сетей

Воронецкий Юлиан Олегович – студент кафедры Компьютерных систем и сетей Московского государственного технического университета им. Н. Э. Баумана.

Жданов Никита Алексеевич – студент кафедры Компьютерных систем и сетей Московского государственного технического университета им. Н. Э. Баумана.

Научный руководитель Фомин Михаил Михайлович – преподаватель кафедры Компьютерных систем и сетей Московского государственного технического университета им. Н. Э. Баумана.

Аннотация: В настоящее время искусственные нейронные сети применяются в различных областях науки. Однако, при обучении нейросетей нередко возникает множество проблем, ухудшающих точность найденного системой решения. Одной из таких проблем является переобучение – явление, когда построенная модель хорошо объясняет примеры из обучающей выборки, но относительно плохо работает на примерах, не участвовавших в обучении. В рамках данной статьи рассматриваются основные методы борьбы с переобучением искусственных нейронных сетей.

Ключевые слова: Переобучение, недообучение, нейросети, прецеденты, машинное обучение, dropout, ансамбль.

Методы борьбы с переобучением искусственных нейронных сетей

Переобучение (overfitting) — одна из проблем глубоких нейронных сетей (Deep Neural Networks, DNN). Суть данной проблемы состоит в следующем: модель хорошо объясняет только примеры из обучающей выборки, адаптируясь к обучающим примерам, вместо того чтобы учиться классифицировать примеры, не участвовавшие в обучении (теряя способность к обобщению).

Одной из важных характеристик алгоритмов машинного обучения является обобщающая способность [1]. Обобщающая способность – это свойство модели отражать исходные данные в требуемые результаты (X -> Y) на всем множестве исходных данных (во всех сценариях, а не только на тренировочных примерах). Величину обобщения оценивают через обратную величину – отклонение или ошибку. Ошибка – это численно выраженная разница между ответом модели и требуемым (реальным) значением. В более общем смысле обобщающая способность – способность модели найти некое соответствие, которое будет описывать неизвестную нам и скрытую взаимосвязь входных и выходных данных. Однако с ней связаны еще два понятия: недообучение и переобучение [1].

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

Противоположное такому явлению – переобучение. Его суть состоит в том, что вероятность ошибки натренированного алгоритма на объектах Тренировочной выборки оказывается существенно меньше, чем на объектах тестовой. Зачастую переобучение появляется из-за использования слишком сложных моделей, либо наборов данных, в которых вхождения похожи друг на друга.

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

Рассмотрим популярные способы борьбы с проблемой переобучения.

Батч-нормализация

Батч-нормализация — метод ускорения глубокого обучения, предложенный Ioffe и Szegedy в начале 2015 года, уже процитированный на arXiv 560 раз [3]. Метод решает следующую проблему, препятствующую эффективному обучению нейронных сетей: по мере распространения сигнала по сети, даже если он нормализован на входе, пройдя через внутренние слои, он может сильно исказиться как по математическому ожиданию, так и по дисперсии (данное явление называется внутренним ковариационным сдвигом), что чревато серьезными несоответствиями между градиентами на различных уровнях. Поэтому нам приходится использовать более сильные регуляризаторы, замедляя тем самым темп обучения.

Батч-нормализация предлагает весьма простое решение данной проблемы: нормализовать входные данные таким образом, чтобы получить нулевое математическое ожидание и единичную дисперсию. Нормализация выполняется перед входом в каждый слой [3]. Это значит, что во время обучения происходит нормализация размеров пакетов примеров, а во время тестирования нормализуется статистика, полученная на основе всего обучающего множества, так как увидеть заранее тестовые данные нет возможности. А именно, вычисляется математическое ожидание и дисперсия для определенного батча (пакета) следующим образом:

image001

С помощью этих статистических характеристик мы преобразуем функцию активации таким образом, чтобы она имела нулевое матожидание и единичную дисперсию на всем батче:

image002

где ε >0 — параметр, защищающий нас от деления на 0 (в случае, если среднеквадратичное отклонение батча очень мало или даже равно нулю).

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

image003

Где β и γ — параметры батч-нормализации, которым системы можно обучить (их можно оптимизировать методом градиентного спуска на обучающих данных). Это обобщение также означает, что батч-нормализацию может быть полезно применять непосредственно к входным данным нейронной сети [4].

Этот метод в применении к глубоким сверточным сетям почти всегда успешно достигает своей цели — ускорить обучение. Более того, он может служить отличным регуляризатором, позволяя не так осмотрительно выбирать темп обучения, мощность регуляризатора и dropout (иногда необходимость в них совсем отпадает). Регуляризация здесь — следствие того факта, что результат работы сети для определенного примера больше не детерминировано (он зависит от всего батча, в рамках которого данный результат получен), что упрощает обобщение [4].

Расширение обучающего множества

Метод ансамблей

Одна интересная особенность нейронных сетей, которую можно заметить, когда они используются для распределения данных на более чем два класса — это то, что при различных начальных условиях обучения им легче дается распределение по одним классам, в то время как другие приходят в замешательство [5]. На примере MNIST можно обнаружить, что отдельно взятая нейронная сеть прекрасно умеет отличать тройки от пятерок, но не учится правильно отделять единицы от семерок, в то время как дела с другой сетью обстоят, наоборот.

С этим несоответствием можно бороться с помощью метода статистических ансамблей — вместо одной сети требуется построить несколько ее копий с разными начальными значениями и вычислите их средний результат на одних и тех же входных данных.

Рисунок 1. Базовая сеть.

Рисунок 2. Ансамбль из нескольких базовых сетей.

Ранняя остановка

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

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

Данная методика привлекательна своей простотой. Но она имеет и свои слабые стороны: слишком большая сеть будет останавливать свое обучение на ранних стадиях, когда нелинейности еще не успели проявиться в полную силу. Т.е. эта методика чревата нахождением слабо-нелинейных решений [6]. На поиск сильно нелинейных решений нацелен метод прореживания весов, который, в отличае от предыдущего, эффективно подавляет именно малые значения весов.

Чтобы помочь сети не утратить способности к обобщению при переобучении, вводятся приемы регуляризации: вместо сокращения количества параметров, накладываются ограничения на параметры модели во время обучения, не позволяя нейронам изучать шум обучающих данных [7].

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

Заключение

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

  • Батч-нормализация;
  • Метод ансамблей;
  • Ранняя остановка;
  • Dropout.

Каждый метод имеет свои достоинства и недостатки, поэтому выбор метода для борьбы с проблемой переобучения зависит от предназначения проектируемой нейронной сети.

Список литературы

  1. Осовский С. Нейронные сети для обработки информации. — М.: Финансы и статистика, 2002.
  2. Zhou Z.-H., Rule Extraction: Using Neural Networks or For Neural Networks? //Journal of Computer Science & Technology, 19(2):249-253, 2004.
  3. Craven M., Extracting Comprehensive Models from Trained Neural Networks, Ph.D. Thesis, University of Wisconsin-Madiso
  4. Srivastava N. et al. Dropout: a simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research. 2014;
  5. Ioffe S., Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv. 2015
  6. Уоссерман Ф. Нейрокомпьютерная техника. М.: Мир., 1992. (ред.)
  7. Магницкий Н.А. Некоторые новые подходы к построению и обучению искусственных нейронных сетей//Нелинейная динамика и управление, вып.1, под ред. С.В.Емельянова и С.К.Коровина. -М.: Физматлит, 2001, с.87-98.
Интересная статья? Поделись ей с другими: