AI繪畫的發展歷史(GAN、diffusion、VAE…)

0 評論 1479 瀏覽 3 收藏 17 分鐘

除了使用工具外,可能很多同學也想了解這些生圖工具的原理,演進歷史等,那本篇文章主要為大家介紹一下AI生圖的歷史以及目前部分主流的網絡模型運行機制。

隨著像midjourney、stable diffusion、DALL-E 這些生圖模型的問世,越來越多的同學開始用上了AI生圖工具,類似文章配圖,文章封面這類創作場景都可以直接用AI產出的圖片,可以說節省了成本的同時提供了很大的便利。

一、20世紀70年 AARON AI繪畫問世

最早的AI繪畫追溯到20世紀70年代,藝術家哈羅德·科恩(Harold Cohen)發明了AARON,AARON最大的一個特點就是通過機械臂輸出作畫的,當然這套機器的背后也是通過計算機程序圍繞規則和算法驅動的,下面為大家展示一些AARON繪畫的作品:

圖片風格有點像我上小學那會兒學科課本上的插畫樣式帶點抽象風格,90年代的”AARON”已經能夠使用多種顏色進行繪畫,并在三維空間中創作,AARON的迭代改進持續了幾十年,直到今天它還仍然在創作。

2006年, 出現了一個類似ARRON的電腦繪畫產品 The Painting Fool. 它是倫敦大學金史密斯學院的計算機創作學教授Colton的作品,它可以觀察照片, 提取照片里的塊顏色信息, 使用現實中的繪畫材料如油漆, 粉彩或者和鉛筆等進行創作,Painting Fool作品如下:

以上都是屬于“古典”的AI繪圖模型,我們現代的AI繪畫屬于基于深度神經網絡基礎上產生的,最早也要追溯到2012年吳恩達訓練出的能生成“貓臉”的模型。

二、2012年模糊的貓臉

2012年,谷歌的吳恩達和Jeff Dean使用深度學習模型,基于大量貓臉圖片訓練出了一個能夠生成模糊貓臉的模型,這標志著AI繪畫的一個重要起點,他們使用了他們使用了1.6萬個CPU核心和來自YouTube的一千萬張貓臉圖片,進行了為期3天的訓練,成功訓練出了一個能夠生成模糊貓臉的深度神經網絡模型,通過模型生成的貓臉圖像參照下面這張圖:

盡管生成的圖像質量并不高,但這個實驗標志著深度學習在圖像生成領域的一個重大進步。它證明了深度學習模型能夠學習到圖像的復雜特征,并用于生成新的圖像內容。這個實驗使用了卷積神經網絡(CNN),這是一種特別適用于圖像識別和處理的深度學習架構。這個模型在之前的介紹GPT中的神經網絡演進歷史有講到過,這篇文章就不再詳細介紹了。

三、2014年生成式對抗網絡(GAN)

2014年,加拿大蒙特利爾大學Ian Goodfellow等人提出的生成對抗網絡算法為AI繪畫帶來了新的發展,它本質上是通過生成器和判別器的對抗過程來生成圖像,下面詳細介紹它的訓練原理:

上述圖中有兩個模型:生成器和判別器,這兩個模型分別都有一個目標,對于生成器來說,它的目的是讓自己生成的圖能夠騙過判別器,讓它認為這張圖就是原始數據庫中的真實圖片而非模型生成的,這種情況下輸出結果越趨近于1(1為真)就能說明生成模型效果越好;對于判斷器來說,它的目的是有效地辨別出生成器生成的圖片,這種情況下輸出結果越趨近于0(0為假)就能說明判別模型效果越好;這樣的話就形成了所謂的對抗(GAN),一個想讓生成結果更趨向于1,一個想讓生成的結果更趨向于0,生成的結果數值會給到兩個模型和訓練目標比對(一個目標是0,一個目標是1)后分別進行Fine tune(優化模型參數);那什么情況下算是訓練好了呢?這里就有一個納什均衡的概念,就是說當輸出的結果無限趨近于0.5,0和1的中間值那么就算是把這個生成器訓練完了。這個時候生成器生成的圖片效果無限逼近于原始圖了。

