Дообучение нейронной сети

Материал из Материалы по машинному обучению
Перейти к: навигация, поиск

Ключевые слова: Transfer Learning, Fine-tuning

Когда проводить дообучение модели?

  1. Новый датасет маленький и похож на исходный. Это может привести к переообучению. Лучшая идея - тренировка выходных линейных слоев классификатора(?).
  2. Новый датасет большой и похож на исходный. Вероятность переобучить сеть целиком меньше, чем в первом случае.
  3. Новый датасет маленький и сильно отличается от исходного.
  4. Новый датасет большой и сильно отличается от исходного. Вполне можно обучить новую модель с нуля. Но на практике, часто бывает полезно инициализировать новую модель весами из имеющейся.

Советы и техники:

  1. Заменить выходные слои исходной сети на соответствующие вашей задаче. Например, в случае разного количества категорий.
  2. Скорость обучения. Рекомендуется меньшая скорость, чем при основном обучении. Общая практика - меньше на порядок. (особенно это касается случаев, когда линейные слои инициализируются случайно)
  3. Заморозить веса первых нескольких слоев.

Ссылки: