深度学习笔记(7):几种常见的激活函数介绍,以及为什么必须要使用非线性函数作为激活函数

当前主流的激活函数主要有四种

ReLU

线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元,是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。
深度学习笔记(7):几种常见的激活函数介绍,以及为什么必须要使用非线性函数作为激活函数_第1张图片
很显然,在正区域内,斜率为1,在负区域内,斜率为0,在零处,(发生概率极小),自行定义即可。
提出ReLU那篇论文,我记得是在11年发表的,号称是人工智能再度兴起的开山力作。引领多少风骚。(占坑,改天我来个精读分析)
ReLU函数一大特点就是,梯度下降速度快,基本不可能梯度消失。号称谁用谁舒服。
ReLU在负数区域被kill的现象被称为dead relu,这样的情况下,有人通过初始化的时候用一个稍微大于零的数比如0.01来初始化神经元,从而使得relu更偏向于激活而不是死掉,但是这个方法是否有效有争议。

tanh

即双曲正切。在数学中,双曲正切“tanh”是由双曲正弦和双曲余弦这两种基本双曲函数推导而来。
深度学习笔记(7):几种常见的激活函数介绍,以及为什么必须要使用非线性函数作为激活函数_第2张图片
我们单纯通过图像就可以看出来,其和sigmoid存在一定的关系。实际上,它可以由sigmoid平移而来。
据说在大多数情况tanh要比sigmoid好一点的,因为它可以提供-1到1之间的函数投射,使得神经网络能够留有一些更大的修正空间与灵活性。

sigmoid

见之前写过的一篇博客,https://blog.csdn.net/weixin_43197820/article/details/105422318
存在梯度消失等问题,收敛较慢,计算耗费大。

leaky- ReLU

ReLU家族的又一成员,主要是为了解决掉在负域内神经元死亡的情况。
深度学习笔记(7):几种常见的激活函数介绍,以及为什么必须要使用非线性函数作为激活函数_第3张图片

P.S.关于激活函数,有一篇很好的博客可以参考:
https://blog.csdn.net/tyhj_sf/article/details/79932893

为什么需要使用非线性激活函数

深度学习笔记(7):几种常见的激活函数介绍,以及为什么必须要使用非线性函数作为激活函数_第4张图片这其实又是一个可以上升到历史问题的事情,不知大家可否听说过“感知机”这一说法,以及当初为什么在那时候停滞住了。即,它只能用一条直线进行分类。
道理一样,如果我们没有非线性激活函数参与的话,最终的复合结果一定会是 y = w ′ T x + b ′ y=w'^Tx+b' y=wTx+b,怎么改参数都是一条直线罢了,不可能达到好的效果。

你可能感兴趣的:(笔记,神经网络,吴恩达深度学习笔记)