AIGC名詞解釋:VAE 變分自編碼器

2023-10-05     新設技

原標題:AIGC名詞解釋:VAE 變分自編碼器

用設計師能理解的語言

來解釋AIGC中的技術名詞

AIGC 屬於跨學科的產物,涉及領域眾多,包括高等數學、統計學、計算機圖形圖像學、機器學習等各個領域。AIGC 設計軟體的介面上往往會涉及到許多這些領域的技術術語。要想搞清楚它們背後的知識體系需要展開的知識樹體量十分龐大繁雜。術業有專攻,我們無法全面俱到地在每一個領域都做到精通,但又需要了解到一定的程度,以便更好地使用 AIGC 的相關軟體。所以,我們將儘量以設計行業從業者能理解的語言來解釋那些經常遇到無法繞開的技術術語。

VAE 變分自編碼器

VAE 為 Variational AutoEncoder,變分自編碼器的英文縮寫,是一種基於深度學習的生成模型(論文:https://arxiv.org/abs/1312.6114 、 https://arxiv.org/abs/1606.05908 ),它是一種神經網絡,同屬於生成模型的還有著名的GAN,之後我們會講解。VAE 的核心是一個編碼器網絡和一個解碼器網絡,見圖1:

圖1:VAE 變分自編碼器的架構

  • 編碼器(Encoder):編碼器用來學習將自然數據集壓縮成潛空間中的點,這個點在坐標體系中的的坐標由潛在向量(latent vector)表示。潛在向量不是一個確定的點,而是一個分布(通常假設是正態分布)。

  • 解碼器(Decoder):解碼器用來從潛空間中的潛在向量中採樣,然後學習將這個採樣點進行識別,解碼為數據集(通常為圖像),這個數據集如果接近當初輸入給編碼器的圖像,就被確定這個解碼器合格了。

編碼器(Encoder):編碼器用來學習將自然數據集壓縮成潛空間中的點,這個點在坐標體系中的的坐標由潛在向量(latent vector)表示。潛在向量不是一個確定的點,而是一個分布(通常假設是正態分布)。

解碼器(Decoder):解碼器用來從潛空間中的潛在向量中採樣,然後學習將這個採樣點進行識別,解碼為數據集(通常為圖像),這個數據集如果接近當初輸入給編碼器的圖像,就被確定這個解碼器合格了。

編碼器和解碼器可以看作是兩個函數,一個用於將高維輸入的數據(如圖1)編碼為潛空間中的低維數據,另一個用於將潛空間中的低維數據解碼為輸出(如生成的圖片)。這兩個函數在神經網絡中一般用 CNN(卷積神經網絡,之後會有介紹)來構建的。

VAE是為了解決 AE(Auto Encoder 自動編碼器)的不足而產生的升級版本,為此我們需要先了解 AE。AE 如之前介紹潛空間時所說的,如果我們用於 AI 生圖領域,它的 Encoder 是將圖片編碼為潛空間中的數值,Decoder 是將數值再解碼成圖片。這樣在訓練過程中,隨著不斷降低輸入圖片與輸出圖片之間的誤差,AE 模型會過於擬合,缺乏泛化性能。也就是說,輸入某個訓練過的圖片,就只會將其編碼為某個確定的 code,反過來,輸入某個確定的 code 就只會輸出為某個確定的圖片,如果這個 code 是來自未訓練過的陌生圖片,那麼則無法生成出我們想要的那個陌生圖片。

如圖2,假設 AE 將「新月」圖片 encode 為 1(這裡假設編碼只有 1 維的數值),將 1 decode 後得到「新月」的圖片。將「滿月」 encode 成 10,同樣將 10 decode 得到「滿月」圖片。這時,如果我們給 AE 一個 code 值為 5,我們希望是能得到一個介乎於新月和滿月之間,類似「半月」的圖片,但由於之前未訓練過「半月」 圖片(既非「新月」也非「滿月」的圖片)對應的編碼為 5,那麼 AE 解碼後就無法得到「半月」的圖片,而是模糊的亂碼(之所以是亂碼,是由於 AE 採用的卷積神經網絡,運算過程是一個非線性的變換過程,所以點與點之間的遷移是非常沒有規律的)。

圖2:AE 僅訓練1為「新月」、10為「滿月」

當然,上面只是舉一個極簡單的例子方便大家理解 AE。AE 在實際運行中,編碼器把原數據壓縮進入了潛空間時是有壓縮損失的,配對運行的解碼器要通過運算解碼儘量復現編碼之前的數據狀態,這就意味著,編碼器和解碼器需要配對出現進行無數次的訓練,以求在解碼時得到最小的重構誤差。因此,AE 的工作重心是在數據的壓縮和恢復上,如何做到儘可能的復現初始狀態,而並不是在預測中間狀態和趨勢狀態上,所以過擬合的問題在所難免。

於是,預測中間狀態和趨勢狀態的工作則交給了VAE。為了解決AE過擬合與不泛化問題,VAE的思路是這樣的。首先不將圖片編碼成潛空間中的數值,而是將其編碼成一種潛空間中的「正態分布」數據集。如圖3,我們將「新月」圖片編碼成 = 1 的正態分布,那麼就相當於在 1 附近加了正態分布的噪聲,此時不僅單一數值 1 表示「新月」,而是 1 和 1 附近的正態分布的數值(即淺在向量)統一表示為「新月」,只是 1 的時候最像「新月」而已。越接近 1 附近的偏離值則越接近「新月」圖像狀態,反之越不像。當然要完成這樣的匹配需要一定量的新月以及接近新月的預訓練數據。同樣,將「滿月」映射成 =10 的正態分布,滿月和接近滿月的圖片的預訓練數據也需要充分。雖然我們並沒有訓練過半月的圖片數據,但當 code=5 時,就同時擁有了「新月」和「滿月」的部分正態分布機率,此時 decode 出來的大機率就是一個介乎於「新月」和「滿月」之間的圖片「半月」了。當然,這裡只是粗略地形象地比喻方法去解釋VAE的思路,實際在執行過程中還需要許多其他的變量加入其中。

圖3:VAE 訓練「新月」為1的正態分布、「滿月」為10的正態分布

VAE 比 AE 多出這個 V 就是 Variational ,就是變分、變量化的意思,同時也來源於統計學中的變分推理方法的意思 variational inference method 。

很明顯,我們在生活中遇到的問題要比這個複雜很多,決定某件事情發展的變量也很多,大部分這樣的問題都是以前沒有跟在前輩或老師身邊學習到的。如果非黑即白地面對,往往得不到理想的結果,此時需要一些「難得糊塗」地去理解事物,既要有原則,又要有相對可包容的分寸去把握,此時處理出來的結果,則會相對更好一些。

Stable Diffusion 中的 VAE 基於同樣的原理,他們往往能夠給圖像生成模型提供很好的輸出效果,尤其是在顏色飽和度方面作用顯著。

AIGC基礎知識

專業名詞解析

Stable Diffusion從入門到精通到實戰

專欄內容簡介

從AIGC的基礎概念介紹開始,以「喂飯級」的語言,逐一詳細介紹 Stable Diffusion WebUI 的各個參數與設置,配合詳細的圖文素材,並用大量實戰案例來解讀 Stable Diffusion 在目前各設計領域中的應用。

通過這個專欄,你會得到

AIGC的基礎概念、紮實的基礎知識;

AIGC圖像設計創作領域目前最重要的陣地——Stable Diffusion 的相關基礎知識、專業術語;

Stable Diffusion WebUI 軟體中每一個參數詳細功能介紹,原理,對應AI生圖的結果;

Stable Diffusion WebUI 的具體使用方法和技巧,各種模型介紹、周邊配套插件與軟體的使用方法和技巧;

Stable Diffusion WebUI 在實際設計產業中的應用、實戰解析;

Stable Diffusion 的提示詞庫、參數庫等;

購買全套課程的學員,享受半年免費 SD-WebUI(高性能GPU)線上使用權限,使用期限內無限出圖、高速出圖。

訂閱須知

《Stable Diffusion從入門到精通到實戰》為圖文/視頻專欄,不少於 20 期,每周五 21:00 點更新;

20 期更新結束後,專欄內容會根據 AIGC 領域的最新動態、Stable Diffusion 的不斷疊代而產生新內容,這些與時俱進的新內容無需額外付費;

添加一對一輔導員,及時收到通知更新內容,一對一解答疑難問題;

本專欄為虛擬內容服務,購買成功後不支持退款,請理解。

加輔導員微信諮詢

了解更詳細課程信息

一對一解答疑難問題

Stable Diffusion WebUI

從入門到精通再到實戰

完全喂飯級,細緻到每一個參數

「設計小白」都能看懂

有設計基礎的朋友更會得到啟發

抓住人工智慧工業革命帶來的新機遇

輔導員微信:cyxq2019

長按上方二維碼圖

在彈出菜單中選擇「打開對方的名片」

加輔導員微信,諮詢課程

文章來源: https://twgreatdaily.com/zh-my/c0dffe4f0b08eacbea6200497707b236.html