Почему веса нейронных сетей инициализируются случайными числами?

9

Почему начальные веса нейронных сетей инициализируются как случайные числа? Я где-то читал, что это делается для того, чтобы «нарушить симметрию», и это ускоряет обучение нейронной сети. Как нарушение симметрии делает обучение быстрее?

Разве инициализация весов в 0 не будет лучшей идеей? Таким образом, веса смогут быстрее найти свои значения (положительные или отрицательные)?

Есть ли какая-то другая основная философия, стоящая за рандомизацией весов, кроме надежды на то, что они будут близки к оптимальным значениям при инициализации?

Шаян Р.С.
источник

Ответы:

6

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

Более конкретно, вы, вероятно, захотите, чтобы ваши начальные веса были различны и имели «небольшой разрыв» между ними, этот «разрыв» расширяется по мере продвижения и заставляет веса быть немного больше на каждой итерации, и это помогает сеть сходится быстрее, т.е. процесс обучения ускоряется.

Если вместо этого вы будете иметь все свои веса до некоторой постоянной величины, каждый вес будет обновляться с очень медленной (~ фиксированной) скоростью, и это не очень поможет, особенно если начальные значения «очень далеки» от конечных значений.

Надеюсь, что это помогает, весело учиться :)

Subhayan
источник
То, что вы говорите, рандомизация начальных весов эквивалентна тому, чтобы дать каждому весу толчок в направлении, в котором он должен двигаться (и разрыв, чтобы расширяться).
Шаян RC
Я не думаю, что это должно быть в правильном направлении, вы также можете начать с начального веса [-0,5, +0,5], где конечные значения могут быть [+0,5, -0,5], ключевая идея заключается в разные значения ..
Субхайан
Прошло больше года с тех пор, как я работал с NNs, поэтому я говорю волнообразно, пожалуйста, дайте мне знать, если вам нужна математика. но я думаю, что более важно получить интуицию здесь, математика в значительной степени доступна везде .. :)
Subhayan
Математика, стоящая за этим, будет полезной, но еще более полезной будет несколько практических советов: например, насколько малыми должны быть начальные веса (10 ^?). Как они различаются для разных типов сетей? Есть ли какие-то магические числа, которые работают для всех?
Шаян RC