激活函数

不可以不使用激活函数。

激活函数的主要作用是提供网络的非线性建模能力,如果没有激活函数,隐藏层数量再多与单层神经网络等价。必须满足以下性质:

  • 可微性:基于梯度优化必须可微(可导)。
  • 单调性:单层网络保证是凸函数。
  • 输出值范围:当激活函数输出值有限时,基于梯度的优化方法可以更加稳定,因为特征的表示受有限权值的影响更加显著。当输出值时无限时,模型的训练更加高效,在这种情况下需要更小的learning rate.

sigmoid

f(x)=11+exf(x)=\frac{1}{1+e^{-x}}

sigmoid 是使用范围最广的一类激活函数,具有指数函数形状,它在物理意义上最为接近生物神经元。此外,(0, 1) 的输出还可以被表示作概率,或用于输入的归一化,代表性的如Sigmoid交叉熵损失函数。

sigmoid自身的缺陷:

  • 最明显的就是饱和性。从上图可以看到,其两侧导数逐渐趋近于0:

    lim_xf(x)=0\lim \_{x \rightarrow \infty} f^{\prime}(x)=0

    具有这种性质的函数称为软饱和激活函数。硬饱和函数定位如下:

    f(x)=0,x>c,c为常数.f'(x)=0, 当|x|>c, c为常数.

    由于sigmoid的软饱和性,当输入落入饱和区,f(x)=0f'(x)=0导致梯度消失。
  • sigmoid函数输出均大于0,使得输出均值不为0,这称为偏移现象,这会导致后一层神经元将得到上一层非0均值的信号作为输入。

tanh

f(x)=1e2x1+e2xf(x)=\frac{1-e^{-2 x}}{1+e^{-2 x}}

tanh也是一种非常常见的激活函数。与sigmoid相比,它的输出均值是0,使得其收敛速度要比sigmoid快,减少迭代次数。然而,从途中可以看出,tanh一样具有软饱和性,从而造成梯度消失。

ReLU、P-ReLU、Leaky-ReLU

f(x)={x, if x00, if x<0\begin{array}{c}{f(x)=\left\{\begin{array}{l}{x, \text { if } x \geq 0} \\ {0, \text { if } x<0}\end{array}\right.}\end{array}

f(x)=max(0,x)f(x)=\max (0, x)

ReLU的全称是Rectified Linear Units,当x<0时,ReLU硬饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。
然而,随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。与sigmoid类似,ReLU的输出均值也大于0,偏移现象和 神经元死亡会共同影响网络的收敛性。
针对在x<0x<0的硬饱和问题,我们对ReLU做出相应的改进,使得:

f(x)={x, if x0αx, if x<0f(x)=\left\{\begin{array}{ll}{x,} & {\text { if } x \geq 0} \\ {\alpha x,} & {\text { if } x<0}\end{array}\right.

这就是Leaky-ReLU, 而P-ReLU认为,α\alpha也可以作为一个参数来学习,原文献建议初始化α\alpha为0.25,不采用正则。

ELU

f(x)={x, if x0α(ex1), if x<0f(x)=\left\{\begin{array}{l}{x, \quad \text { if } x \geq 0} \\ {\alpha\left(e^{x}-1\right), \text { if } x<0}\end{array}\right.

融合了sigmoid和ReLU,左侧具有软饱和性,右侧无饱和性。右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱能够让ELU对输入变化或噪声更鲁棒。ELU的输出均值接近于零,所以收敛速度更快.

损失函数

0-1损失函数(感知机)

L(Y,f(X))={1,Yf(X)0,Y=f(X)L(Y, f(X))=\left\{\begin{array}{l}{1, Y \neq f(X)} \\ {0, Y=f(X)}\end{array}\right.

平方损失函数(线性回归)

L(Y,f(X))=i=1n(Yf(X))2L(Y, f(X))=\sum_{i=1}^{n}(Y-f(X))^{2}

绝对值损失函数

L(Y,f(X)=Yf(X)L(Y, f(X)=|Y-f(X)|

指数损失函数(adaboost)

L(Yf(X))=exp[yf(x)]L(Y | f(X))=\exp [-y f(x)]

对数损失函数(logistic)

cost(hθ(x),y)=i=1myilog(hθ(x))(1yi)log(1hθ(x))\operatorname{cost}\left(h_{\theta}(x), y\right)=\sum_{i=1}^{m}-y_{i} \log \left(h_{\theta}(x)\right)-\left(1-y_{i}\right) \log \left(1-h_{\theta}(x)\right)

Hinge(合页)损失函数(SVM)

L_i=jyimax(0,fjfyi+Δ)L\_{i}=\sum_{j \neq y_{i}} \max \left(0, f_{j}-f_{y_{i}}+\Delta\right)

Δ\Delta 代表间隔,一般取1. 或者L(y)=max(0,1ty)L(y)=max(0, 1-ty)

softmax损失函数

交叉熵损失函数:

L=iyilnaiL=-\sum_{i} y_{i} \ln a_{i}

联系作者