结论:激活函数可以为线性模型引入非线性因素,从而解决了线性模型难以解决的分类问题。
举例说明:
设计一个感知机分类器将下面的三角和圆分开。
考虑以下几种方法:
(1)单层感知机。
单层感知机表达式为,它可以划出一条直线把平面分开。对于输入样本(x1,x2),如果y>0,则是正类,如果y<0,则是负类,不考虑y = 0的情况。
结论1:单层感知机得到的直线无论怎么移动都不能正确地区分开三角形和圆形。
(2)单层感知机+激活函数层
感知机的输出再加上sigmoid激活函数层,由于sigmoid是一个非线性函数,所以输出也是一个非线性函数,可以解决非线性的分类问题。
结论2:单层感知机+激活函数层可以将三角形和圆形正确地区分开。
(3)多层感知机
多层感知机表达式经过合并同类项之后如下所示,
仍然是一个关于输入的线性方程,处理不了非线性问题。
结论3:多层感知机不能正确地区分开三角形和圆形。
(4)多层感知机+激活函数层
将激活函数添加到多层感知机的输出,由于每一层都是一个非线性输出,最终的输出也会是一个非线性函数,因此可以解决分现行的分类问题。
结论4:多层感知机+激活函数层可以正确地区分开三角形和圆形。
最终结论:通过在感知机后引入激活函数,并不断地优化损失函数,可以用来解决非线性分类问题,能够正确地将三角形和圆形区分开。
同理,由于全连接层和卷积层的计算都是简单的乘加运算,即都是线性运算,所以全连接层和卷积层都是线形层,而线性层的特征表达能力是有限的,所以为了增强模型对特征的表达能力,在全连接层和卷积层只有加入了非线性运算,即激活函数层,又称为非线性层。如果连续使用多个卷积层或全连接层但是没有使用激活函数,就会退化成一层。