Activation Function

Neuron


如图是神经网络中一个典型的神经元设计,它完全仿照人类大脑中神经元之间传递数据的模式设计。大脑中,神经元通过若干树突(dendrite)的突触(synapse),接受其他神经元的轴突(axon)或树突传递来的消息,而后经过处理再由轴突输出。

参数更新方向

深度学习一般的学习方法是反向传播。简单来说,就是通过链式法则,求解全局损失函数L(x)对于某一参数w的偏导数(梯度);而后辅以学习率\eta,向梯度的反方向更新参数w

考虑学习率$\eta$是全局设置的超参数,参数更新的核心步骤即是计算$\frac{\partial L}{\partial w}$ 再考虑到对于某个神经元来说,其输入与输出的关系是

根据链式法则,对于参数w_i来说

因此,参数的更新步骤变为

由于$w_i$是上一轮迭代的结果,此处可视为常数,而$\eta$是模型超参数,参数$w_i$的更新方向实际上由$x_i\cdot\frac{\partial L}{\partial f}$决定。又考虑到 $\frac{\partial L}{\partial f}$对于所有的$w_i$来说是常数,因此各个$w_i$更新方向之间的差异,完全由对应的输入值$x_i$ 的符号决定。

以零为中心的影响

至此,为了描述方便,我们以二维的情况为例。亦即,神经元描述为

假设对于参数 $w_0$,$w_1$的最优解$w_0^{\prime}$,$w_1^{\prime}$

我们希望$w_0$适当增大,$w_1$适当减少,这里必然要求$x_0$ 和 $x_1$ 符号相反。
但在 Sigmoid 函数中,输出值恒为正。这也就是说,如果上一级神经元采用 Sigmoid 函数作为激活函数,那么我们无法做到$x_0$和$x_1$符号相反。此时,模型为了收敛,不得不向逆风前行的风助力帆船一样,走 Z 字形逼近最优解。

Sigmid

函数形式

导数

性质

  • Sigmoid neurons can saturate and lead to vanishing gradients.
  • Not zero-centered.
  • $e^{x}$is computationally expensive.

Tanh

函数形式

导数

性质

  • Zero-centered.
  • $e^{x}$is computationally expensive.
  • tanh can saturate and lead to vanishing gradients.

Relu

函数形式

性质

  • Fast to compute.
  • Gradients do not vanish for 𝑥 > 0.
  • Provides faster convergence in practice!
  • Not zero-centered.
  • Can die: if not activated, never updates!

Relu

函数形式

性质

  • Will not die
  • a != 1
  • zero-centered
Donate article here