Работает ли нормализация партии с небольшим размером партии? - PullRequest
1 голос
/ 02 июля 2019

Я использую нормализацию партии с размером партии 10 для обнаружения лица, я хотел знать, лучше ли удалять слои нормы партии или сохранять их.И если их лучше удалить, что я могу использовать вместо этого?

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

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

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

Дайте мне знать, если это поможет!

0 голосов
/ 05 июля 2019

Да, он работает для меньшего размера, он будет работать даже с наименьшим возможным размером, установленным вами.

Хитрость в размере Баха также добавляет эффект регуляризации, а не только в пакетную норму. Я покажу вам несколько фото:

bs=10

Мы в одном масштабе отслеживаем потерю холостяка. Левая сторона - это модуль без уровня нормы партии (черный), с правой стороны - слой нормы партии. Обратите внимание, что эффект регуляризации очевиден даже для bs=10.

bs=64

Когда мы устанавливаем bs=64, регуляризация потери партии становится очень очевидной. Обратите внимание, что y шкала всегда [0, 4].

Мой экзамен проходил исключительно по nn.BatchNorm1d(10, affine=False) без обучаемых параметров gamma и beta, т.е. w и b.

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

...