Чем объясняется пример того, почему нормализацию партии следует проводить с некоторой осторожностью?

11

Я читал статью о нормализации партии [1], и в ней был один раздел, где приводится пример, в котором я пытался показать, почему нормализацию следует выполнять осторожно. Я, честно говоря, не могу понять, как работает пример, и мне очень любопытно понять, что они пишут столько, сколько я могу. Сначала позвольте мне процитировать это здесь:

Например, рассмотрим слой со входом u, который добавляет изученное смещение b и нормализует результат, вычитая среднее значение активации, вычисленное по обучающим данным: где - это набор значений для обучающего набора, а . Если шаг градиентного спуска игнорирует зависимость от , то он обновит , где . Тогда . Таким образом, сочетание обновления дляx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>b у+(б+Δб)-Е[U+(б+Δб)]=у+б-E[U+Ь]бΔblx^U+(б+Δб)-Е[U+(б+Δб)]знак равноU+б-Е[U+б]б и последующее изменение нормализации не привело ни к изменению выхода слоя, ни, как следствие, к потере.

Я думаю, что понимаю сообщение, что если кто-то не выполняет нормализацию должным образом, это может быть плохо. Я просто не знаю, как пример, который они используют, изображает это.

Я знаю, что трудно кому-то помочь, если он не будет более конкретным в том, что его смущает, поэтому я расскажу в следующем разделе, что меня смущает в их объяснении.


Я думаю, что большинство моих заблуждений могут быть нотационными, поэтому я поясню.

Во-первых, я думаю, что одна из вещей, которые меня смущают, это то, что для авторов означает наличие устройства в сети и что такое активация. Обычно я думаю об активации как:

Икс(L)знак равноa(L)знак равноθ(Z(L))знак равноθ(вес(L),Икс(L-1)+б(L))

где - исходные векторы объектов из первого входного слоя.Икс(0)знак равноa(0)знак равноИкс

Кроме того, я думаю, что первое, что меня смущает (по предыдущей причине), это то, что сценарий, который они пытаются объяснить, на самом деле. Это говорит:

нормализует результат, вычитая среднее значение активации, вычисленное по тренировочным данным: гдех=у+бИкс^знак равноИкс-Е[Икс]Иксзнак равноU+б

Я думаю, что они пытаются сказать, что вместо использования активаций вычисленных путем прямого прохода, выполняется некая «нормализация» путем вычитания средней активации :Икс(L)знак равноa(L)

Икс¯Lзнак равноa¯Lзнак равно1NΣязнак равно1Na¯Lзнак равно1NΣязнак равно1NИкс¯L

и затем передает это алгоритму обратного распространения. Или, по крайней мере, это то, что имеет смысл для меня.

Относительно этого, я думаю , что они называют , может быть ? Это то, что я бы догадался, потому что они называют это «входом» и имеют уравнение (я думаю, они используют единицу идентичности / линейной активации для своей нейронной сети? Возможно).x ( l ) x = u + bUИкс(L)Иксзнак равноU+б

Чтобы еще больше сбить меня с толку, они определяют как нечто пропорциональное частной производной, но частная производная вычисляется по отношению к , что мне кажется действительно странным. Обычно частные производные при использовании градиентного спуска находятся по отношению к параметрам сети. В случае смещения я бы подумал:хΔбИкс^

Δб(L)α-Lб(L)

имеет больше смысла, чем брать производную по нормализованным активациям. Я пытался понять, почему они взяли производную по отношению к и я подумал, что, возможно, они ссылались на дельты, когда писали так как обычно это единственная часть алгоритма обратной поддержки, которая имеет производную по отношению к предварительным активациям, поскольку уравнение дельта имеет вид:лИкс^LИкс^

δj(l)=Lzj(l)

Еще одна вещь, которая смущает меня:

Тогда .U+(б+Δб)-Е[U+(б+Δб)]знак равноU+б-Е[U+б]

они на самом деле не говорят, что они пытаются вычислить в приведенном выше уравнении, но я бы сделал вывод, что они пытаются вычислить обновленную нормированную активацию (для первого слоя?) после того, как обновлено до ? Не уверен, что я куплю их точку зрения, потому что думаю, что правильное уравнение должно было быть:b + Δ bбб+Δб

Икс^знак равноθ(U+(б+Δб))-Е[θ(U+(б+Δб))]

который не отменяет изменение параметра . Тем не менее, я не знаю, что они делают, поэтому я просто догадываюсь. Что это за уравнение, которое они написали?бΔбб

Я не уверен, что это правильное понимание, но я немного подумал над их примером. Кажется, что их пример не имеет нелинейной единицы активации (использует тождество), и они говорят только о первом входном слое? Так как они упустили много деталей, и запись не очень ясна, я не могу точно определить, о чем они говорят. Кто-нибудь знает, как выразить этот пример с помощью нотации, которая выражает то, что происходит на каждом слое? Кто-то понимает, что на самом деле происходит с этим примером, и хочет поделиться со мной своей мудростью?


[1]: Иоффе С. и Сегеди С. (2015 г.),
«Нормализация партии: ускорение глубокого сетевого обучения за счет уменьшения внутреннего смещения ковариат»,
Материалы 32-й Международной конференции по машинному обучению , Лилль, Франция, 2015 г.
Журнал машинного обучения Исследование: W & CP том 37

Чарли Паркер
источник
Я думаю, что нотационная природа этого параграфа теперь ясна, но смысл, который он пытается донести, и его цель менее ясны.
Чарли Паркер

Ответы:

3

Я думаю, что весь смысл этого параграфа состоит в том, чтоbЕ[Икс]б , если шаг градиентного спуска игнорирует зависимость от , обновление члена смещения b не приведет к изменению выходных данных , как утверждается в предложении перед ним,

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

Поэтому они сделали шаг градиентного спуска осведомленным о нормализации в их методе.


По поводу ваших вопросов

Относительно этого, я думаю , что они называют , может быть ?й ( л )UИкс(L)

Как утверждается в их первом предложении, является входом слоя. То, что самом деле, не имеет значения, поскольку они иллюстрируют только эффект в примере.U ЬUUб

Я бы подумал, что имеет больше смысла, чем брать производную по нормализованным активациям.Δбα-Lб

Мы знаем , так как мы игнорируем зависимость от , мы имеем так .Икс^знак равноИкс-Е[Икс]знак равноU+б-Е[Икс]Е[Икс]б

Lбзнак равноLИкс^Икс^бзнак равноLИкс^,
Δбα-LИкс^

U+(б+Δб)-Е[U+(б+Δб)]знак равноU+б-Е[U+б] они на самом деле не говорят, что они пытаются вычислить в приведенном выше уравнении, но Я бы сделал вывод, что они пытаются вычислить обновленную нормализованную активацию (для первого слоя?) После того, как обновлен до ?бб+Δб

Это вычисление после обновляется до , чтобы показать , что если шаг градиентного спуска игнорирует зависимость на , обновляя термин смещения б не приведет к изменению в выход.Икс^бб+ΔбЕ[Икс]б


Возможно, было бы полезно взглянуть на некоторые реализации пакетной нормализации с открытым исходным кодом, например в Lasagne и Keras .

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

dontloo
источник
так что я думаю, их смысл в том, что им нужно, чтобы обновление GD учитывало нормализацию, чтобы потери менялись при обновлении смещения? Или какова главная цель этого параграфа?
Чарли Паркер
@CharlieParker Да, я так думаю, чтобы показать, что есть причина сообщить обновлению GD о нормализации (IMO).
dontloo
E [Δb] = Δb? Если так, то почему?
MichaelSB