我正在阅读批处理规范化论文 [1],其中有一个小节通过一个示例,试图说明为什么必须仔细进行规范化。老实说,我无法理解该示例的工作原理,并且我真的很好奇能够尽可能多地了解它们。首先让我在这里引用一下:
例如,考虑一个带有输入u的层,该层添加了学习的偏差b,并通过减去对训练数据计算的激活平均值来对结果进行归一化:其中 是训练集上的值的集合,。如果梯度下降步骤忽略了对的依赖性,则它将更新,其中。然后,。因此,更新到的组合X=Ü+b,X={X1。。。Ñ}Xë[X]=Σ Ñ 我= 1 X我ë[X]bb←b+Δ>bΔbα-∂升 ù+(b+Δb)-ë[Ü+(b+Δb)]=Ü+b-ë[Ù+b]b 规范化的后续更改不会导致图层输出的更改,也不会导致损失。
我想我理解以下信息:如果没有正确地进行规范化,则可能会很糟糕。我只是不知道他们使用的示例如何描述这一点。
我知道,如果某人对困惑的人没有更加具体的了解,这将很难帮助他们,因此我将在下一部分中提供使我困惑的事情。
我认为我的大多数困惑可能都是符号上的,因此我将澄清一下。
首先,我认为让我感到困惑的一件事是作者在网络中拥有一个单位的含义以及激活是什么。通常,我认为激活是:
其中是来自第一个输入层的原始特征向量。
另外,我认为(由于先前的原因)使我感到困惑的第一件事是他们试图解释的情况确实如此。它说:
通过减去对训练数据计算的激活平均值来标准化结果:其中X=Ü+b
我认为他们想说的是,与其使用前向通过计算得到的激活而是通过减去均值激活来执行某种“规范化” :
然后将其传递给反向传播算法。或至少那对我有意义。
与此相关,我想他们所说的可能是?那就是我会猜到的,因为他们称其为“输入”,并且具有等式(我想他们正在为其神经网络使用同一性/线性激活单元吗?)。x (l ) x = u + b
为了进一步混淆我,他们将定义为与偏导数成正比的东西,但是偏导数是相对于,这在我看来真的很奇怪。通常,使用梯度下降时的偏导数是相对于网络参数而言的。在抵销的情况下,我会想到:X
而不是对标准化激活取导数更有意义。我试图理解为什么他们要对取导数,并且我认为也许他们在编写时是指增量。通常,这是反向支持算法的唯一部分,它具有关于预激活的导数,因为delta的等式是: ∂升
令我困惑的另一件事是:
然后。
他们并没有真正说出在上式中要计算的内容,但我想推断出,在更新为之后,他们正在尝试计算更新的归一化激活(对于第一层?)。不知道我是否愿意购买他们的积分,因为我认为正确的方程应该是:
不会取消参数的更改。但是,我真的不知道他们在做什么,所以我只是在猜测。他们写的方程到底是什么?
我不确定这是否是正确的理解,但是我已经考虑了他们的例子。他们的示例似乎没有非线性激活单元(使用标识),并且他们仅在谈论第一个输入层?由于他们遗漏了很多细节,而且记号也不是很清楚,因此我无法确切推断出他们在说什么。有人知道如何用表示每一层发生情况的表示法来表达此示例吗?有人了解该示例的实际情况并想与我分享他们的智慧吗?
[1]:Ioffe S.和Szegedy C.(2015),
“批处理规范化:通过减少内部协变量偏移来加速深层网络训练”,
第32届国际机器学习会议论文集,法国里尔,2015年
。机器学习杂志研究:W&CP卷37