Русская Википедия:Обучающий, проверочный и тестовый наборы данных

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

В машинном обучении, общей задачей является изучение и построение алгоритмов, которые могут быть обучаемы и делать прогнозы с помощью данных.[1] Такие алгоритмы работают, делая прогнозы или решения основываясь на данных,[2] с помощью построения математической модели основанной на входных данных. Эти входные данные используемые для построения модели обычно поделены на несколько наборов данных. В частности, три набора данных обычно используются на разных этапах построения модели: обучающий, проверочный и тестовый.

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

Далее, обученная модель используется для прогнозирования ответов для наблюдения с помощью второго набора данных, называемого проверочный набор данных (validation data set).[3] Проверочный набор данных предоставляет непредвзятую оценку модели, обученной с помощью обучающего набора данных, в тоже время подстраивая гиперпараметры модели[5] (например, число скрытых слоев и ширину слоев в нейронной сети)[4]). Проверочные наборы данных могут быть использованы для регуляризации обучения с помощью метода ранней остановки (остановки обучения, в тот момент, когда ошибка на проверочном наборе данных начинает увеличиваться, так как это является признаком переобучения на обучающем наборе данных).[6]

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

Наконец, тестовый набор данных (test data set) — это набор данных, используемый для непредвзятой оценки окончательной модели, настроенной с помощью обучающего набора данных.[5] Если данные в тестовом наборе данных никогда не были использованы в обучении (например, в перекрёстной проверке), тестовый набор данных также называется удержанным набором данных (holdout data set). В некоторой литературе термин «проверочный набор» иногда используется вместо «тестового набора» (например, если изначальный набор данных был разделен только на два набора, тестовый набор может называться проверочным набором).[5]

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

Обучающий набор данных

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

В задачах классификации, алгоритм обучения с учителем изучает обучающий набор данных для обнаружения, или обучения, оптимальной комбинации переменных, для генерирования хорошей прогнозной модели.[10] Главной целью является создание обученной (настроенной) модели, которая хорошо делает общие выводы на новых, не использованных данных.[11] Настроенная модель оценивается с помощью «новых» примеров из удержанных наборов данных (проверочного и тестового) для оценки аккуратности модели для классификации новых данных.[5] Для уменьшения риска появления проблем, таких как переобучение, экземпляры в проверочном и тестовом наборе данных не должны быть использованы для обучения модели.[5]

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

Проверочный набор данных

Проверочный набор данных — это набор данных примеров, используемых для настройки гиперпараметров (например, архитектура классификатора). Он иногда также называется набором разработки (development set) или «dev set».[12] Примером гиперпараметров искусственной нейронной сети является число скрытых узлов в каждом слое.[8][9] Этот набор, также как и тестовый набор (как упоминается ниже) должен иметь такое же распределение вероятности, как и обучающий набор.

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

Основной процесс, использующий проверочный набор данных для выбора модели (как часть обучающего набора данных, проверочного набора данных, и тестового набора данных) состоит в следующем:[9][13]

Шаблон:Quote

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

Тестовый набор данных

Тестовый набор данных — это набор данных, который независим от обучающего набора данных, но который соответствует такому же распределению вероятностей, как и обучающий набор данных. Если модель, подходящая для обучающего набора данных, также хорошо подходит для тестового набора данных, то произошло минимальное переобучение (смотри изображение ниже). Лучшее соответствие модели обучающему набору данных, в противовес тестовому набору данных обычно указывает на её переобучение.

Таким образом, тестовый набор является набором примеров, используемых только для оценки производительности (например, обобщения) полностью определенного классификатора.[8][9] Для произведения этой оценки окончательная модель используется для прогнозирования классификация на экземплярах тестового набора. Эти прогнозирования сравниваются с экземплярами настоящей классификации для оценки аккуратности модели.[10]

В ситуациях, когда используются проверочный и тестовый наборы данных, тестовый набор данных обычно используется для оценки окончательной модели, которая выбирается во время процесса тестирования. В случае, когда первоначальный набор данных делится на два набора (обучающий и тестовый набор данных), тестовый набор данных может оценить модель только один раз (например, в Шаблон:Iw).[14] Следует заметить, что некоторые ресурсы выступают против использования данного метода.[11] Как бы там ни было, при использовании методов, например таких как, перекрёстная проверка, использование двух наборов данных может быть достаточно и эффективно, так как результаты усредняются после повторных этапов обучения и тестирования модели для уменьшения предвзятости и непостоянства.[5][11]

Файл:Traintest.svg
Обучающий набор (слева) и тестовый набор (справа) из той же генеральной совокупности показаны голубыми точками. Две модели прогнозирования соответствуют обучающим данным. Обе обученные модели изображены вместе с обучающим и тестовым наборами данных. В обучающем наборе, MSE обучения показана оранжевым цветом и равна 4, в то время как MSE для обучения показана зеленым и равна 9. В тестовом наборе, MSE для обучения показана оранжевым и равна 15, а MSE обучения показана зеленым равна 13. Оранжевая кривая слишком сильно соответствует обучающим данным, так как её среднеквадратическая ошибка увеличивается почти в 4 раза при сравнении тестового и обучающего набора данных. Зеленая кривая соответствует обучающим данным намного меньше, так как её MSE увеличивается менее чем в два раза.

Путаница в терминологии

Тестирование — это попытка узнать что-то попробовав это («Для доказательства; доказать истину, подлинность или качество путем эксперимента» в соответствии с Совместным международным словарем английского языка, а валидация — это подтверждение того, что что-то корректно («Подтвердить;» Совместный международный словарь английского языка). Рассматривая с этой точки зрения, самое распространенное использование терминов тестовый набор и проверочный набор — это то, которое приведено выше. Однако, как в производственных, так и в научных кругах, эти термины иногда взаимозаменяемы, с учётом того, что внутренний процесс — это тестирование различных моделей для улучшения (тестовый набор как набор разработчика) и окончательная модель, это та, которая должна быть проверена перед промышленным использованием с невидимыми до этого данными (проверочный набор). "Литература машинного обучения часто переворачивает значение 'проверочного' и 'тестового' наборов. Это самый яркий пример терминологической путаницы, который пронизывает исследования искусственного интеллекта.[15] Тем не менее, важный концепт о котором необходимо помнить заключается в том, что финальный набор, называющийся тестовым или проверочным, должен быть использован только в окончательном эксперименте.

Перекрёстная проверка

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

См. также

Примечания

Шаблон:Примечания

Шаблон:Машинное обучение