人工智能:语音识别理解与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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中被总结出来。