Я понимаю причину разделения данных на наборы тестов и наборов валидации. Я также понимаю, что размер раскола будет зависеть от ситуации, но обычно будет варьироваться от 50/50 до 90/10.
Я построил RNN, чтобы исправить орфографию и начать с набора данных ~ 5м предложений. Я брею 500 тыс. Предложений, а затем тренируюсь с оставшимися ~ 4,5 млн. Предложениями. Когда обучение закончено, я беру свой проверочный набор и вычисляю точность.
Интересно, что после всего лишь 4% моего набора проверки у меня точность составляет 69,4%, и этот процент не изменяется более чем на 0,1% в любом направлении. В конце концов я просто сократил валидацию, потому что число застряло на 69,5%.
Так зачем же отбрасывать 10% на валидацию, если я, возможно, смогу сойти с 1%? Это имеет значение?
источник
Ответы:
Большие наборы проверки дают более точные оценки производительности вне выборки. Но, как вы заметили, в какой-то момент эта оценка может быть настолько точной, насколько вам это необходимо, и вы можете сделать некоторые приблизительные прогнозы относительно размера проверочной выборки, который вам необходим для достижения этой точки.
Для простой правильной / неправильной точности классификации вы можете рассчитать стандартную ошибку оценки как (стандартное отклонение переменной Бернулли), гдеp- вероятность правильной классификации, аn- размер проверочного набора. Конечно, вы не знаете,р, но вы можете иметь некоторое представление о его диапазоне. Например, предположим, что вы ожидаете точность в пределах 60-80%, и вы хотите, чтобы ваши оценки имели стандартную ошибку меньше 0,1%: √p ( 1 - p ) / n---------√ п N п
Какой должен бытьразмерn(размер проверочного набора)? Дляp=0,6получаем:
n> 0,6 - 0,6 2
Эти расчеты также демонстрируют точку зрения, высказанную Тимом в его ответе, о том, что точность ваших оценок зависит от абсолютного размера вашего проверочного набора (т.е. от ), а не от его размера относительно обучающего набора.N
(Также я мог бы добавить, что я предполагаю репрезентативную выборку здесь. Если ваши данные очень неоднородны, вам может понадобиться использовать большие наборы проверки только для того, чтобы убедиться, что данные проверки включают в себя все те же условия и т. Д., Что и данные об обучении и тестировании. )
источник
Прекрасное обсуждение этой проблемы дает Эндрю Нг на своем курсе глубокого обучения на Coursera.org . Как он отмечает, стандартные расщепления, такие как 8: 2 или 9: 1, действительны, если ваши данные маленькие или умеренно большие, но многие современные проблемы машинного обучения используют огромные объемы данных (например, миллионы наблюдений, как в вашем случае), и в таком сценарии вы можете оставить 2%, 1% или даже меньше данных в качестве тестового набора, взяв все оставшиеся данные для вашего обучающего набора (он фактически утверждает, что использует также набор разработчиков). По его словам, чем больше данных вы подаете в свой алгоритм, тем лучше для его производительности, и это особенно верно для глубокого обучения * (он также отмечает, что это не должно быть так для алгоритмов машинного обучения не глубокого обучения).
Как уже отмечалось в комментарии Алекса Бёрна , речь идет не о размере вашего тестового набора, а о его репрезентативности для вашей проблемы. Обычно при большем размере данных мы надеемся, что они будут более репрезентативными, но это не обязательно так. Это всегда компромисс, и вам необходимо учитывать конкретные проблемы. Не существует правил, согласно которым набор тестов должен быть не менее X случаев или менее Y% ваших данных.
* - Отказ от ответственности: я повторяю здесь аргументы Эндрю Нга, я не считаю себя специалистом по глубокому обучению.
источник
Asymptotic Statistical Theory of Overtraining and Cross-Validation
[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701
источник