关于sigmod激活函数图像不是以0为中心的问题探讨

这个问题之前也遇到过,没有深究,最近一位网友向我询问此事,我总结如下:

首先我们要知道反向传播的流程:

1、概念:

前项传播:

 

                        

                                                                                                                       

 

反向传播:

反向传播的思想其实就是,对于每一个训练实例,将它传入神经网络,计算它的输出;然后测量网络的输出误差(即期望输出和实际输出之间的差异),并计算出上一个隐藏层中各神经元为该输出结果贡献了多少的误差;反复一直从后一层计算到前一层,直到算法到达初始的输入层为止。此反向传递过程有效地测量网络中所有连接权重的误差梯度,最后通过在每一个隐藏层中应用梯度下降算法来优化该层的参数(反向传播算法的名称也因此而来)。

 

       权重更新方式是发生在反向更新阶段,过程:,对于神经元A来说,wi更新的方向和后几项都有关系,先看超参数,他是人为规定的,默认值,所以学习率可以不考虑;再看最后两位乘积项,这个对于神经元A来说,它是神经元A的误差表示,在某一次反向传播也是不变的,也不考虑,所以w值的更新方向只与值有关,这个值是上一层神经元的输入值,即经过了sigmod函数激活过,所以肯定是正值,那么可以得出结论:在某一次反向传播时,对于神经元A来说,w1、w2..改变的方向是统一的,或正或负。如果你的最优值是需要w1增加,w2减少,那么只能走z字形才能实现。

 
 
所以,如何避免这种情况呢。方法之一就是改变激活函数,不需要激活函数值全正或者全负。所以你说,这里的sigmod函数输出均>0,是不合适的,所以他的缺点之一:不是关于原点对称!
如有错误,欢迎讨论指正。

 

 

参考资料:

https://zhuanlan.zhihu.com/p/32714733

https://zhuanlan.zhihu.com/p/25110450

https://liam.page/2018/04/17/zero-centered-active-function/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章