Зачем удалять слои?
Если вы только пытаетесь изменить функцию стоимости, вы не проводите обучение по определению большинства людей.Обучение передаче - это прежде всего перемещение в новую область приложения.Таким образом, для изображений, беря идентификатор / детектор собаки и передавая его как идентификатор / детектор птицы, а не догадчик возраста / веса собаки.(Или взять ваш 1001 детектор объектов общего назначения и использовать его только для просмотра отснятого материала с камеры безопасности и т. Д.)
В большинстве литературных источников говорится, что нижние уровни CNN изучают низкоуровневые концепции размером в несколько пикселей, которыедовольно общего назначения.Средние слои - это детекторы объектов, соответствующие глазному яблоку или носу, а верхние слои - это наивысший уровень, определяющий расположение этих объектов среднего уровня по отношению друг к другу и представляющие элементы самого высокого уровня.Последний софтмакс просто говорит, какие породы собак.Эти последние функции высшего уровня, вероятно, не имеют отношения к новой задаче.
Это обусловлено наблюдением, что более ранние функции ConvNet содержат более общие функции (например, детекторы контуров или детекторы цветных пятен), которые должны быть полезны для многих задач, но более поздние слои ConvNet становятсяпостепенно уточняются детали классов, содержащихся в исходном наборе данных.
из: http://cs231n.github.io/transfer-learning/
Вот несколько других объяснений: https://machinelearningmastery.com/transfer-learning-for-deep-learning/
https://medium.com/nanonets/nanonets-how-to-use-deep-learning-when-you-have-limited-data-f68c0b512cab
Чем должны быть инициализированы новые слои?
В исходном вопросе вы задали вопрос «Он инициализирован или 0 инициализирован?».Опять же, я думаю, что это скорее инженерный вопрос, потому что есть доказательства того, что некоторые вещи работают лучше, чем другие, но я не знаю, что есть общепризнанное доказательство, гарантирующее оптимальную работу одного над другим.За исключением того, что не инициализируйте все к нулю.Это определенно неправильно, как вы можете видеть в первом посте, на который я ссылаюсь ниже .Также имейте в виду, что это просто инициализация.Поэтому, даже если мои знания немного устарели, все, что вам стоит, это некоторые дополнительные эпохи обучения порочным откровенным неудачам или ненужным ответам.В зависимости от вашей проблемы это может быть большая или небольшая стоимость, которая будет определять, сколько времени вы потратите на изучение вариантов и опробование некоторых в небольшом масштабе.
http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization
https://datascience.stackexchange.com/questions/13061/when-to-use-he-or-glorot-normal-initialization-over-uniform-init-and-what-are/13362
https://stats.stackexchange.com/questions/229885/whats-the-recommended-weight-initialization-strategy-when-using-the-elu-activat