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 按愛心
2018/06/08, Nat, Boris, Alice, Ian (蠻牛小隊), VAE: A generative model for 2D anime character faces
很高興能與大家分享我們在 Variational Autoencoder (VAE) 應用於動漫角色影像生成方面的一些研究心得與實驗發現。對於剛接觸這個領域的新手研究員或學生而言,理解 VAE 的運作原理及其與傳統 Autoencoder (AE) 的差異是進入生成模型世界的重要第一步。
在深入 VAE 之前,我們先快速回顧一下傳統的 Autoencoder (AE)。對於新手來說,可以把 AE 想成是一個數據壓縮與解壓縮的過程。它的基本原理是透過一個稱為 Encoder 的神經網路,將高維度的輸入數據(例如一張圖片)壓縮成一個低維度的向量,這個向量位於一個我們稱為 Latent Space (潛在空間) 的地方,這個向量就是 Latent Vector (潛在向量)。然後,再透過另一個稱為 Decoder 的神經網路,將這個潛在向量還原回原始輸入數據的樣子。
AE 的核心目標很單純:訓練 Encoder 和 Decoder,使得還原出來的數據與原始輸入數據盡可能相似。這個過程主要用於資料的降維和特徵提取。
傳統 AE 將每個輸入數據點映射到潛在空間中的一個「點」。潛在空間中的數據會形成離散的 Clusters (群集),群集之間可能存在大量的「空白區域」。在這些空白區域進行採樣並解碼,結果往往是模糊不清甚至「爛掉」的圖像,無法生成有意義的新數據。
正因為傳統 AE 在生成方面的局限性,我們引入了 Variational Autoencoder (VAE)。VAE 不再將輸入圖像編碼為潛在空間中的一個單一的、固定的「點」,而是將其編碼為潛在空間中的一個「區域」或一個「分佈」,通常我們假定這是一個高斯分佈。
Encoder 輸出不再是直接的潛在向量,而是描述這個分佈的參數:一個 Mean Vector (μ,均值向量) 和一個 Standard Deviation Vector (σ,標準差向量)。Decoder 不是接收 Encoder 直接輸出的向量,而是從這個由 μ 和 σ 定義的高斯分佈中 Sampling (採樣) 得到一個潛在向量,再進行解碼。
VAE 之所以具有生成能力,就是因為引入了這個「分佈」的概念。即使在訓練數據點之間原本是「空白」的區域,VAE 透過學習到的連續分佈,可以在這些區域進行採樣,並解碼出合理且與附近訓練數據相關的圖像。
在 VAE 的潛在空間中,相似的數據分佈會形成一個更為集中且連續的區域,不像傳統 AE 那樣形成分散的離散群集。它同時追求資料分散(形成分佈)與聚集(保持群集特性),這也使得 VAE 的訓練難度相較於傳統 AE 更高。
Reparameterization Trick (重參數化技巧):解決採樣操作不可微分問題,使誤差能反向傳播。方法:從標準高斯分佈採樣 ε,再計算 `latent_vector = μ + σ * ε`。
Loss Function (損失函數):
最小化此聯合損失函數即為 VAE 的Optimize (優化)過程。
我們收集了約 4000 張動漫角色頭部圖片,使用 Titan 顯卡進行 1000 個世代訓練,潛在空間維度 50 維 (AE 為 256 維),圖像解析度 128x128 像素。
實驗證明 VAE 作為 Generative Model (生成模型) 的潛力。
提高解析度、增強特徵控制 (如 Conditional GANs)、處理更複雜數據集 (全身、多風格)、結合其他模型 (VAE-GAN, StyleGAN)、跨領域轉換 (Cosplay)。
Variational Autoencoder 為動漫角色影像生成提供了可行且富有潛力的研究途徑。透過學習連續且結構化的潛在空間分佈,VAE 能夠生成具有創意和連貫性的新圖像,並允許一定程度的特徵操控與角色融合。儘管挑戰仍存,此技術在動漫、遊戲等創意產業中具廣闊應用前景。