5个经典激活函数 |
您所在的位置:网站首页 › 常用激活函数有哪些类型的 › 5个经典激活函数 |
激活函数
1.sigmoid函数 σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}}\, σ(x)=1+e−x1 过去反向传播很流行使用,但随着神经网络层数增加,反向传播过程中会出现梯度消失。 sigmoid函数导数 梯度消失:反向传播利用的是梯度下降法,反向传播时,每经过一个sigmoid层,就需要乘以一个小于0.25的梯度(也就是sigmoid函数的导数),随着神经网络层数增加,梯度会越来越小,最后梯度衰减到接近0,即梯度消失。 2.tanh函数 tanh ( x ) = sinh ( x ) cosh ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{\sinh(x)}{\cosh(x)} = \frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=cosh(x)sinh(x)=ex+e−xex−e−x tanh函数的输出区间是在(-1,1)之间,整个函数是以0为中心的(一般二分类问题中,隐藏层用tanh函数) 3.relu函数 单侧抑制功能 解决梯度消失的原则就是靠梯度等于或接近1。 f ( x ) = max ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x) 优点: ①只在大于0的区域进行传播,带来一个优点稀疏性。稀疏性不仅对网络性能提高有帮助,而且从神经科学角度,神经元的激活率非常低,这是一种仿生的模拟。 ②由于relu函数只有线性关系,所以不管是前向传播还是反向传播,计算速度都比sigmod和tanh要快很多(sigmod和tanh是计算指数)。 缺点: ③在输入小于0区域,如果有很大梯度传播过来,ReLU就会死掉(Dying ReLU)。 4.ELU函数 f ( x ) = { x , x > 0 α ( e x − 1 ) , x ≤ 0 f(x) = \left\{ \begin{array}{rcl} x, & x>0 \\ \alpha(e^x-1), & x\leq0 \end{array}\right. f(x)={x,α(ex−1),x>0x≤0 可以消除ReLU死掉的问题,不过还是有梯度爆炸和指数运算的问题。 梯度爆炸:如果反向传播的梯度是大于1的,随着神经网络层数增加,梯度越来越大。 5.PReLU函数 f ( x ) = max ( a x , x ) f(x) = \max(ax, x) f(x)=max(ax,x) 优点: ①避免ReLU死掉的问题。 ②相比于ELU,PReLU在负数区域内是线性运算,计算速度快。 ③当α=0.01时,算是特殊情况,我们叫PReLU为Leaky ReLU(用非常小的系数让信息和梯度的传播不至于中断) 总体来说,这些激活函数都有优点和缺点,应该看具体情况具体分析。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |