Я обнаружил, что в реализации ResNet от Tensorflow они используют инициализатор дисперсионного масштабирования, а также популярный инициализатор xavier . У меня нет большого опыта в этом, что лучше на практике?
20
Я обнаружил, что в реализации ResNet от Tensorflow они используют инициализатор дисперсионного масштабирования, а также популярный инициализатор xavier . У меня нет большого опыта в этом, что лучше на практике?
Ответы:
Историческая перспектива
Инициализация Ксавье , первоначально предложенная Ксавье Глоротом и Йошуа Бенжио в статье «Понимание сложности обучения глубоких нейронных сетей с прямой связью» , является техникой инициализации весов, которая пытается сделать дисперсию выходных данных слоя равной дисперсии его входных данных. , Эта идея оказалась очень полезной на практике. Естественно, эта инициализация зависит от функции активации слоя. И в своей работе Глорот и Бенжио рассмотрели функцию активации логистической сигмоиды , которая была выбором по умолчанию в тот момент.
Позднее ReLu превзошла активацию сигмовидной кишки, поскольку она позволила решить проблему исчезающих / взрывных градиентов. Следовательно, появился новый метод инициализации, который применил ту же идею (балансирование дисперсии активации) к этой новой функции активации. Он был предложен Каймингом Хе в статье «Углубление в выпрямители: превосходя человеческий уровень по классификации ImageNet» , и теперь его часто называют инициализацией He .
В тензорном потоке инициализация He реализована в
variance_scaling_initializer()
функции (которая на самом деле является более общим инициализатором, но по умолчанию выполняет инициализацию He), тогда как инициализатор Xavier логическиxavier_initializer()
.Резюме
Таким образом, основное различие для практиков машинного обучения заключается в следующем:
источник
tanh()
функции активации, какую функцию инициализации я должен использовать.Дисперсионное масштабирование - это всего лишь обобщение Ксавье: http://tflearn.org/initializations/ . Они оба работают по принципу, что масштаб градиентов должен быть одинаковым во всех слоях. Ксавье, вероятно, безопаснее использовать, поскольку он выдержал экспериментальную проверку временем; Попытка выбрать собственные параметры для дисперсионного масштабирования может помешать обучению или привести к тому, что ваша сеть вообще не заработает.
источник