Почему обратное распространение не работает, когда вы инициализируете весовые значения одного и того же значения?


20

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

Разве алгоритм не должен вычислять ошибку и работать оттуда, несмотря на то, что веса изначально одинаковы?

Ответы:


26

Нарушение симметрии.

Если все веса начинаются с одинаковых значений и если решение требует разработки неравных весов, система никогда не сможет учиться.

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


Таким образом, начальные веса NN не только определяют скорость, с которой он тренируется, но также могут быть причиной обучения или не обучения?
user1724140

2
Да, иногда мы не просто тренируемся (например, нейронная сеть) только на одном весе. Если у нас есть время, мы можем создать несколько различных конфигураций начального веса и обучить им сеть. Потому что иногда может случиться так, что одна конфигурация окажется в локальном оптимуме, или вес, к сожалению, не будет действительно рандомизирован.
Это

Не так ли это, потому что разные входы могут нарушать симметрию. см: open.wolframcloud.com/env/...
user3180

12

Чтобы добавить к ответу Тьерри, вы можете думать об ошибке как о функции вектора весов, т.е. как о функции от которую вы хотели бы минимизировать. Алгоритм обратного распространения работает, просматривая локальную окрестность точки и видя, какое направление приведет к меньшей ошибке. Это даст вам локальный минимум.рNр

То, что вы хотите, это глобальный минимум, но у вас нет гарантированного способа его найти. И если на вашей поверхности есть несколько локальных минимумов, то у вас могут быть проблемы.

Но если его всего несколько, стратегия Тьерри должна сработать - выполнение нескольких поисков локальных минимумов, начиная со случайно выбранных точек, должно увеличить шансы на нахождение глобального минимума.

И в счастливом случае, когда есть только один минимум - любой начальный весовой вектор приведет вас к этому.

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