Стандартное отклонение инициализатора HeNormal

shemanovskiy
4 min readAug 10, 2020

--

В описание API Keras об инициализаторе HeNormal сказано следующее:

It draws samples from a truncated normal distribution centered on 0 with stddev = sqrt(2 / fan_in) where fan_inis the number of input units in the weight tensor.

Откуда же взялось такое стандартное отклонение и почему было выбрано именно оно?

Ответ сверточного слоя нейронной сети вычисляется по формуле:

Где индекс 𝓁 у перменных — это номер слоя.

При этом x — это ответ предыдущего слоя, пропущенный через активационную функцию, пусть это будет ReLU:

Количество соединений слоя можно вычислить как n = k×k×c, то есть произведение длины изображения на ширину и на количество слоев.

W — это матрица размера d×n, где d — количество фильтров, а каждая строка матрицы содержит веса фильтров, b, соответственно, — bias.

Предполагается, что при инициализации параметры Wl независимы и одинаково распределены (i.i.d.), элементы xl тоже независимы и одинаково расеределены, при этом Wl и xl не зависят друг от друга. В этом случае дисперсия уl будет равна дисперсии произведения wl и xl, помноженной на nl (количество соединений слоя):

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

Математическое ожидание величины wl равно нулю, соответственно правая половина выражения внутри скобок, равна нулю, поэтому остается:

В общем случае дисперсия для случайной величины вычисляется как разность математического ожидания квадрата этой величины и квадрата математического ожидания этой величины. То есть, для wl это будет:

но, так как выше упомянуто, что математическое ожидание величины wl равно нулю, то дисперсия wl оказывается равна математическому ожиданию квадрата случайной величины:

Подставив это значение в формулу вычисления дисперсии уl, получаем:

Провернуть замену математического ожидания квадрата xl можно только в том случае, если оно равно нулю, но, в случае использования активационной функции ReLU, это не так, потому как она представляет собой max(0, y).

Если веса инициированы так, что распределение wl-1 симметрично относительно нуля, а bl-1 = 0, тогда yl-1 будет иметь нулевое математическое ожидание и симметричное распределение относительно нуля. В этом случае математическое ожидание квадрата xl можно выразить следующим образом:

По определению при использовании ReLU все, что меньше нуля, не привнесет ничего в интеграл, поэтому выражение можно переписать как интеграл от нуля до бесконечности, убрав ноль:

yl-1 симметрично относительно нуля и предполагается, что p(yl-1) симметрично относительно нуля, поэтому можно добавить множитель 1/2 и интеграл будет от минус бесконечности до плюс бесконечности:

так как математическое ожидание yl-1 равно нулю, его можно вычесть из yl-1 без изменения значения:

что есть не что иное, как математическое ожидание этой разности:

То есть, получается, что математическое ожидание квадрата xl равно:

Теперь подставим это в формулу, вычисления дисперсии yl, полученную выше:

Для всех слоев L получаем формулу:

Выходит, что от того, какая выбрана инициализация весов, можно экспоненциально уменьшить или увеличить магнитуду входного сигнала. Для произведения в скобках оптимальным будет значение скаляра (например, единицы), то есть:

а это и приводит к Гауссовому распределению с нулевым средним и стандартным отклонением:

--

--

No responses yet