我們現在熟知的Midjourney底層就是基于GAN模型。

四、2015年 谷歌的Deep Dream

2015年,谷歌推出了”深夢”(Deep Dream)圖像生成工具,盡管它更像是一個高級濾鏡,但它也標志著AI繪畫技術的進步,我們可以先看一下Deep Dream生圖的效果:

上面那排是原始訓練的數據集,下面那排是Deep Dream 生成的像夢境般的迷幻圖。

Deep Dream原理:

假設輸入圖像是X,這個輸入圖像可以是隨機噪音,也可以是一個圖像。把這個圖像輸入到卷積神經網絡中,它輸出的結果是各個類別的概率,這里卷積神經網絡就是一個分類機器,怎樣得到Deep Dream圖像呢?需要指定一個標簽。比如想要生成海星狀的圖像,就需要把目標標簽指定為海星,然后通過海星和預測結果的類別之間的誤差,反向傳播到輸入圖像,去優化輸入的圖像X,如果優化后的X通過卷積神經網絡后得到的海星標簽的概率很高,那么就得到了類似海星的圖像。

注意:這里調整的是輸入圖像的像素值而不是卷積神經網絡。在Deep Dream項目中,用到的卷積神經網絡的參數是固定的,調整的僅是輸入的圖像。

無論是14年的GAN還是15年的DeepDream都還沒有實現文字->圖片,直到2021年Open AI推出的生圖模型DALL-E的誕生。

五、2021年 OpenAI 推出 DALL-E

DALL- E模型的革命性的意義是實現了文字->圖片的生成模式,相當于用戶輸入prompt給DALL-E,DALL-E就能生成文字對應的圖片,DALL-E截止目前已經更新到了第三個版本,每個版本使用的模型可以說差別都挺大的,這個三個版本涉及到的主要模型如下:

DALL-E 1

時間: 2021年1月

模型基礎: GPT-3(Transformer) + VAE(自分編碼器)

DALL-E 2

時間: 2022年4月

模型基礎: CLIP(視覺語言預訓練模型) + Diffusion(擴散模型)

DALL-E 3

時間: 2023年10月

模型基礎:CLIP + VAE + Diffusion(擴散模型)

下面是網上找到的DALL-E2和DALL- E3的對比圖:

上述涉及的模型比較多,但我們可以將其進行歸類,一類是圖像描述生成模型(將用戶的Prompt轉換成生圖模型理解的描述),例如:GPT-3(Transformer)、CLIP(視覺語言預訓練模型);另外一類是圖像生成,模型 VAE(自分編碼器)、Diffusion(擴散模型)。那么下面我們就分別來看看這些模型的原理:

CLIP(視覺語言預訓練模型)

中心思想:基于4億個圖像-文本對的數據集,自監督學習的方式實現最大化文本和圖像的關聯關系。

1)具體步驟為:數據集準備:收集大量的圖像和文本對。這些圖像和文本對可以是成對的,也可以是單獨的圖像或文本。理想情況下,這些數據應該涵蓋廣泛的類別和場景。

2)特征提?。菏褂妙A訓練的卷積神經網絡(CNN)作為圖像編碼器,從圖像中提取特征。對于文本,可以使用預訓練的語言模型(如BERT)來提取文本特征。

3)正負樣本對:為每個圖像生成正樣本對(與圖像匹配的文本描述)和負樣本對(與圖像不匹配的文本描述)。這可以通過從數據集中隨機選擇或使用專門的數據增強技術來實現。

4)對比學習:CLIP模型的核心是對比學習,它通過最大化正樣本對之間的相似度并最小化負樣本對之間的相似度來訓練模型。這通常通過一個對比損失函數來實現。

5)迭代訓練:重復上述步驟,直到模型在驗證集上的性能不再顯著提升或達到預定的迭代次數。

VAE(自分編碼器)

VAE(自分編碼器)也是一個生圖模型,我們在了解VAE(自分編碼器)之前可以先了解下它的前生AE(自動編碼器)

AE模型由兩部分組成,編碼器(Encoder)和解碼器(Encoder),可以理解為是兩個神經網絡層,前者是將高維輸入(圖片)映射為低維編碼(code),后者將低維編碼(code)映射為高維圖片。這樣的架構下生成的圖片效果并不是很理想,原因是過擬合,泛化性不好,下面用一個例子來解釋下這個缺點:

如果我們讓 AE 這套架構先去學習“新月”和“滿月”兩個數據,其中“新月”輸出的 code=1 而滿月輸出的 code=10,這時候想讓訓練好的 AE 輸出“半月”也就是 code=5,效果是不理想的,原因模型訓練都是固定的輸入和輸出,中間沒有灰度,所以為了解決這個問題,那么下面講到的 VAE 就橫空出世了。

VAE 是怎么解決 AE 的缺陷的呢,同樣用“新月”“滿月”的例子,如下圖:

我們可以簡單理解為在 AE 的基礎上增加了正太函數,使得不僅僅code=1 為“新月”,code=0.9、0.8、1.1…同樣具備新月的特征,同理不僅僅code=10 為“滿月”,code=10.5、11、9.5…同樣具備滿月的特征,那當 code=5 時候就同時具備了滿月和新月的特征,輸出的結果就比較理想。

Diffusion(擴散模型)

同樣Diffusion(擴散模型)也是一個生圖模型,相比上文提到的GAN(對抗生成網絡)和AVE(自分編碼器)的優勢在于生成的圖片質量更高且訓練過程可控穩定但計算資源消耗較大,我們來看下擴散模型的生圖原理:

簡單來說 diffusion models 就是一個通過給圖片加噪,再反向減噪還原圖片的過程,還原的過程中會涉及到一個 unet 網絡去預測還原的噪聲。具體步驟如下:

1. 將數據集中的圖像加噪:

2. 反向引入 unet 網絡預測噪聲,這里涉及到unet網絡如何訓練:

  • 引入一個隨機噪聲圖像;
  • 隨機噪聲圖像代入到 unet 網絡,網絡預測產生了多少噪聲;
  • 將隨機圖像-噪聲 得到圖片結果;
  • 將圖片結果和實際正確圖片進行比對產生誤差后反向調整模型,直到顯示正確的圖像。
  • 不同的圖片數據集反復形成一個合格的 unet 網絡。

3. 有了 unet 網絡,就可以還原數據集中的圖片:隨機噪聲-unet 網絡預測的噪聲

備注:這里面可以了解下馬爾可夫鏈的相關知識,油管地址:https://www.youtube.com/watch?v=2NruDWUyXBk&t=194s

馬爾可夫鏈在這里可以簡單理解為,結果不受初始值(隨機噪聲)的影響,通過馬爾可夫鏈計算函數可以預測到固定的結果,所以我們可以引入隨機的噪音。

我們現在熟知的stable diffusion主要就是基于diffusion生圖模型。

到這里DALL-E模型就基本介紹完了,接下來介紹的就是我們眾所周知的Midjourney喝Stable Diffusion兩個圖片生成AI了,而他們所用的模型基本在前面的內容中都介紹了,所以我們就不再擴展,簡單介紹下他們用的模型以及一些生圖的效果。

八、2022年3月 AI繪畫工具 Midjourney 問世

核心的模型:CLIP+GAN

Midjourney 為閉源系統

* 圖片來源互聯網,若有侵權請聯系作者刪除

九、2022年8月 AI繪畫工具 stable diffusion 問世

核心模型:CLIP+diffusion+VAE

stable diffusion為開源系統

*文章圖片來源互聯網,若有侵權請聯系作者刪除

本文由 @產品蕭書 原創發布于人人都是產品經理。未經作者許可,禁止轉載

題圖來自 Pixabay,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!