пятница, 31 августа 2018 г.

Тренировка нейронных сетей: провал обратного распространения и регуляризация

В этом посте мы рассмотрим случаи провала обратного распространения и наиболее общий путь регуляризации нейронной сети.

Случаи провала

Существует ряд общих причин провалов в ходе обратного распространения.

Стирающиеся градиенты

Градиенты для нижних слоев (те, которые ближе ко входам) могут стать очень маленькими. В глубоких сетях вычисление этих градиентов может включать в себя взятие произведения многих малых членов.

Когда градиенты стираются до нуля для нижних слоев, эти слои тренируются очень медленно либо не тренируются совсем.

ReLU функция активации может помочь предупредить стирание градиентов.

Взрывающиеся градиенты

Если веса в сети очень большие, тогда градиенты для нижних слоев включают в себя взятие произведения многих больших членов. В этом случае могут появиться взрывающиеся градиенты: градиенты, которые становятся слишком большими чтобы сойтись.

Пакетная нормализация может помочь предупредить взрывающиеся градиенты.

Мертвые ReLU единицы

Однажды взвешенная сумма для ReLU единицы падает ниже нуля, тогда ReLU единица может застрять. Она выдает нулевую активацию, ничего не отдавая в вывод сети, и градиенты не могут больше течь через нее в ходе обратного распространения. С отключенным источником градиентов ввод в ReLU может никогда больше не измениться достаточно, чтобы поднять взвешенную сумму назад выше нуля.

Снижение скорости обучения может помочь сохранить ReLU единицы от умирания.

Исключающая регуляризация (dropout regularization)

Еще одна форма регуляризации, называемая Исключающей (Dropout), полезна в нейронных сетях. Она работает, случайным образом исключая активацию единиц в сети для отдельного градиентного шага. Чем больше исключений, тем сильнее регуляризация:

  • 0.0 = Нет исключающей регуляризации
  • 1.0 = Исключается все. Модель ничему не обучается.
  • Значения между 0.0 и 1.0 = наиболее полезны