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

Например, знания, полученные в процессе обучения признанию автомобилей, часто в какой-то степени не признают грузовики.

Предварительное обучение

Когда мы тренируем сеть на расширенном наборе данных (например: ImageNet), мы тренируем все параметры нейросети и таким образом изучаем модель. это займет несколько часов на вашем GPU.

Точная настройка

Мы можем дать новый набор данных для точной настройки предварительно подготовленного CNN. Считайте, что новый набор данных почти такой же, как и оригинальный набор данных, используемый для предварительного обучения. Поскольку новый набор данных аналогичен, эквивалентные веса часто используются для извлечения функций из нового набора данных.

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

Если новый набор данных очень большой, переучите всю сеть с начальными весами из предварительно подготовленной модели.

Как тонко настроить, если новый набор данных сильно отличается от оригинального?

Более ранние функции ConvNet содержат более общие функции (например, детекторы краев или цветных пятен), но более поздние слои ConvNet становятся все более специфичными для мелкого шрифта классов, содержащихся в исходном наборе данных.

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

Если у вас есть много знаний, вы переучите всю сеть с весами, инициализированными из предварительно подготовленной сети.