- 人工智能:语音识别理解与实践
- 俞栋等
- 1202字
- 2021-01-05 18:14:53
4.2 使用误差反向传播进行参数训练
从20世纪80年代开始,人们知道了有着足够大隐层的多层感知器(Multi-Layer Perceptron,MLP)是一个通用的近似算子(Universal Approximator)[183]。换句话说,有足够大隐层的MLP可以近似任意一个从输入空间。显然,既然DNN是多隐层的MLP,那么它自然可以作为一个通用近似算子。
DNN的模型参数{W, b}需要通过每个任务的训练样本|0≤m<M}来训练得到,其中M是训练样本个数,om是第m个观察向量,ym是对应的输出向量。这个过程被称为训练过程或者参数估计过程,需要给定一个训练准则和学习算法。
4.2.1 训练准则
训练准则应该能够被简单地计算,并且与任务有很高的相关性,准则上的提升最后应该能体现到任务的完成水准上。在理想情况下,模型参数的训练应该最小化期望损失函数
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-080-3.jpg?sign=1739498513-bpbzA6YAWBSdfapN0rR2CeePjARY1BMX-0-1b67a5045f864103c3b84ee7afa75fbc)
其中,J(W, b; o, y)是损失函数,{W, b}是模型参数,o是观察向量,y是相应的输出向量,p(o)是概率密度函数。不幸的是,p(o)需要从训练集中估计,对训练集中没有出现的样本J(W, b; o, y)也没有被很好地定义(集外样本的标注是未知的)。因此,DNN往往采用经验性准则来训练。
在DNN训练中有两个常用的训练准则。对于回归任务,均方误差(Mean Square Error,MSE)准则
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-080-4.jpg?sign=1739498513-O8e1UADoJ5jP9F6ePYK5plzKcS3bvzI5-0-7870363c40e6ba351386bb17afd23f2a)
经常被使用,其中
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-080-5.jpg?sign=1739498513-PQPmFGnBNzJBN8BEoW6I4V2u2aqjbjqf-0-8554d492ac81a1bfc60fbb856ed3fadd)
对分类任务,设y是一个概率分布,那么交叉熵(Cross Entropy,CE)准则
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-1.jpg?sign=1739498513-VItnBg5JutOXzNRxCbbUT3UF1rQJFXLp-0-d717a063fd191a4bf340a86fccb12e36)
经常被使用,其中
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-2.jpg?sign=1739498513-JuvtiqT8b13grg0MGvgGj8DlrBmsRBxU-0-72ed73c384b85accee2453017ca81d7d)
yi=Pemp(i|o)是观察o属于类i的经验概率分布(从训练数据的标注中来),是采用DNN估计的概率。最小化交叉熵准则等价于最小化经验分布和DNN估计分布的KL距离(Kullback-Leibler Divergence,KLD)。一般来说,人们通常使用硬标注来描述经验概率分布,即
,其中
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-5.jpg?sign=1739498513-WcelGyYMs4PPX5RrWJ7R5Sv4ir9FvjgI-0-a6375ea45e144a4aa214e5d2686e4745)
是指示函数,c是训练集对于观察o的标注类别。在大部分情况下,公式(4.11)下的CE准则退化为负的对数似然准则(Negative Log-likelihood,NLL)
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-6.jpg?sign=1739498513-jFpSIsKsZxS6GxyJ6muXfgcADAgnRbuG-0-9ab439fe4a4495817000ed79b03d5ff6)
4.2.2 训练算法
给定训练准则,模型参数{W, b}可以使用著名的误差反向传播(Backpropagation,BP)算法[47]来学习,可以使用链式法则来推导。[2]
在其最简单的形式下,模型参数使用一阶导数信息按照如下公式来优化:
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-7.jpg?sign=1739498513-6pYuZFzyMaS4rZeehTzxbKYNxBC6wSVz-0-98243263f850b8f5da09fa7f61eeb06a)
其中,分别是在第t次迭代更新之后ℓ层的权重矩阵(Weight Matrix)和偏置向量(Bias Vector)。
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-2.jpg?sign=1739498513-Tx5JpJIMGGcZYXOODOw7oMFZm6iKh8KL-0-a278a9289495263cabf7f3512ef2e73f)
以上分别是在第t次迭代时得到的平均权重矩阵梯度和平均偏置向量梯度,这些是使用Mb个训练样本得到的,ε是学习率,∇xJ是J相对x的梯度。
顶层权重矩阵相对于训练准则的梯度取决于训练准则。对于回归问题,当MSE训练准则(公式(4.9))和线性输出层(公式(4.5))被使用时,输出层权重矩阵的梯度是
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-3.jpg?sign=1739498513-Q6W2GHIKRJ2XQmfL1WDXMLksbTCnkgd2-0-f72e3bb76965add734a8c40a831e3fd6)
我们定义输出层的误差信号为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-4.jpg?sign=1739498513-i0vuPOPCiwnvexkotCwDFiI6VDT8IV9w-0-09faf1930c9fcff1b26344ff2629d53b)
类似地,
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-5.jpg?sign=1739498513-MV2v54j9EaBqD1sZfDKqam2qZiVnLSMd-0-2d5a2f3a71ede96ebd6356d15452192d)
对于分类任务,CE训练准则(公式(4.11))和softmax输出层(公式(4.6))被使用,输出层权重矩阵的梯度为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-1.jpg?sign=1739498513-choQ7aoQONbc5fJPXE69gCfbkUT9VsXP-0-3dc862d33153ab6df41a1d96a6064cf2)
类似地,我们定义输出层的误差信号为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-2.jpg?sign=1739498513-cL2w1IU6HlLPOBfet1HneUxZGVW2ZM1r-0-cc0360185aefa1678087ca1f9f0bf5fe)
类似地,
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-3.jpg?sign=1739498513-1ULlcxu8gx1A2wthvuNlyMgXWgJBNs5I-0-176199cb7f6f15331a54f7212e58ef81)
注意,(公式(4.21))看上去与
(W, b; o, y)有相同的形式(公式(4.18))。不过,因为做回归时
,而做分类时
,所以它们其实是不同的。
对于0<ℓ<L,则有
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-084-1.jpg?sign=1739498513-5N6EP4lIec9O2nGDjYODKfM4FvtPz3B5-0-ce99799d83eccee79c4f0d21c2ae9c86)
其中,是层ℓ的误差信号,•是元素级相乘,diag(x)是一个对角线为x的方矩形,
是激活函数的元素级导数。对于sigmoid激活函数来说,则有
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-084-4.jpg?sign=1739498513-6LotIFMqXqQClNq7YUpP8JSTxADslwNE-0-2c673dc84236e1393981a136c076ce0b)
类似地,tanh激活函数的导数为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-084-5.jpg?sign=1739498513-aLc8LR9QJLwkHq8ZE8DAY5haReHEB3TB-0-8434b45ee6e50f49ecf94f9b8656ad25)
其中,每个元素的符号函数。误差信号能从顶层向下反向传播
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-085-2.jpg?sign=1739498513-jEjpAhjXGsRZl72OgyciLXZHxMYRsVGH-0-af1aa491ee91bc3600990084ab4a086c)
对于ℓ<L,则有
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-085-3.jpg?sign=1739498513-F6B8f8d2GaHP0n00SHShE3HfXj6hZJvE-0-41e311c7a28c99c7d1194e91effb6dc1)
反向传播算法的关键步骤在算法4.2中进行了总结。