Инициализация весов — одна из самых важных частей нейронных сетей. Наиболее широко используемый подход заключается в установке весов для некоторых небольших случайных чисел. Но в этой статье мы обсудим следующее:

  • Почему это работает в линейной модели/регрессии, когда веса инициализированы равными 0?
  • Почему это не работает в нейронных сетях, когда веса инициализированы равными 0?

Q1-) Почему это работает в линейной модели/регрессии, когда веса инициализированы равными 0?

Давайте рассмотрим следующие данные, простую модель и проведем настоящую математику.
Предположим, что скорость обучения равна 0,1.

Итак, у нас есть данные и линейная модель. Давайте вычислим математику, как показано ниже:

Теперь мы должны соответствующим образом обновить веса, поэтому мы должны вычислить частные производные w1,w2,w3,w4 w.r.t до TotalError.

Мы не можем провести частичное дифференцирование напрямую. Итак, мы должны сделать это косвенно следующим образом:

Теперь у нас есть все значения для обновления файла w1.

Как мы можем очень ясно видеть, что даже веса были инициализированы равными 0, после первой итерации вновь обновленные веса больше не равны 0.

Q1-) Почему это не будет работать в нейронных сетях, когда веса инициализированы равными 0?

  • Как видно из приведенного выше доказательства, это работает в линейной модели, давайте посмотрим, почему не работает в нейронных сетях.
  • Одно из основных отличий заключается в том, что в модели нейронной сети у нас есть один или несколько скрытых слоев, и это делает ее симметричной.

Рассмотрим следующую сеть:

Рассмотрим приведенные выше данные, и здесь у нас есть дополнительные веса w5, w6, w7, w8 = 0. Для приведенной выше сети выполняется следующая математика.

Теперь, как обычно, мы должны обновить веса. Для этого нам нужны ошибки этих уважаемых весов, и это можно получить, выполнив частичное дифференцирование соответствующего веса на общую ошибку.

  • Веса, которые необходимо обновить, это w1, w2,……, w8.
  • w1, w2, w3, w4 принадлежат первому слою
  • w5, w6, w7, w8 относятся к выходному слою.
  • Теперь мы должны доказать, что недавно обновленные веса равны 0.
  • Возьмем w5 из выходного слоя.
  • Возьмем w1 из первого слоя.
  • Если мы сможем доказать для w5, w1, то тот же закон будет справедлив и для других весов.

Начнем с w5

Для w5 мы успешно доказали, что он равен 0 даже после обновления веса. Следовательно, то же самое относится к w6, w7, w8.

Теперь давайте сделаем w1

Для w1 мы также успешно доказали, что он равен 0 даже после обновления веса. Следовательно, то же самое относится и к w1, w2, w3.

Как мы можем очень ясно видеть, что веса были инициализированы равными 0, после первой итерации вновь обновленные веса также равны 0.

Надеюсь, теперь понятно, почему это работает в линейной модели и почему нет в нейронных сетях.