深度自編碼器神經(jīng)網(wǎng)也是一種無(wú)監(jiān)督模型,其輸出向量與輸入向量同維,訓(xùn)練的目標(biāo)是使其目標(biāo)值等于輸入值,即嘗試逼近一個(gè)恒等函數(shù)。這樣就可以將其隱層激活值看作為對(duì)原始數(shù)據(jù)的壓縮表示或有效編碼。通常也采用逐層貪婪訓(xùn)練法來(lái)訓(xùn)練深度自編碼器神經(jīng)網(wǎng)。每次采用基于隨機(jī)梯度下降的BP算法來(lái)訓(xùn)練僅一個(gè)隱層的自編碼器神經(jīng)網(wǎng),然后將其堆疊在一起構(gòu)成深度網(wǎng)絡(luò)。這樣的深度自編碼器網(wǎng)絡(luò)也被稱為棧式自編碼器神經(jīng)網(wǎng)絡(luò)。其訓(xùn)練過(guò)程如下:先利用原始輸入數(shù)據(jù)訓(xùn)練一個(gè)單隱層自編碼器網(wǎng)絡(luò),學(xué)習(xí)其權(quán)重參數(shù),從而得到第一個(gè)隱層。然后將其隱層神經(jīng)元激活值組成的向量作為輸入,繼續(xù)訓(xùn)練一個(gè)新的單隱層自編碼器網(wǎng)絡(luò),從而得到第二個(gè)隱層及其權(quán)重參數(shù),以此類推。同樣,最后增加一個(gè)Softmax層作為輸出。這樣也能構(gòu)成一個(gè)自下而上的前饋深層且具有區(qū)分性的DNN,并能得到其網(wǎng)絡(luò)參數(shù)的一個(gè)有效初值,可以對(duì)其進(jìn)行進(jìn)一步的基于BP算法的有監(jiān)督精調(diào)訓(xùn)練。
DNN-HMM
對(duì)DNN首先進(jìn)行無(wú)監(jiān)督的預(yù)訓(xùn)練,然后進(jìn)行有監(jiān)督的調(diào)整是DNN-HMM聲學(xué)模型能夠成功應(yīng)用于語(yǔ)音識(shí)別任務(wù),并在性能上超越GMM-HMM的主要原因之一。無(wú)監(jiān)督預(yù)訓(xùn)練避免了有監(jiān)督訓(xùn)練時(shí)常常過(guò)擬合于泛化能力很差的局部極值點(diǎn)的問(wèn)題,而逐層的貪婪訓(xùn)練彌補(bǔ)了梯度消失問(wèn)題帶來(lái)的影響。然而深度學(xué)習(xí)技術(shù)發(fā)展迅猛,從近年的研究進(jìn)展看,預(yù)訓(xùn)練的重要性日益降低:① 使用海量數(shù)據(jù)進(jìn)行訓(xùn)練能有效避免過(guò)擬合問(wèn)題,Dropout等隨機(jī)優(yōu)化算法的出現(xiàn),也極大提高了DNN模型的泛化能力;② 采用整流線性單元(Rectified Linear Units, ReLU)作為激活函數(shù),以及采用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN),這種深度網(wǎng)絡(luò)結(jié)構(gòu)也成功的減小了梯度消失問(wèn)題的影響。下面將簡(jiǎn)短介紹一下ReLU和CNN。
ReLU
相關(guān)的研究表明,采用基于ReLU激活函數(shù)的DNN與基于Sigmoid激活函數(shù)的DNN相比,不僅可以獲得更好的性能,而且不需要進(jìn)行預(yù)訓(xùn)練,可以直接采用隨機(jī)初始化。其函數(shù)表達(dá)式如下:
CNN
近年的研究顯示,基于CNN的語(yǔ)音聲學(xué)模型與傳統(tǒng)DNN的模型相比,可以獲得更好的性能,究其原因在于:① CNN具有局部連接和權(quán)重共享的特點(diǎn),以及很好的平移不變性。因而將卷積神經(jīng)網(wǎng)絡(luò)的思想應(yīng)用到語(yǔ)音識(shí)別的聲學(xué)建模中,就可以利用卷積的不變性來(lái)克服語(yǔ)音信號(hào)本身的多樣性,如說(shuō)話人的多樣性(說(shuō)話人自身及說(shuō)話人間)、環(huán)境的多樣性等,從而增強(qiáng)聲學(xué)模型的頑健性。② CNN也是一個(gè)更適合對(duì)大數(shù)據(jù)進(jìn)行建模的深度網(wǎng)絡(luò)結(jié)構(gòu),尤其是近幾年來(lái),以ResNet和Highway網(wǎng)絡(luò)為代表的深度CNN的研究工作,對(duì)語(yǔ)音識(shí)別的研究起到了很好的促進(jìn)作用。
CNN是一種經(jīng)典的前饋神經(jīng)網(wǎng)絡(luò),是受生物學(xué)上感受野機(jī)制啟發(fā)而來(lái)。它本質(zhì)上是一種基于有監(jiān)督學(xué)習(xí)的數(shù)學(xué)模型,由多個(gè)卷積層和池化層交替出現(xiàn)構(gòu)成整個(gè)網(wǎng)絡(luò)的前端,用于特征提取和表示,在后端由多個(gè)全連接層用于對(duì)提取到的局部特征進(jìn)行全局上的整合與變換。網(wǎng)絡(luò)的最終輸出會(huì)根據(jù)任務(wù)的不同而動(dòng)態(tài)調(diào)整。與傳統(tǒng)的DNN網(wǎng)絡(luò)結(jié)構(gòu)相比,CNN能夠從大量的訓(xùn)練數(shù)據(jù)中提取有效且泛化能力強(qiáng)的特征,因而非常適合于分類任務(wù)。
一個(gè)典型的CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖所示,其中卷積層是整個(gè)網(wǎng)絡(luò)最為核心的部分,它通過(guò)卷積核對(duì)輸入進(jìn)行卷積操作以獲取輸出。這里可以將卷積操作理解為線性加權(quán)運(yùn)算,卷積層的輸出稱之為特征圖。一般會(huì)采用多個(gè)卷積核來(lái)學(xué)習(xí)不同層次的特征,這樣便會(huì)得到多個(gè)樂(lè)器特征圖。不同于全連接網(wǎng)絡(luò),卷積層的卷積核只會(huì)與輸入中的某些局部區(qū)域相連接,這樣不僅能有效降低網(wǎng)絡(luò)的連接數(shù)量,而且也可以獲取豐富的局部結(jié)構(gòu)化特征。此外,對(duì)于同一層之間相同的卷積核會(huì)共享參數(shù),進(jìn)一步降低了需要訓(xùn)練的網(wǎng)絡(luò)參數(shù)的規(guī)模。在卷積層,特征圖也要通過(guò)激活函數(shù)進(jìn)行非線性處理,在CNN中一般也采用ReLU作為激活函數(shù)。
池化層
池化層又稱為下采樣層,它主要對(duì)上一層得到的特征圖進(jìn)行壓縮。在實(shí)際應(yīng)用中以最大池化(Max-Pooling)和均勻池化(Average-Pooling)最為常見(jiàn)。最大池化會(huì)對(duì)池化域內(nèi)的特征點(diǎn)取最大值,而均勻池化則對(duì)池化域內(nèi)的特征點(diǎn)取平均值。池化操作不僅能顯著壓縮數(shù)據(jù)規(guī)模,減少訓(xùn)練參數(shù),更重要的是它能使網(wǎng)絡(luò)獲得某種不變性,以增強(qiáng)自身的頑健性。就語(yǔ)音識(shí)別而言,它能夠使識(shí)別系統(tǒng)對(duì)因噪聲帶來(lái)的頻率偏移,以及不同說(shuō)話方式帶來(lái)的平移有一定的容錯(cuò)能力。
全連接層
全連接層就是普通的前饋網(wǎng)。CNN在完成卷積或者池化后一般需要接入全連接層,但在此之前需要完成光柵化操作。所謂光柵化是指將最后輸出的特征圖依次展開,重新構(gòu)造成一個(gè)特征向量。全連接層能夠?qū)⒕矸e和池化操作后提取到的局部特征在更高的維度上進(jìn)行全局的信息整合。
CNN也是一種前饋神經(jīng)網(wǎng)絡(luò),它的訓(xùn)練算法也是基于鏈?zhǔn)椒▌t求梯度,然后用隨機(jī)梯度下降方法求優(yōu)。計(jì)算梯度的過(guò)程與傳統(tǒng)的BP算法十分類似,即首先前向計(jì)算誤差項(xiàng),然后再進(jìn)行誤差的反向傳播。只不過(guò)由于池化層通過(guò)下采樣操作對(duì)輸入數(shù)據(jù)進(jìn)行了壓縮,這就需要在誤差的反向傳播過(guò)程中,采用上采樣函數(shù)將誤差矩陣還原至壓縮之前,并重新對(duì)誤差進(jìn)行分配。
總結(jié)
這是關(guān)于深度學(xué)習(xí)在語(yǔ)音識(shí)別領(lǐng)域中的一個(gè)經(jīng)典模型的介紹,這些內(nèi)容也是《語(yǔ)音信號(hào)處理(第3版)》的部分內(nèi)容,一直以來(lái)語(yǔ)音交互被認(rèn)為是人工智能的基石,具有廣大的發(fā)展空間,如果你對(duì)語(yǔ)音這一AI領(lǐng)域存在興趣,強(qiáng)烈推薦本書,書中全面論述語(yǔ)音信號(hào)的生成、處理、壓縮、傳輸、合成、識(shí)別與理解!
聯(lián)系客服