Можно ли иметь отрицательные веса (после достаточного количества эпох) для глубоких сверточных нейронных сетей, когда мы используем ReLU для всех уровней активации?
13
Можно ли иметь отрицательные веса (после достаточного количества эпох) для глубоких сверточных нейронных сетей, когда мы используем ReLU для всех уровней активации?
Ответы:
Выпрямленные линейные единицы (ReLU) только делают выход нейронов неотрицательным. Однако параметры сети могут и будут становиться положительными или отрицательными в зависимости от данных обучения.
Вот две причины, о которых я могу думать прямо сейчас, которые обосновывают (интуитивно), почему некоторые параметры становятся отрицательными:
регуляризация параметров (ака снижение веса); изменение значений параметров делает прогнозирование возможным, и если параметры сосредоточены вокруг нуля (т.е. их среднее значение близко к нулю), то их норма (которая является стандартным регуляризатором) является низкой.ℓ2
хотя градиенты вывода уровня относительно параметров слоя зависят от входа в уровень (который всегда положителен, если предыдущий уровень передает свои выходы через ReLU), градиент ошибки (который возникает от слоев ближе к конечным выходным слоям) может быть положительным или отрицательным, что позволяет SGD сделать некоторые из значений параметров отрицательными после выполнения следующего шага градиента. Более конкретно, позвольте , , иO WI O w обозначают вход, выход и параметры слоя в нейронной сети. Кроме того, пусть будет последней ошибкой сети, вызванной некоторой обучающей выборкой. Градиент ошибки по отношению к ш вычисляется как ∂E w ; обратите внимание, чтоOk=O,∀k(см. рисунок ниже):∂E∂w=(∑Kk=1∂E∂Ok)⋅∂Ok∂w Ok=O,∀k
источник
Представьте, что у вас есть оптимальные веса, которые все неотрицательны.
источник
Если вы не используете другую функцию активации, например, Leaky ReLU. Исправленные веса слоев после первого неотрицательны независимо от того, сколько эпох в тренировке.
источник