Русский
Русский
English
Статистика
Реклама

Недообучение и переобучение в машинном интеллекте

В машинном обучении существуют две важные проблемы: недообучение и переобучение. Алгоритмы машинного интеллекта обучаются по прецедентам, когда есть некая модель параметрическое семейство функций. Предполагается, что в семействе функций есть одна или несколько функций, которые описывают зависимость, наблюдаемую в данных. Роль данных или обучающей выборки здесь играют точки. Точки пары X и Y, где X объект, Y ответ. Следовательно, ответ показатель, который соответствует данному объекту. Изначально нужно научиться предсказывать эти ответы на объектах. Для этого ученые занимаются моделированием и выбирают из параметрического семейства функций модель, которая лучше описывает данные.НедообучениеНедообучение ситуация, когда в параметрическом семействе функций не удается найти функцию, которая хорошо описывает данные. Самая частая причина недообучения когда сложность устройства данных выше, чем сложность устройства модели, которую придумал исследователь. Решением для такой проблемы будет усложнение модели и поиск лучшего описания эффектов, которые есть в данных.ПереобучениеПереобучение противоположный недообучению эффект, когда модель слишком сложная и универсальная. Например, сейчас много говорят о моделях нейронных сетей, которые содержат миллионы параметров, но самые продвинутые нейронные сети содержат сотни миллионов параметров.Такие сети обучаются на больших данных, поэтому иногда объема данных может не хватить, чтобы одновременно хорошо настроить все параметры. В момент переобучения наблюдается ситуация, когда мы пытаемся определить оптимальные параметры модели, которые хорошо описывают наши данные, но потом на новых данных эта модель начинает часто ошибаться. Проблема переобучения часто встречается, и связана она с тем, что мы пытаемся сделать выбор по неполной информации. Наша выборка всегда не полностью описывает искомую зависимость, которую мы мечтаем построить, затем мы пытаемся зависимость по неполной информации, но это невозможно.Как решить проблему переобученияПервый вариант решения проблемы переобучения хорошо угадать модель, но это очень редкая ситуация. Если у нас есть хорошая модель явления, которое мы пытаемся описать и потом спрогнозировать, то проблем с переобучением может не возникнуть. Простые модели, которые мы изобретаем в физике или хорошо изученных предметных областях, это здорово, но машинное обучение является той областью, где хороших моделей просто не существует.Другой универсальный рецепт решения проблемы переобучения скользящий контроль, или кросс-проверка. Модель всегда оценивают по тестовой выборке, а не по данным, на которых она обучалась. Данные, которые есть изначально, делят на две части: обучающую и тестовую. В итоге после двух этапов можно просто выбрать наилучшую модель из некоторого количества моделей, которые мы изобрели.Главная проблема этого подхода возможное переобучение экспериментатора. Процедура выбора лучшей функции из параметрического семейства функций это численный метод, поэтому мы доверяем этот выбор компьютеру, алгоритму. Когда мы начинаем перебирать разные модели и выбирать лучшую по тестовой выборке, мы превращаем этот процесс в такую же оптимизацию, но выполняется она не алгоритмом, а умом человека. Экспериментатор совершает тот же самый выбор по неполной информации и тоже может переобучиться.Еще один вариант решения проблемы переобучения регуляризация. Если спросить специалистов по анализу данных (data scientists) о том, какие методы регуляризации им известны, то они сходу скажут: L1-регуляризация и L2-регуляризация. Все data scientists хорошо понимают и знают эти методы. Такие методы регуляризации используют на линейных моделях регрессии и классификации. В теории часто пишут, что при создании линейной модели всегда надо приближать вектор коэффициентов модели к нулевому вектору. Если этого не делать, то может возникнуть эффект переобучения, когда вы смотрите на модель и видите там большие значения коэффициентов, но одни отрицательные, а другие положительные. Кажется, что в сумме они компенсируют друг друга, на обучающей выборке это работает хорошо, а на тестовых данных работает отвратительно. Для устранения этого эффекта вектор коэффициентов приближают к нулю, и делает это регуляризация.Распространить подход регуляризации с линейных моделей на общие классы моделей непросто, поэтому для этого используют байесовский подход, который связан с вводом априорного распределения вероятностей в пространстве параметров модели. Байесовский подход сложно воплотить, потому что априорное распределение надо откуда-то взять, а значит, необходимо примерно понимать тип зависимости, которую мы хотим восстановить.БустингВ середине 1990-х годов произошел прорыв в борьбе с переобучением. До этого времени считалось, что природа переобучения связана с большой размерностью пространства параметров моделей. У моделей слишком много степеней свободы, и им не хватает обучающей выборки, чтобы всех определить, поэтому они настраиваются на шум в данных. В 1995 году появилась первая публикация о бустинге алгоритм AdaBoost, изобретенный американскими учеными Фройндом и Шапире. Этот способ построения композиции алгоритмов, основанный на идее: если один отдельный алгоритм работает не очень хорошо, то можно взять много результатов разных алгоритмов и усреднить. Фройнд и Шапире придумали строить каждый следующий алгоритм так, чтобы он компенсировал ошибки предыдущих.Метод оказался настолько простым, что все ученые начали с ним экспериментировать и обнаружили, что в процессе строительства сотен и тысяч базовых алгоритмов качество решения задачи продолжает улучшаться не только на обучающей выборке, но и на тестовой. Это свойство шло вразрез с существовавшими на тот момент теориями, которые говорили, что сложные алгоритмические конструкции более склонны к переобучению, но с бустингом такого не происходило. Все начали искать объяснение этому свойству, и довольно быстро выяснилось, что когда мы не просто оптимизируем модель в пространстве параметров, а усредняем много моделей, то мы не переобучаемся, а только сглаживаем результат этих моделей.Другое объяснение, которое удалось найти, утверждало, что каждую модель нужно рассматривать как новый признак. Когда мы строим базовые модели одну за другой, то мы конструируем новое признаковое пространство. Но в процессе обучения каждый из признаков становится полноценным алгоритмом, который пытается решать задачу. В итоге, строя новое пространство признаков, мы попадаем в такое пространство, где задача решается легко, и решается она линейным классификатором.Эти объяснения дали свободу экспериментировать с очень сложными моделями, в которых огромное количество параметров, потому что появилась уверенность, что мы можем аккуратно настраивать это множество параметров и не переобучаться.Еще одно объяснение простоты бустинга дает комбинаторная теория переобучения. Существует два свойства моделей, которые мы используем: расслоение и сходство. Есть модели, которые близко соответствуют сути задачи, но в параметрическом семействе их относительно немного. Мы никогда не пользуемся всем объемом того семейства функций, которое берем использовать для решения задачи. Работает только маленький кусочек всего объема, и в этом кусочке огромное количество функций, похожих друг на друга. Оказалось, что если в нашем огромном и многопараметрическом семействе есть удачные модели, они способны решить нашу задачу и среди них есть огромное количество похожих друг на друга, то эффект переобучения небольшой. Когда эффектов расслоения и сходства нет и мы пытаемся сделать выбор среди моделей, которые имеют одинаковый уровень ошибок, но при этом сильно отличаются друг от друга, то возникает ситуация переобучения экспериментатора.Переобучение нейронных сетейВ конце важно сказать о переобучении нейронных сетей. Прежде всего, для этого процесса активно используют регуляризацию: из всего семейства моделей вычленяют маленький кусочек, который приспособлен для решения нашей задачи.Другой метод, который изобрели для нейронной сети, drop out. Когда мы обучаем модель на одном отдельном объекте обучающей выборки, мы случайным образом вырезаем часть параметров модели. Это означает, что каждый раз мы пытаемся сделать, чтобы модель надежно обучалась по обучающей выборке, поэтому постоянно меняем вырезаемую часть. Такая особенность связана с тем, что изначально есть установка, чтобы любая часть нейронной сети после вырезания некоторых параметров надежно решала нашу задачу. Это требование надежности и есть способ регуляризации, который заставляет не только всю сеть решать нашу задачу, но и отдельные кусочки этой сети должны быть способны решать ту же задачу. На примере регуляризации, скользящего контроля, drop out и других приемов можно сказать, что сегодня с проблемой переобучения научились справляться.
Источник: postnauka.ru
К списку статей
Опубликовано: 02.06.2020 20:19:18
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Краткая история будущего

Категории

Последние комментарии

© 2006-2020, umnikizdes.ru