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. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心

2018/06/08, Nat, Boris, Alice, Ian (蠻牛小隊), VAE: A generative model for 2D anime character faces

動漫角色影像生成之研究筆記與新手入門指南

🎵 不聽可惜的 NotebookLM Podcast @ Google 🎵

前言 Introduction

很高興能與大家分享我們在 Variational Autoencoder (VAE) 應用於動漫角色影像生成方面的一些研究心得與實驗發現。對於剛接觸這個領域的新手研究員或學生而言,理解 VAE 的運作原理及其與傳統 Autoencoder (AE) 的差異是進入生成模型世界的重要第一步。

從 Autoencoder (AE) 談起 Understanding Autoencoders

在深入 VAE 之前,我們先快速回顧一下傳統的 Autoencoder (AE)。對於新手來說,可以把 AE 想成是一個數據壓縮與解壓縮的過程。它的基本原理是透過一個稱為 Encoder 的神經網路,將高維度的輸入數據(例如一張圖片)壓縮成一個低維度的向量,這個向量位於一個我們稱為 Latent Space (潛在空間) 的地方,這個向量就是 Latent Vector (潛在向量)。然後,再透過另一個稱為 Decoder 的神經網路,將這個潛在向量還原回原始輸入數據的樣子。

AE 的核心目標很單純:訓練 Encoder 和 Decoder,使得還原出來的數據與原始輸入數據盡可能相似。這個過程主要用於資料的降維特徵提取

傳統 AE 的生成限制 Limitations in Generation

傳統 AE 將每個輸入數據點映射到潛在空間中的一個「點」。潛在空間中的數據會形成離散的 Clusters (群集),群集之間可能存在大量的「空白區域」。在這些空白區域進行採樣並解碼,結果往往是模糊不清甚至「爛掉」的圖像,無法生成有意義的新數據。

Variational Autoencoder (VAE) Introducing VAEs

正因為傳統 AE 在生成方面的局限性,我們引入了 Variational Autoencoder (VAE)。VAE 不再將輸入圖像編碼為潛在空間中的一個單一的、固定的「點」,而是將其編碼為潛在空間中的一個「區域」或一個「分佈」,通常我們假定這是一個高斯分佈。

Encoder 輸出不再是直接的潛在向量,而是描述這個分佈的參數:一個 Mean Vector (μ,均值向量) 和一個 Standard Deviation Vector (σ,標準差向量)。Decoder 不是接收 Encoder 直接輸出的向量,而是從這個由 μ 和 σ 定義的高斯分佈中 Sampling (採樣) 得到一個潛在向量,再進行解碼。

VAE 之所以具有生成能力,就是因為引入了這個「分佈」的概念。即使在訓練數據點之間原本是「空白」的區域,VAE 透過學習到的連續分佈,可以在這些區域進行採樣,並解碼出合理且與附近訓練數據相關的圖像。

在 VAE 的潛在空間中,相似的數據分佈會形成一個更為集中且連續的區域,不像傳統 AE 那樣形成分散的離散群集。它同時追求資料分散(形成分佈)與聚集(保持群集特性),這也使得 VAE 的訓練難度相較於傳統 AE 更高。

VAE 的模型架構與訓練要點 VAE Architecture & Training

模型架構 Model Architecture

  • Encoder Network:接收輸入圖像,通常使用 Convolution (卷積) 層來提取圖像特徵。
  • 輸出分佈參數:Encoder 輸出兩個向量:Mean Vector (μ) 和 Standard Deviation Vector (σ)。
  • Sampling (採樣):從以 μ 為均值、σ 為標準差的高斯分佈中採樣得到一個 Latent Vector。
  • Decoder Network:接收採樣得到的 Latent Vector,通常使用 Deconvolution (反卷積) / Transposed Convolution 層來逐步重建圖像。
  • 輸出生成圖像:Decoder 輸出與原始輸入圖像具有相同尺寸的生成圖像。

訓練關鍵 Key Training Aspects

Reparameterization Trick (重參數化技巧):解決採樣操作不可微分問題,使誤差能反向傳播。方法:從標準高斯分佈採樣 ε,再計算 `latent_vector = μ + σ * ε`。

Loss Function (損失函數)

  • Reconstruction Loss (重建損失):度量生成圖像與原始圖像的相似度 (如 L2 Loss)。
  • KL Divergence (Kullback-Leibler Divergence):度量潛在分佈與標準高斯先驗分佈的差異,促使潛在空間光滑連續。

最小化此聯合損失函數即為 VAE 的Optimize (優化)過程。

動漫角色影像生成實驗與發現 Experiments & Findings

我們收集了約 4000 張動漫角色頭部圖片,使用 Titan 顯卡進行 1000 個世代訓練,潛在空間維度 50 維 (AE 為 256 維),圖像解析度 128x128 像素。

主要發現 Key Observations

實驗證明 VAE 作為 Generative Model (生成模型) 的潛力。

挑戰與未來展望 Challenges & Future

挑戰 Current Challenges

未來展望 Future Directions

提高解析度、增強特徵控制 (如 Conditional GANs)、處理更複雜數據集 (全身、多風格)、結合其他模型 (VAE-GAN, StyleGAN)、跨領域轉換 (Cosplay)。

總結 Conclusion

Variational Autoencoder 為動漫角色影像生成提供了可行且富有潛力的研究途徑。透過學習連續且結構化的潛在空間分佈,VAE 能夠生成具有創意和連貫性的新圖像,並允許一定程度的特徵操控與角色融合。儘管挑戰仍存,此技術在動漫、遊戲等創意產業中具廣闊應用前景。