Почему существует асимметрия между этапом обучения и этапом оценки?

27

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

В связи с этим, я видел некоторые числа, показывающие, какой объем данных следует использовать для обучения и сколько для оценки, например 2/3 и 1/3 соответственно. Есть ли теоретическая основа для выбора конкретного распределения?

Тамзин Блейк
источник

Ответы:

15

Забавно, что ответ, получивший наибольшее количество голосов, на самом деле не отвечает на этот вопрос :), поэтому я подумал, что было бы неплохо подкрепить это немного большей теорией - в основном взятой из «Data Mining: Практические инструменты и методы машинного обучения» и Тома Митчелла. «Машинное обучение» .


Введение.

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

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

Очевидно, что тренировочный набор должен быть больше, чем тестовый набор, то есть разделение не должно быть 1: 1 (главная цель - тренироваться , а не тестировать ), но неясно, где должно быть разделение.

Задержка процедуры.

Процедура разбиения «суперсета» на подмножества называется методом удержания . Обратите внимание, что вам легко может повезти, и примеры определенного класса могут отсутствовать (или быть перепредставлены) в одном из подмножеств, к которому можно обратиться через

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

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

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

При перекрестной проверке вы выбираете фиксированное количество сгибов (разделов данных). Если мы используем три раза, данные делятся на три равных раздела и

  • мы используем 2/3 для обучения и 1/3 для тестирования
  • и повторите процедуру три раза, чтобы, в конце концов, каждый экземпляр был использован ровно один раз для тестирования.

Это называется тройной перекрестной проверкой , а если также принята стратификация (что часто бывает так), то это называется трехуровневой перекрестной проверкой .

Но, о чудо, стандартным способом не является разделение 2/3: 1/3. Цитата «Интеллектуальный анализ данных: практические инструменты и методы машинного обучения» ,

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

Почему 10? Поскольку «..Extensive тесты на многочисленных наборы данных, с различными методами обучения, показали , что 10 о правильном количестве складок , чтобы получить лучшую оценку ошибки, и есть также некоторые теоретические доказательства того, что поддерживает это ..» гавань я Не нашли, какие обширные тесты и теоретические доказательства они имели в виду, но этот кажется хорошим началом для того, чтобы копать больше - если хотите.

Они в основном просто говорят

Хотя эти аргументы ни в коем случае не являются окончательными, и в кругах машинного обучения и интеллектуального анализа данных по-прежнему ведутся споры о том, какая схема лучше всего подходит для оценки, 10-кратная перекрестная проверка стала стандартным методом на практике. [...] Более того, нет ничего волшебного в том, что точное число 10: 5-кратная или 20-кратная перекрестная проверка, вероятно, будет почти такой же хорошей.

Bootstrap, и - наконец-то! - ответ на оригинальный вопрос.

Но мы еще не пришли к ответу относительно того, почему часто рекомендуется 2/3: 1/3. Я считаю, что он унаследован от метода начальной загрузки .

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

Давайте рассмотрим один конкретный сценарий, в котором мы берем набор данных D1 из n экземпляров и заменим его n раз с заменой, чтобы получить другой набор данных D2 из n экземпляров.

Теперь присмотритесь.

Поскольку некоторые элементы в D2 будут (почти наверняка) повторяться, должны быть некоторые экземпляры в исходном наборе данных, которые не были выбраны: мы будем использовать их в качестве тестовых экземпляров.

Какова вероятность того, что конкретный экземпляр не был поднят для D2 ? Вероятность того, что вас поймают при каждом дубле, равна 1 / n, поэтому противоположность равна (1 - 1 / n) .

Когда мы умножаем эти вероятности вместе, это (1 - 1 / n) ^ n, что составляет е ^ -1, что составляет около 0,3. Это означает, что наш тестовый набор будет около 1/3, а тренировочный набор будет около 2/3.

Я полагаю, что именно по этой причине рекомендуется использовать разделение 1/3: 2/3: это соотношение берется из метода начальной загрузки.

Завершение.

