Batch-normalization — различия между версиями
Строка 1: | Строка 1: | ||
− | Нормализация батчей (англ. batch-normalization) {{---}} это метод, который позволяет повысить производительность и стабилизировать работу искусственных нейронных сетей. Суть данного метода заключается в том, что некоторым слоям нейронной сети на вход подаются данные, предварительно обработанные и имеющие нулевое среднее значение и единичную дисперсию. Впервые данный метод был представлен в <ref>https://arxiv.org/pdf/1502.03167.pdf</ref>. | + | '''Нормализация батчей''' (англ. batch-normalization) {{---}} это метод, который позволяет повысить производительность и стабилизировать работу искусственных нейронных сетей. Суть данного метода заключается в том, что некоторым слоям нейронной сети на вход подаются данные, предварительно обработанные и имеющие нулевое среднее значение и единичную дисперсию. Впервые данный метод был представлен в <ref>https://arxiv.org/pdf/1502.03167.pdf</ref>. |
+ | |||
+ | ==Описание метода== | ||
+ | Опишем устройство метода нормализации батчей. Пусть, на вход некоторому слою нейронной сети поступает вектор размерности <tex>d</tex>: <tex>x = (x^{(1)}, \ldots, x^{(d)})</tex>. Нормализуем данный вектор по каждой размерности <tex>k</tex>: | ||
+ | |||
+ | <tex>\hat{x}^{(k)} = \displaystyle \frac{x^{(k)} - E(x^{(k)})}{\sqrt{D(x^{(k)})}}</tex>, | ||
+ | |||
+ | где математическое ожидание и дисперсия считаются по всей обучающей выборке. Такая нормализация входа слоя нейронной сети может изменить представление данных в слое. Чтобы избежать данной проблемы, вводятся два параметра сжатия и сдвига нормализованной величины для каждого <tex>x_{k}</tex>: <tex>\gamma_{k}</tex>, <tex>\beta_{k}</tex> {{---}} которые действуют следующим образом: | ||
+ | |||
+ | <tex>y^{(k_} = \gamma^{(k)} \hat{x}^{(k)} + \beta^{(k)}</tex>. | ||
+ | |||
+ | Данные параметры настраиваются в процессе обучения вместе с остальными гиперпараметрами модели. | ||
+ | |||
+ | Пусть, обучение модели производится с помощью батчей <tex>B</tex> размера <tex>m</tex>: <tex>B = \{x_{1,\ldots, m}\}</tex>. Здесь нормализация применяется к каждой компоненте входа с номером <tex>k</tex> отдельно, поэтому в <tex>x^{(k)}</tex> индекс опускается для ясности. | ||
+ | |||
+ | == Примечания == | ||
+ | <references/> |
Версия 20:43, 7 января 2019
Нормализация батчей (англ. batch-normalization) — это метод, который позволяет повысить производительность и стабилизировать работу искусственных нейронных сетей. Суть данного метода заключается в том, что некоторым слоям нейронной сети на вход подаются данные, предварительно обработанные и имеющие нулевое среднее значение и единичную дисперсию. Впервые данный метод был представлен в [1].
Описание метода
Опишем устройство метода нормализации батчей. Пусть, на вход некоторому слою нейронной сети поступает вектор размерности
: . Нормализуем данный вектор по каждой размерности :,
где математическое ожидание и дисперсия считаются по всей обучающей выборке. Такая нормализация входа слоя нейронной сети может изменить представление данных в слое. Чтобы избежать данной проблемы, вводятся два параметра сжатия и сдвига нормализованной величины для каждого
: , — которые действуют следующим образом:.
Данные параметры настраиваются в процессе обучения вместе с остальными гиперпараметрами модели.
Пусть, обучение модели производится с помощью батчей
размера : . Здесь нормализация применяется к каждой компоненте входа с номером отдельно, поэтому в индекс опускается для ясности.