经常使用激活函数总结

神经网络与激活函数

神经网络从数学上来讲,就是用来拟合一个函数。把数据扔进去,获得一个预测结果,以此来解决分类和回归等问题。可是针对不一样的问题,须要拟合不一样的函数,包括线性函数和非线性函数。神经网络中经常会见到各类激活函数,当须要拟合非线性函数时就须要激活函数登场了。算法

image

对于每一个神经元来讲,都是先进行线性变换,再将线性变换的结果经过激活函数来进行激活。注意,这里的有效激活函数必须是非线性函数。若是采用线性激活函数,则在前向传播的过程当中,至关于一直作线性变换,这样的话,不管多少隐藏层,都是线性变换,也就是隐藏层在这里没有发生做用,仍然是一个单层的感知机。固然对于最后一层的输出层则没有这个要求,能够选择线性或者非线性的激活函数。网络

经常使用激活函数总结

这里主要介绍非线性激活函数,线性的激活函数也就是恒等函数,在坐标轴表示为一条直线,一般使用较少。常见的非线性激活函数一般能够分为两类,一种是输入单个变量输出单个变量,如sigmoid函数,Relu函数;还有一种是输入多个变量输出多个变量,如Softmax函数,Maxout函数。机器学习

1.Sigmoid函数

Sigmoid函数,也叫作S函数将值限定在 \((0,1)\) 之间,可以很好的做为几率来解释算法获得的结果。目前在计算机视觉中不经常使用,只适用于二分类等问题。函数

缺点是当输入较大的正数或者负数时,导数就会变为0,这时候采用梯度降低方法就会降低很慢,使得神经网络不能正常更新。同时不是以0为对称,容易在更新时产生 zigzag 路径。性能

函数定义为
\[ a = sigmoid(z) = \frac{1}{1+e^{-z}} \]
其求导结果为
\[ a'=\frac{1}{1+e^{-z}}\left( 1 - \frac{1}{1+e^{-z}}\right)=a(1-a) \]
image.png学习

2.tanh函数

thah函数可以将值限定在 \((-1,1)\) 之间,比sigmoid函数更为经常使用。可是也存在与sigmoid函数同样的缺点,当在z值较大或者较小时,斜率接近0,这时优化速度很慢,这种状况下能够考虑采用ReLU函数。优化

函数定义为
\[ a = thah(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}} \]spa

求导结果为
\[ a' = 1 - tanh^2(z) = 1 - a^2 \]3d

image.png

3. ReLU函数及其变体

ReLU函数,也叫作线性整流函数,可以解决在值较大时产生的梯度为0的问题,可以正常的更新,而且没有复杂的指数计算,使得性能较好,收敛较快,是目前在视觉领域最为常见的激活函数。blog

ReLU函数为
\[ a = ReLU(z) = max(0,z) \]

其导数为
\[ a' = \left\{\begin{matrix} 0 & x<0 \\ 1 & x>0 \end{matrix}\right. \]
image

LeakyReLU是为了防止ReLU函数在负数时,斜率为0的状况,但在实际状况中,很难到负数那边去,因此基本采用ReLU就足够了,不过也建议采用交叉验证来试试这个函数。

Leaky ReLU为
\[ a = LeakyReLU(z) = max(0.01z,z) \]
其导数为
\[ a' = \left\{\begin{matrix} 0.01 & x<0 \\ 1 & x>0 \end{matrix}\right. \]
image

此外,还有几种激活函数由算法来学习负数区域的学习率,如PReLU函数和ELU函数,原理与ReLU函数相似。

4.Softmax函数

softmax函数与sigmoid函数很类似,也是将值变换到 \((0,1)\) 之间。可是能够针对多个类别,预测出每一个类别的归一化几率,因此一般softmax函数是在分类器的输出层使用。

其函数表达式为
\[ \sigma (z)_{j}= \frac{e^{z_j}}{\sum_{k=1}^{K}e^{z_k}} \]

如何选择激活函数

选择激活函数没有固定的规则,每一个激活函数适用于不一样的应用,好比分类和回归,多分类和二分类任务。但根据每一个激活函数的性质,也存在一些基本的规律

  • 对于二分类问题,在输出层能够选择 sigmoid 函数。
  • 对于多分类问题,在输出层能够选择 softmax 函数。
  • 因为梯度消失问题,尽可能sigmoid函数和tanh的使用。
  • tanh函数因为以0为中心,一般性能会比sigmoid函数好。
  • ReLU函数是一个通用的函数,通常在隐藏层均可以考虑使用。
  • 有时候要适当对现有的激活函数稍做修改,以及考虑使用新发现的激活函数。

欢迎你们关注公众号“计算机视觉与机器学习”
计算机视觉和机器学习

相关文章
相关标签/搜索