Я хочу закончить цитатой из книги интеллектуального анализа данных (которую я не могу доказать, но предполагаю правильной), где они обычно рекомендуют предпочесть 10-кратную перекрестную проверку:

Процедура начальной загрузки может быть лучшим способом оценки ошибки для очень маленьких наборов данных. Однако, как и в случае перекрестной проверки «один-один-один-один», у нее есть недостатки, которые можно проиллюстрировать, рассматривая специальную, искусственную ситуацию [...] полностью случайный набор данных с двумя классами. Истинная частота ошибок составляет 50% для любого правила прогнозирования. Но схема, которая запоминает обучающий набор, даст идеальный показатель повторного замещения 100%, так что экземпляры etraining = 0, а начальная загрузка 0,632 будет смешивать это с весом 0,368 до дать общий коэффициент ошибок только 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), что обманчиво оптимистично.

andreister
источник
13

Рассмотрим конечный набор из m записей. Если вы используете все записи в качестве учебного набора, вы можете идеально уместить все точки следующим полиномом:

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

Теперь, если у вас есть какая-то новая запись, не используемая в обучающем наборе, и значения входного вектора X отличаются от любого вектора X, используемого в обучающем наборе, что вы можете сказать о точности прогноза y?

Я предлагаю вам перейти к примеру, в котором у вас есть 1 или 2-мерный входной вектор X (для визуализации полинома переобучения) и проверить, насколько велика ошибка предсказания для некоторой пары (X, y), значения X которой являются просто мало отличается от значений из тренировочного набора.

Я не знаю, является ли это объяснение достаточно теоретическим, но, надеюсь, оно поможет. Я попытался объяснить проблему регрессионной модели, поскольку считаю ее более понятной, чем другие (SVM, Neural Networks ...).

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

Лучший способ выбора правильного компромисса - составить график ошибок обучения и тестирования для моделей различной сложности, а затем выбрать тот, в котором ошибка теста минимальна (см. Рисунок ниже). введите описание изображения здесь

Niko
источник
5
Это действительно отличный ответ на вопрос - не так много, почему. Но, возможно, это просто неправильный вопрос - что нас действительно волнует, так это то, что работает эмпирически, а не теория.
Тамзин Блейк
@ Thom: Так что на самом деле ваш вопрос - это второй абзац, а не конец первого («не понимаю, почему»), потому что эмпирически работает то, что вы переутомляетесь: ваша модель отлично справляется с мелкими причудами. тренировочные данные, которых нет в общем случае.
winwaed
1
@winwaed Вопросы «Почему есть ...?», «Почему это?» и «Есть ли ...?», все четко обозначены вопросительными знаками. Я знаком с этим явлением, и я нахожу его интуитивным, и я знаком с эмпирическими примерами, но я не знаю, почему это так, и, похоже, у теории информации должен быть ответ для меня. Приведенный выше комментарий был просто отражением того, что, возможно, вопросы «почему» не особенно актуальны, если вы эмпирически подтвердили закономерности, которые вы можете использовать.
Тамзин Блейк
7

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

Дов
источник
Хороший пример - он очень похож на научные гипотезы. Мы все еще говорим о моделях, будь то статистические модели ML или модели вселенной.
winwaed
1

До сих пор @andreiser дал блестящий ответ на вторую часть вопроса ОП относительно разделения данных по обучению / тестированию, а @niko объяснил, как избежать переобучения, но никто не дошел до достоинств вопроса: зачем использовать разные данные для обучения и оценки помогает нам избежать переоснащения.


Наши данные делятся на:

  1. Учебные примеры
  2. Экземпляры проверки
  3. Тестовые (оценочные) экземпляры

M

M1,,,,,MN

Важно понять, каковы разные роли экземпляров Validation и Test.

  1. Учебные экземпляры - используются для подбора моделей.
  2. Экземпляры проверки - используются для выбора модели
  3. Тестовые (оценочные) экземпляры - используются для измерения точности модели на новых данных

См. Стр. 222 «Элементы статистического обучения: сбор данных, вывод и прогноз» для получения более подробной информации.


источник