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 | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心
大語言模型 | 語音處理 | 自然語言處理 | 電腦視覺 |
Large Language Model | Speech Processing | Natural Language Processing, NLP | Computer Vision |
用 AI 懂 AI
AI 技術 體驗/分享
手把手帶你一起踩 AI 坑:https://www.twman.org/AI
- 白話文手把手帶你科普 GenAI:淺顯介紹生成式人工智慧核心概念,強調硬體資源和數據的重要性。
- 大型語言模型直接就打完收工?:回顧 LLM 領域探索歷程,討論硬體升級對 AI 開發的重要性。
- 檢索增強生成(RAG)不是萬靈丹之優化挑戰技巧:探討 RAG 技術應用與挑戰,提供實用經驗分享和工具建議。
- 大型語言模型 (LLM) 入門完整指南:原理、應用與未來:探討多種 LLM 工具的應用與挑戰,強調硬體資源的重要性。
- 解析探索大型語言模型:模型發展歷史、訓練及微調技術的 VRAM 估算:探討 LLM 的發展與應用,硬體資源在開發中的作用。
- Diffusion Model 完全解析:從原理、應用到實作 (AI 圖像生成);深入探討影像生成與分割技術的應用,強調硬體資源的重要性。
- ASR/TTS 開發避坑指南:語音辨識與合成的常見挑戰與對策:探討 ASR 和 TTS 技術應用中的問題,強調數據質量的重要性。
- 那些 NLP 踩的坑:分享 NLP 領域的實踐經驗,強調數據質量對模型效果的影響。
- 那些語音處理踩的坑:分享語音處理領域的實務經驗,強調資料品質對模型效果的影響。
- 手把手學深度學習安裝環境:詳細介紹在 Ubuntu 上安裝深度學習環境的步驟,分享實際操作經驗。
AI 技術 開源/試用
第二十章 深度生成模型
2018/04/13, Deep Generative Models @ Deep Learning Book Chapter 20
總體目標與模型類型
- 深度生成模型的核心目標是表示多個變數的機率分佈 [1]。
- 這些模型可大致分為兩類:
- 基於能量的模型 (Energy-based Models, EBM),如玻爾茲曼機、RBM、DBM [2, 3]。這些模型使用能量函數定義聯合機率分佈 [4-6]。
- 可微分生成網路 (Differentiable Generator Networks),如 VAE 和 GMMN [2, 3, 7]。這類模型通常將潛在變數通過一個可微分函數(通常是神經網路)映射到資料空間 [7, 8]。
受限玻爾茲曼機 (Restricted Boltzmann Machine, RBM)
- RBM 是一種具有單個隱藏層的玻爾茲曼機,其特點是可見單元 (v) 和隱藏單元 (h) 之間有連接,但層內沒有連接 (二分圖結構) [4, 9]。
- 其機率分佈由能量函數定義,機率與能量的負指數成正比 [5, 6]。
- 挑戰: RBM 的可見單元邊緣機率 P(v) 和配分函數 Z (歸一化常數) 是難解的 [6, 9-11]。
-
優勢: 儘管 P(v) 和 Z 難解,RBM 的二分圖結構使得其**條件分佈 P(h v) 和 P(v h) 可以分解為單元獨立的形式** [3, 9, 11, 12]。 -
P(h v) 可由 sigmoid 函數表示 [3, 9]。 -
P(v h) (對二值單元) 也可由 sigmoid 函數表示 [9]。 - 這些因子化的條件分佈使得計算和塊吉布斯採樣 (Block Gibbs Sampling) 相對簡單且高效 [9, 13]。
-
- 訓練: 通常使用基於 MCMC 採樣的近似最大概似方法,如對比散度 (CD) 和隨機最大概似 (SML / Persistent CD, PCD) [10, 11, 14, 15]。
- 訓練過程涉及最大化 log 概似,其梯度包含兩個部分:Positive Phase (數據驅動) 和 Negative Phase (模型驅動) [3, 6, 11]。
-
Positive Phase 通常較易計算,受益於 P(h v) 的閉解形式 [3, 10, 11]。 - Negative Phase 涉及對所有可能狀態的求和,難以直接計算,需要通過採樣方法來近似 [3, 6, 11, 15]。
深度信念網路 (Deep Belief Network, DBN)
- DBN 是最早成功應用的深度非卷積生成模型之一 [16]。
- 結構特點: 是一個混合圖模型 [17]。頂部兩層之間的連接是無向的 (構成一個 RBM) [16-19]。所有其他層之間的連接是有向的,箭頭指向最接近數據的可見層 [16, 17]。層內沒有連接 [17]。
- 推斷難解性: DBN 中的精確推斷是難解的 [8, 16, 17]。
- 原因包括有向層內的「解釋消除」效應 (explaining away effect) [8, 16, 17]。
- 以及頂部兩層無向連接的相互作用 [8, 17]。
- 標準訓練: 採用貪婪逐層預訓練 [8, 16, 17]。
- 首先訓練一個 RBM 來建模輸入數據 [8, 17]。
- 然後將第一個 RBM 的隱藏層激活作為輸入,訓練下一個 RBM [8, 17]。
- 重複此過程以添加更多層 [8, 17]。每個 RBM 定義了 DBN 的一層 [17].
- 其他用途: 訓練好的 DBN 的權重和偏置常被用於初始化多層感知機 (MLP) 的參數,隨後進行判別性微調用於分類任務 [8, 16, 17, 20]。
深度玻爾茲曼機 (Deep Boltzmann Machine, DBM)
- DBM 是一種完全無向的深度生成模型 [4, 8]。
- 結構特點: 擁有多個潛變數層。與 RBM 類似,每層內的單元與相鄰層單元條件獨立 (層內無連接) [4].
- 能量函數: 定義為相鄰層之間交互作用的總和 [13]。
- 採樣: DBM 的層可組織成二分圖 (奇數層 vs. 偶數層),使得塊吉布斯採樣可以高效進行 [4, 13]。然而,從模型生成樣本相對困難,需要在所有層使用 MCMC,且每層都參與每個馬爾可夫鏈轉移 [7, 21]。這與 DBN 只需在頂部 RBM 使用 MCMC 不同 [7, 21]。
-
**推斷 (P(h v)):** 雖然難解,但相較於 DBN 更容易使用變分近似來處理 [20, 21]。 -
平均場近似 (Mean-Field Approximation) 是常用的方法 [20-22]。它將複雜的後驗分佈 P(h v) 近似為一個完全因子化的分佈 Q(h v) [8, 22]。 - 層內隱藏單元在給定其他層時條件獨立的特性,使得可以通過迭代的不動點方程來優化變分下界並找到近似的期望值 [20-22]。
- 這些不動點方程捕獲了層之間的雙向交互作用 [22, 23]。
- 平均場推斷允許 DBM 捕獲自頂向下的反饋交互影響,這從神經科學角度看是有意義的 [20, 21]。
-
- 訓練挑戰: 面臨難解的配分函數和難解的後驗分佈雙重挑戰 [23]。
- 參數學習: 通常通過最大化對數概似的變分下界 L(v, Q, θ) [8, 14]。
- 通常使用 隨機最大概似 (SML) [14]。
- 對比散度 (CD) 對 DBM 來說通常比 RBM 慢,因為不能高效地對隱藏單元進行條件採樣,需要運行完整的馬爾可夫鏈 [14]。
- 逐層預訓練: 直接從隨機初始化訓練 DBM 通常效果不佳或失敗 [8, 24]。貪婪逐層預訓練是一種常見且有效的方法,將 DBM 的每一層視為 RBM 訓練 [24]。
- 與 DBN 不同,RBM 參數在組合成 DBM 前需要調整 (如權重除以2) [24]。
- 聯合訓練方法:
- 中心化 DBM (Centered DBM): 通過重參數化改善 Hessian 條件數,可能無需預訓練即可訓練 [25]。
- 多預測 DBM (MP-DBM): 訓練準則允許使用反向傳播,避免 MCMC 估計梯度 [25, 26]。它將平均場方程視為循環網路,訓練預測缺失值 [25, 26]。優點是使用精確梯度、分類/缺失值填充效果好 [26]。缺點是訓練目標非概似下界,可能導致生成樣本質量或概似值較差 [26]。
可微分生成網路:變分自動編碼器 (VAE) 與 生成矩匹配網路 (GMMN)
-
這類模型不直接建模能量或可視變數上的複雜機率分佈,而是訓練一個可微分的生成器網路 [7]。
- 變分自動編碼器 (VAE):
- 是一種自動編碼器變體,包含編碼器和解碼器 [19]。
- 編碼器將輸入映射到潛在空間中一個分佈的參數 (例如,高斯分佈的均值和標準差),而非一個確定的點 [19, 27]。
- 從這個潛在分佈中採樣一個潛在變數 [27]。
- 解碼器將採樣的潛在變數映射回資料空間,生成樣本或資料空間分佈的參數 [27]。
- 訓練關鍵:重參數化技巧 (Reparameterization Trick) [27, 28]。它允許將採樣過程改寫為一個參數的可微函數與一個外部隨機變數之和 (或乘積),使得梯度可以通過採樣步驟反向傳播到參數 [27, 28]。
- 訓練目標: 通常是最大化證據下界 (Evidence Lower Bound, ELBO) [27, 29]。ELBO 包括一個重構項 (衡量生成樣本與原始輸入的相似度) 和一個正則化項 (衡量潛在分佈與預設先驗分佈的接近程度,如 KL 散度) [27]。
- 生成矩匹配網路 (GMMN):
- 訓練目標: 使生成器產生的樣本的矩 (統計量) 與真實數據樣本的矩盡可能匹配 [8, 30]。
- 通過最小化最大平均偏差 (Maximum Mean Discrepancy, MMD) 代價函數來實現 [8, 30]。
- MMD 是一種度量兩個分佈差異的方法,通過比較它們在再生核希爾伯特空間 (RKHS) 中的均值差異 [30]。當且僅當兩分佈相同時 MMD 為零 [30]。
- 與 GAN 和 VAE 不同: GMMN 不需要判別器網路 (不像 GAN) [3, 30],也不需要編碼器/推斷網路 (不像 VAE) [3, 30]。它直接比較生成樣本和真實樣本在特徵空間中的矩 [30]。
- 批量大小的重要性: 對於 MMD 的準確估計至關重要 [8, 30]。批量太小會低估真實變化,批量太大會減慢訓練速度 [8, 30]。
自回歸網路 (Autoregressive Networks)
- 這是有向機率模型,沒有潛在隨機變數 [31]。
-
基本原理: 使用機率的鏈式法則分解觀察變數上的聯合機率 P(x) = Π P(x_i x_{<i}) [8, 31]。 -
每個條件機率 P(x_i x_{<i}) 由神經網路表示 [31, 32]。這類模型也稱為完全可見貝葉斯網路 (FVBN) [8, 31]。 - 神經自回歸網路 vs. 線性: 使用帶隱藏單元的神經網路建模條件分佈,學習更複雜的非線性依賴關係 [32]。
- 優勢 (相較於傳統表格模型): 避免維度災難,參數化建模高維條件分佈 [32]。允許參數/特徵共享,提高統計和計算效率 [32, 33]。用於預測 x_i 的隱藏表示可重用於預測 x_{i+1} 等 [32]。
- NADE (Neural Autoregressive Density Estimator): 一種具體的參數共享方案 [33]。輸入 x_k 對後續預測 x_j (j>k) 中隱藏單元的貢獻是獨立於 j 的 [33]。其前向計算與 RBM 中用於填充缺失輸入的均勻場推斷的第一步相似 [33]。
- 實值數據擴展 (RNADE): 可使用高斯混合模型作為輸出層來處理實值數據 [33]。
其他玻爾茲曼機變體
- 實值數據上的玻爾茲曼機: 將 RBM 擴展到處理實值可見單元,如 Gaussian-Bernoulli RBM (GB-RBM) [34]。處理條件協方差的模型如 Mean and Covariance RBM (mcRBM) 和 Spike and Slab RBM (ssRBM) [35]。
- 卷積玻爾茲曼機: 將卷積結構引入玻爾茲曼機,用於處理高維、具平移不變性數據 [36]。引入機率最大池化 (probabilistic max pooling) 解決能量模型中池化狀態數指數增長的問題 [36, 37]。
-
用於結構化或序列輸出的玻爾茲曼機: 建模條件機率 p(y x) 或序列機率 p(x^(t) x^(<t)) [38]。例如 條件 RBM (CRBM) [12, 38] 和 RNN-RBM [12, 38]。 -
其他變體: 判別式 RBM (最大化條件概似 p(y v)) [12, 39],高階玻爾茲曼機 (能量函數含多個變數乘積項) [39],選通 (Gating) 機制 (使用類別變數改變單元關係) [39]。開發新形式的挑戰在於保持條件分佈的可解性 [39]。
模型評估注意事項
- 對數概似 (Log Likelihood) 比較: 在 MNIST 等數據集上需小心,因為數據處理方式 (實值 vs. 二值,不同的二值化方法) 會極大影響結果,不同處理方式下的值不可直接比較 [40]。
- 視覺樣本檢查: 具有局限性 [40]。判斷主觀;難以發現模式崩潰 (Mode Collapse) (模型只生成部分模式) 和過擬合 (模型複製訓練樣本) [40]。無法檢測低機率但重要的錯誤 [40]。
總結
- 本章介紹的多種深度生成模型架構 (包括玻爾茲曼機、DBN、DBM、VAE、GAN、自回歸模型等) 沒有一種是普適的最佳選擇 [3, 41]。
- 模型的選擇取決於具體的應用需求、數據特性和計算資源 [3, 41]。