在选择神经网络的激活函数时,tanh
函数通常被认为优于 sigmoid
函数,尤其是在深层网络中,这是因为 tanh
函数解决了一些 sigmoid
函数固有的问题。以下是一些主要原因:
相似性和差异
-
输出范围:
- Sigmoid: 输出范围是
(0, 1)
,这会导致隐藏层输出的均值不为零,可能造成梯度更新效率低。 - Tanh: 输出范围是
(-1, 1)
,这样隐藏层输出的均值更可能接近零,有助于中心化数据,提升训练效率。
- Sigmoid: 输出范围是
-
梯度消失问题:
- 两者都有渐近的平坦区域,容易产生梯度消失现象。但由于
tanh
在零附近更陡峭,它在均值为零时能缓解这种现象。 - 在
sigmoid
函数中,尤其是在深层模型中,这种梯度消失的问题更为明显,因为循环或递归的链条会减小梯度的更新幅度。
- 两者都有渐近的平坦区域,容易产生梯度消失现象。但由于
-
信息流动效率:
-
tanh
函数的零均值输出帮助更有效地流动信息,让正负样本和弱梯度得到更均衡的更新而不偏向某一方向。这一优点主要来源于:tanh 函数的性质:
- 输出范围:
tanh(z)
的输出范围是 (-1, 1),而且对于输入为零时,输出也是零,这使得隐藏层输出的均值自然围绕零。- 相对于
sigmoid
的输出范围 (0, 1),tanh
提供了对称的正负输出空间来捕捉输入的特征,包括零附近的输入。
- 零均值的影响:
- 零均值意味着激活函数的输出对正和负的输入刺激有对称的响应,对应深层网络的输入和输出能够保持平衡,不致于积累过多偏移。
对信息流动的影响:
- 中心化处理:
- 当隐藏层输出围绕零均值时,这确保每个输入模式贡献的信息均匀分布在正负两侧,而不会偏向于某一特定方向。
- 零均值的激活能让后续层更容易调整其参数,以捕捉到输入的核心模式和特征。
- 特征捕捉效率:
- 在
tanh
的处理下,网络能够同时关注于正侧和负侧的特征变化,不仅仅是正样本的增量或负样本的减少,帮助模型捕捉细微但关键的变化。
对梯度更新的影响
- 梯度流动均衡:
- 零均值输出有助于梯度在反向传播过程中保持对称,减少某些单侧更新力过强导致的饱和或消失现象。
- 这带来的梯度均衡更新能避免模型的前层聚焦过度在单侧效应或指示,从而增加灵活性和学习效果。
- 信息不偏向性:
- 在零均值背景下,梯度更新对参数的影响是基于信息的整体捕捉而非单向偏向,使得模型在复杂数据环境中的反应和适应性提升。
-
-
通常更快收敛:
- 实验表明,使用
tanh
的网络通常能更快收敛,并获得较好的结果。特别是在深层网络中,tanh
能够提供更稳定的梯度流动,使训练过程更高效。
- 实验表明,使用
选择激活函数的时候考虑以下几点:
-
非线性表现:
tanh
的非线性区域在零附近更敏感,对于捕捉较小的细节变化更有效。 -
特定任务和可微性:根据具体任务,可能会选择不同的激活函数。
ReLU
常常也被推荐,用于克服tanh
和sigmoid
的梯度消失问题。
总结
虽然 sigmoid
在一些简单问题中依然有效,但在深度学习,特别是含大量层或长序列模型中,tanh
展现了其优越性。它们的选择取决于模型的具体要求、输入数据性质、训练数据量,以及系统最终设计目标。为了获得更优的训练性能,ReLU
及其变种可能是更好的选择。通过 tanh
的零均值特性和优化特性,能够提升模型的训练效率和结果质量。高级设计过程中结合模型具体需求,也可探索其更多变种。
Q: 隐藏层输出的均值不为零,为什么会造成梯度更新效率低?
在神经网络中,隐藏层输出的均值不为零可能导致梯度更新效率低,主要原因有以下几点:
1. 梯度消失问题
-
对称破缺:如果隐藏层输出均值距离零较远,就会导致下一个层的输入被饱和在激活函数的非活动区域。例如,sigmoid 函数在大于 2 或小于 -2 的区域有非常小的梯度,这导致几乎没有梯度反向传播回来。
-
梯度更新不均衡:偏离零均值的输出可能导致权重的更新在某些方向上更快饱和,而在其他方向上更新缓慢,这在深度神经网络中会积累为对称性破坏性的问题,梯度消失更难避免。
2. 梯度归一化的影响
-
数值稳定性:偏离零均值会造成每层的输入分布不同,增大梯度的剧烈变化,从而导致更新过程中的数值不稳定。具有零均值和单位方差的激活通常被认为更加数值稳定,这也是为何使用 batch normalization 进行标准化处理能帮助加速收敛。
-
缩放不均匀:网络中间表达的偏差大可能导致过大的激活输出,使得前层的梯度能接受过大或过小的量级更新,进一步影响训练速度和稳定性。
3. 激活函数的特性
-
非线性度利用不充分:当数据始终进入激活函数的饱和区域(如 sigmoid 的靠近 0 或 1),网络失去其强大的非线性拟合能力,只能表现得像线性模型。
-
信息损失:中间激活层偏离零均值在多层网络中聚集,导致信息流失,无法有效地传递误差信息,让网络的深层无法得到有效训练。
4. 实际应用影响
- 效率低下的训练:零均值能促进各方向上的均匀更新,更好地平衡优化过程。如果输出不集中在零附近,特别是在使用较深的网络时,会降低收敛效率,增大收敛时间。