2016-02-04 2 views
1

Контекст: скажем, я обучил CNN на datasetA, и я получил caffeModelA.Caffe fine-tuning vs. begin from scratch

Текущая ситуация: новые фотографии прибывают, так что я могу создать новый набор данных, datasetB

Вопрос: бы эти две ситуации приводят к такому же caffemodel?

  1. слияние datasetA и datasetB и обучить сеть с нуля.
  2. выполнить некоторые тонкой настройки существующих caffeModelA путем обучения его только на datasetB (как описано здесь: http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html)

Это может показаться тупой вопрос, но я не совсем уверен, что его ответ. И это действительно важно, потому что, если два приближения приводят к одному результату, я могу сэкономить время, выполнив номер 2.

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

ответ

3

В примере с изображением Flicker ситуация немного более общая. Они используют весовые коэффициенты первых слоев из модели, подготовленной для другой задачи классификации, и используют ее для новой задачи, тренируют только новый последний слой и немного настраивают первые слои (устанавливая низкую скорость обучения для этих предварительно подготовленных слоев). Ваш случай похож, но более конкретный, вы хотите использовать предварительно подготовленную модель для обучения точной архитектуры для одной и той же задачи, но с расширением ваших данных.

Если ваш вопрос, будет ли вариант 1. производить точно та же модель (все результирующие веса равны) в качестве варианта 2. Тогда нет, скорее всего, нет.

В варианте 2. сеть обучена для итераций dataset A то для dataset B затем dataset A again..and так далее (предполагается, что оба были просто сцепляются вместе). В то время как в Варианте 1. будет создана сеть для некоторых итераций/эпох на dataset A, а затем продолжить обучение только итерациям/эпохам только dataset B и все. Таким образом, решатель увидит другую последовательность градиентов в обоих вариантах, что приведет к двум различным моделям. Это со строгой теоретической точки зрения.

Если вы спросите с практической точки зрения, эти два варианта, вероятно, окажутся очень похожими моделями. Сколько эпох (не итерации) вы тренировались на dataset A? скажем, N эпох, тогда вы можете смело пойти с Вариантом 2. и обучить свою существующую модель дальше на dataset B за то же количество эпох и такую ​​же скорость обучения и размер партии.

+1

Отличный ответ сэр! Моя интуиция заключалась в том, что последовательность градиентов будет отличаться, но мне нужно подтверждение, и вы убедили меня :) Фактически, именно так я делаю это прямо сейчас: начиная с нуля - хотя результаты могут быть очень похожими, но, возможно, это стоит того дайте ему практическую попытку и сравните. Большое спасибо за ваш ответ!(кстати, я тренируюсь на довольно большом количестве эпох, 50000) –

+0

@GuiemBosch осторожно ... caffe идет по итерациям, а не эпохам. число эпох = (размер партии * num-iterations)/# training-samples. – user1269942

Смежные вопросы