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

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

Нулевая инициализация:

Инициализация всех весов нулями заставляет нейроны изучать одни и те же функции во время обучения.

Фактически, любая схема постоянной инициализации будет работать очень плохо. Рассмотрим нейронную сеть с двумя скрытыми блоками и предположим, что мы инициализируем все смещения равными 0, а веса - некоторой константой α. Если мы продвинем вперед распространение входа (x 1, x 2) в этой сети, на выходе обоих скрытых модулей будет relu ( αx 1 + αx 2). Таким образом, оба скрытых юнита будут иметь одинаковое влияние на стоимость, что приведет к одинаковым градиентам. Таким образом, оба нейрона будут развиваться симметрично на протяжении всего обучения, эффективно препятствуя обучению разных нейронов разным вещам.

Случайная инициализация:

Присваивать весам случайные значения лучше, чем просто 0. Но если веса инициализируются высокими значениями или очень низкими значениями, мы сталкиваемся с двумя следующими проблемами: -

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

Это упрощается до y ^ = W [L] 0,5 ^ {L −1} x , а значения активации a [l] экспоненциально уменьшаются с l. Когда эти активации используются для обратного распространения, это приводит к проблеме исчезающего градиента. Градиенты стоимости по отношению к параметрам слишком малы, что приводит к сходимости стоимости до того, как она достигнет минимального значения.

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

Это упрощается до y ^ = W [L] 1.5 ^ {L −1} x , а значения a [l] экспоненциально увеличиваются с l. Когда эти активации используются для обратного распространения, это приводит к проблеме взрывного градиента. То есть градиенты стоимости по параметрам слишком велики. Это приводит к колебаниям стоимости около минимального значения.

Теперь нам понятно, почему мы не используем ранее упомянутые методы инициализации весов в нейронной сети. Далее мы изучим новую технику инициализации весов.

Новая методика инициализации:

Чтобы не дать градиентам активации сети исчезнуть или взорваться, мы будем придерживаться следующих практических правил:

  1. среднее активаций должно быть нулевым.
  2. Дисперсия активаций должна оставаться одинаковой на всех уровнях.

В соответствии с вышеупомянутыми пунктами в 2015 году He et al. (2015) предложили инициализацию весов с учетом активации (для ReLu), которая смогла решить эту проблему. ReLu и дырявый ReLu также решают проблему исчезающего градиента.

Нормальная инициализация:

Когда ваша нейронная сеть активирована ReLU, инициализация He является одним из методов, которые вы можете выбрать, чтобы довести дисперсию этих выходных данных примерно до единицы (He et al., 2015).

W ~ N (0, σ) | Мы просто умножаем случайную инициализацию на указанное выше значение.

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

Инициализация Xavier Normal:

Когда ваша нейронная сеть активирована Tanh или сигмоида, вы можете выбрать метод Xavier Normal для инициализации веса.

W ~ N (0, σ) | Мы просто умножаем случайную инициализацию на указанное выше значение.

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