- 生成式AI教程
- 生成式AI - 首頁
- 生成式AI基礎
- 生成式AI基礎
- 生成式AI發展史
- 機器學習與生成式AI
- 生成式AI模型
- 判別式模型與生成式模型
- 生成式AI模型型別
- 機率分佈
- 機率密度函式
- 最大似然估計
- 生成式AI網路
- GAN如何工作?
- GAN - 架構
- 條件GAN
- StyleGAN和CycleGAN
- 訓練GAN
- GAN應用
- 生成式AI Transformer
- Transformer在生成式AI中的應用
- Transformer在生成式AI中的架構
- Transformer中的輸入嵌入
- 多頭注意力機制
- 位置編碼
- 前饋神經網路
- Transformer中的殘差連線
- 生成式AI自動編碼器
- 自動編碼器在生成式AI中的應用
- 自動編碼器型別及應用
- 使用Python實現自動編碼器
- 變分自動編碼器
- 生成式AI與ChatGPT
- 一個生成式AI模型
- 生成式AI其他
- 生成式AI在製造業中的應用
- 生成式AI在開發者中的應用
- 生成式AI在網路安全中的應用
- 生成式AI在軟體測試中的應用
- 生成式AI在營銷中的應用
- 生成式AI在教育中的應用
- 生成式AI在醫療保健中的應用
- 生成式AI在學生中的應用
- 生成式AI在工業中的應用
- 生成式AI在電影中的應用
- 生成式AI在音樂中的應用
- 生成式AI在烹飪中的應用
- 生成式AI在媒體中的應用
- 生成式AI在通訊中的應用
- 生成式AI在攝影中的應用
- 生成式AI資源
- 生成式AI - 有用資源
- 生成式AI - 討論
生成式AI - 變分自動編碼器
變分自動編碼器 (VAE) 是一種深度學習模型,代表了無監督學習(如生成建模、降維和特徵學習)的重大進步。
與傳統的自動編碼器不同,VAE 的主要思想是使用機率方法,不僅可以重建資料,還可以從學習到的潛在空間生成新的資料樣本。閱讀本章以瞭解變分自動編碼器,它們與傳統自動編碼器的區別以及它們獨特的損失函式。
什麼是變分自動編碼器?
變分自動編碼器是一種神經網路,它透過新增機率方法擴充套件了傳統自動編碼器的概念。
傳統的自動編碼器旨在壓縮和從潛在空間再生輸入資料,而VAE透過使用機率方法,可以再生輸入資料,並透過學習輸入資料中的潛在模式生成新的資料樣本。VAE 的這種能力使其非常適用於生成逼真的影像或建立新資料點等任務。
傳統自動編碼器與變分自動編碼器
下表提供了傳統自動編碼器和變分自動編碼器的全面比較 -
| 方面 | 自動編碼器 | 變分自動編碼器 (VAE) |
|---|---|---|
| 潛在空間 | 自動編碼器將輸入資料編碼到潛在空間中的一個確定性點。 | 變分自動編碼器將輸入資料編碼到潛在空間中的一個機率分佈。 |
| 編碼器輸出 | 自動編碼器中的編碼器生成輸入的單個向量表示。 | VAE中的編碼器生成兩個向量 - 潛在分佈的均值和方差。 |
| 解碼器輸入 | 自動編碼器中的解碼器將編碼器中的單個向量作為輸入,以從潛在空間再生輸入資料。 | VAE中的解碼器使用均值和方差向量作為輸入,從潛在空間取樣。 |
| 訓練目標 | 自動編碼器旨在最小化輸入和輸出之間的重建誤差。 | VAE旨在最小化重建誤差和學習分佈與先驗分佈之間的KL散度。 |
| 重建損失 | 自動編碼器通常使用均方誤差 (MSE) 或二元交叉熵作為重建損失。 | VAE也使用均方誤差 (MSE) 或二元交叉熵作為重建損失。 |
| 正則化 | 自動編碼器本身不包含任何潛在空間正則化。 | VAE包含一個KL散度項來正則化潛在空間。 |
| 生成能力 | 自動編碼器無法從輸入資料生成新的資料樣本。 | VAE可以生成類似於輸入資料的新資料樣本。 |
| 先驗分佈的使用 | 自動編碼器在潛在空間中不使用先驗分佈。 | VAE在潛在空間中使用先驗分佈,通常是標準正態分佈。 |
| 複雜度 | 自動編碼器易於實現。 | 由於機率元件和正則化的需要,VAE更復雜。 |
| 對過擬合的魯棒性 | 如果沒有適當的正則化,自動編碼器可能容易過擬合。 | 由於KL散度項的正則化效果,VAE不太容易過擬合。 |
| 輸出質量 | 自動編碼器可以準確地重建輸入資料。 | VAE可以生成新的、真實的資料樣本。 |
| 用例 | 自動編碼器用於降維、特徵提取、去噪和異常檢測。 | VAE用於生成建模、資料增強、半監督學習和影像合成。 |
變分自動編碼器損失函式
變分自動編碼器的損失函式結合了以下兩個元件 -
重建損失
重建損失用於確保解碼器可以從隱藏層接收到的潛在空間表示中準確地重建輸入。它計算為原始輸入和重建輸入之間的均方誤差 (MSE)。數學上,它表示如下 -
$$\mathrm{\mathcal{L_{reconstruction}} \: = \: \displaystyle\sum\limits_{i=1}^N || x_{i} \: - \: \hat{x}_{l} ||^{2}}$$
其中$\mathrm{x_{i}}$是原始輸入,$\mathrm{\hat{x}_{l}}$是重建輸入。
KL散度
KL散度衡量學習分佈與先驗分佈的偏差。VAE中的先驗分佈通常是標準正態分佈。KL散度項正則化潛在空間表示,並確保它具有對生成任務有用的屬性。
數學上,它表示如下 -
$$\mathrm{\mathcal{L}_{KL} \: = \: -\frac{1}{2} \displaystyle\sum\limits_{j=1}^d ( 1 \: + \: log(\sigma_{j}^{2}) \: - \: \mu_{j}^{2} \: - \: \sigma_{j}^{2})}$$
其中$\mathrm{\mu_{j}}$是潛在分佈的均值,$\mathrm{\sigma_{j}}$是潛在分佈的標準差。
總VAE損失
訓練VAE的總損失函式是兩個關鍵元件的總和,即重建損失和KL散度。
$$\mathrm{\mathcal{L}_{VAE} \: = \: \mathcal{L}_{reconstruction} \: + \: \mathcal{L}_{KL}}$$
此總損失確保模型從潛在空間準確地重建輸入,同時保持生成任務屬性。
結論
在潛在空間中使用機率方法使變分自動編碼器 (VAE) 成為傳統自動編碼器的強大擴充套件。這種變化允許VAE生成新的、真實的資料樣本,並使其在機器學習和資料科學領域的各種應用中非常有用。
在本章中,我們詳細討論了VAE、它們的損失函式以及它們與傳統自動編碼器的比較。瞭解VAE與傳統自動編碼器的區別以及VAE損失函式的作用對於有效地使用這些模型非常重要。