Рассмотрим, как работает учебный процесс: вы оптимизируете функцию потерь L(w)
, которая зависит от веса сети w
. Обратите внимание, что процесс обучения обычно происходит на весах , а не на нейронах .
Обычным способом обучения является градиентный спуск, что означает, что вы будете постепенно уменьшатьL(w)
внося небольшие изменения в веса w
, используя локальную информацию о том, как L(w)
ведет себя, когда мы слегка подправляем w
(это именно то, что измеряет градиент w
). Следование градиенту w
локально даст нам лучший способ настроить w
так, чтобы L(w)
уменьшился, и когда разные компоненты w
различны, нет никаких причин, почему они должны развиваться в одном и том же направлении. даже когда они связаны с одними и теми же нейронами.
Обратите внимание, что это верно только потому, что мы инициализируем веса случайным образом. Если мы установим для них одинаковое начальное значение, скажем, 1e-3
, и мы будем использовать симметричную архитектуру, как в случае полностью связанных слоев, то градиент будет также симметричным, и обучение остановится. Это потому, что градиент будет иметь одинаковое значение для каждого веса. Для более интуитивной причины, почему это так, проверьте этот ответ . Вы также можете посмотреть "нарушение симметрии в машинном обучении", чтобы узнать больше по этой теме.