Изменения

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

Batch-normalization

2 байта убрано, 11:52, 10 января 2019
Примеры
В случае свёрточных сетей, дополнительно необходима нормализация, чтобы удовлетворить свойство свёрточных сетей, что различные элементы в разных местах одной карты признаков должны быть нормализованны одинаково. Чтобы этого добиться, нормализация выполняется совместно над всеми значениями в батче. Пусть, <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> настраиваются для каждой карты признаков отдельно.
==ПримерыПример==[[Файл:bn_exp_1.png|800px400px|thumb|Точность распознавания в зависимости от итерации обучения. Оранжевая кривая изображает результаты для модели с использованием нормализации батчей, синяя кривая {{---}} без.]][[Файл:bn_exp_2.png|800px400px|thumb|Точность распознавания в зависимости от итерации обучения c использованием сигмоиды в качетсве функции активации.]]
Приведем пример демонстрирующий работу нормализации батчей. Рассмотрим задачу распознавания рукописных цифр на известном датасете MNIST. Для решения задачи будет использоваться обычная нейронная сеть с <tex>3</tex> скрытыми полносвязными слоями по <tex>100</tex> узлов в каждом. Функция активации {{---}} ReLU. Выходной слой содержит <tex>10</tex> узлов. Размер батча равен <tex>60</tex>. Сравнивается две одинаковые модели, но в первой перед каждым скрытым слоем используется нормализация батчей, а во второй {{---}} нет. Коэффициент скорости обучения равен <tex>0.01</tex>. Веса инициализированы значениями с малой дисперсией. На рисунке изображены два графика, показывающий разницу между моделями. Как видно, обе модели достигли высокой точности, но модель с использованием нормализации батчей достигла точности более <tex>90\%</tex> быстрее, почти сразу, и достигла максимума, примерно, уже на <tex>10000</tex> итераций. Однако, модель без нормализации батчей достигла скорости обучения примерно <tex>510</tex> батчей в секунда, а модель с использованием нормализации батчей {{---}} <tex>270</tex>. Однако, как можно видеть, нормализация батчей позволяет выполнить меньшее количество итераций и, в итоге, сойтись за меньшее время.
210
правок

Навигация