Изменения

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

Batch-normalization

26 байт убрано, 15:28, 12 января 2019
Нормализация батчей в свёрточных сетях
<tex>z = g(Wu + b)</tex>,
где <tex>W</tex> и <tex>b</tex> {{---}} настраиваемые параметры модели, а <tex>g(\cdot)</tex> {{---}} некоторая нелинейная функция, например [[Практики реализации нейронных сетей#Sigmoid function|cигмоида]] или [[Практики реализации нейронных сетей#Rectified Linear Units (ReLU)|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> для каждой размерности.
В случае свёрточных сетей, дополнительно необходима нормализация, чтобы удовлетворить свойство свёрточных сетей, что различные элементы в разных местах одной карты признаков (образ операции свёртки, англ. feature map) должны быть нормализованны одинаково. Чтобы этого добиться, нормализация выполняется совместно над всеми значениями в батче. Пусть, <tex>B</tex> {{---}} множество всех значений в карте признаков по всему батчу и всем точкам в карте признаков. Тогда для батча размера <tex>m</tex> и карты признаков размера <tex>p \times q</tex> размер <tex>B</tex> равен <tex>m'=|B|=m \cdot pq</tex>. Тогда, параметры <tex>\gamma^{(k)}</tex> и <tex>\beta^{(k)}</tex> настраиваются для каждой карты признаков отдельно.
==Пример==
210
правок

Навигация