SciTech-EECS-BigDataAIML-NN(神经网络):
常用的18种Activation(激活函数)
一:简介
二:为什么要用激活函数
三:激活函数的分类
四:常见的几种激活函数
4.1.Sigmoid函数
4.2.Tanh函数
4.3.ReLU函数
4.4.Leaky Relu函数
4.5.PRelu函数
4.6.ELU函数
4.7.SELU函数
4.8.Swish函数
4.9.Mish函数
4.10.Softmax函数
一:简介
激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,将神经元的输入映射到输出端,目标帮助网络学习数据的复杂模式。
下图展示了一个神经元是 如何 输入激活函数 以及 如何得到该神经元最终的输出:
二:为什么要用激活函数
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,就是最原始的感知机(Perceptron)。
使用激活函数 能够给神经元引入 非线性因素,使
神经网络可以任意逼近任何非线性函数,使深层神经网络表达能力更加强大,于是神经网络就可以应用到众多的非线性模型。
三:激活函数的分类
激活函数可以分为两大类:
- 饱和激活函数: sigmoid、 tanh...
- 非饱和激活函数: ReLU 、Leaky Relu 、ELU、PReLU、RReLU...
首先,我们先了解一下什么是饱和?
反之,不满足以上条件的函数则称为非饱和激活函数。
- Sigmoid函数需要一个实值输入,压缩至[0,1]的范围
- tanh函数需要讲一个实值输入,压缩至 [-1, 1]的范围
相对于饱和激活函数,使用非饱和激活函数的优势在于两点:
- 非饱和激活函数能解决深度神经网络(层数非常多)带来的梯度消失问题
- 使用非饱和激活函数能加快收敛速度。