Использование перекрестной проверки K-Fold для улучшения проверки вашей модели Transformers на примере текстовой классификации BERT.
Первоначально опубликовано на https://www.philschmid.de 7 апреля 2020 г.
K-fold - это метод перекрестной проверки, используемый для оценки навыков модели машинного обучения на невидимых данных. Он обычно используется для проверки модели, поскольку его легко понять, реализовать, а результаты имеют более высокую информативную ценность, чем обычные методы проверки.
Перекрестная проверка - это процедура повторной выборки, используемая для проверки моделей машинного обучения на ограниченном наборе данных. У процедуры есть единственный параметр, называемый K
, который относится к количеству групп, на которые должна быть разбита данная выборка данных, поэтому она называется K-кратной.
Выбор K
обычно 5 или 10, но формального правила нет. По мере того, как K
становится больше, подмножества передискретизации становятся меньше. Число K
также определяет, как часто ваша модель машинного обучения обучается. В большинстве случаев мы разделяем наши данные на наборы для обучения / проверки по 80% -20%, 90% -10% или 70% -30% и обучаем нашу модель один раз. При перекрестной проверке мы разделяем нашу модель K
раз, а затем обучаем. Имейте в виду, что это приведет к более длительному тренировочному процессу.
K-Fold шаги:
- Перемешайте набор данных.
- Разделите набор данных на
K
групп. - Для каждой уникальной группы
g
:
1. Возьмитеg
в качестве тестового набора данных.
2. Возьмите оставшиеся группы в качестве набора обучающих данных.
3. Подберите модель к обучающему набору и оцените его на тестовом наборе.
4. Сохраните оценочную оценку и выбросьте модель. - Обобщите навыки модели, используя выборку оценок модели.
Результаты K-кратной перекрестной проверки часто суммируются со средним значением оценок модели.
Пример Scitkit-Learn
Пример представляет собой простую реализацию с scikit-learn
и scalar numpy array
.
Пример простых преобразователей (текстовая классификация BERT)
Пример представляет собой реализацию для BERT Text-Classification
с simpletransformers
библиотекой и scikit-learn
.
Преимущества перекрестной проверки K-Fold
Использование всех данных: используя K-кратную перекрестную проверку, мы используем полный набор данных, что полезно, если у нас есть небольшой набор данных, потому что вы разделяете и тренируете свою модель K
раз, чтобы увидеть ее производительность, а не трата X% на набор проверочных данных.
Получение большего количества метрик. В большинстве случаев у вас есть один результат метрики, но с K-Fold вы сможете получить K
результатов метрики и сможете глубже изучить эффективность вашей модели.
Достижение более высокой точности: проверяя вашу модель по нескольким «наборам проверки», мы получаем более высокий уровень надежности. Представим себе следующий пример: у нас есть 3 динамика и 1500 записей (по 500 на каждого выступающего). Если мы сделаем простой раздел «поезд / проверка», результат может сильно отличаться в зависимости от разделения.