4.1 全连接深层神经网络框架
深层神经网络(DNN)[1]是一个有很多(超过两个)隐层的传统多层感知器(MLP)。文献[361]给出了DNN在语音识别系统中作为声学模型使用的一个综述。图4-1绘制了一个共五层的DNN,包括输入层、隐层和输出层。为了简化符号,对一个L+1层的DNN,我们将输入层写作层0,将输出层写作层L。
在开始的L层中:
其中,∈,分别是激励向量、激活向量、权重矩阵、偏差系数矩阵和ℓ层的神经元个数。是输入特征向量,N0=D是特征的维数,接着是对激励向量进行元素级计算的激活函数。在大多数情况下,sigmoid函数
图4-1 有一个输入层、三个隐层、一个输出层的深层神经网络示例
或者双曲正切函数
会被用作激活函数。因为tanh(z)函数是sigmoid函数一个调节过的版本,这两个激活函数有相同的建模能力。σ(z)的输出范围是(0, 1),这有助于得到稀疏化的表达,却使激活值具有不对称性。tanh(z)的输出范围是(−1, +1),因此是对称的,这会对训练有帮助[48]。另外一个被广泛使用的激活函数是整流线性单元(ReLU)
ReLU(z)=max(0, z) (4.4)
它强制了具有稀疏性质的激活值1[182],而且有简单导数(在4.2节讨论)。由于sigmoid函数在从业者中被应用得最广泛,在下面的讨论中除非另外标明,我们假定都使用了sigmoid函数。
输出层根据任务选定。对于回归的任务,一个线性层
vL=zL=WLvL−1+bL (4.5)
用来产生输出向量,其中NL是输出的维度。
对于多分类的任务,每个输出层神经元代表一类i∈{1, …, C},其中C=NL是类的个数。第i个输出神经元的值代表特征向量o属于类i的概率Pdnn(i|o)。因为是一个多项式分布,输出向量vL需要满足和。我们用一个softmax函数来归一化:
其中,是激励向量zL的第i个元素。
给定一个特征向量o,DNN的输出由模型系数{W, b}={Wℓ, bℓ|0<L}决定,用公式(4.1)计算从第1层到第L−1层的激活向量,接着使用公式(4.5)(回归)或者公式(4.6)(分类)计算DNN的输出。这个过程往往被称为前向计算,在算法4.1中被总结出来。