Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101
AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
由 TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
YouTube | Facebook | 回 GitHub Pages | 網站 | Hugging Face Space
2019/05/17, Ryan Chao, The Hackathon/Formosa Grand Challenge Between Us
The Hackathon/Formosa Grand Challenge Between Us
2019/05/17 Ryan Chao
好的,針對您先前的要求,很抱歉我前一次未能以未渲染的 Markdown 源碼格式呈現。這次我將嘗試依據您的指示,從博士生及研究人員的角度,並適度加入新手應注意的關鍵重點,匯整來源資料中的重要內容,並以原始 Markdown 格式顯示。
本分享主要圍繞著一個團隊參與科技部「科技大擂台」語音閱讀理解競賽的經驗 [1, 2]。這項競賽的核心挑戰在於處理語音形式的文章、問題及選項,並找出正確答案,結合了語音辨識 (ASR) 與閱讀理解 (MRC) 技術 [1, 2]。對新手來說,這點非常重要:實際問題往往需要多種 AI 技術的整合,而非單一模型的應用。
團隊在 ASR 部分的核心工具是 Kaldi [1, 2]。Kaldi 是一個開源的 ASR 工具包,其基礎架構大量依賴有限狀態轉換器 (Finite State Transducer, FST) [1, 3]。新手理解 FST 的關鍵在於,它可以被視為一種強大的狀態機,用於將一個序列轉換為另一個序列,例如聲音訊號轉換為文字 [3]。在 Kaldi 中,不同的語言學知識(如語言模型 G、詞彙模型 L、聲學模型 H, C, T)都被表示為 FST,再透過 Composition (組合) 操作融合成一個大型的解碼圖 (graph),用於尋找與輸入音訊最匹配的文字序列 [1, 3-5]。
聲學模型的訓練是 ASR 的核心之一,傳統方法使用 隱藏式馬可夫模型 (HMM) 來建模音素 (phone) 的時間序列特性,通常一個音素會拆分成三個狀態 (start, middle, end),形成 Left-to-Right 的結構 [6]。而聲音特徵的建模則常用 高斯混合模型 (GMM) [7, 8]。EM (Expectation-Maximization) 演算法在這裡扮演了關鍵角色 [7, 8]。EM 是一種疊代演算法,用於估計含有隱藏變數的模型參數,就像估計混合了來自 A、B 兩枚硬幣的正面機率一樣,即使不知道每次投擲來自哪一枚硬幣 [8-10]。對於 GMM 而言,EM 演算法通過 E-step (估計每個資料點屬於哪個高斯分量的機率) 和 M-step (更新高斯分量的參數如均值、協方差、權重) 來估計模型參數 [7, 11, 12]。EM 演算法保證每次疊代都會增加對數概似函數 (log-likelihood),最終收斂 [12, 13]。對於新手而言,理解 EM 處理的是「資料來源不明」或「含有潛在結構」的參數估計問題是個好的起點。
在特徵提取方面,從原始音訊訊號中提取出對語音辨識有用的資訊至關重要 [6, 14]。常用的方法是計算 梅爾頻率倒譜係數 (MFCC) [14, 15]。這涉及幾個步驟:對音訊進行短時傅立葉轉換 (STFT) 得到頻譜;在梅爾尺度上進行濾波(模仿人類聽覺對低頻更敏感的特性);取對數後進行離散餘弦轉換 (DC,類似第二次 FFT) 得到倒譜;最後取低頻部分的係數 [14, 15]。這些基本 MFCC (通常13維) 會再加入一階和二階差分 (Delta 和 Delta-Delta),總共形成 39 維的特徵向量 [15]。這些特徵被用來訓練聲學模型,用於將聲學特徵映射到音素狀態 [16]。
值得注意的是,早期的 Kaldi 主要基於 HMM-GMM 結合 FST 的統計方法 [5]。較新的版本已開始融入 深度學習 (Deep Learning, DL) 技術,例如用神經網路取代 GMM 作為聲學模型的狀態發射機率模型 [5]。然而,Kaldi 的訓練風格仍偏向 Step-by-Step 和 Iteration,而非完全的 End-to-End [5, 8]。這反映了 AI 領域中,傳統方法與 DL 技術的結合是一個重要的研究方向 [17-19]。
由於競賽提供的選項是連在一起的音訊,需要將其切分成單獨的選項音訊檔案 [7, 20]。團隊為此開發了一種斷音方法 [7, 20]。最初嘗試基於音訊波形局部極值 (波谷) 的規則方法 [7, 20]。然而,隨著競賽音訊加入大量雜訊,波形變得不規則,規則方法失效 [3, 20, 21]。為了解決雜訊問題,團隊轉向結合分類器和密度估計 [7, 20]。利用前期較乾淨的資料,訓練一個分類器來判斷找到的可能斷點屬於哪個選項,同時計算該點作為斷點的可靠性(密度)[7, 20]。只保留可靠性高的點作為最終斷點 [7, 20]。這個過程雖然是經驗性的,但說明了在真實場景中,資料品質變化需要更魯棒 (robust) 的處理策略,有時甚至需要結合統計模型或機器學習方法來增強基於規則的方法 [20, 21]。
在 ASR 輸出文字後,下一步是從選項中找出正確答案 [1, 22]。競賽題目是選擇題,答案包含在選項中,這與 SQuAD 1.0 等需要從文章中擷取答案區間的資料集不同 [7, 23]。團隊在當時的 MRC 方法相對基礎,主要利用 TF-IDF 權重來衡量詞語的重要性 [1, 22, 24]。TF-IDF 是一種常見的文字特徵表示方法,衡量詞語在單一文件中的重要性以及在整個語料庫中的稀有度 [1, 24]。
基本策略包括:檢查選項中的詞彙是否出現在文章中 [22];利用 TF-IDF 權重和詞彙在文章中的位置與問題或選項的相關性來計分 [1, 22, 24]。分數最高的選項被選為答案 [24]。為了處理詞彙不在關鍵位置附近的情況,團隊使用了類似 Language Model 中的 Smoothing 技巧,給予關鍵詞周圍的詞彙一定的權重 [24]。除了文字 (Characters) 層級的匹配,團隊也嘗試了音素 (Phones) 層級的匹配,因為 ASR 的錯誤可能導致錯字,而音素層級的差異可能較小 [24]。最終結合這兩層級的分數來選擇答案 [24]。
然而,這種基於詞彙匹配和位置的方法有其局限性 [18, 22]。對於涉及否定 (如「下列何者無關」) 或需要推理的題目,僅靠詞彙匹配很難處理 [18, 22]。這類問題可能需要更複雜的規則判斷或結合外部知識 [18, 22]。學術界目前前沿研究方向之一,正是嘗試將傳統的符號處理和知識推理方法與神經網路結合,以處理這類需要更高層次理解和推理的問題 [17-19]。這對新手研究人員來說,是個值得關注的跨領域方向。
整個競賽過程中最大的挑戰之一是語料資料的問題 [22, 23, 25, 26]。特別是中文語音和文本資料的缺乏 [22, 23, 26]。大規模、高質量的有標籤中文語料庫非常稀缺 [22, 23, 26]。競賽中語音資料的領域適應性 (Domain Adaptation) 是一個顯著挑戰,訓練資料與測試資料來源差異大(如新聞 vs. 文學作品)導致 ASR 準確度大幅下降 [2, 3, 17]。後期的音訊還加入了難以處理的背景雜訊,進一步降低了辨識準確率 [3, 17, 21]。
此外,雖然深度學習在許多領域取得了巨大成功,但分享者也指出 Deep Learning 並非萬能,特別是在資料量不足時面臨挑戰 [17, 27]。這時可能需要額外的技術,例如資料增強 (Data Augmentation) 或生成模型來擴充資料 [17, 27]。選擇合適的方法(傳統或 DL 或結合)應權衡資料量、問題類型和計算資源 [17, 23, 24, 27]。例如,像 BERT 這樣的 DL 模型在 MRC 上的表現可能優於傳統 TF-IDF 方法,但需要大量的標籤資料和 GPU 等計算資源,且推理速度可能較慢 [23, 24, 27]。
對新手而言,從這個案例中學習到:在實際應用中,資料的質量和數量、領域變化以及環境雜訊是嚴峻的挑戰;理解傳統方法(如 EM, GMM, FST, TF-IDF, 規則處理)的原理和適用場景仍然重要;深度學習是強大的工具,但需要足夠的資料和計算資源;解決複雜問題可能需要結合不同方法的優勢;中文處理面臨語料不足和斷詞等特有挑戰 [3, 7, 15, 17, 20-23, 25-28]。
總之,這次競賽經驗體現了從學術研究到實際系統建置之間的複雜性與挑戰,需要深入理解各項技術的原理、適用範圍,並具備處理真實世界資料問題的能力。