Изменения

Перейти к: навигация, поиск

Batch-normalization

2450 байт добавлено, 13:55, 9 января 2019
Нормализация батчей в свёрточных сетях
==Нормализация батчей в свёрточных сетях==
Нормализация батчей может быть применена к любой функции активации. Рассмотрим подробнее случай аффинного преобразования с некоторой нелинейной функцией:
 
<tex>z = g(Wu + b)</tex>,
 
где <tex>W</tex> и <tex>b</tex> настраиваемые параметры модели, а <tex>g(\cdot)</tex> некоторая нелинейная функция, например cигмоида или ReLU. Данной функцией можно описать как обычные, так и сверточные слои нейронных сетей. Так, нормализация батчей применяется сразу перед нелинейной функцией <tex>g(\cdot)</tex> к <tex>x = Wu + b</tex>. Параметр <tex>b</tex> может быть проигнорирован последующим вычитание математического ожидания (затем роль этого параметра будет играть <tex>\beta</tex>). Поэтому <tex>z = g(Wu + b)</tex> может быть записано так:
 
<tex>z = g(BN(Wu))</tex>,
 
где <tex>BN</tex> применяется отдельно к каждой размерности <tex>x=Wu</tex> с отдельной парой параметров <tex>\gamma^{(k)}</tex> и <tex>\beta^{(k)}</tex> для каждой размерности.
 
В случае свёрточных сетей, дополнительно необходима нормализация, чтобы удовлетворить свойство свёрточных сетей, что различные элементы в разных местах одной карты признаков должны быть нормализованны одинаково. Чтобы этого добиться, нормализация выполняется совместно над всеми значениями в батче. Пусть, <tex>B</tex> {{---}} множество всех значений в карте признаков по всему батчу и всем точкам в карте признаков. Тогда для батча размера <tex>m</tex> и карты признаков размера <tex>p \times q</tex> размер <tex>B</tex> равен <tex>m'=|B|=m \cdot pq</tex>.
==Примеры==
210
правок

Навигация