一、简介
激活函数是连接感知机和神经网络的桥梁,在上次学习的感知机章节中,使用的是阈值来触发是否激活,实际上这是将阶跃函数作为了激活函数。
也就是说,在激活函数的众多候选函数中,感知机选择了阶跃函数。如果感知机使用其他函数作为激活函数会怎么样呢?
实际上,如果将激活函数由阶跃函数换为其他函数,就进入了神经网络的世界。
下面来学习几种常用的激活函数。
二、Sigmoid函数
Sigmoid函数是神经网络中经常用到的激活函数,其表达式如下:
Sigmoid函数的图形如下:
三、Sigmoid函数和阶跃函数的比较
为了方便比较Sigmoid函数和阶跃函数,将两个函数画在同意个图中,如下:
比较Sigmoid函数和阶跃函数(虚线为阶跃函数),Sigmoid函数和阶跃函数的一个不同点是“平滑性”。
Sigmoid函数是一条平滑的曲线,输出随输入连续变化;阶跃函数以0为界,输出发生急剧性的变化。Sigmoid 函数的平滑性对神经网络的学习具有重要意义。
另一个不同点是,阶跃函数只能返回0或1,Sigmoid函数可以返回0.731、0.880等实数,这也是平滑性的一种体现。
也就是说,在感知机中,在神经元之间流动的是0或者1的二元信号,而在神经网络中流动的是连续的实数信号。
Sigmoid 函数和阶跃函数的一个共同点是形状相似。
实际上,两者均符合“当输入小时,输出接近0(或为0);随着输入增大,输出接近1(或为1)”。
也就是说,当输入信号为重要信息时,Sigmoid函数和阶跃函数都会输出较大的值;当输入信号为不重要的信息时,两者都输出较小的值。
另一个共同点是,不论输入信号大小,输出信号的值都在0~1之间。
阶跃函数和Sigmoid函数都是非线性函数,Sigmoid函数的图形是一条曲线,阶跃函数的图形是一条似阶梯的折线。
注意:神经网络的激活函数必须使用非线性函数。
四、ReLU函数
ReLU(Rectified Linear Unit)函数是近年来在神经网络中广为使用的激活函数。
其表达式为:
其图形为:
由此可见,ReLU也是一个非常简单的函数,不用再过多的介绍了。
|