Нормализация нормализации и нормализация партии

Я понимаю, что пакетная нормализация помогает ускорить обучение, поворачивая активацию к распределению по Гауссу, и таким образом решая проблему исчезающих градиентов. Действия нормы партии применяются по-разному при обучении (используйте среднее значение/переменную для каждой партии) и во время теста (используйте окончательное среднее значение/переменную по фазе обучения).

Нормализация экземпляров, с другой стороны, действует как нормализация контраста, как упомянуто в этом документе https://arxiv.org/abs/1607.08022. Авторы отмечают, что выходные стилизованные изображения не должны зависеть от контраста входного содержимого изображения, и, следовательно, нормализация экземпляров помогает.

Но тогда мы не должны также использовать нормализацию экземпляров для классификации изображений, где метка класса не должна зависеть от контраста входного изображения. Я не видел никакой бумаги, использующей нормализацию экземпляров вместо нормализации партий для классификации. В чем причина этого? Кроме того, можно и нужно использовать нормализацию партии и экземпляра вместе. Я стремлюсь получить как интуитивное, так и теоретическое понимание того, когда использовать какую нормализацию.

Ответ 1

Определение

Начнем со строгого определения обоих:

Пакетная нормализация batch-norm-formula

Нормализация экземпляров instance-norm-formula

Как вы можете заметить, они делают то же самое, за исключением количества входных тензоров, которые нормализуются совместно. Пакетная версия нормализует все изображения в пакетном и пространственном местоположениях (в случае CNN, в обычном случае это отличается); Версия экземпляра нормализует каждую партию независимо, т.е. только по пространственным местоположениям.

Другими словами, где пакетная норма вычисляет одно среднее значение и стандартное отклонение (таким образом, делая распределение всего слоя гауссовским), экземплярная норма вычисляет T из них, в результате чего каждое отдельное распределение изображения выглядит гауссово, но не совместно.

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

Кредит: формулы отсюда.

Какая нормализация лучше?

Ответ зависит от архитектуры сети, в частности от того, что делается после уровня нормализации. Сети классификации изображений обычно объединяют карты объектов вместе и связывают их со слоем FC, которые разделяют веса по пакету (современный способ - использовать слой CONV вместо FC, но аргумент все еще применяется).

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

С другой стороны, пакетная нормализация добавляет дополнительный шум к обучению, потому что результат для конкретного экземпляра зависит от соседних экземпляров. Как выясняется, такой шум может быть как хорошим, так и плохим для сети. Это хорошо объяснено в статье "нормализации веса" Тима Салиманса (Al Salimmans) и др., В которой рекуррентные нейронные сети и DQN для обучения усилению называются чувствительными к шуму приложениями. Я не совсем уверен, но я думаю, что та же самая чувствительность к шуму была главной проблемой в задаче стилизации, с которой пытались бороться с нормой экземпляра. Было бы интересно проверить, лучше ли справляется весовая норма для этой конкретной задачи.

Можете ли вы объединить нормализацию партии и экземпляра?

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

Ответ 3

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

использовать нормализацию экземпляра для классификации изображений, где метка класса не должна зависеть от контраста входного изображения

отчасти правильно. Я бы сказал, что pig среди бела дня - это pig, когда снимок сделан ночью или на рассвете. Однако это не означает, что использование нормализации экземпляров в сети даст вам лучший результат. Вот несколько причин:

  1. Распределение цвета по-прежнему играют роль. Это скорее яблоко, чем апельсин, если в нем много красного.
  2. На более поздних уровнях вы больше не можете себе представить, что нормализация экземпляров действует как нормализация контраста. Детали, специфичные для класса, появятся в более глубоких слоях, и их нормализация в отдельности значительно ухудшит производительность модели.

В своей модели IBN-Net использует как пакетную нормализацию, так и нормализацию экземпляров. Они ставят нормализацию экземпляра только на ранних уровнях и достигли улучшения как в точности, так и в способности обобщать У них есть открытый код здесь.

enter image description here

Ответ 4

IN обеспечивает визуальную и внешнюю дисперсию, а BN ускоряет обучение и сохраняет отличительные черты. IN является предпочтительным в неглубоком слое (начальный слой CNN), поэтому следует избегать изменения внешнего вида, а BN предпочтительнее в глубоких слоях (последний слой CNN), чтобы уменьшить дискриминацию.