Могу ли я использовать маленький набор для проверки?

15

Я понимаю причину разделения данных на наборы тестов и наборов валидации. Я также понимаю, что размер раскола будет зависеть от ситуации, но обычно будет варьироваться от 50/50 до 90/10.

Я построил RNN, чтобы исправить орфографию и начать с набора данных ~ 5м предложений. Я брею 500 тыс. Предложений, а затем тренируюсь с оставшимися ~ 4,5 млн. Предложениями. Когда обучение закончено, я беру свой проверочный набор и вычисляю точность.

Интересно, что после всего лишь 4% моего набора проверки у меня точность составляет 69,4%, и этот процент не изменяется более чем на 0,1% в любом направлении. В конце концов я просто сократил валидацию, потому что число застряло на 69,5%.

Так зачем же отбрасывать 10% на валидацию, если я, возможно, смогу сойти с 1%? Это имеет значение?

Марк Крамер
источник
4
Общий ответ заключается в том, что размер выборки больше, чем я бы сказал, 10 000 будет очень представительным подмножеством населения. Увеличение выборки, если оно было составлено правильно, может быть дорогостоящим, в то время как оценка, которую вы видите, будет примерно такой же. Ищите концепцию доверительного интервала.
Алексей Бурнаков

Ответы:

20

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

Для простой правильной / неправильной точности классификации вы можете рассчитать стандартную ошибку оценки как (стандартное отклонение переменной Бернулли), гдеp- вероятность правильной классификации, аn- размер проверочного набора. Конечно, вы не знаете,р, но вы можете иметь некоторое представление о его диапазоне. Например, предположим, что вы ожидаете точность в пределах 60-80%, и вы хотите, чтобы ваши оценки имели стандартную ошибку меньше 0,1%: п(1-п)/NпNп Какой должен бытьразмерn(размер проверочного набора)? Дляp=0,6получаем: n> 0,6 - 0,6 2

п(1-п)/N<0,001
Nпзнак равно0.6 дляр=0,8мы получим: п>0,8-0,82
N>0.6-0.620,0012знак равно240,000
пзнак равно0.8 Такэто говорит намвы могли бы уйти с использованием менее чем5% от ваших 5 миллионов выборок данных для проверки. Этот процент уменьшается, если вы ожидаете более высокую производительность, или особенно если вы удовлетворены более низкой стандартной ошибкой вашей оценки производительности вне выборки (например, приp=0,7и для se <1% вам нужно только 2100 проверочных выборок или менее двадцати процентов ваших данных).
N>0.8-0.820,0012знак равно160,000
пзнак равно0.7

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

(Также я мог бы добавить, что я предполагаю репрезентативную выборку здесь. Если ваши данные очень неоднородны, вам может понадобиться использовать большие наборы проверки только для того, чтобы убедиться, что данные проверки включают в себя все те же условия и т. Д., Что и данные об обучении и тестировании. )

Рубен ван Берген
источник
14
п(1-п)пзнак равно1/2п(1-п)знак равно1/4п(1-п)/N1/4N
11

Прекрасное обсуждение этой проблемы дает Эндрю Нг на своем курсе глубокого обучения на Coursera.org . Как он отмечает, стандартные расщепления, такие как 8: 2 или 9: 1, действительны, если ваши данные маленькие или умеренно большие, но многие современные проблемы машинного обучения используют огромные объемы данных (например, миллионы наблюдений, как в вашем случае), и в таком сценарии вы можете оставить 2%, 1% или даже меньше данных в качестве тестового набора, взяв все оставшиеся данные для вашего обучающего набора (он фактически утверждает, что использует также набор разработчиков). По его словам, чем больше данных вы подаете в свой алгоритм, тем лучше для его производительности, и это особенно верно для глубокого обучения * (он также отмечает, что это не должно быть так для алгоритмов машинного обучения не глубокого обучения).

Как уже отмечалось в комментарии Алекса Бёрна , речь идет не о размере вашего тестового набора, а о его репрезентативности для вашей проблемы. Обычно при большем размере данных мы надеемся, что они будут более репрезентативными, но это не обязательно так. Это всегда компромисс, и вам необходимо учитывать конкретные проблемы. Не существует правил, согласно которым набор тестов должен быть не менее X случаев или менее Y% ваших данных.

* - Отказ от ответственности: я повторяю здесь аргументы Эндрю Нга, я не считаю себя специалистом по глубокому обучению.

Тим
источник
2
«Дело не в размерах вашего тестового набора, а в его представительности для вашей проблемы». - вероятно, живописный способ выразить это - бесполезно иметь большой тренировочный набор для чего-то, что имеет дело с собаками и кошками, если ваш тренировочный набор почти целиком состоит из кошек.
JM не является статистиком
Более конкретно, это было в лекции «Train / Dev / Test sets» на первой неделе курса «Улучшение глубоких нейронных сетей: настройка гиперпараметров, регуляризация и оптимизация» (который является частью 2 всей специализации глубокого обучения)
icc97
2
Вот полная цитата из лекции: «Так что в этом примере, где у вас есть миллион примеров, если вам нужно всего 10 000 для вашего разработчика и 10 000 для вашего теста, ваше соотношение будет больше, как эти 10000 составляют 1% от 1 миллиона, поэтому вы У меня будет 98% обучений, 1% разработчиков, 1% тестов. Я также видел приложения, в которых, если у вас есть даже более миллиона примеров, вы можете получить 99,5% поездов и 0,25% разработчиков, 0,25% тестов. Или, может быть, 0,4% тест, 0,1% тест. "
icc97
5

Asymptotic Statistical Theory of Overtraining and Cross-Validation1/2NNNзнак равно51060,00032знак равно0,032%

[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701

Ян Кукацка
источник