神经网络和误差逆传播算法(BP) (2)

    一开始为了简单,人们把激活函数定义成一个线性函数,即对于结果做一个线性变化,比如一个简单的线性激活函数是g(z) = z,输出都是输入的线性变换。后来实际应用中发现,线性激活函数太过局限,于是人们引入了非线性激活函数。

1.2 激活函数

    常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层。这里先简要介绍下最基础的sigmoid函数(btw,在本博客中SVM那篇文章开头有提过)。

    sigmoid的函数表达式如下

 

神经网络和误差逆传播算法(BP)

    其中z是一个线性组合,比如z可以等于:b + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

 + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

。通过代入很大的正数或很小的负数到g(z)函数中可知,其结果趋近于0或1。

    因此,sigmoid函数g(z)的图形表示如下( 横轴表示定义域z,纵轴表示值域g(z) ):

神经网络和误差逆传播算法(BP)

    也就是说,sigmoid函数的功能是相当于把一个实数压缩至0到1之间。当z是非常大的正数时,g(z)会趋近于1,而z是非常小的负数时,则g(z)会趋近于0

    压缩至0到1有何用处呢?用处是这样一来便可以把激活函数看作一种“分类的概率”,比如激活函数的输出为0.9的话便可以解释为90%的概率为正样本。

    举个例子,如下图(图引自Stanford机器学习公开课)

逻辑与

 

    z = b + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

 + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

,其中b为偏置项 假定取-30,

神经网络和误差逆传播算法(BP)

神经网络和误差逆传播算法(BP)

都取为20

神经网络和误差逆传播算法(BP)

如果

神经网络和误差逆传播算法(BP)

 = 0 

神经网络和误差逆传播算法(BP)

 = 0,则z = -30,g(z) = 1/( 1 + e^-z )趋近于0。此外,从上图sigmoid函数的图形上也可以看出,当z=-30的时候,g(z)的值趋近于0

如果

神经网络和误差逆传播算法(BP)

 = 0 

神经网络和误差逆传播算法(BP)

 = 1,或

神经网络和误差逆传播算法(BP)

 =1 

神经网络和误差逆传播算法(BP)

 = 0,则z = b + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

 + 

神经网络和误差逆传播算法(BP)

*

神经网络和误差逆传播算法(BP)

 = -30 + 20 = -10,同样,g(z)的值趋近于0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgwpj.html