1、神经网络的表示
所有输入特征组成输入层(Input Layer),最终的输出神经元组成输出层(Output Layer),输入层和输出层之间的叫做隐藏层(Hidden Layer)。神经网络通过偏置和权重进行计算的示意图如下图所示:
将上述计算式进一步进行整合:
在进行多个样本的并行训练时,计算方法如下所示:
其中, Z[i],A[i]表示不同训练样本在相同神经网络层下的权值累和和输入值,将其组合起来为矩阵形式,矩阵的行表示当前神经网络层的神经元个数,列表示训练样本数量,如下图所示:
2、激活函数
除了之前介绍的sigmoid激活函数,还有一种另外一种激活函数为tanh激活函数,同时tanh在大多数情况下用于隐藏层时的效果要优于sigmoid激活函数,但是在输出层一般使用sigmoid激活函数。tanh激活函数表达式为:
tanh激活函数的图像如下图所示:
sigmoid激活函数和tanh激活函数具有一个相同的弊端:当z的值十分大或者十分小时,sigmoid激活函数和tanh激活函数的导数均比较小,这会导致梯度下降运算效率降低;所以,另外一种常用的激活函数时ReLU激活函数,
,ReLU的图像如下所示:
2.1 激活函数的导数
sigmoid激活函数:
tanh激活函数:
ReLU激活函数和Leakey ReLU激活函数:
3、神经网络的误差反向传播
单个隐藏层的神经网络误差反向传播的公式如下所示:
4、神经网络参数的随机初始化
如果将所有权重和偏置均初始化为0,则会使得神经网络中每一个隐藏层中的所有神经元起到相同的作用,即每一个隐藏层中的所有神经元均计算的是同一个相同的函数,从而使得增加神经元数量变得无效,降低学习效果。偏置可以初始化为0,但是权重不能初始化为0。
通常的做法是使用随机初始化偏置和权重的方法,通常将权重初始化为比较小的数值,因为如果将权重设置的很大,将会使得梯度下降的速度减慢: