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

0 評論 3286 瀏覽 6 收藏 17 分鐘
🔗 技术知识、行业知识、业务知识等,都是B端产品经理需要了解和掌握的领域相关的知识,有助于进行产品方案设计和评估

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

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

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

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

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

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

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

二、2012年模糊的貓臉

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

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

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

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

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

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

四、2015年 谷歌的Deep Dream

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

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

Deep Dream原理:

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

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

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

五、2021年 OpenAI 推出 DALL-E

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

DALL-E 1

時間: 2021年1月

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

DALL-E 2

時間: 2022年4月

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

DALL-E 3

時間: 2023年10月

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

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

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

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

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

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

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

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

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

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

VAE(自分編碼器)

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

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

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

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

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

Diffusion(擴散模型)

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

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

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

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

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

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

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

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

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

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

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

核心的模型:CLIP+GAN

Midjourney 為閉源系統(tǒng)

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

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

核心模型:CLIP+diffusion+VAE

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

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

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

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

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

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
18100人已学习13篇文章
用户体验地图展示的是用户在体验一款产品和服务时的情感流程。本专题的文章分享了如何建立用户体验地图。
专题
15758人已学习13篇文章
作为一名产品经理,需要持续对自己的经验进行总结并不断更新迭代。本专题的文章分享了产品设计方法论。
专题
36820人已学习13篇文章
如何让你的事件营销深入人心?
专题
12905人已学习14篇文章
在项目完结时,我们经常需要进行项目复盘。那么一个好的项目复盘是怎样的?
专题
12094人已学习16篇文章
“老板记账”,这个词相信大家都不陌生,其实这个词就等同与我们现在的“消费金融”,就是把钱借给有消费需求的人用于消费,融合场景:消费时选择分期或借一笔钱去直接消费。
专题
13947人已学习12篇文章
4P指产品(Product)、定价(Price)、渠道(Place)、宣传(Promotion)。本专题的文章分享了解读4P营销理论。