- 人工智能:语音识别理解与实践
- 俞栋等
- 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=1739617567-HEha3NXqPupP2ZZyLCCAQCEJCoVMdUTR-0-0b31b33eb97c7dd4b78681f937d38649)
其中,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=1739617567-fjrJvWNOOA56tx7zbDgvJs1lKaRI0e4h-0-721f6f0a1c42c4d8415917c786e8a623)
经常被使用,其中
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-080-5.jpg?sign=1739617567-zBGZOgFNHBVv2oyo6yUT9jyrBHMk60Z3-0-5cc9bdd75874a8c5a8c0709bd2b7c6fc)
对分类任务,设y是一个概率分布,那么交叉熵(Cross Entropy,CE)准则
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-1.jpg?sign=1739617567-HzIJ2sGhqHEanYwfRpDH6C4aRDB3dzzy-0-80da098e2f4b85bf8a7713c8fc33df98)
经常被使用,其中
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-2.jpg?sign=1739617567-iFfyWRewgehGEukkI7dzRB2mkUj2Fr18-0-ebc6fa8ea327aec3800fdad4ff7f00ce)
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=1739617567-DlWR7Z540UsLGKFUztmb5tDKdQIWkjRa-0-bc50e3f65d27d9c9de362bfcb17828a8)
是指示函数,c是训练集对于观察o的标注类别。在大部分情况下,公式(4.11)下的CE准则退化为负的对数似然准则(Negative Log-likelihood,NLL)
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-6.jpg?sign=1739617567-qTA2ajU6Q83gDEmo0GpsqTcmPDnjOtDW-0-964cefcebf9fd7c3029171e4a524495e)
4.2.2 训练算法
给定训练准则,模型参数{W, b}可以使用著名的误差反向传播(Backpropagation,BP)算法[47]来学习,可以使用链式法则来推导。[2]
在其最简单的形式下,模型参数使用一阶导数信息按照如下公式来优化:
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-081-7.jpg?sign=1739617567-hbQcCyOBOUcvwVJE1YTXyTtAdHemt81L-0-50fc1fea34959d93788721c8949b2856)
其中,分别是在第t次迭代更新之后ℓ层的权重矩阵(Weight Matrix)和偏置向量(Bias Vector)。
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-2.jpg?sign=1739617567-FKmIR2DFXsqpmtHY1TUshnvBM2PM0EvS-0-16b7768b7873aa617a056fe5969bf173)
以上分别是在第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=1739617567-3C576vFwKu8vS9zvV7gMl1sAgdFQdGrG-0-91f1ca1d34afa765f010ca5373d97945)
我们定义输出层的误差信号为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-4.jpg?sign=1739617567-WjiDsY7YWYpA1zG8mI0LShICRFvptmxY-0-07395e04aeec39b8d31070256c875b6f)
类似地,
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-082-5.jpg?sign=1739617567-BSVGHjY2Fm8nXlhzpLZ00jGry0oGc4u4-0-bb4293f51ff087272b9d042ae5e447fa)
对于分类任务,CE训练准则(公式(4.11))和softmax输出层(公式(4.6))被使用,输出层权重矩阵的梯度为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-1.jpg?sign=1739617567-1LrS1XWLeiVTxwgf15ArgiyPNm10rRop-0-764eccd5a73117328322a8a9cfa0a26e)
类似地,我们定义输出层的误差信号为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-2.jpg?sign=1739617567-MXSTdEWaHKDbGsFhiB0kLVqecJpj0dBt-0-efc31cd320721acf13b6b0030ca6672e)
类似地,
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-083-3.jpg?sign=1739617567-4Z2xe2NSr7Jn5nkMuFuoAU9tTz0LDJIi-0-38e0caaf77c0a8b8e57235cb7a93851a)
注意,(公式(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=1739617567-8f9MvBudBuh9chHiJ0kiRHrDDdoQENd7-0-57c0158aaf0e9d1104c05802030f70ce)
其中,是层ℓ的误差信号,•是元素级相乘,diag(x)是一个对角线为x的方矩形,
是激活函数的元素级导数。对于sigmoid激活函数来说,则有
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-084-4.jpg?sign=1739617567-qWHxhtfaoBTZNRaK3zrGF10lyBwn0UId-0-9dd382a95e695669b1afdd331d833a77)
类似地,tanh激活函数的导数为
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-084-5.jpg?sign=1739617567-dv8byVCkbzjsYp5AYRDHDjSzNNukgdnZ-0-aa5fc77737935f7a4361a157fe04d539)
其中,每个元素的符号函数。误差信号能从顶层向下反向传播
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-085-2.jpg?sign=1739617567-RJkfvhd58DmsyN5kPI86cENFLhr92q20-0-e6663a1de12ec93eb3cc4fa9fc0a5e8c)
对于ℓ<L,则有
![](https://epubservercos.yuewen.com/98014D/18685354608165306/epubprivate/OEBPS/Images/38143-00-085-3.jpg?sign=1739617567-vOkwr8p5v5oDRYF6Wwe2G7cvhoVDUs8l-0-cc4bbaca848bb5db4992a5c00a6fd615)
反向传播算法的关键步骤在算法4.2中进行了总结。