Должен ли я использовать одни и те же эпохи для каждой партии?

#python #machine-learning #deep-learning #nlp #spacy

#python #машинное обучение #глубокое обучение #nlp #spacy

Вопрос:

мне нужно понять, как эпохи / итерации влияют на обучение модели глубокого обучения.

Я обучаю более тонкую модель с помощью Spacy 2.1.3, мои документы очень длинные, поэтому я не могу обучать более 200 документов за итерацию. Так что в основном я делаю

от документа 0 до документа 200 -> 20 эпох

от документа 201 до документа 400 -> 20 эпох

и так далее.

Может быть, это глупый вопрос, но должны ли эпохи следующих партий совпадать с первыми 0-200? итак, если я выбрал 20 эпох, я должен обучить следующую тоже с 20 эпохами?

Спасибо

Ответ №1:

i need to understand how the epochs/iterations affect the training of a deep learning model — никто не уверен в этом. Вы можете переобучиться после определенного количества эпох, вам следует проверить точность (или другие показатели) в наборе данных проверки. Для борьбы с этим часто используются такие методы, как ранняя остановка.

so i cannot train more than 200 documents per iteration. — вы имеете в виду пакет примеров? Если это так, оно должно быть меньше (слишком много информации за одну итерацию и слишком дорого). 32 обычно используется для текстовых данных, вплоть до 64 . Размеры партии часто меньше, чем больше эпох вы тренируете, чтобы лучше достичь минимального уровня (или избежать седловых точек).

Кроме того, вы должны использовать генераторы Python, чтобы вы могли перебирать данные размером больше, чем объем вашей оперативной памяти.

И последнее, но не менее важное: каждый пример обычно обучается один раз за эпоху. Разные подходы (скажем oversampling , или undersampling) are sometimes used but usually when your classes distribution is imbalanced (say 10% examples belong to class 0 and 90% to class 1`) или нейронная сеть имеют проблемы с определенным классом (хотя для этого требуется более продуманный подход).

Ответ №2:

Обычной практикой является обучение каждой партии только с 1 эпохой. Обучение одному и тому же подмножеству данных в течение 20 эпох может привести к переобучению, что ухудшит производительность вашей модели.

Чтобы лучше понять, как количество эпох, прошедших обучение в каждой партии, влияет на вашу производительность, вы можете выполнить поиск по сетке и сравнить результаты.