Автор: Дмытро Мишкин, Иржи Матас

Глубокие нейронные сети точны и быстры в выводах, но их трудно обучить с использованием таких методов, как обратное распространение ошибки, использование сигмовидной (или тангенциальной) нелинейности в полностью связанных слоях, если кто-то ошибается с инициализацией весов или предварительной обработкой этих данных. нелинейности могут насытить и полностью остановить обучение, потери при обучении будут постоянными и никогда не уменьшатся. Инициализация с гауссовым шумом со средним значением, равным нулю, и стандартным отклонением, установленным на 0,01, и добавление смещения были очень популярным методом, но это приводило к чрезвычайно большим или уменьшающимся значениям выходных слоев. Один из способов справиться с этим — использовать SD на основе количества входных и выходных слоев, предполагая отсутствие нелинейности между слоями. Другие подходы включают в себя обучение и имитацию прогнозов сети учителя и внутренних представлений, управляющую информацию и градиентный поток через сеть, использование ортогональной матричной инициализации, а не гауссова шума для линейной сети, и использование послойного предварительного обучения для MLP.

Идея, стоящая за Layer-sequential Unit-variance, заключается в ортогональной инициализации и точной настройке весов по данным, чтобы иметь дисперсию 1 для каждого вывода слоя.

Алгоритм: -

1. Инициализируйте веса единичной дисперсией по Гауссу.

2. Найдите компоненты этих весов с помощью SVD или QR.

3. Замените гири этими компонентами

4. Используя мини-пакеты данных, попробуйте изменить масштаб весов, чтобы иметь дисперсию, равную 1, для каждого слоя.

Начиная с обычной гауссовской инициализации, которой недостаточно для глубоких сетей, этап ортогонализации декоррелирует веса, так что каждая единица слоя начинает учиться из совершенно другой точки в пространстве. SVD предпочтительнее разложения QR или даже исключения Гаусса, поскольку во многих случаях матрица будет плохо обусловлена, что сделает решение нестабильным, так что оно взрывается или вызывает переполнение с плавающей запятой. SVD с уменьшенным числом сингулярных значений может близко аппроксимировать матрицу. На заключительном этапе итерации LSUV изменяют весовые коэффициенты и удерживают сигналы, распространяющиеся туда и обратно, близкими к полезной дисперсии для решения проблемы исчезновения или взрыва градиента.

LSUV превосходит ортонормированную инициализацию и инициализацию Hints (Fitnets) в наборе данных MNSIT и CIFAR-10/100. Сети FitNet с инициализацией LSUV превосходят более крупные сети, такие как Large ALL-CNN, Fractional MP.

Производительность методов, основанных на ортонормированном, превосходит подходы масштабированного гауссовского шума для всех протестированных типов функций активации, кроме tanh. Стратегия LSUV превосходит ортонормированную инициализацию с меньшим запасом, но последовательно. Все методы не смогли обучить очень глубокую сеть на основе сигмоиды. Метод LSUV не только приводит к лучшей ошибке обобщения, но и быстрее сходится для всех протестированных функций активации, кроме tanh.

Пакетная нормализация сокращает время обучения с точки зрения необходимого количества итераций, но каждая итерация становится медленнее из-за дополнительных вычислений. Инициализированная LSUV сеть так же хороша, как и пакетно-нормализованная, но ее не всегда можно заменить, особенно в больших наборах данных, таких как ImageNet. Значительной частью инициализации LSUV является SVD-разложение весовых матриц. Но даже в самом медленном случае затраченное время ничтожно мало по сравнению со временем обучения.

Инициализация LSUV позволяет изучать очень глубокие сети с помощью стандартного SGD, выполняется быстро, приводит к самым современным результатам и хорошо работает с различными функциями активации.