在深度视觉的三大基本任务中,我们构建一个卷积神经网络,激活函数是必不可少的,例如sigmoid,relu等,下面我们来介绍下激活函数。
什么是激活函数?
神经网络中每层的输入是上一层的输出,每层输出是下一层的输入,所以在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数。
如图所示:
除输入层外,每个神经元被分成两部分,第一部分我们认为就是上一层的输出;第二部分就是经过一个激活函数的作用,作为下一层的输入。
为什么要用激活函数?
不使用激活函数的话,神经网络的每层都只是做线性变换,线性函数无论叠加多少层,都是线性的,只是斜率和截距不同,叠加网络对解决实际问题没有多大帮助;因为需要神经网络解决的实际问题基本都是非线性的。
我们现在有一个任务,要分4个类别,用下面两个图来说明:
没有加入激活函数,绿色的五角星在直线上,占了一部分。
加入了激活函数,绿色五角星被很好的分开了。
从以上两幅图片对比,用了激活函数分类效果更准确,这也说明非线性拟合能力更强。
线性非线性在这里就可以理解为直线和曲线。
其实光理解直线和曲线不太严谨,不过这里不影响后续学习。
常用的激活函数
sigmoid
函数公式:
s i g m o i d = 1 1 + e − x sigmoid = \frac{1}{1+e^{-x}} sigmoid=1+e−x