关于原点对称的输入和中心对称的输出,网络会收敛地更好?

  • **本文作者: **Liam Huang
  • 本文链接: https://liam.page/2018/04/17/zero-centered-active-function/
  • **版权声明: **本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

今天在讨论神经网络中的激活函数时,陆同学提出 Sigmoid 函数的输出不是以零为中心的(non-zero-centered),这会导致神经网络收敛较慢。关于这一点,过去我只是将其记下,却并未理解背后的原因。此篇谈谈背后的原因。

神经元


关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第1张图片
神经元

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第2张图片

Sigmoid 与 tanh


此篇集中讨论激活函数输出是否以零为中心的问题,因而不对激活函数做过多的介绍,而只讨论 Sigmoid 与 tanh 两个激活函数。

Sigmoid 函数


关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第3张图片

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第4张图片

tanh 函数


关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第5张图片

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第6张图片

一些性质

Sigmoid 和 tanh 两个函数非常相似,具有不少相同的性质。简单罗列如下

优点:平滑
优点:易于求导
缺点:幂运算相对耗时
缺点:导数值小于 1,反向传播易导致梯度消失(Gradient Vanishing)

对于 Sigmoid 函数来说,它的值域是 (0,1),因此又有如下特点

优点:可以作为概率,辅助模型解释
缺点:输出值不以零为中心,可能导致模型收敛速度慢

此篇重点讲 Sigmoid 函数输出值不以零为中心的这一缺点。

收敛速度

这里首先需要给收敛速度做一个诠释。模型的最优解即是模型参数的最优解。通过逐轮迭代,模型参数会被更新到接近其最优解。这一过程中,迭代轮次多,则我们说模型收敛速度慢;反之,迭代轮次少,则我们说模型收敛速度快。

参数更新

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第7张图片

以零为中心的影响

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第8张图片

关于原点对称的输入和中心对称的输出,网络会收敛地更好?_第9张图片

如图,模型参数走绿色箭头能够最快收敛,但由于输入值的符号总是为正,所以模型参数可能走类似红色折线的箭头。如此一来,使用 Sigmoid 函数作为激活函数的神经网络,收敛速度就会慢上不少了。

你可能感兴趣的:(关于原点对称的输入和中心对称的输出,网络会收敛地更好?)