Почему неактивные функции активации являются проблемой при обратном распространении?


26

Я прочитал здесь следующее:

  • Сигмоидальные выходы не центрированы по нулю . Это нежелательно, поскольку нейроны на более поздних уровнях обработки в нейронной сети (подробнее об этом в ближайшее время) будут получать данные, которые не центрированы по нулю. Это влияет на динамику во время градиентного спуска, потому что, если данные, поступающие в нейрон, всегда положительны (например, x>0 поэлементно в f=wTx+b )), то градиент весов w при обратном распространении станет либо все быть положительными или отрицательными (в зависимости от градиента всего выражения f). Это может привести к нежелательной зигзагообразной динамике в градиентных обновлениях для весов. Однако обратите внимание, что после добавления этих градиентов в пакет данных окончательное обновление весов может иметь переменные знаки, что несколько смягчает эту проблему. Следовательно, это неудобство, но оно имеет менее серьезные последствия по сравнению с вышеуказанной проблемой насыщенной активации.

Почему все x>0 (поэлементно) приводят к полностью положительным или полностью отрицательным градиентам на w ?



2
У меня также был такой же вопрос, когда я смотрел видео CS231n.
Subwaymatch

Ответы:


28

f=wixi+b
dfdwi=xi
dLdwi=dLdfdfdwi=dLdfxi

xi>0dLdwidLdf


w1w2

Если наша цель находится на северо-востоке, мы можем двигаться туда только зигзагообразно, как параллельная парковка в узком пространстве. (прости мой рисунок)

введите описание изображения здесь

Поэтому полностью положительные или полностью отрицательные функции активации (relu, sigmoid) могут быть трудными для оптимизации на основе градиента. Чтобы решить эту проблему, мы можем заранее нормализовать данные так, чтобы они были центрированы по нулю, как при нормализации пакетов / слоев.

f=wi(xi+bi).
dLdwi=dLdf(xibi)
xi


Пожалуйста, исправьте меня, если я ошибаюсь, но не следует ли транспонировать значение dL / df для x, то есть xT, так как здесь мы будем использовать идею Якобина.
Чинмай

fwTx+bLwx

Да, это большая опечатка с моей стороны. Я имел в виду df / dw .... но я думаю, что это больше зависит от вектора x, и если это вектор строки или вектор столбца
chinmay

dL/df

1
@floyd Привет, я только что добавил несколько обновлений для твоего вопроса
dontloo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.