如果激活函数的输出不是以零为中心的,为什么会出现问题?

人工智能 反向传播 激活函数 乙状结肠 坡度
2021-10-24 17:27:44

这个讲座中,教授说 sigmoid 函数的一个问题是它的输出不是以零为中心的。教授提供的关于为什么这不好的解释是我们的损失梯度与权重有关吗?Lw这等于Lσσw将始终是负数或正数,正如她在这张幻灯片中显示的那样,我们将无法更新我们的权重,我们将无法朝着向量的方向移动(1,1). 我不明白为什么,因为她只谈论我们梯度的一个组成部分,而不是整个向量。如果我们的损失梯度的分量会有不同的符号,这将使我们能够调整到不同的方向,我错了吗?但我不明白的是这个属性如何推广到非零中心函数和非零中心数据?

1个回答

是的,如果网络的激活函数不是以零为中心的,y=f(xTw)总是积极的或总是消极的。因此,层的输出总是被移动到正值或负值。因此,权重向量需要更多更新才能正确训练,并且网络训练所需的epoch数也会增加这就是为什么以零为中心的属性很重要,尽管它不是必需的。

以零为中心的激活函数确保平均激活值附近。这个属性在深度学习中很重要,因为经验表明,在归一化数据上运行的模型——无论是输入还是潜在激活——都具有更快的收敛速度

不幸的是,零中心激活函数(如在其渐近线处tanh 饱和) ——该区域内的梯度随着时间的推移变得越来越小,导致训练信号微弱。

ReLU避免了这个问题,但它不是以零为中心的。因此全正或全负激活函数对于基于梯度的优化sigmoid是否ReLU困难。因此,为了解决这个问题,深度学习从业者发明了无数的归一化层(批量范数、层范数、权重范数等)。我们可以提前将数据归一化为以零为中心,就像批量/层归一化一样。

参考:

激活函数及其与 Xavier 和 He 正态初始化的关系综述