國立臺灣大學電機資訊學院電信工程學研究所 碩士論文
Graduate Institute of Communication Engineering College of Electrical Enginnering and Computer Science
National Taiwan University Master Thesis
以深層與卷積類神經網路建構聲學模型之大字彙連續 語音辨識
Deep and Convolutional Neural Networks for Acoutic Modeling in Large Vocabulary Continuous Speech
Recognition 周伯威 Po-Wei Chou
指導教授:李琳山 教授 Advisor: Lin-Shan Lee, Ph.D.
中華民國一百零四年二月
Feb, 2015
國立臺灣大學碩士學位論文 口試委員會審定書
以深層與卷積類神經網路建構聲學模型之大字彙 連續語音辨識
Deep and Convolutional Neural Networks for Acoutic Modeling in Large Vocabulary Continuous
Speech Recognition
本論文係周伯威君 (R01942135) 在國立臺灣大學電信工 程 學研究所完成之碩士學位論文,於民國 104 年 2 月 2 日 承 下列考試委員審查通過及口試及格,特此證明
口試委員:
(簽 名) ( 指導教授)
系主任、所長 (簽 名)
摘要
在語音辨識中,以深層類神經網路 (deep neural network, DNN) 取代傳統的高 斯混合模型 (Gaussian mixture model, GMM) 來建構聲學模型 (acoustic model, AM) 的作法,因其優異的表現已逐漸成為主流。在本論文中,我們以深層類神經網 路及卷積類神經網路 (convolutional neural network, CNN) 來產生隱藏式馬可夫模型 (hidden Markov model, HMM) 所需的狀態 (state) 機率,發展出大字彙連續語音辨 識 (large-vocabulary continuous speech recognition, LVCSR)中的聲學模型,在英文 的評效語料 (benchmark corpus) 上進行了一系列的實驗。實驗結果顯示不論是深層 類神經網路還是卷積類神經網路,其辨識準確率均能大幅地超越傳統基於高斯混 合模型的作法,而其中又以深層類神經網路的表現最為出色。
由於不同語者的語音永遠是不一樣的,本文也探討了如何在深層類神經網路 的聲學模型架構上,執行語者調適 (speaker adaptation) 以解決受測目標語者 (target speaker) 的語音與訓練語料 (training corpus) 之間不匹配 (mismatch) 的問題。透過 對特徵空間上鑑別式線性迴歸 (feature-space discriminative linear regression, fDLR) 的改進,我們提出了一套將隱藏式馬可夫模型的狀態分群 (state-clustered) 的作 法,更精細地考慮隱藏式馬可夫模型中各狀態不同的聲學結構,分群進行調適,
並透過兩階段的方式進行辨識,提升目標語者的辨識準確度。在一系列的以 Facebook個人動態 (status) 錄製而成的中英雙語 (bilingual) 語料的實驗中,可以發 現不論是少量或是大量的調適語料,運用此方法建立的個人化 (personalized) 聲學 模型皆能有相當良好的表現。
此外,我們也實作了一套透過圖形處理器 (graphics processing unit, GPU) 加速 的深層類神經網路函式庫。文中除了介紹基本的使用說明以外,也詳細地記載了 該程式的軟體架構與設計原理,並探討了圖形處理器上幾個重要的實作細節。
Contents
口試委員會審定書 . . . i
中文摘要 . . . ii
一、導論 . . . 1
1.1 研究背景與動機 . . . 1
1.2 研究方向與貢獻 . . . 3
1.3 章節安排 . . . 4
二、背景知識 . . . 5
2.1 自動語音辨識 . . . 5
2.1.1 聲學模型 . . . 5
2.1.2 辭典 . . . 9
2.1.3 語言模型 . . . 9
2.2 類神經網路 . . . 10
2.2.1 順向傳遞式類神經網路 . . . 10
2.2.2 訓練類神經網路 . . . 12
2.3 類神經網路之正規化 . . . 14
2.3.1 一次與二次正規化 . . . 14
2.3.2 丟棄法 . . . 15
2.4 本章總結 . . . 16
三、深層類神經網路聲學模型 . . . 17
3.1 以深層類神經網路取代高斯混合模型作為聲學模型 . . . 17
3.1.1 反向傳播演算法 . . . 20
3.2 實驗與分析 . . . 21
3.2.1 實驗設定 . . . 23
3.2.2 實驗結果與分析 . . . 25
3.3 本章總結 . . . 26
四、卷積類神經網路聲學模型 . . . 27
4.1 卷積類神經網路 . . . 27
4.1.1 簡介 . . . 27
4.1.2 卷積層 (Convolutional Layer) . . . 27
4.1.3 減縮取樣層 (Subsampling Layer) . . . 30
4.1.4 反向傳播演算法 . . . 30
4.2 實驗與分析 . . . 32
4.2.1 實驗設定 . . . 32
4.2.2 實驗結果與分析 . . . 35
4.3 本章總結 . . . 36
五、深層類神經網路之語者調適 . . . 37
5.1 簡介 . . . 37
5.2 基於奇異值分解的語者調適 . . . 38
5.3 特徵空間上鑑別式線性迴歸 . . . 39
5.4 基於狀態分群的特徵空間上鑑別式線性迴歸 . . . 41
5.4.1 隱藏式馬可夫模型之狀態分群 . . . 41
5.4.2 兩階段式解碼 . . . 43
5.5 實驗與分析 . . . 45
5.5.1 實驗設定 . . . 45
5.5.2 基準實驗 . . . 46
5.5.3 實驗結果與分析 . . . 46
5.6 本章總結 . . . 49
六、深層類神經網路函式庫與工具 . . . 50
6.1 簡介 . . . 50
6.2 基礎用法 . . . 50
6.2.1 初始化類神經網路模型 . . . 50
6.2.2 利用資料訓練類神經網路模型 . . . 53
6.2.3 透過訓練後的類神經網路對資料進行預測 . . . 54
6.3 程式碼架構 . . . 54
6.3.1 記憶體佈局 . . . 55
6.3.2 性能調校與優化 . . . 57
6.4 本章總結 . . . 58
七、結論與展望 . . . 59
7.1 總結 . . . 59
7.2 未來展望 . . . 60
參考文獻 . . . 62
附錄 . . . 71
圖
圖圖目目目錄錄錄
2.1 大字彙連續語音辨識系統之流程圖。圖中藍色的部份屬於聲學模
型,橘色的部份屬於語言模型。 . . . 6
2.2 隱藏式馬可夫模型示意圖。 . . . 7
2.3 類神經網路示意圖 . . . 11
2.4 感知器示意圖 . . . 12
2.5 反向傳播演算法分別在 (a) 沒有慣量 (b) 有慣量 時的模型參數更新 路徑示意圖。 [1] . . . 14
2.6 丟棄法正規化。左圖是標準的類神經網路模型,共有兩層隱藏層。 右圖則是使用了丟棄法的類神經網路模型,以 × 代表暫時被丟棄 的神經元。 . . . 15
3.1 反向傳播演算法示意圖。虛線框是一個抽象的介面,框內代表一個 特徵轉換。以箭頭的方向代表系統的輸入與輸出,藍色的箭頭是順 向傳遞的路徑,紅色的箭頭則是反向傳播的路徑。 . . . 20
3.2 使用反向傳播演算法訓練深層類神經網路之示意圖。 圖中的矩陣 與向量是由很多小方塊所組成,每個小方塊代表一個值。 深藍色 的虛線框代表平滑最大值活化函數。 橘紅色和灰色方塊分別代表 模型預測的結果與我們期望模型輸出的結果,以轉置向量 oT 、 tT 表示。 粉紅色的箭頭代表反向傳播演算法的傳播路徑。 橘紅色 的箭頭代表模型參數 W 是透過式 2.11b 所描述的方式(梯度下降 法)進行更新。 . . . 22
4.1 卷積類神經網路中,卷積運算的示意圖。 . . . 28
4.2 卷積類神經網路的示意圖 [2] 。 . . . 29
4.3 在反向傳播演算法中,以式 4.8 對後級錯誤訊號 ∂E ∂Yj 進行反向卷積 運算,求得前級的錯誤訊號 ∂E ∂Xi 的示意圖。圖中 ∂E ∂Yj 周圍的灰色 區塊代表補 0 的部份。 . . . 32
4.4 各種不同的卷積類神經網路架構圖。橫軸代表時間,綜軸代表頻率 (梅爾濾波器組)。 . . . 34
5.1 特徵空間上鑑別式線性迴歸之示意圖 . . . 40
5.2 狀態分群之示意圖 . . . 42
5.3 兩階段式解碼 . . . 43
5.4 做在 10 句朗讀式語音的基礎實驗。當群聚數量 K 分別為 4, 8, 16, 32 時,未經線性內插(見式 5.9 )的特徵空間上的鑑別式線性回歸 與「語者不特定模型」、「傳統的特徵空間上的鑑別式線性回歸」
及「基於奇異值分解的語者調適」的辨識準確率比較圖。 . . . 47
5.5 在式 5.10 中,不同線性內插係數 r 對辨識錯誤率的影響。 . . . 47
5.6 本論文所提出的「基於狀態分群的特徵空間上的鑑別式線性回 歸」、「共享的特徵空間上的鑑別式線性回歸」和「基於奇異值分 解語者調適」在朗讀式語音上的平均錯誤率之比較。 . . . 48
5.7 本論文所提出的「基於狀態分群的特徵空間上的鑑別式線性回 歸」、「共享的特徵空間上的鑑別式線性回歸」和「基於奇異值分 解語者調適」在自發性語音上的平均錯誤率之比較。 . . . 48
6.1 以行為主的記憶體佈局。橫向第一列代表第一維,第二列代表第二 維,以此類推。縱向的一行代表一筆筆的資料。 . . . 55
6.2 深層卷積類神經網路中的記憶體佈局。 . . . 56
7.1 S型函數(藍色線)及其微分函數(紅色線) . . . 75
7.2 雙曲正切函數(藍色線)及其微分函數(紅色線) . . . 76
7.3 整流線性單元(藍色線)及其微分函數(紅色線) . . . 76
7.4 平滑加法(藍色線)及其微分函數(紅色線) . . . 77
表
表表目目目錄錄錄
3.1 語料時間長度與句數 . . . 23 3.2 在 TIMIT 核心測試語料上的辨識結果。以音素錯誤率作為衡量標
準。 . . . 25 3.3 使用丟棄法正規化進行深層類神經網路訓練,在 TIMIT 核心測試
語料上的辨識結果。以音素錯誤率作為衡量標準。 . . . 25 4.1 四種卷積類神經網路系統在 TIMIT 核心測試語料上的辨識結果,
以音素錯誤率作為衡量標準。此外,我們也放入了第三章中使用丟 棄法的深層類神經網路的辨識結果,一併進行比較。 . . . 34 6.1 使用 nn-init 初始化類神經網路模型架構時,參數 --struct
的使用方式與說明。 . . . 52 7.1 TIMIT 語料中各方言之男女語者人數及比例分佈 . . . 80
第 第
第 一一一 章章章 導導導論論論
1.1 研 研 研究 究 究背 背 背景 景 景 與 與 與動 動 動機 機 機
近年來由於網路產業的蓬勃發展,使得網路上可供瀏覽的多媒體內容如線上課 程、影片等大幅地增加;而軟硬體科技的突飛猛進,也使得更快更小的智慧型手 機與穿戴型裝置,能夠迅速地普及於人們的日常生活之中,並取代傳統的個人電 腦,成為人們透過網路存取這些多媒體內容不可或缺的管道之一。此外,隨著科 技不斷地進步,漸臻成熟的語音技術已經達到了一般大眾願意接受並使用的程 度,許多基於多媒體內容的應用及行動裝置上的語音服務也因此孕育而生。不 論是 Apple前幾年所提出的個人語音助理 Siri ,讓使用者能夠透過自然的對話方 式,搜尋網路上的各種資訊、查詢天氣或是設定鬧鈴及個人行程等,還是 Google 的語音地圖檢索及 Google Now 問答系統 (question answering system) 、 Facebook 的語音輔助輸入通訊軟體、以及線上影片的自動語音轉寫字幕等等,都大量地使 用到語音與語言處理的各項技術。
今日所提到的自動語音辨識 (automatic speech recognition, ASR) 大多是指大字 彙連續語音辨識 (large-vocabulary continuous speech recognition, LVCSR) ,也就是 本論文的主題。由於許多語音技術與相關的應用,都圍繞著大字彙語音辨識,
以其為基礎做進一步的延伸,也因此,大字彙連續語音辨識可以說是扮演了一 個相當重要的角色。這些相關應用包括了語音輸入 (speech input) 、自動語音轉寫 (automatic transcription)、語音文件摘要 (spoken document summarization) 、數位語 音內容檢索 (spoken content retrieval) 、口述語彙偵測 (spoken term detection) 、問 答系統 (question answering system) 、電腦輔助語言學習 (computer-assisted language learning)等等。因此,如何有效地提高大字彙連續語音辨識系統的準確率、改善
系統的效能,便是當前最熱門的主題之一。
早期 的 自 動語音辨識系統多半是透過隱藏式馬可夫模型 (hidden Markov model, HMM) [3] [4] [5] [6]以及高斯混合模型 (Gaussian mixture model, GMM) [7]
為聲學訊號建模而成;雖然早在九零年代時,就有學者成功地利用簡單的類神經 網路,搭配隱藏式馬可夫模型建立初步的聲學模型 [8] [9] 。然而受限於早年的時 空背景,軟體、硬體、及訓練語料等各項資源的不足,科學家遲遲無法在大量的 資料上,發展出效能足以大幅超越高斯混合模型的類神經網路聲學模型。
近年來,由於機器學習 (machine learning) 演算法 [10] 的大幅進展及電腦硬體 科技如分散式運算 (distributed computing) 與圖形處理器 (graphics processing unit, GPU) [11] 的普及,使得更深更寬的深層類神經網路 (deep neural networks, DNN)
,得以透過更有效率的方式進行訓練。有相當多的研究與實驗顯示,以深層類神 經網路建立聲學模型的大字彙連續語音辨識系統,在一系列語料庫上都能有大 幅超越傳統高斯混合模型的表現 [12] [13] [14] [15] 。 此外,由於卷積類神經網路 (convolutional neural network, CNN) [2]在影像辨識上優異的表現 [16] [17] [18] , 也開始有人將其用在自動語音辨識上,並取得了相當不錯的成績 [19] 。因此,
類神經網路聲學模型漸漸地受到重視且成為主流,而如何在這上面進行語者 調適 (speaker adaptation),解決受測目標語者 (target speaker) 與訓練語料 (training corpus)之間不匹配 (mismatch) 的問題,是其中一個相當值得研究的議題。
本論文便以此為出發點,詳細地探討深層類神經網路與卷積類神經網路是如 何取代傳統的高斯混合模型,在大字彙連續語音辨識系統中建立聲學模型,提升 系統的辨識率。同時,我們也實作了一整套的深層學習函式庫,並以此作為訓 練深層類神經網路與卷積類神經網路的工具,進行了一系列的實驗。 最後,我 們也根據特徵空間上鑑別式線性迴歸 (feature-space discriminative linear regression,
fDLR) [20],提出了一套在深層類神經網路上基於狀態分群的語者調適演算法,
改善目標語者的辨識率。
1.2 研 研 研究 究 究方 方 方向 向 向與 與 與貢 貢 貢獻 獻 獻
本論文的研究方向與貢獻,包含了以下幾點:
• 基於類神經網路的聲學模型 (Acoustic Modeling Based on Neural Networks) 從前後文相關深層類神經網路隱藏式馬可夫模型 (context-dependent deep neural network hidden Markov model, CD-DNN-HMM)出發,以實作的角度,
仔細地探討在大字彙連續語音辨識中,深層類神經網路與卷積類神經網路是 如何透過反向傳播演算法 [21] 進行訓練,並透過一系列的實驗、分析與討 論,比較了各種類神經網路架構的優劣及其對系統效能的影響。
• 深層類神經網路語者調適 (Speaker Adaptation on Deep Neural Networks) 本論文提出了一個改進傳統的特徵空間上鑑別式線性迴歸的語者調適作法。
我們透過 K 平均分群演算法 (k-means clustering) ,把那些在特徵空間上較 為相近的隱藏式馬可夫模型狀態分成一群,並以鑑別式訓練 (discriminative training) 的方式將原本相近的狀態拉開,達到提升目標語者辨識率的作用。
• 深層學習函式庫與工具 (Deep Learning Library and Toolkit)
本論文也詳細地記載了研究過程中所開發的深層學習函式庫的軟體架構、記 憶體使用與佈局 (memory usage and layout) 、類神經網路訓練過程中各步驟 的實作方式、還有在圖形處理器上進行平行運算時會遇到的各種問題、以及 相對應的解決方案和優化方式等。
1.3 章 章 章 節 節 節安 安 安排 排 排
本論文之章節安排如下:
• 第二章:介紹本論文相關背景知識。
• 第三章:介紹如何以深層類神經網路改善聲學模型。
• 第四章:介紹如何以卷積類神經網路改善聲學模型。
• 第五章:介紹如何在基於深層類神經網路的聲學模型上進行語者調適。
• 第六章:介紹深層類神經網路函式庫與實作。
• 第七章:本論文之結論與未來研究方向。
第
第第 二二二 章章章 背背背景景景知知知識識識
本章將回顧大字彙連續語音辨識中最基本的聲學模型,包括了如何透過隱藏式馬 可夫模型模擬不同語音特徵狀態之間的轉移機率與如何利用高斯混合模型描述聲 學特徵在向量空間上的分佈。 除此之外,我們也會介紹最基本的類神經網路模型 及其運作原理。
2.1 自 自 自動 動 動語 語 語 音 音 音辨 辨 辨識 識 識
圖 2.1 是大字彙連續語音辨識系統之流程圖。輸入的聲音訊號經過一連串的 前端訊號處理 (front-end signal processing) 後,便會通過圖中紅色區塊的解碼器
(decoder),利用預先建立好的聲學模型 (acoustic model) 、語言模型 (language model)、辭典 (lexicon) 以及搜尋演算法進行解碼,以取得最佳詞序列 (optimal word sequence) w∗ 作為最終的辨識結果。
w∗ = argmax
w
p(w|x) = argmax
w
p(x|w)p(w)
p(x) , (2.1)
其中 x 是經過前端訊號處理後的聲學特徵, p(w) 是語言模型機率、 p(x|w) 是聲 學模型機率。以下將會分別就聲學模型、語言模型以及辭典依序簡單地介紹。
2.1.1 聲 聲 聲學 學 學模 模 模型 型 型
音位 (phoneme) 是一個語言中能夠區別意義的最小單位,而音素 (phone) 則是人們 於說話時音位的發音呈現方式。由於說話時相同的音位可以有千變萬化的發音呈 現方式,因此在語音辨識系統中,如何透過模型描述這些千變萬化的發音,便是
圖 2.1: 大字彙連續語音辨識系統之流程圖。圖中藍色的部份屬於聲學模型,橘色 的部份屬於語言模型。
一個相當重要的問題,而常見的作法是透過隱藏式馬可夫模型及高斯混合模型來 描述。
隱 隱
隱藏藏藏式式式馬馬馬可可可夫夫夫模模模型型型
在隱藏式馬可夫模型中,除了有一組用來描述狀態與狀態間相互轉移的轉移機率 (transition probability),每一個狀態中也會用一組輸出機率 (output probabilities) 用 來描述可能的輸出結果。在語音辨識中,一個隱藏式馬可夫模型會有若干個不等 的狀態數,其中包含了至少兩個特殊的狀態:起始狀態 (initial state) 和中止狀態 (exit state),如圖 2.2 所示。 一般來說,隱藏式馬可夫模型中的一個狀態會對應到 聲音訊號中的一個音框 (frame) 。 因此,一組觀察到的聲學特徵向量序列對一個
圖 2.2: 隱藏式馬可夫模型示意圖。
隱藏式馬可夫模型 λ 的相似度 (likelihood) 可以表示成:
P (x|λ) =X
q
πq1p(x1|q1)
T
Y
t=2
aqt−1,qtp(xt|qt) (2.2)
其中 t 代表時間, x 是觀察到的聲學特徵向量序列,由 x1到 xT 共 T 個音框的特 徵向量所組成。q 是一個可能的狀態序列, qt是該狀態序列在時間 t 時的狀態索 引值 (state index) , πq1 是起始狀態為 q1 的機率,aqt−1,qt 是從狀態 qt−1 到狀態 qt
的轉移機率,而 P (xt|qt)則是給定一個狀態 qt,觀測到特徵向量 xt的機率,或稱 作特徵向量對於狀態的相似度,一般是透過高斯混合模型來描述。
高 高
高斯斯斯混混混合合合模模模型型型
給定一個隱藏式馬可夫模型中的狀態,假設觀察到的聲音訊號在特徵空間上的機 率分佈,可以由 K 個 N 維空間中的高斯分布 (Gaussian distribution) 所組成的高斯 混合模型 (Gaussian mixture model, GMM) 來描述,則特徵向量對於每一個狀態的
相似度可以表示為:
P (xt|q) =
K
X
k=1
wk
(2π)N/2|Σk|1/2
e
−12(xt−µk)TΣ−1k (xt−µk) (2.3) 其中 wk 、 µk、 Σk分別是第 k 個高斯混合 (Gaussian mixture) 的比重 (weighting)、平均向量 (mean vector) 及共變異矩陣 (covariance matrix) 。 常見的作法是透過
「期望值最大化演算法」 (Expectation-Maximization algorithm, EM algorithm) [22]
及迭代 (iterative) 的方式調整高斯混合模型的隱藏式馬可夫模型中的參數,最大化 語料與隱藏式馬可夫模型的相似度,以訓練出我們想要的聲學模型。
由於一個音素的發音,往往會受到前後音素的影響,現行的語音辨識系統 多半已不再使用傳統的單音素 (monophone) 聲學模型,改採用前後文相關音素 (context-depedent phone) 聲學模型,譬如說三連音 (triphone) 。 以中文為例,常見 的音素有 35 個,例如: CH b (ㄅ)、 CH p (ㄆ)、 CH m (ㄇ)等等。 在考 慮前後文音素的情況下,音素集合 (phone set) 的大小將會大幅擴展,理論上此集 合內可能存在的三連音數量,可達原本單音素數量的三次方之多。然而考慮到有 些三連音組合根本不存在或是無法發音,或是有些因為訓練語料太少訓練不起 來,實際的三連音數量大概在數千左右。 雖然考慮前後文音素的影響,可以更多 更細微的變化,但由於傳統上訓練資料的不足,當我們從單音素的音素集合,
拓展到前後文相關音素的音素集合時,龐大的分類目標將會導致訓練資料被過 度地分散,模型中的參數也會更加難以估計。 因此,常見的做法是透過決策樹 (decision tree) [23] 及狀態分享 (tied-state) [24] ,將語音特性相似的三連音以共享 參數的方式合併。
2.1.2 辭 辭 辭典 典 典
辭典 (lexicon) 或發音辭典是由語言學家所共同制定的、用以描述一個語言中各字 詞該如何發音的一套規則,例如教育部重編辭典修訂本 [25]。發音辭典中的每一 條規則都是一個字或詞的發音方式,以音素序列 (phone sequence) 的方式呈現。而 對於那些沒有出現在辭典內的辭典外字彙 (out-of-vocabulary, OOV) ,我們也可以 透過發音辭典內的規則,以及對訓練文字語料 (text corpus) 的分析,額外地為這些 辭典外字彙新增發音規則。在語音辨識的過程中,這些規範了語言中音素是否能 夠前後相接的規則,便會被用來建立辭典網路 (lexicon net) ,作為語音辨識中的解 碼演算法的搜尋依據。
2.1.3 語 語 語言 言 言模 模 模型 型 型
語言模型 (language model, LM) 是用來描述一個語言中各字詞出現的可能性的機率 模型。給定一個詞序列 w = (wt)Tt=1,語言模型的目標便是計算出該詞序列出現的 機率 p(w)
p(w) = p(w1, w2, · · · wn) (2.4a)
=
n
Y
i=1
p(wi|w1, w2, · · · wi−1) (2.4b)
其中 p(wi|w1, w2, · · · wi−1) 可以透過統計的方式,從訓練文字語料 (text corpora) 中 估計得出。然而上式這樣的作法,會使得我們無法從有限的訓練文字語料中精 確地估計出所有可能的機率 p(wi|w1, w2, · · · wi−1),因此常見的作法是使用 N 連
(N-gram) 語言模型。假設一個字或詞出現的機率只受到前 N 個字或詞的影響
p(wi|w1, w2, · · · wi−1) = p(wi|wi−N, wi−N +1, · · · wi−1), (2.5)
如此一來便可以將式 2.4b 中語言模型對於詞序列的機率估計 p(w) 簡化成以下的 形式,進而大幅減少我們需要估計的參數
p(w) = p(w1)p(w2|w1) · · ·
n
Y
i=N +1
p(wi|wi−1, wi−2, ...wi−N). (2.6)
除了 N 連語言模型以外,另一種常見的作法則是透過遞迴式類神經網路 (recurrent neural network, RNN) 來描述。 [26] [27]
2.2 類 類 類神 神 神經 經 經網 網 網路 路 路
類神經網路 (Neural Networks, NN) 是一種模仿生物神經網路的結構與功能的數學 模型。在本節中,我們將會詳細介紹類神經網路的數學模型及其運作原理。
2.2.1 順 順 順向 向 向傳 傳 傳遞 遞 遞式 式 式類 類 類神 神 神經 經 經網 網 網路 路 路
順向傳遞式類神經網路 (Feedforward Neural Network) 是眾多類神經網路 (Artificial Neural Network, ANN)中最簡單的一種,如圖 2.3 所示。這種類神經網路也因其層 狀的架構常被稱為多層感知器 (Multilayer Perceptron, MLP) ,其中的每一層都是由 相當多的感知器 (perceptron) 所組成。 一般來說,我們用「深度」 (depth) 代表多 層感知器的層數,用「寬度」 (width) 代表每一層中感知器的數量。一個多層感知 器中,至少包含了一個輸入層 (input layer) 、一個輸出層 (output layer) 、以及一至
圖 2.3: 類神經網路示意圖
多層的隱藏層 (hidden layer) 。
感知器是二元分類器 (binary classifier) 中的一種(見圖 2.4 ),它是由相當多 的神經元 (neuron) 所組成,我們可以將感知器輸入與輸出的關係表示如下
yj = φ
M
X
i=1
ajixi+ bj
!
, j = 1, 2, ...N (2.7)
其中 N 代表感知器的總數, M 代表輸入特徵向量 x 的維度, yj 代表第 j 個感知 器的輸出, aji 與 bj 分別是該感知器對應到 xi的加權係數 (weighting) 以及偏移量 (bias), φ 則是活化函數 (activiation function) ,例如邏輯函數 (logistic function) 或 雙曲正切函數 (hyperbolic tangent) 等(詳見附錄三) 。
我可以透過仿射轉換 (affine transformation) 的方式,用權重矩陣 A = {aji} 及 偏移向量 b = [b1, b2, ..., bN]T 來描述多層感知器中層與層之間的變換關係
y = φ (Ax + b) (2.8)
一般來說,我們會為 M 維的輸入特徵向量新增一個維度,並設 xM +1 = 1,
圖 2.4: 感知器示意圖
藉此將偏移量 bj 視為第 j 個感知器中對應到 xM +1的加權係數,並利用增廣矩陣 (augmented matrix) 的概念,把偏移量 b 放進矩陣乘法運算中,將式2.7 重寫成
y 1
= φ
A b
·
x 1
(2.9a)
= φ
W
x 1
, (2.9b)
2.2.2 訓 訓 訓練 練 練 類 類 類神 神 神經 經 經網 網 網路 路 路
假設一個多層感知器的輸出層寬度為 S ,並以向量 o 及 t 分別表示「模型的預測 結果」與「我們期望模型預測出的結果」,則平方差 (squared error) 損失函數 (loss function)定義為
E = 1 2
S
X
i=1
(oi− ti)2 (2.10a)
= 1
2(o − t)T(o − t) (2.10b)
有了損失函數後,我們便可以透過反向傳播演算法 [21] ,求得損失函數對類 神經網路模型中各項參數的偏微分,並透過梯度下降法 (gradient descent) 更新模 型內的參數,以降低損失函數的值,如下所示
θ(i + 1) = θ(i) + ∆θ(i) (2.11a)
∆θ(i) = − ·∂E
∂θ θ=θ(i)
(2.11b)
E(θ(i + 1)) ≤ E(θ(i)). (2.11c)
其中 θ 是類神經網路模型中所有可訓練參數的集合,包括了各層的權重矩陣 A 及 偏移向量 b 等; θ(i) 則是經過第 i 次迭代後的結果; 稱為學習率 (learning rate)
,其值大約在 0.001 到 0.1 不等 [28] 。 一般來說,我們會在滿足式 2.11c 的情況 下,傾向選擇一個較大的值,以加速類神經網路訓練的過程。 然而,要找出一個 最適的 (optimal) 學習率,使得類神經網路的訓練可以在最短的時間內完成,並 非一件容易的事。 太小學習率會導致損失函數下降緩慢;太大的學習率則會展 現出如圖 2.5a 中之字型 (zigzag) 般的更新路徑,過與不及都會導致類神經網路的 訓練時間增加。 因此,常見的作法是將式2.11b 中的 ∂E∂θ
θ=θ(i)視為物體速度,並
引入慣量 (momentum) [21] 的概念,讓每次更新的方向 ∆θ(i) 都是前次更新方向
∆θ(i − 1)和 ∂E∂θ
θ=θ(i) 的線性組合,以避免在相鄰幾次的迭代中 ∂E
∂θ 差異過大。 引入慣量後的梯度下降法可以寫成
∆θ(i) = α · ∆θ(i − 1) − ∂E
∂θ θ=θ(i)
(2.12)
其中 α 稱作慣量係數,通常在 0.5 至 0.9 之間。
圖 2.5: 反向傳播演算法分別在 (a) 沒有慣量 (b) 有慣量 時的模型參數更新路徑示意 圖。 [1]
2.3 類 類 類神 神 神經 經 經網 網 網路 路 路 之 之 之正 正 正規 規 規化 化 化
正因為類神經網路中有非常多的可訓練參數,其高複雜度的模型常被用在諸 多困難的工作上。 然而,這麼多的可訓練參數常常會導致模型出現過度貼合 (over-fitting) 的現象,使得該模型在新的測試資料中表現不盡理想。 因此,本節 將探討如何透過類神經網路的正規化,來避免此一現象的發生。
2.3.1 一 一 一次 次 次與 與 與二 二 二次 次 次正 正 正規 規 規化 化 化
一次與二次正規化 (L1 and L2 regularization) 是在原本的損失函數中, 加了一項 kθkp 以作為新的衡量標準,如下所示:
E(θ) ← E(θ) + λkθkpp (2.13a)
kθkp = X
θi∈θ
|θi|p
!1p
, p = 1, 2 (2.13b)
其中 kθkp 稱為 Lp 範數 (Lp norm), λ 則是一個介於 0 到 1 之間的係數。
圖 2.6: 丟棄法正規化。左圖是標準的類神經網路模型,共有兩層隱藏層。右圖則 是使用了丟棄法的類神經網路模型,以 × 代表暫時被丟棄的神經元。
當 p = 1 時,此種作法稱為一次正規化。它會使得模型參數 θ 中傾向出現較 多的 0 ,有助於減少模型參數的數量並減緩過度貼合現象的發生,故常稱為稀疏 解 (sparse solution) [29] [30] 。
當 p = 2 時,此種作法稱為二次正規化。對於模型 θ 中絕對值較大的參數,
它傾向於給予較多的懲罰,避免其中的 θi 跑到太大或太小的值,有助於減少模型 的複雜度 (model complexity) 以避免過度貼合現象的發生。由於類神經網路中,
θ 多半是層與層之間的權重矩陣 W ,故二次正規化也常被稱為權重衰減 (weight decay)。
2.3.2 丟 丟 丟棄 棄 棄法 法 法
另一種常見的作法是丟棄法 (dropout) [31] [32] 。 在類神經網路的訓練過程中,每 一次的順向傳遞都會隨機地關閉一部分的感知器,將其輸出值設為 0 ,並在進行 反向傳播演算法時,將錯誤訊號沿著相反的方向,順著當時未被關閉的感知器,
往回傳播以更新模型參數。這樣的作法等效上會使得這些未被關閉的感知器,在 每一次的迭代過程中,隨機地組出一個寬度較窄且與前次完全不同的類神經網路
架構(如圖 2.6 所示)。 假設一個類神經網路中共有 K 個感知器,由於每一個感 知器都有一定的機率會被關閉,因此所有可能出現的類神經網路架構便會高達 2K 種之多。 當類神經網路透過丟棄法完成訓練,面對新的測試資料進行預測時, 所 有感知器便會同時打開,此舉相當於同時使用了非常多的類神經網路模型進行預 測, 而這些模型平均 (model averaging) 起來的結果,便能夠有效地降低過度貼合 現象的發生 [33] [34] 。
2.4 本 本 本章 章 章總 總 總結 結 結
本章介紹了自動語音辨識的背景,包含了基礎的隱藏式馬可夫模型、高斯混合模 型、及語音辨識的基本概念。並介紹了基本的類神經網路模型,以及如何透過正 規化來避免過度貼合的現象發生。
第
第第 三三三 章章章 深深深層層層類類類神神神經經經網網網路路路聲聲聲學學學模模模型型型
本章將敘述如何在大字彙連續語音辨識中,利用深層類神經網路取代傳統的高斯 混合模型作為聲學模型,並透過一系列的實驗,探討不同的聲學特徵對辨識效能 的影響。
3.1 以 以 以深 深 深層 層 層 類 類 類神 神 神經 經 經網 網 網路 路 路取 取 取代 代 代高 高 高斯 斯 斯混 混 混合 合 合模 模 模型 型 型作 作 作為 為 為聲 聲 聲學 學 學模 模 模 型
型 型
一般來說,深層類神經網路 (deep neural network, DNN) 是指具有一層以上隱藏層 的多層感知器。近年來,由於深層類神經網路在諸多領域上的優異表現,以其作 為聲學模型的研究也越來越多。其中最主流的作法是在不改動以隱藏式馬可夫模 型為架構的情況下,透過貝式定理 (Bayes’s theorem) ,將高斯混合模型取代成深 層類神經網路,作為隱藏式馬可夫模型中用來描述可能的輸出結果之機率分佈。
在大字彙語音辨識尋找最佳的詞序列 w∗ 的解碼過程中 ( 見式 2.1 及 2.2 ) ,聲 學模型機率 p(x|w) 可以透過貝式定理,將本來透過高斯混合模型來描述的特徵向 量對於狀態的相似度 p(xt|qt)轉換成給定特徵向量的情況下,狀態的事後機率分 佈 (state posterior probability) p(qt|xt),如下所示
p(xt|qt) = p(qt|xt)p(xt)
p(qt) , (3.1)
其中 p(qt) 是狀態的事前機率 (prior probability) ,可以透過計算各個狀態在訓練資 料中出現的次數得出 [9] ,而 p(qt|xt)則可以透過深層類神經網路優異的多元分類 (multiclass classification) 能力估計得出。
研究顯示 [14] ,這樣的作法在前後文相關音素隱藏式馬可夫模型 (CD-HMM) 上的表現,遠遠超過其在單音素上的表現。 因此,一般的作法是先訓練一個基 於高斯混合模型的前後文相關音素隱藏式馬可夫模型 (CD-GMM-HMM) 做為基準 (baseline),並透過強制對齊 (force alignment) 的方式,將訓練語料中已經標記好 的音素序列 (phone sequence) 轉成經過狀態共享的三連音狀態序列 (state sequence) (qt)Tt=1,以此作為訓練深層類神經網路所需要的目標標記 (target label) 。
建構深層類神經網路聲學模型時,一般會選用處理多元分類問題時最常見的 平滑最大值 (softmax) 作為輸出層的活化函數
yi = exi
M
P
i=1
exi
, (3.2)
以其輸出值 yi 作為事後機率分佈 p(qt|xt),並使用衡量兩個機率分佈之間的差異 的交叉熵 (cross entropy) 作為損失函數
CE = −
M
X
i=1
di(t) · ln(p(qi|xt)), (3.3)
其中 di(t) 是 透 過前述狀態序列 (qt)Tt=1 產 生 的 目 標機率分佈 (target probability distribution),只有在被標記的狀態上才有值為 1 ,其餘狀態皆為 0
di(t) =
1, if i = qt
0, otherwise
(3.4)
搭配平滑最大化函數的交叉熵損失函數相較於使用邏輯函數的最小平方差損 失函數,有以下幾個優點及原因。首先,平滑最大值活化函數不但可以保證輸
出結果 yi 為一個機率分佈,它本身也可以視為邏輯迴歸 (logistic regression) 從二 元結果 (outcome) 推廣到多元結果的一般化形式。其次,由於輸出結果與目標都 是機率分佈,以交叉熵的形式衡量兩者之間的差異相較於使用最小平方差的作 法,明顯較為合理且具有意義。此外,由於目標機率分佈只有在被標記的狀態 上才有非零值 1 ,因此使用交叉熵當作損失函數的作法便相當於最大相似度估計 (maximum likelihood estimation, MLE)。最後,這種作法也可以避免深層神經網路 中最後一層隱藏層與輸出層之間的權重矩陣,在透過反向傳播演算法進行更新 時,因為邏輯函數的偏微分值在零點兩側過小,導致學習速率緩慢的狀況的發 生。
有了損失函數後,便可以透過反向傳播演算法,對深層類神經網路進行訓 練。 有時候也會利用訓練完的深層類神經網路,重新對音素序列進行強制對齊,
以求得更好的狀態序列作為訓練目標,進行第二輪的深層類神經網路訓練。上 述這一整套的作法,通常被稱作前後文相關深層類神經網路隱藏式馬可夫模型 (CD-DNN-HMM)。
傳統上我們為了簡化「期望值最大化演算法」中的運算,會假設輸入特 徵向量 xt中的各個維度均互相獨立 (independent) ,以便將高斯混合模型中的 共變異矩陣簡化成對角線 (diagonal) 矩陣。然而深層類神經網路卻不受此一限 制,這使得我們得以選用各式各樣的特徵向量當作深層類神經網路的輸入,
例如串接 (concatenate) 前後各 L 個與 R 個音框的梅爾倒頻譜係數 (mel-frequency cepstral coefficient, MFCC),或是串接其他語音特徵如音高 (pitch) 或是身份向量 (i-vector) [35] 的輸入特徵向量等。
圖 3.1: 反向傳播演算法示意圖。虛線框是一個抽象的介面,框內代表一個特徵轉 換。以箭頭的方向代表系統的輸入與輸出,藍色的箭頭是順向傳遞的路徑,紅色 的箭頭則是反向傳播的路徑。
3.1.1 反 反 反向 向 向傳 傳 傳播 播 播 演 演 演算 算 算法 法 法
在訓練深層類神經網路時,由於層數比起傳統的多層感知器來得要多,因此我們 需要一套有系統的方式逐步求出 ∂E
∂θ 。
首先,我們定義了一個抽象的介面,如圖 3.1 所示。 虛線框內代表一個將特 徵向量 x ∈ RM 轉換成 y ∈ RN 的特徵轉換 f(θ): RM → RN ,其中 θ 是特徵轉換 內的模型參數。 這樣的一個特徵轉換可以是前述 2.2.1 小節中的仿射轉換,也可 以是活化函數如邏輯函數或平滑最大值等。
接著引進兩個很重要的中間變數:前級錯誤訊號 ∂E
∂x 與後級錯誤訊號 ∂E
∂y 。 可以從圖 3.1 中清楚得看到,通過虛線框所定義的介面的箭頭中, x 及 ∂E
∂y 是唯 二的輸入。 換言之,我們可以將 ∂E
∂x 及 ∂E
∂θ 寫成完全由 θ 、 x 、及 ∂E
∂y 所決定的 函數,並輕易地透過連鎖律求得(見附錄一)。
有了上述的概念後,我們便可以將看似複雜的深層類神經網路,想像成一連 串特徵轉換函數所構成的複合函數 (function composition) ,並透過以下的步驟,
進行反向傳播演算法:
1. 根據損失函數 E(y) 計算出 ∂E
∂y,當作最後一層特徵轉換的後級錯誤訊號。
2. 根據 x、 θ(i) 、及 ∂E
∂y θ=θ(i)
,計算出 ∂E
∂θ θ=θ(i)
,並透過式 2.11b 將模型參 數更新成 θ(i + 1)。
3. 根據 x、 θ(i) 、及 ∂E
∂y θ=θ(i)
,計算出前級錯誤訊號 ∂E
∂x θ=θ(i)
並往前傳 遞,當作前一層特徵轉換的後級錯誤訊號。
4. 重複步驟 2. 及步驟 3. ,直到所有模型參數都被更新為止。
這樣的作法有幾個優點,其一是我們可以在程式的實作中,定義一個如圖 3.1中虛線框所示的介面類別 (interface class) ,並規範一系列的方法 (method) , 以遵守物件導向程式設計 (object-oriented programming, OOP) 的設計守則 [36] ; 此外,不論哪種的類神經網路架構,均可以透過這樣的方式執行反向傳播演算 法,更新模型內的參數。例如遞迴式類神經網路 [37] 及長短期記憶神經網路 (long short-term memory, LSTM) [38]等。 以平滑最大值作為活化函數、交叉熵作為損 失函數的深層類神經網路聲學模型,透過反向傳播法的完整訓練流程如圖 3.2 所 示。
3.2 實 實 實驗 驗 驗與 與 與分 分 分析 析 析
本節將敘述本論文中的實驗環境,包括實驗語料、訓練及辨識工具、前端處理及 各項參數設定等,並就實驗的結果進行討論與分析。
圖 3.2: 使用反向傳播演算法訓練深層類神經網路之示意圖。 圖中的矩陣與向量是 由很多小方塊所組成,每個小方塊代表一個值。 深藍色的虛線框代表平滑最大值 活化函數。 橘紅色和灰色方塊分別代表模型預測的結果與我們期望模型輸出的結 果,以轉置向量 oT 、 tT 表示。 粉紅色的箭頭代表反向傳播演算法的傳播路徑。
橘紅色的箭頭代表模型參數 W 是透過式 2.11b 所描述的方式(梯度下降法)進行 更新。
總句數(句) 總時間長度(分鐘)
訓練語料 3696 189
調適語料 400 34
測試語料 192 9
表 3.1: 語料時間長度與句數
3.2.1 實 實 實驗 驗 驗設 設 設 定 定 定
實 實
實驗驗驗語語語料料料
本實驗中,我們選用 TIMIT 作為語音辨識的語料。TIMIT 是一套由德州儀器
(Texas Instruments, TI) 及美國麻省理工學院 (Massachusetts Institute of Technology, MIT)共同錄製的全英文語料。錄音語者有男女生共 630 位,其中包含了來自美國 不同地區的方言(見附錄表 7.1 )。 在 TIMIT 官方的文件中,也詳細地規定了一 份的核心測試語料 (core test set) 供大家參考與比較,而訓練語料 (training corpus) 及調適語料 (development corpus) 的部份則如表 3.1 所示。
訓 訓
訓練練練與與與辨辨辨識識識工工工具具具
本實驗中,我們整合並使用了 2 套訓練及辨識工具,分別是美國約翰·霍普金斯大 學 (Johns Hopkins University, US) 的 KALDI、以及我們自己開發的一套深層卷積類 神經網路工具 libdnn 。前者負責了前端聲學特徵訊號處理、資料貯存、訓練基於 高斯混合模型的前後文相關音素隱藏式馬可夫模型、以及基於加權有限狀態轉換 器的解碼器;後者則負責了深層類神經網路的訓練與預測。其餘的程式均係由台 大語音實驗室所提供。
前 前
前端端端處處處理理理
本論文中所使用的聲學特徵有兩種,一種是梅爾倒頻譜係數,另一種則是梅爾濾
波器組 (mel filter banks) ,記作 fbank 。 梅爾倒頻譜係數是以標準的作法取得:
每平移 10 微秒即以 25 微秒的漢名窗 (Hamming window) 取值作為一個音框,通 過 18 維的梅爾濾波器組,再透過離散餘弦轉換 (discrete cosine transform) 降至 13 維,最後再以串接的方式,搭配上對時間的一階導數及二階導數所組成的 39 維向 量 [39]; 而梅爾濾波器組則是使用與上述相同的漢名窗,通過 23 維的梅爾濾波 器組,配上對時間的一階導數及二階導數所形成的 69 維向量。
基 基
基準準準實實實驗驗驗與與與聲聲聲學學學模模模型型型設設設定定定
本 實驗中的基準實驗是以基於高斯混合模型的前後文相關音素隱藏式馬可 夫 模型作為架構,其中隱藏式馬可夫模型共包含了 2425 個前後文相關狀態 (context-dependent state),高斯混合模型中的高斯機率分佈之總數量則是從一開始 的 2425 個,經過 36 次的最大相似度的重新估計,漸漸增加至 12155 個。 我們選 用了兩個深度為 4 層、寬度為 2048 、分別使用串接前後各 4 個音框、橫跨 9 個音 框的梅爾濾波器組與梅爾倒頻譜係數的深層類神經網路作為聲學模型。
在訓練深層類神經網路的過程中,我們使用梯度坡降法的變形 — 批次隨機坡 降法 (mini-batch stochastic gradient descent) — 作為更新模型參數的方法,並以 256 筆資料作為一個批次 (mini-batch) 進行迭代。
本實驗中,我們選用了 0.008 作為初始的學習率,往後每看過一次完整的訓 練資料,就會根據該模型在調適語料上的表現決定下一次的學習率。一般是以狀 態正確率或是音框正確率 (frame accuracy) 作為初步衡量模型效能的標準。若在調 適語料上的音框正確率相較於前一次的進步量小於 0.5% ,便會在往後每看完一次 完整的訓練資料時將學習率減半,直到調適語料上的音框正確率進步量小於 0.1%
或是達到最大訓練次數上限 35 為止。
聲學模型架構 音素錯誤率 (%) 高斯混合模型基準實驗 (MFCC) 28.29 深層類神經網路 (fbank) 23.41 深層類神經網路 (MFCC) 22.74
表 3.2: 在 TIMIT 核心測試語料上的辨識結果。以音素錯誤率作為衡量標準。
丟棄率 (%) 深層類神經網路 (fbank) 深層類神經網路 (MFCC)
0% 23.41 22.74
10% 22.80 22.69
20% 22.91 22.66
30% 22.73 22.63
40% 23.23 23.52
50% 23.77 23.99
表 3.3: 使用丟棄法正規化進行深層類神經網路訓練,在 TIMIT 核心測試語料上的 辨識結果。以音素錯誤率作為衡量標準。
3.2.2 實 實 實驗 驗 驗結 結 結果 果 果與 與 與分 分 分析 析 析
表 3.2 是各深層類神經網路聲學模型在 TIMIT 核心測試語料上的實驗結果,以音 素錯誤率 (phone error rate, PER) 作為衡量辨識率的標準。
在初步的實驗中,我們發現以深層類神經網路作為聲學模型的作法,其辨識 效能很明顯地優於傳統基於高斯混合模型的作法,音素錯誤率下降了 20% 之多 (見表 3.2 )。此外,兩種不同的聲學特徵都有相當不錯的表現,唯以梅爾濾波器 組作為輸入特徵向量的深層類神經網路,其效能比起使用傳統作為聲學特徵向量 的梅爾倒頻譜係數顯得略為遜色。
我們也針對丟棄法正規化,做了一系列的實驗。 在表 3.3 中,不論是以梅爾 濾波器組還是梅爾倒頻譜係數作為輸入的深層類神經網路,在丟棄率小於 30%
的情況下,大致上都能有不錯的進步。而當丟棄率進一步提高到 40% 至 50%
時,兩者的效能便開始出現退步的情形,其中尤以使用梅爾倒頻譜係數的深層類 神經網路最為嚴重。 由於越寬的深層類神經網路擁有較高的模型複雜度 (model complexity),反之則越低,因此我們推測是在深層類神經網路每一層不夠寬的情
況下,若是大幅地提高丟棄率,則會對深層類神經網路造成破壞性的影響。以我 們實驗中選用寬度為 2048 的深層類神經網路架構為例,當丟棄率提高到 50% 時 便出現效能上的退步,所以我們推論在 TIMIT 中,像 1024 這樣的寬度並不足以 模擬前後文相關音素隱藏式馬可夫模型中,各狀態與輸入聲學特徵間高度複雜的 關係。因此,在使用丟棄法正規化時,必須慎選丟棄率以避免過度丟棄造成以上 現象的發生。
3.3 本 本 本章 章 章總 總 總結 結 結
本章介紹了如何使用深層類神經網路取代傳統的高斯混合模型作為聲學模型,並 透過一系列在 TIMIT 上的實驗,發現使用梅爾濾波器組與梅爾倒頻譜係數作為輸 入的深層類神經網路,其辨識效能明顯優於傳統上基於高斯混合模型的聲學模 型,進而驗證了此作法的可行性。
第
第第 四四四 章章章 卷卷卷積積積類類類神神神經經經網網網路路路聲聲聲學學學模模模型型型
4.1 卷 卷 卷積 積 積 類 類 類神 神 神經 經 經網 網 網路 路 路
卷積類神經網路 (convolutional neural network) 是影像辨識 (image recognition) 中 常用的一種類神經網路架構,最早被用來處理手寫識別 (handwriting recognition, HWR) 及光學字元識別 (optical character recognition, OCR) 等相關問題 [40] [2] 。 近年來,隨著深層學習的興起,也有越來越多的研究團隊,將語音辨識中常用的 聲學特徵訊號,如梅爾濾波器組或是頻譜圖 (spectrogram) 當作一張張的影像,利 用卷積類神經網路替代深層類神經網路作為聲學模型 [19] [41] 。
4.1.1 簡 簡 簡介 介 介
卷積類神經網路顧名思義就是一種使用卷積 (convolution) 運算的類神經網路架 構。 有別於傳統的卷積運算,在卷積類神經網路中,我們事先並不知道卷積運算 中的脈衝響應 (impulse response) 長什麼樣子,而是透過大量的資料學出這些脈衝 響應。 在卷積類神經網路中,除了會使用到傳統多層感知器中的仿射轉換及活化 函數以外,還另外定義了兩種新的特徵轉換:卷積層 (convolutional layer) 及減縮 取樣層 (subsampling layer) ,我們將在下面的章節中一一介紹。
4.1.2 卷 卷 卷積 積 積層 層 層 (Convolutional Layer)
在卷積類神經網路中,通常使用特徵圖 (feature map) 一詞來代表一張二維的影 像。 如圖 4.1 所示, X 是一張高為 Hx 、寬為 Wx 的輸入特徵圖, K 是一個高 Hk 、寬 Wk 的卷積核心 (convolutional kernel) 。輸入特徵圖 X 通過卷積核心 K
圖 4.1: 卷積類神經網路中,卷積運算的示意圖。
後,所得到的輸出特徵圖 Y ,可以表示成
Y = X ∗ K (4.1)
其中 ∗ 是在離散 (discrete) 域上的二維卷積運算,可以定義成
Y[a, b]def=
Hk−1
X
m=0 Wk−1
X
n=0
X[a + m, b + n] · K[Hk− 1 − m, Wk− 1 − n] (4.2)
其中 0 ≤ a ≤ Hy− 1且 0 ≤ b ≤ Wy − 1, Hy 和 Wy 分別是輸出特徵圖 Y 的高和 寬。 由於卷積核心在 X 上滑動進行卷積運算時,其覆蓋範圍不得超出 X 所定義 的 Hx× Wx 範圍之外,因此透過卷積運算得到的輸出特徵圖 Y ,其大小 Hy× Wy 會略小於輸入特徵圖的 Hx× Wx。從圖 4.1 上,我們可以看出 X 、 K 、 Y 三者 之間的大小關係為
Hy = Hx− Hk+ 1 (4.3a) Wy = Wx− Wk+ 1 (4.3b)
圖 4.2: 卷積類神經網路的示意圖 [2] 。
在卷積類神經網路中,一個卷積層可以同時有多個輸入及輸出,如圖 4.2 所 示。 假設一個卷積層可以同時接收 M 個不同的輸入特徵圖,對於這 M 個不同的 輸入特徵圖,我們使用 M 個不同的卷積核心分別進行卷積運算取得 M 個不同的 輸出,並將這 M 個不同的輸出與相對應的偏移量疊加起來,作為一個輸出特徵 圖。一個卷積層若是定義了 N 個不同的輸出特徵圖,我們便重複上述的過程 N 次,使用 M × N 個不同的卷積核心進行運算。如下所示
Yj = bj+
M
X
i=1
Xi∗ Kij, j = 1, 2 . . . N (4.4)
其中 bj 是第 j 個輸出特徵圖的偏移量,它與特徵圖之間的加法是透過逐元素 (element-wise) 的運算來完成; Xi 是第 i 個輸入特徵圖, Yj 是第 j 個輸出特徵 圖, Kij 則是相對應的卷積運算核心,是整個卷積類神經網路中最核心也最重要 的部份。 一般來說,通過卷積層的輸出特徵圖 Yj ,都會在進入下一層當做輸 入前通過一個活化函數,例如邏輯函數等。 在一般影像相關的問題中,我們會 透過各式各樣的濾波器 (filter) 進行影像的處理,例如使用高斯濾波器達到高斯 模糊 (Gaussian Blur) 的效果,或是用加伯濾波器 (Gabor filter) 進行邊緣檢測 (edge
detection)等,並以此作為特徵做進一步的處理。 這些濾波器通常是經過一系列的 數學推導與實驗證明才得出的結果,然而在卷積類神經網路中,這些作為濾波器 的卷積核心 Kij ,完全是以隨機的方式進行初始化,並透過與深層類神經網路相 同的反向傳播演算法,一步步地調整而學出來的。
4.1.3 減 減 減縮 縮 縮取 取 取樣 樣 樣層 層 層 (Subsampling Layer)
一個取樣比率 (sampling rate) 為 r 的減縮取樣層 (subsampling layer) 中,可以透過 與 r × r 單位矩陣 Ir的卷積運算,對輸入的特徵圖進行平均取樣 (average sampling)
,將其高寬分別縮小 r 倍,如下所示
Yi[a, b] = ai(Xi∗ Ir)[ra, rb] + bi, i = 1, 2 . . . M (4.5)
其中 ai 和 bi 則分別是第 i 個減縮取樣層的縮放係數及偏移量,均為模型中可訓練 的參數。
圖 4.2 是一個標準的卷積類神經網路架構圖,共有 2 個卷積層、 2 個減縮取 樣層、以及一個深度為 3 的深層類神經網路。在圖中,最左方的圖片是訓練資料 中的一張張影像,也是第一層卷積取樣層唯一的輸入特徵圖,會由左至右地通過 一連串的卷積運算與減縮取樣而逐漸縮小。通常,我們會在這些輸出特徵圖小到 不再適合進行卷積運算的時候,將所有的輸出特徵圖取出,將其中的值拉直排列 成一個向量,當作深層類神經網路的輸入特徵向量,繼續往前傳遞。
4.1.4 反 反 反向 向 向傳 傳 傳播 播 播 演 演 演算 算 算法 法 法
根據前述 3.1.1 節的作法, 損失函數 E 對卷積核心 Kij 的偏微分,可以透過連鎖
律對 Yj 展開(參考附錄二式 B.11 ),寫成 Xi 與 ∂E
∂Yj 的函數,如下所示
∂E
∂Kij = X180i ◦∗ ∂E
∂Yj (4.6)
其中 X180i ◦ 是旋轉 180 度後的輸入特徵圖,可以寫成
X180i ◦[a, b] = Xi[Hx− 1 − a, Wx− 1 − b] (4.7)
透過相同的作法,可以將損失函數 E 對輸入特徵圖 Xi的偏微分,透過連鎖律對 Yj 展開(參考附錄二式 B.8c ),寫成 ∂E
∂Yj 與 Kij 的函數
∂E
∂Xi =
N
X
j=1
∂E
∂Yj
f ull
∗ K180ij ◦
(4.8)
其中預算子f ull∗ 是指以 ∂E
∂Yj 為中心,將周圍以 0 填滿 (padding) ,並輸出與 X 相 同大小結果的卷積運算,如圖 4.3 所示;而 K180ij ◦是旋轉 180 度後的卷積核心,與 式 4.7 有相同的定義方式。 損失函數 E 對偏移量 bj 的偏微分則為
∂E
∂bj =
Hy−1
X
a=0 Wy−1
X
b=0
∂E
∂Yj[a, b] · ∂Yj[a, b]
∂bj (4.9a)
=
Hy−1
X
a=0 Wy−1
X
b=0
∂E
∂Yj[a, b] (4.9b)
減縮取樣層也可以利用同樣的方式進行推導,我們便不再贅述。有了這些前 後級錯誤訊號間的關係,以及損失函數對各模型參數的偏微分值,我們便可以透 過梯度下降法訓練卷積類神經網路。
圖 4.3: 在反向傳播演算法中,以式 4.8 對後級錯誤訊號 ∂E
∂Yj 進行反向卷積運算,
求得前級的錯誤訊號 ∂E
∂Xi 的示意圖。圖中 ∂E
∂Yj 周圍的灰色區塊代表補 0 的部 份。
4.2 實 實 實驗 驗 驗與 與 與分 分 分析 析 析
4.2.1 實 實 實驗 驗 驗設 設 設 定 定 定
基 基
基準準準實實實驗驗驗
在本實驗中,我們選用與第三章相同的前後文相關音素隱藏式馬可夫模型作為基 礎的架構,並使用 TIMIT 作為評效語料進行一系列的實驗。
聲
聲聲學學學模模模型型型設設設定定定
本論文中,我們實驗了 4 種不同的卷積類神經網路作為聲學模型。 在系統一 中,我們使用了 64 維的梅爾濾波器組,並串接前 39 後 24 共 64 個音框,形成 64 × 64 的時頻圖作為輸入特徵圖。 第一層為卷積層,其中每個卷積核心的大小 為 7 × 7 ,並輸出成 20 個 58 × 58 的特徵圖。 第二層為 r = 2 的減縮取樣層,
將大小為 58 × 58 的輸入特徵圖縮小至 29 × 29 。 第三層為卷積層,其中每個
卷積核心的大小為 6 × 6 ,並輸出成 20 個 24 × 24 的特徵圖。 第四層為 r = 2 的減縮取樣層,將大小為 24 × 24 的輸入特徵圖縮小至 12 × 12 。 接著我們將 20個 12 × 12 的輸出映像拉直成一個 2880 的特徵向量,當作寬度為 2048 、深 度為 2 、輸出層寬度為 2425 的深層類神經網路的輸入,並將上述的架構記成
1x64x64-20x7x7-2s-20x6x6-2s-2048-2048-2425 ,如圖 4.4 a 所示。
系統二是將 64 維梅爾濾波器組,切成高頻 (33-64) 與低頻 (1-32) 兩個頻帶,
並搭配上其對時間的一階及二階導數、分別串接前 21 後 10 共 32 個音框,形成 6 張 32 × 32 的時頻圖(如圖 4.4 b 所示)。整個系統的架構可以用前述的方法,表 示為 6x32x32-32x5x5-2s-48x5x5-64x3x3-2s-4095-4095-2425 。
系統三是系統二的變形。除了上述的高頻與低頻以外,我們還新增了一個橫 跨高低頻 (17-48) 的 32 維聲學特徵作為輸入,形成 9 張 32 × 32 的時頻圖(如圖 4.4 c 所示),其餘設定都與系統二相同。
系統四是將 64 維梅爾濾波器組,切成四個不重疊的頻帶,每個頻帶各 16 維,並搭配上其對時間的一階及二階導數、分別串接前 10 後 5 共 16 個音框,
形成 12 張 16 × 16 的時頻圖(如圖 4.4 d 所示)。整個系統的架構可以表示為 12x16x16-30x3x3-30x3x3-2s-2048-2048-2425 。
在上述的四種系統中,我們一律使用邏輯函數當作深層類神經網路與卷積層 後方的活化函數,並在深層類神經網路中使用 10% 的丟棄法正規化。透過反向傳 播演算法對卷積類神經網路進行訓練時,我們以 256 筆訓練資料作為一個批次,
並選用 0.5 作為動量、 0.01 作為初始學習率,並使用與第三章相同的策略,根據 系統在調適語料上的辨識率動態地調整學習率。
圖 4.4: 各種不同的卷積類神經網路架構圖。橫軸代表時間,綜軸代表頻率(梅爾 濾波器組)。
聲學模型 丟棄率 (%) 音素錯誤率 (%)
高斯混合模型基準實驗 (MFCC) - 28.29
(A) 深層類神經網路 (fbank) 30% 22.73
(B) 深層類神經網路 (MFCC) 30% 22.63
(a) 卷積類神經網路系統一 (fbank, 1 × 64 × 64 ) 10% 24.30 (b) 卷積類神經網路系統二 (fbank, 6 × 32 × 32 ) 10% 24.68 (c) 卷積類神經網路系統三 (fbank, 9 × 32 × 32 ) 10% 24.13 (d) 卷積類神經網路系統四 (fbank, 12 × 16 × 16 ) 10% 27.18
表 4.1: 四種卷積類神經網路系統在 TIMIT 核心測試語料上的辨識結果,以音素錯 誤率作為衡量標準。此外,我們也放入了第三章中使用丟棄法的深層類神經網路 的辨識結果,一併進行比較。
4.2.2 實 實 實驗 驗 驗結 結 結果 果 果與 與 與分 分 分析 析 析
上述四種系統在 TIMIT 的核心測試語料上的實驗結果如表 4.1 所示。 從實驗的結 果我們可以看出,使用卷積類神經網路的辨識效能明顯優於傳統基於高斯混合 模型的聲學模型,其中又以系統三的表現最為出色,音素錯誤率下降了 14.7% 之 多;然而跟同樣是類神經網路的作法相比,如表 4.1 中的 (A) 及 (B) ,則顯得略有 不足,音素錯誤率大約差了 1.40% 。 我們推論是卷積網路中,各卷積層中使用的 卷積核心數量不足所導致。 由於卷積類神經網路在訓練的過程中,需要進行相當 多次的卷積運算,其時間複雜度遠遠超過深層類神經網路中的矩陣向量運算。訓 練一個如表 4.1 中 (a) – (d) 這樣的卷積類神經網路,所需的時間大約是深層類神經 網路 (A) 與 (B) 的 10 倍之多。這使得我們難以在合理的時間範圍內,透過大量增 加卷積核心的數量作法提高辨識率。
在一系列的卷積類神經網路實驗中,也可以發現系統四的辨識錯誤率明顯高 於其他三者。我們推論是系統四將梅爾濾波器組切成過多的小頻帶,導致每個輸 入特徵圖太小,使得能選擇的卷積核心大小也連帶受到限制。而太小的卷積核 心,如 3 × 3 或 2 × 2 ,其所能描述的輸入輸出間關係也就相當有限。
此外,在進行系統三的實驗時,我們是直接從系統二已經訓練好的模型中,
加上新的卷積核心並用隨機亂數為其初始化。這樣的作法可以讓系統三中的各項 參數,以較好的初始值作為出發點,大幅地減少訓練的時間。從表 4.1 中也可以 明顯的看到,系統三新增一段中間頻帶作為輸入特徵圖的作法,確實能夠減少系 統的音素錯誤率。 最後,我們也從 (a) - (c) 這三個系統中發現,加上對時間的一 階導數及二階導數作為輸入的作法,似乎對語音辨識系統的效能沒有太大的幫 助,但仍需要進一步更完整的實驗才能證明。
4.3 本 本 本章 章 章總 總 總結 結 結
本章介紹了最基本的卷積類神經網路及其運作原理,並利用卷積類神經網路作為 語音辨識系統的聲學模型,在 TIMIT 上進行了一系列的實驗。實驗結果顯示,雖 然卷積類神經網路的表現比傳統高斯模型的作法還要好,但是與相同的運算資源 下的深層類神經網路作法相比,仍略顯不足。
第
第第 五五五 章章章 深深深層層層類類類神神神經經經網網網路路路之之之語語語者者者調調調適適適
本章將探討如何在深層類神經網路聲學模型上進行語者調適,以解決受測目標語 者與訓練語料之間不匹配的問題。我們針對現有的語者調適演算法,提出了一個 適當的改進方案,以達到更好的辨識效果。
5.1 簡 簡 簡介 介 介
語者調適 (speaker adaptation) 是語音辨識中一門探討如何解決聲學模型在面對新 的受測語者時,因為受測語者與訓練語料之間的不匹配 (mismatch) ,而造成系統 辨識效能下降的研究。 一般來說,在進行語者調適時,我們會有一個已經事先訓 練好的聲學模型,稱作語者不特定模型 (speaker-independent model, SI model) 。接 著會利用目標語者的少量資料,重新對這個模型進行訓練、調整其中的參數,使 得該模型在面對受測目標語者時,能夠展現出較好的辨識率表現。而這個經過重 新訓練的模型,便稱作語者調適模型 (speaker-adaptive model, SA model) 。
傳統上以高斯混合模型作為聲學模型的語音辨識中,有相當多的語者調適 演算法,可以對抗此一問題,常見的包括了「最大相似度線性迴歸」 (maximum
likelihood linear regression, MLLR) [42] [43] [44] [45]、「最大事後機率調適法」
(maximum a posteior probability, MAP) [46] [47] [48]、「聲道長度正規化」 (Vocal Tract Length Normalization, VTLN) [49] 及「特徵聲音」 (eigenvoice) [50] 等。
近年來,由於以深層類神經網路作為聲學模型的作法已逐漸成為主流,
也因此有越來越多的研究開始談討如何有效地在深層類神經網路上進行語 者 調 適 。其中包括了在輸入層、輸出層、及隱藏層中加入線性轉換 (linear transformation) 的 線性輸入網路 (linear input network, LIN) [51] 、線性輸出網路