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

0 評論 2298 瀏覽 6 收藏 17 分鐘

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

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

一、20世紀(jì)70年 AARON AI繪畫問世

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

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

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

以上都是屬于“古典”的AI繪圖模型,我們現(xiàn)代的AI繪畫屬于基于深度神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上產(chǎn)生的,最早也要追溯到2012年吳恩達(dá)訓(xùn)練出的能生成“貓臉”的模型。

二、2012年模糊的貓臉

2012年,谷歌的吳恩達(dá)和Jeff Dean使用深度學(xué)習(xí)模型,基于大量貓臉圖片訓(xùn)練出了一個能夠生成模糊貓臉的模型,這標(biāo)志著AI繪畫的一個重要起點(diǎn),他們使用了他們使用了1.6萬個CPU核心和來自YouTube的一千萬張貓臉圖片,進(jìn)行了為期3天的訓(xùn)練,成功訓(xùn)練出了一個能夠生成模糊貓臉的深度神經(jīng)網(wǎng)絡(luò)模型,通過模型生成的貓臉圖像參照下面這張圖:

盡管生成的圖像質(zhì)量并不高,但這個實(shí)驗(yàn)標(biāo)志著深度學(xué)習(xí)在圖像生成領(lǐng)域的一個重大進(jìn)步。它證明了深度學(xué)習(xí)模型能夠?qū)W習(xí)到圖像的復(fù)雜特征,并用于生成新的圖像內(nèi)容。這個實(shí)驗(yàn)使用了卷積神經(jīng)網(wǎng)絡(luò)(CNN),這是一種特別適用于圖像識別和處理的深度學(xué)習(xí)架構(gòu)。這個模型在之前的介紹GPT中的神經(jīng)網(wǎng)絡(luò)演進(jìn)歷史有講到過,這篇文章就不再詳細(xì)介紹了。

三、2014年生成式對抗網(wǎng)絡(luò)(GAN)

2014年,加拿大蒙特利爾大學(xué)Ian Goodfellow等人提出的生成對抗網(wǎng)絡(luò)算法為AI繪畫帶來了新的發(fā)展,它本質(zhì)上是通過生成器和判別器的對抗過程來生成圖像,下面詳細(xì)介紹它的訓(xùn)練原理:

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

我們現(xiàn)在熟知的Midjourney底層就是基于GAN模型。

四、2015年 谷歌的Deep Dream

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

上面那排是原始訓(xùn)練的數(shù)據(jù)集,下面那排是Deep Dream 生成的像夢境般的迷幻圖。

Deep Dream原理:

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

注意:這里調(diào)整的是輸入圖像的像素值而不是卷積神經(jīng)網(wǎng)絡(luò)。在Deep Dream項(xiàng)目中,用到的卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)是固定的,調(diào)整的僅是輸入的圖像。

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

五、2021年 OpenAI 推出 DALL-E

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

DALL-E 1

時間: 2021年1月

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

DALL-E 2

時間: 2022年4月

模型基礎(chǔ): CLIP(視覺語言預(yù)訓(xùn)練模型) + Diffusion(擴(kuò)散模型)

DALL-E 3

時間: 2023年10月

模型基礎(chǔ):CLIP + VAE + Diffusion(擴(kuò)散模型)

下面是網(wǎng)上找到的DALL-E2和DALL- E3的對比圖:

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

CLIP(視覺語言預(yù)訓(xùn)練模型)

中心思想:基于4億個圖像-文本對的數(shù)據(jù)集,自監(jiān)督學(xué)習(xí)的方式實(shí)現(xiàn)最大化文本和圖像的關(guān)聯(lián)關(guān)系。

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

2)特征提取:使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為圖像編碼器,從圖像中提取特征。對于文本,可以使用預(yù)訓(xùn)練的語言模型(如BERT)來提取文本特征。

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

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

5)迭代訓(xùn)練:重復(fù)上述步驟,直到模型在驗(yàn)證集上的性能不再顯著提升或達(dá)到預(yù)定的迭代次數(shù)。

VAE(自分編碼器)

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

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

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

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

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

Diffusion(擴(kuò)散模型)

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

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

1. 將數(shù)據(jù)集中的圖像加噪:

2. 反向引入 unet 網(wǎng)絡(luò)預(yù)測噪聲,這里涉及到unet網(wǎng)絡(luò)如何訓(xùn)練:

  • 引入一個隨機(jī)噪聲圖像;
  • 隨機(jī)噪聲圖像代入到 unet 網(wǎng)絡(luò),網(wǎng)絡(luò)預(yù)測產(chǎn)生了多少噪聲;
  • 將隨機(jī)圖像-噪聲 得到圖片結(jié)果;
  • 將圖片結(jié)果和實(shí)際正確圖片進(jìn)行比對產(chǎn)生誤差后反向調(diào)整模型,直到顯示正確的圖像。
  • 不同的圖片數(shù)據(jù)集反復(fù)形成一個合格的 unet 網(wǎng)絡(luò)。

3. 有了 unet 網(wǎng)絡(luò),就可以還原數(shù)據(jù)集中的圖片:隨機(jī)噪聲-unet 網(wǎng)絡(luò)預(yù)測的噪聲

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

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

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

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

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

核心的模型:CLIP+GAN

Midjourney 為閉源系統(tǒng)

* 圖片來源互聯(lián)網(wǎng),若有侵權(quán)請聯(lián)系作者刪除

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

核心模型:CLIP+diffusion+VAE

stable diffusion為開源系統(tǒng)

*文章圖片來源互聯(lián)網(wǎng),若有侵權(quán)請聯(lián)系作者刪除

本文由 @產(chǎn)品蕭書 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自 Pixabay,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!