Как скрытые нейроны могут отличаться друг от друга? - PullRequest
0 голосов
/ 02 октября 2019

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

1 Ответ

0 голосов
/ 02 октября 2019

Рассмотрим, как работает учебный процесс: вы оптимизируете функцию потерь L(w), которая зависит от веса сети w. Обратите внимание, что процесс обучения обычно происходит на весах , а не на нейронах .

Обычным способом обучения является градиентный спуск, что означает, что вы будете постепенно уменьшатьL(w) внося небольшие изменения в веса w, используя локальную информацию о том, как L(w) ведет себя, когда мы слегка подправляем w (это именно то, что измеряет градиент w). Следование градиенту w локально даст нам лучший способ настроить w так, чтобы L(w) уменьшился, и когда разные компоненты w различны, нет никаких причин, почему они должны развиваться в одном и том же направлении. даже когда они связаны с одними и теми же нейронами.

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

...