最后更新于
最后更新于
上面为Sigmoid
函数和tanh
函数的函数图和导数图. 我们把tanh称为是零中心(zero-centered)的函数, 其输出值是单调且有正有负; sigmoid
函数非零中心(non-zero-centered)的, 函数的输出只有正值.
如果激活函数是non-zero-centered的, 一般会导致神经网络收敛较慢.
non-zero-centered激活函数会导致神经网络收敛较慢, 原理要从反向传播开始讲起.
对于单个神经元, 其输入输出的关系为:
非零中心激活函数的弊端因此展现. 以Sigmoid
函数为例, 并且我们分析一个简单的网络, 对于某个神经元, 其上一层只有两个输入, 即两个神经元, 即:
损失函数为, 对于某一参数的更新公式为:
因此, 对于单个参数来说, 通过链式求导法则, 其导数为:
其中的是神经元的输出, 也通常记为, 这一项的结果为. 因此的更新公式为:
参数的更新方向是由决定的. 而对于某个神经元相关的所有来说, 是一个常数, 因此某个神经元相关的所有参数的更新方向之间的差异, 完全是由的符号决定的.
对应的两个参数为, . 并假设当前时刻, 两个参数与最优解对应值的关系为:
所以希望适当的增大, 而适当的减小, 要求和的符号相反.
但对于Sigmoid
函数, 其输出值恒为正, 即输入的和恒为正, 因此两个参数的更新方向肯定是同时增大或减小的. 而模型为了收敛, 只能走Z字形逼近最优解, 导致迭代步骤的增加, 这种现象也称为zig-zagging dynamics.