
Я сделал увлекательный эксперимент, чтобы проверить, как инициализация весов и смещений нулями влияет на работу нейронной сети. Моя нейронная сеть имеет один скрытый слой, в котором находятся несколько нейронов. Я был интересован в том, как инициализация влияет на способность каждого нейрона в слое вычислять информацию. Для начала, я решил инициализировать все веса и смещения нулями и запустил нейронную сеть на первой итерации градиентного спуска. Очевидно, что каждый нейрон начал выполнять одно и то же вычисление, так как все веса были одинаковыми. Однако, что происходит после нескольких итераций градиентного спуска? Чтобы узнать это, я пропустил данные через сеть многократно. К моему удивлению, я обнаружил, что каждый нейрон начал вычислять различные вещи! Это происходит потому, что ″нарушена симметрия″ ⎻ каждый нейрон имеет различные значения весов и смещений. Таким образом, верно второе утверждение⁚ каждый нейрон в первом скрытом слое будет выполнять одно и то же вычисление на первой итерации. Но после нескольких итераций градиентного спуска они научатся вычислять разные вещи, потому что у нас ″нарушена симметрия″. Этот эксперимент показал мне важность правильной инициализации весов и смещений в нейронной сети. Использование случайной инициализации может помочь избежать проблемы симметрии и позволит каждому нейрону научиться вычислять уникальные значения.