6.1 试述将线性函数f(x) = wTx作为激活函数的缺陷。
答:
如果使用线性函数作为激活函数时,无论是在隐藏层还是在输出层,本质上其单元值还是输入x的线性组合。
这个时候的若神经网络输出层使用Sigmoid函数退化为逻辑回归,若输出层也使用线性函数作为激活函数,那么就退化为线性回归。
6.2 以下是几种在神经网络或深度学习网络中常用的激活函数,试总结激活函数所具备的特征,并解释下面几种函数是否适合作为激活。
答:
激活函数一般特征:
- 非线性:
激活函数为非线性激活函数的时候,基本上两层的神经网络就可以模拟大多数函数。如果为线性,缺陷见6.1题。
- 有界(大多数):
当输出有界的时候,基于梯度的优化方法会更加稳定,因为特征量表示受到有限权值的影响会更加显著。
同时,当输出无界时,模型训练更加有效果。
- 单调性:
当激活函数是单调函数的时候,单层的神经网络能够保持是凸函数。
- 可微且导数易于计算或者表示:
在进行梯度优化和计算的时候,必须满足函数可微性的这一个条件以方便进行求导运算。
(1)gx= 11+e-ax ,a>0
当a = 1时,为Sigmoid函数,a取其他正值情况与之类似。
它主要的特点是,它能够将输入的连续实数值压缩到0和1之间的输出值。当取到特别的值的时候,趋近于 +∞的时候,输出的值趋近于1;当趋近于 -∞ 的时候,输出值趋近于0。
曾经,Sigmoid函数为神经网络计算过程中的主要激活函数,但是现在它已经不太受欢迎,实际中很少使用。原因是sigmoid存在3个问题:
- sigmoid函数饱和使梯度消失。
- sigmoid函数输出不是“零为中心”(zero-centered)。
- 指数函数的计算是比较消耗计算资源的。
(2)gx= 1-e-ax1+e-ax=tanhax2,a>0
当a = 2时,为Tanh函数,a取其他正值情况与之类似。
tanh 作为sigmoid 函数的改进版本,将函数值压缩在了[-1,1]之间,并且是一个关于原点对称的函数。它是完全可微分的,反对称,对称中心在原点。在梯度的反向传播过程中解决了 sigmoid函数中的一些问题,但是指数运算性质和梯度消失问题仍然存在。
(3)gx=x1+x2
函数图像如下所示:
函数单调,有界,且非线性,适合作为激活函数。
6.3 神经元j从其它四个神经元接受输入,它们的值分别为10,-20,4,-2。神经元j的每个突触的权值分别为0.8,0.2,-1.0,-0.9。计算下列两种情况下神经元j的输出。
(1)偏置θ=0 ,神经元是线性的(即不经过激活函数的处理)。
(2)偏置θ=0 ,神经元的激活函数为sigmoid函数。
(3)偏置θ=-9 ,神经元的激活函数为sigmoid函数。
答:计算结果如下图所示:
6.4 利用前向传播算法,补全下列网络中结点取值。
注:g(x)为sigmoid函数
答:
补全后网络如下所示:
6.5 依据后向传播算法,补全下列网络的结点误差。
输入特征向量[2.00, 0.00]时,由前向传播算法得到如下结果:
对类别向量y1=[1, 0],后向误差传播如下:
对类别向量y2=[0, 1],后向误差传播如下:
答:
补全结果如下所示: