隨著Disco、Midjourney、dreamstudio 、AIGC、Stable Diffusion、Imagen、深度學(xué)習(xí)、高性能計(jì)算、數(shù)據(jù)分析、數(shù)據(jù)挖掘等技術(shù)的快速發(fā)展,AI繪畫技術(shù)得到迅速發(fā)展。
即使今年年初的AI繪畫和現(xiàn)在相比,效果也有天壤之別。我們所說(shuō)的“AI繪畫”概念是指基于深度學(xué)習(xí)模型自動(dòng)作圖的計(jì)算機(jī)程序——把“語(yǔ)言描述”通過AI理解自動(dòng)變成圖像。目前文本自動(dòng)語(yǔ)音識(shí)別技術(shù)已經(jīng)極其成熟,本質(zhì)上是一個(gè)從文本到圖像的AI繪畫過程。
AI繪畫模型如何訓(xùn)練?
在深度學(xué)習(xí)中,經(jīng)常聽到“模型訓(xùn)練”這個(gè)詞,但模型是什么?又是怎么訓(xùn)練出來(lái)的呢?在人工智能中,當(dāng)面對(duì)大量數(shù)據(jù)時(shí),要在雜亂無(wú)章的內(nèi)容中準(zhǔn)確、輕松地識(shí)別并輸出所需的圖像/語(yǔ)音并不容易。因此算法就顯得尤為重要。算法也是模型。
算法的內(nèi)容除核心識(shí)別引擎,還包括各種配置參數(shù),如:語(yǔ)音智能識(shí)別的比特率、采樣率、音色、音調(diào)、音高、音頻、節(jié)奏、方言、噪聲等。成熟的識(shí)別引擎,核心內(nèi)容一般不會(huì)經(jīng)常變化。為了達(dá)到“成功識(shí)別”的目的,就只能調(diào)整配置參數(shù)。
對(duì)不同輸入,將配置不同的參數(shù)值。最后,在結(jié)果統(tǒng)計(jì)中取一組均衡且識(shí)別率高的參數(shù)值。這組參數(shù)值是訓(xùn)練后得到的結(jié)果,是訓(xùn)練的過程,也叫模型訓(xùn)練。
一、深度學(xué)習(xí)框架在其中發(fā)揮的作用是?
首先用tensorflow、pytorch或者paddlepaddle寫一段python代碼組建一個(gè)神經(jīng)網(wǎng)絡(luò)模型,然后對(duì)其進(jìn)行訓(xùn)練,達(dá)到一定精度后保存模型,最后基于訓(xùn)練好的模型做圖像識(shí)別、語(yǔ)音識(shí)別等任務(wù)。那么問題來(lái)了,這一切都是誰(shuí)來(lái)計(jì)算的呢?答案是后臺(tái)框架。所寫的python代碼,無(wú)非是前端API,真正調(diào)用后端C或C++計(jì)算邏輯,而前端python API和后端計(jì)算邏輯通過pybind綁定。
深度學(xué)習(xí)框架的基本功能是提供一系列的算子,支持前向計(jì)算和反向梯度更新。如此說(shuō)來(lái),框架應(yīng)該很簡(jiǎn)單。然而由于OP數(shù)量很大,比如卷積,全連接,各種激活函數(shù)(如Relu,Sigmoid),各種梯度更新算法(如Adam,RMS)等。其次,在組建神經(jīng)網(wǎng)絡(luò)模型時(shí),需要提供靜態(tài)圖模式和動(dòng)態(tài)圖模式。動(dòng)態(tài)圖模式是我們平時(shí)寫代碼的邏輯,do A ->do B ->do C,按流程順序執(zhí)行任務(wù),每寫一行代碼就能得到相應(yīng)的結(jié)果。靜態(tài)圖模式即用戶寫的代碼只是為了建一個(gè)圖,在圖建好之后就會(huì)執(zhí)行。圖形執(zhí)行后就可以得到結(jié)果,而不是像動(dòng)態(tài)圖那樣實(shí)時(shí)得到結(jié)果。靜態(tài)圖有什么好處?答案是促進(jìn)性能優(yōu)化。通過優(yōu)化這個(gè)圖的結(jié)構(gòu),程序執(zhí)行效率更高。
靜態(tài)圖中的“圖”也叫SSA Graph,是一種有向無(wú)環(huán)單靜態(tài)賦值圖。這個(gè)圖是怎么構(gòu)造的?怎么形容呢?如何將其序列化為二進(jìn)制字節(jié)流并在不同進(jìn)程間傳遞?是如何實(shí)現(xiàn)的?是如何優(yōu)化的?還有,如何存儲(chǔ)樣本數(shù)據(jù)??jī)?nèi)存?緩存?SSD?
更重要的是,隨著模型越來(lái)越大,參數(shù)規(guī)模達(dá)到百億、千億,甚至萬(wàn)億,這對(duì)模型的訓(xùn)練性能提出了非常高的要求。一個(gè)高性能的訓(xùn)練框架不僅可以大大縮短訓(xùn)練時(shí)間,還可以大大節(jié)省硬件資源。另外,在推薦領(lǐng)域,大規(guī)模的稀疏參數(shù)需要大量的存儲(chǔ)空間,不是單機(jī)能夠容納的,需要分布式文件系統(tǒng)的幫助。
考慮到各種不同廠商的AI芯片,如英偉達(dá)的GPU,華為的昇騰、百度的昆侖等芯片,想要充分利用這些高性能AI硬件的能力,軟件必須與這些硬件兼容,它們的編程語(yǔ)法和編譯方法與Intel的x86 CPU不同,如cuda編程等。而且硬件涉及到通訊問題,比如nccl。自然,CPU參數(shù)服務(wù)器演變成了異構(gòu)參數(shù)服務(wù)器。參數(shù)系統(tǒng)中涉及到多種并行優(yōu)化策略,如數(shù)據(jù)并行、模型并行、流水線并行、混合并行、自動(dòng)并行等。
二、AI模型如何訓(xùn)練?
訓(xùn)練模型需要AI框架,如MindSpore。具體怎么訓(xùn)練一個(gè)AI模型?昇思mindspore之前發(fā)布了一個(gè)詳細(xì)的案例,訓(xùn)練模型是LeNet5模型,用于分類手寫數(shù)字圖片。MindSpore是華為推出的全場(chǎng)景AI計(jì)算框架。2020年3月28日,MindSpore正式宣布開源。
首先是安裝MindSpore,為用戶提供Python接口。安裝時(shí),選擇合適的版本、硬件平臺(tái)、操作系統(tǒng)、編程語(yǔ)言和安裝方法。其次是定義模型,安裝完成后,可以導(dǎo)入MindSpore提供的算子(卷積、全連接、池化等函數(shù))來(lái)構(gòu)建模型。
接下來(lái)是導(dǎo)入訓(xùn)練數(shù)據(jù)集,什么是訓(xùn)練數(shù)據(jù)集呢,剛剛定義好的模型是不能對(duì)圖片進(jìn)行正確分類的,要通過訓(xùn)練過程來(lái)調(diào)整模型的參數(shù)矩陣的值。訓(xùn)練過程就需要用到訓(xùn)練樣本,也就是打上了正確標(biāo)簽的圖片。這就好比教小孩兒認(rèn)識(shí)動(dòng)物,需要拿幾張圖片給他們看,告訴他們這是什么,教了幾遍之后,小孩兒就能認(rèn)識(shí)了。
其次是導(dǎo)入訓(xùn)練數(shù)據(jù)集。什么是訓(xùn)練數(shù)據(jù)集呢?新定義的模型不能正確分類圖片。需要通過訓(xùn)練過程來(lái)調(diào)整模型的參數(shù)矩陣的值。訓(xùn)練過程需要訓(xùn)練樣本,即正確標(biāo)注的圖片。
這里需要用MNIST數(shù)據(jù)集來(lái)訓(xùn)練LeNet5模型。這個(gè)數(shù)據(jù)集由訓(xùn)練集(6萬(wàn)張圖片)和測(cè)試集(1萬(wàn)張圖片)兩部分組成,都是從0到9的黑白手寫數(shù)字圖片。
再接下來(lái)就是訓(xùn)練模型,訓(xùn)練數(shù)據(jù)集和模型定義完成后,就可以開始訓(xùn)練模型了。在訓(xùn)練之前,還需要從MindSpore導(dǎo)入兩個(gè)函數(shù):損失函數(shù),就是衡量預(yù)測(cè)結(jié)果和真實(shí)標(biāo)簽之間的差距的函數(shù);優(yōu)化器,用來(lái)求解損失函數(shù)關(guān)于模型參數(shù)的更新梯度的。準(zhǔn)備好之后,開始訓(xùn)練,把前面定義好的模型、損失函數(shù)、優(yōu)化器封裝成一個(gè)Model,使用model.train接口就可以訓(xùn)練LeNet5模型了。最后就是測(cè)試訓(xùn)練后的模型準(zhǔn)確率。
然后是訓(xùn)練模型,訓(xùn)練數(shù)據(jù)集和模型的定義完成后,就可以開始訓(xùn)練模型了。訓(xùn)練前需要從MindSpore導(dǎo)入兩個(gè)函數(shù):loss function,是衡量預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽差距的函數(shù);優(yōu)化器,用于求解損失函數(shù)相對(duì)于模型參數(shù)的更新梯度。準(zhǔn)備好了,就開始訓(xùn)練。將先前定義的模型、損失函數(shù)和優(yōu)化器封裝到一個(gè)模型中,并使用model.train接口來(lái)訓(xùn)練LeNet5模型。最后,對(duì)訓(xùn)練后模型的準(zhǔn)確性進(jìn)行了檢驗(yàn)。
市面上AI繪畫模型有哪些?
今年以來(lái), 輸入文本描述自動(dòng)生成圖片的AI繪畫神器突然如雨后春筍似的冒了出來(lái)。下面分別對(duì)Disco Diffusion、Midjourney、DALL·E 2、Imagen、Parti、Stable Diffusion等技術(shù)進(jìn)行簡(jiǎn)單介紹。
一、Disco Diffusion
Disco Diffusion 是在今年 2 月初開始爆紅的一個(gè) AI 圖像生成程序,可以根據(jù)描述場(chǎng)景的關(guān)鍵詞渲染出對(duì)應(yīng)的圖像。
Disco Diffusion(DD)是一個(gè)CLIP指導(dǎo)的AI圖像生成技術(shù),簡(jiǎn)單來(lái)說(shuō),Diffusion是一個(gè)對(duì)圖像不斷去噪的過程,而CLIP模型負(fù)責(zé)對(duì)圖像的文本描述。
二、Midjourney
相較于Disco Diffusion,Midjourney界面更友好(不需要任何代碼)生成時(shí)間更短(一張一分鐘左右)細(xì)節(jié)更精細(xì)、完整度更高。如果Disco Diffusion基本等于初級(jí)原畫師的能力,或者僅限于創(chuàng)作者進(jìn)行頭腦風(fēng)暴;那Midjourney或許已經(jīng)達(dá)到了可以直接生產(chǎn)工業(yè)級(jí)高質(zhì)量成品的地步。
三、DALL·E 2
DALL·E 2基于CLIP/unCLIP 機(jī)制的。首先,為了獲得完整的圖像生成模型,將CLIP 圖像嵌入到解碼器和先驗(yàn)?zāi)P椭?,該先?yàn)?zāi)P透鶕?jù)給定的文本標(biāo)題生成可能的CLIP 圖像嵌入。將完整文本條件圖像生成堆棧稱為 unCLIP,因?yàn)樗ㄟ^顛倒 CLIP 圖像編碼器來(lái)生成圖像。訓(xùn)練數(shù)據(jù)集由圖像X及其對(duì)應(yīng)標(biāo)題y的對(duì)(X,y)組成,設(shè)zi和zt分別為其 CLIP 圖像和文本嵌入。
DALL·E 2 快速發(fā)展的背后,其實(shí)是人工智能由感知智能到認(rèn)知智能的全面升級(jí),而這其中的創(chuàng)造性是 AI 今后發(fā)展的最大助力,比如金融行業(yè)的呼叫中心需要分析客戶的語(yǔ)氣,以快速處理投訴類案例;出行類 APP 遇到客戶說(shuō)出某些關(guān)鍵詞時(shí),則需要立刻與 110 聯(lián)動(dòng)報(bào)警。這些應(yīng)用場(chǎng)景其實(shí)都需要 AI 模型放棄原先死板僵硬的計(jì)算,而發(fā)展出某種活性。而一旦 AI 擁有創(chuàng)意,那么就可以和二次元特性進(jìn)行結(jié)合,尤其是 90、00 后的年輕人們,在對(duì)話當(dāng)中經(jīng)常使用表情圖、動(dòng)態(tài)圖等方式來(lái)表達(dá)情感,而將這些非語(yǔ)言信息的語(yǔ)義提取并翻譯出來(lái),就需要一定的創(chuàng)意了。再進(jìn)一步,AI 未來(lái)很可能會(huì)達(dá)到比你自己更懂你的程度。比如前段時(shí)間小藍(lán)經(jīng)常熬夜加班,結(jié)果打開淘寶會(huì)發(fā)現(xiàn)總給我推薦防脫洗發(fā)水。
雖然短期來(lái)看,創(chuàng)造性 AI 還略顯遙不可及,但是 DALL·E 2 的出現(xiàn),讓我們看到了希望,讓我們做好準(zhǔn)備迎接新一代認(rèn)知 AI 產(chǎn)品的到來(lái)。
四、Imagen
Imagen是由谷歌推出的一款新的AI系統(tǒng),可以將文字描述轉(zhuǎn)化為逼真圖像的人工智能技術(shù)。Imagen擴(kuò)散模型可根據(jù)用戶的書面提示輸出繪圖、油畫、CGI 渲染等。Imagen 的開發(fā)者谷歌研究團(tuán)隊(duì)表示,基于變壓器和圖像擴(kuò)散模型,Imagen實(shí)現(xiàn)了前所未有的真實(shí)感。谷歌聲稱,對(duì)比其它模型,在圖像保真度和圖像-文本匹配方面,人類評(píng)估者更喜歡 Imagen。
不過,谷歌也表示,Imagen 是在從網(wǎng)絡(luò)上抓取的數(shù)據(jù)集上進(jìn)行訓(xùn)練的,雖然已經(jīng)過濾了很多不良內(nèi)容如色情圖像、污穢語(yǔ)言等,但仍有大量不當(dāng)?shù)膬?nèi)容數(shù)據(jù)集,因此也會(huì)存在種族主義誹謗和有害的社會(huì)刻板印象。
五、Parti
研究人員表示,用文本生成圖像非常有趣,它允許我們創(chuàng)建從未見過甚至不存在的場(chǎng)景。但這帶來(lái)許多益處的同時(shí),也存在一定風(fēng)險(xiǎn),并對(duì)偏見和安全、視覺傳達(dá)、虛假信息,以及創(chuàng)造力和藝術(shù)產(chǎn)生潛在影響。
此外,一些潛在的風(fēng)險(xiǎn)與模型本身的開發(fā)方式有關(guān),對(duì)于訓(xùn)練數(shù)據(jù)尤其如此。像 Parti 這樣的模型,通常是在嘈雜的圖像文本數(shù)據(jù)集上進(jìn)行訓(xùn)練的。這些數(shù)據(jù)集已知包含對(duì)不同背景的人的偏見,從而導(dǎo)致 Parti 等模型產(chǎn)生刻板印象。比如,在將模型應(yīng)用于視覺傳達(dá)(例如幫助低識(shí)字率的社會(huì)群體輸出圖片)等用途時(shí),會(huì)帶來(lái)額外的風(fēng)險(xiǎn)和擔(dān)憂。
六、Stable Diffusion
Stable Diffusion是一個(gè)文本到圖像的潛在Diffusion Model,由CompVis、Stability AI和LAION的研究人員和工程師創(chuàng)建。它使用來(lái)自LAION-5B數(shù)據(jù)庫(kù)子集的512x512圖像進(jìn)行訓(xùn)練。使用這個(gè)模型,可以生成包括人臉在內(nèi)的任何圖像,因?yàn)橛虚_源的預(yù)訓(xùn)練模型,所以也可以在自己的機(jī)器上運(yùn)行。
AI繪畫發(fā)展歷程
一、AI繪畫發(fā)展歷程
AI 繪畫實(shí)際上并不是近幾年才出現(xiàn)的新詞語(yǔ)。從 Google 趨勢(shì)提供的搜索指數(shù)來(lái)看,2004 年至 2007 年期間,“AI painting”就已經(jīng)成為檢索熱詞;2008年之后,檢索熱度開始下降并進(jìn)入平緩期;直到 2017 年 5 月, AI 繪畫再一次成為大眾的關(guān)注熱點(diǎn)。
從廣義上來(lái)講,AI 繪畫早在上個(gè)世紀(jì)就已經(jīng)出現(xiàn)了。1973年,Harold Cohen 就已經(jīng)開始嘗試和電腦程序 “AARON” 攜手進(jìn)行繪畫創(chuàng)作。與當(dāng)下 AI 繪畫不同之處在于,ARRON 使用機(jī)械手臂在畫布上進(jìn)行繪畫,而非數(shù)字繪圖。進(jìn)入 20 世紀(jì) 80 年代,ARRON 學(xué)會(huì)了對(duì)三維空間物體的繪畫表現(xiàn)方法;90 年代,ARRON學(xué)會(huì)了使用多種顏色進(jìn)行繪畫。ARRON 已經(jīng)繪制出了很多不同的作品,直到今天,它仍在進(jìn)行創(chuàng)作。
從 python 語(yǔ)言逐漸流行開始,一個(gè)名為 “turtle” 的繪圖庫(kù)逐漸進(jìn)入人們的視線。turtle 繪圖庫(kù)的概念最初來(lái)自 Wally Feurzig 和 Seymour Papert 于 1966 年所創(chuàng)造的 Logo 編程語(yǔ)言,通過編寫程序,這個(gè)庫(kù)也能夠幫助我們進(jìn)行一些圖像的繪畫。
我們現(xiàn)在所說(shuō)的 AI 繪畫,實(shí)際更多指代的是基于機(jī)器學(xué)習(xí)模型進(jìn)行自動(dòng)數(shù)字繪圖的計(jì)算機(jī)程序。這類繪畫方式的發(fā)展要稍晚一些。
2012 年,吳恩達(dá)和 Jeff Dean 使用 Google Brain 的 1.6 萬(wàn)個(gè) CPU 訓(xùn)練了一個(gè)大型神經(jīng)網(wǎng)絡(luò),用于生成貓臉圖片。在當(dāng)時(shí)的訓(xùn)練中,他們使用了 1000 萬(wàn)個(gè)來(lái)自 Yotube 視頻中的貓臉圖片,模型訓(xùn)練用了整整三天。最終得到的模型,也只能生成一個(gè)非常模糊的貓臉。
與現(xiàn)在的模型相比,這個(gè)模型的訓(xùn)練幾乎毫無(wú)效率可言。但對(duì)于計(jì)算機(jī)視覺領(lǐng)域而言,這次嘗試開啟了一個(gè)新的研究方向,也就是我們目前所討論的 AI 繪畫。
二、AI繪畫現(xiàn)狀
在2014年, AI學(xué)術(shù)界提出了一個(gè)非常重要的深度學(xué)習(xí)模型即對(duì)抗生成網(wǎng)絡(luò)GAN (Generative Adverserial Network, GAN)。
正如同其名字"對(duì)抗生成", 這個(gè)深度學(xué)習(xí)模型的核心理念是讓兩個(gè)內(nèi)部程序 "生成器(generator)" 和"判別器(discriminator)" 互相PK平衡之后得到結(jié)果。GAN模型一經(jīng)問世就風(fēng)靡AI學(xué)術(shù)界, 在多個(gè)領(lǐng)域得到了廣泛的應(yīng)用。同時(shí)也隨即成為很多AI繪畫模型的基礎(chǔ)框架, 其中生成器用來(lái)生成圖片, 而判別器用來(lái)判斷圖片質(zhì)量。GAN的出現(xiàn)大大推動(dòng)了AI繪畫的發(fā)展。
但是, 用基礎(chǔ)的GAN模型進(jìn)行AI繪畫也有比較明顯的缺陷, 一方面是對(duì)輸出結(jié)果的控制力很弱, 容易產(chǎn)生隨機(jī)圖像, 而AI繪畫的輸出應(yīng)該是穩(wěn)定的。另外一個(gè)問題是生成圖像的分辨率比較低。
分辨率的問題還好說(shuō), GAN在“創(chuàng)作"這個(gè)點(diǎn)上還存在一個(gè)問題, 這個(gè)問題恰恰是其自身的核心特點(diǎn): 根據(jù)GAN基本架構(gòu),判別器要判斷生成的圖像是否和已經(jīng)提供給判別器的其他圖像是同一個(gè)類別的, 這就說(shuō)明輸出的圖像就是對(duì)現(xiàn)有作品的模仿, 而不是創(chuàng)新......
在對(duì)抗生成網(wǎng)絡(luò)GAN之外, 研究人員也開始利用其他種類的深度學(xué)習(xí)模型來(lái)嘗試訓(xùn)練AI繪畫。一個(gè)比較著名的例子是2015年 Google發(fā)布的一個(gè)圖像工具深夢(mèng)(Deep Dream)。深夢(mèng)發(fā)布了一系列畫作, 一時(shí)吸引了很多眼球。谷歌甚至為這個(gè)深夢(mèng)的作品策劃了一場(chǎng)畫展。但如果深究一下, 深夢(mèng)與其說(shuō)是AI繪畫, 更像是一個(gè)高級(jí)版AI濾鏡。
這個(gè)模型之所以受到廣泛關(guān)注的原因是Google把相關(guān)源代碼開源了, 第三方開發(fā)者可以基于該模型開發(fā)有趣的AI簡(jiǎn)筆畫。其中一個(gè)在線應(yīng)用叫做 “Draw Together with a Neural Network” ,隨意畫幾筆,AI就可以自動(dòng)幫你補(bǔ)充完整個(gè)圖形。值得注意的是, 在AI繪畫模型的研究過程中, 各龍頭互聯(lián)網(wǎng)企業(yè)成了主力, 除上述Google所做的研究之外,比較有名的是2017年7月,F(xiàn)acebook聯(lián)合羅格斯大學(xué)和查爾斯頓學(xué)院藝術(shù)史系三方合作得到的新模型, 號(hào)稱創(chuàng)造性對(duì)抗網(wǎng)絡(luò) (CAN, Creative Adversarial Networks)。
從下圖的作品集可以看出,這個(gè)創(chuàng)造性對(duì)抗網(wǎng)絡(luò)CAN在嘗試輸出一些像是藝術(shù)品的圖畫,它們是獨(dú)一無(wú)二的,而不是現(xiàn)存藝術(shù)作品的仿品。
CAN模型生成作品里所體現(xiàn)的創(chuàng)造性讓當(dāng)時(shí)的開發(fā)研究人員都感到震驚, 因?yàn)檫@些作品看起來(lái)和藝術(shù)圈子流行的抽象畫非常類似。于是研究人員組織了一場(chǎng)圖靈測(cè)試,請(qǐng)觀眾們?nèi)ゲ逻@些作品是人類藝術(shù)家的作品,還是人工智能的創(chuàng)作。
結(jié)果, 53%的觀眾認(rèn)為CAN模型的AI藝術(shù)作品出自人類之手, 這是歷史上類似的圖靈測(cè)試?yán)锸状瓮黄瓢霐?shù)。但CAN AI繪畫, 僅限于一些抽象表達(dá), 而且就藝術(shù)性評(píng)分而言, 還遠(yuǎn)遠(yuǎn)達(dá)不到人類大師的水平。
三、AI 學(xué)習(xí)繪畫的四個(gè)挑戰(zhàn)
對(duì)于機(jī)器學(xué)習(xí)模型而言,讓 AI 學(xué)會(huì)繪畫的過程就是一個(gè)模型的構(gòu)建和參數(shù)訓(xùn)練過程。在模型訓(xùn)練中,每一副圖畫都使用一個(gè)大小為 mxn 的像素點(diǎn)矩陣表示,對(duì)于彩色圖畫,每個(gè)像素點(diǎn)都由 RGB(red、green、blue)三個(gè)顏色通道組成。要讓計(jì)算機(jī)學(xué)會(huì)繪畫,就相當(dāng)于訓(xùn)練一個(gè)可以逐個(gè)產(chǎn)生像素的機(jī)器學(xué)習(xí)模型。
這聽起來(lái)或許很簡(jiǎn)單,但實(shí)際上,這一過程并沒有我們想象得那么容易。在一篇論文《Learning to Paint with Model-based Deep Reinforcement Learning》中,提到了訓(xùn)練 AI 學(xué)習(xí)繪畫的四個(gè)挑戰(zhàn),包括:
1、模型需要訓(xùn)練的參數(shù)集合非常龐大
繪畫中的每一筆都涉及位置、形狀、顏色等多個(gè)方面的參數(shù)確定,對(duì)于機(jī)器學(xué)習(xí)模型來(lái)說(shuō),這將產(chǎn)生一個(gè)非常龐大的參數(shù)集合。
2、筆畫之間關(guān)系的確定,會(huì)導(dǎo)致更加復(fù)雜的計(jì)算
一副紋理豐富自然的畫作往往由很多筆畫完成。如何對(duì)筆畫進(jìn)行組合、確定筆畫間的覆蓋關(guān)系,將是一個(gè)很重要的問題。
3、難以將 AI 接入一個(gè)現(xiàn)有的繪畫軟件
畫作的渲染等操作將導(dǎo)致非常高昂的數(shù)據(jù)獲取代價(jià)。
4、AI 除了模仿已有畫作的內(nèi)容和風(fēng)格以外,還需自創(chuàng)風(fēng)格
AI 除了模仿已有畫作的內(nèi)容和風(fēng)格以外,還能夠自創(chuàng)風(fēng)格,模型訓(xùn)練的難度會(huì)進(jìn)一步加大。一個(gè)原因是“創(chuàng)造”是一個(gè)非常抽象的概念,使用模型來(lái)表達(dá)比較困難;另一個(gè)原因是訓(xùn)練數(shù)據(jù)的內(nèi)容和風(fēng)格終究是有限的。
藍(lán)海大腦深度學(xué)習(xí)AI繪畫一體機(jī)采用 Intel 、AMD處理器,突破傳統(tǒng)風(fēng)冷散熱模式,采用風(fēng)冷和液冷混合散熱模式——服務(wù)器內(nèi)主要熱源 CPU 利用液冷冷板進(jìn)行冷卻,其余熱源仍采用風(fēng)冷方式進(jìn)行冷卻。通過這種混合制冷方式,可大幅提升服務(wù)器散熱效率,同時(shí),降低主要熱源 CPU 散熱所耗電能,并增強(qiáng)服務(wù)器可靠性;支持VR、AI加速計(jì)算;深受廣大深度學(xué)習(xí)AI繪畫工作者的喜愛。
AI繪畫為何可以快速發(fā)展關(guān)鍵技術(shù)有哪些?
一、GAN+CLIP 解決跨模態(tài)問題
1 、生成式對(duì)抗網(wǎng)絡(luò)
圖像到圖像的生成 GAN(Generative Adversarial Nets,生成式對(duì)抗網(wǎng)絡(luò))在 2014 年提出后,是生成器和判別器的一代代博弈。生成器通過輸入數(shù)據(jù)生成圖像,并將其混入原始數(shù)據(jù)中送交判別器區(qū)分。判別器依據(jù)二分類網(wǎng)絡(luò),將生成器生成圖像作為負(fù)樣本,真實(shí)圖像作為正樣本。雙方的訓(xùn)練過程交替進(jìn)行,對(duì)抗的過程使得生成器生成的圖像越來(lái)越逼真,判別器的分辨能力也越來(lái)越強(qiáng)。
GAN 的三個(gè)不足之處:
1)GAN 對(duì)輸出結(jié)果的控制力較弱,容易產(chǎn)生隨機(jī)圖像
對(duì)此,CGAN 通過把無(wú)監(jiān)督的 GAN 變成半監(jiān)督或者有監(jiān)督的模型,為訓(xùn)練加上目標(biāo),而 DCGAN 通過縮小 CNN 在監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí)之間的差距使得訓(xùn)練過程更加穩(wěn)定和可控
2)GAN 生成的圖像分辨率較低
對(duì)此,PGGAN 逐漸的向生成器和判別器網(wǎng)絡(luò)中添加層,以此增加生成圖片的空間分辨率,StyleGAN 則能夠生成極其逼真的圖像數(shù)據(jù)并且做到了高層特征可控
3)由于 GAN 需要用判別器來(lái)判斷產(chǎn)生的圖像是否與其他圖像屬于同一類別
導(dǎo)致生成的圖像是對(duì)現(xiàn)有作品的模仿和微調(diào),不能通過文字提示生成新圖像,因此 CLIP 被引入
2、可對(duì)比語(yǔ)言-圖像預(yù)訓(xùn)練算法 CLIP—文字到圖像生成
CLIP(Contrastive Language-Image Pre-training)是 OpenAI 在 2021 年提出的多模態(tài)預(yù)訓(xùn)練的算法,建于 NLP(Natural Language Processing,自然語(yǔ)言理解)和 CV(Computer Vision,計(jì)算機(jī)視覺)相結(jié)合的基礎(chǔ)上。算法使用已經(jīng)標(biāo)注好的“文字-圖像”數(shù)據(jù)對(duì)訓(xùn)練。一邊對(duì)文字進(jìn)行模型訓(xùn)練,一邊對(duì)圖像進(jìn)行模型訓(xùn)練,不斷調(diào)整參數(shù),使得輸出的文字特征集和圖像特征集相匹配。
CLIP 方法具有結(jié)構(gòu)簡(jiǎn)單,訓(xùn)練速度快,效果好等諸多優(yōu)良特性。CLIP 具有非常好的遷移學(xué)習(xí)能力,預(yù)訓(xùn)練好的模型可以在任意一個(gè)視覺分類數(shù)據(jù)集上取得不錯(cuò)的效果。而且算法是 Zero-Shoot 的,即不需要再去新數(shù)據(jù)集上做訓(xùn)練,就能得到不錯(cuò)的結(jié)果。
現(xiàn)被廣泛應(yīng)用的 StyleCLIP 融合了 StyleGAN 和 CLIP 雙方的特性。之前的 StyleGAN 的語(yǔ)義控制發(fā)現(xiàn)方法會(huì)涉及手動(dòng)檢查、大量帶注釋的數(shù)據(jù)、或者需要預(yù)訓(xùn)練的分類器,且只能按照預(yù)設(shè)的語(yǔ)義方向操作圖像,嚴(yán)重限制了用戶的創(chuàng)造力和想象力,若需要添加一個(gè)未映射的方向,需要大量的手工工作或大量的注釋數(shù)據(jù)。StyleCLIP 支持普通用戶基于文本的直觀語(yǔ)義圖像操作,也不限于預(yù)設(shè)的操作方向。
二、深度學(xué)習(xí)助力 AI 畫技進(jìn)步
AI 繪畫的實(shí)際操作大體可以分為四個(gè)步驟:加噪點(diǎn)、去噪點(diǎn)、復(fù)原圖片和作畫。其中,加噪點(diǎn)即添加高斯噪聲或者關(guān)鍵詞,通過固定公式來(lái)實(shí)現(xiàn),這方面,快速更新迭代的 MIM 方法表現(xiàn)出色。去噪點(diǎn)即仿生物視覺神經(jīng)網(wǎng)絡(luò)在去噪過程中開展學(xué)習(xí)(透視、顏色等),目前 Transformer 正取代 CNN 卷積神經(jīng)網(wǎng)絡(luò)成為主流方法。而在復(fù)原圖片和作畫方面,AI 的“畫技”主要由擴(kuò)散模型 Diffusion Model 和神經(jīng)輻射場(chǎng)模型 NeRF 決定。
1、圖像掩碼建模 MIM — 高效簡(jiǎn)潔的預(yù)訓(xùn)練方法
MIM(Masked Image Modeling,圖像掩碼建模)是一種自監(jiān)督表征學(xué)習(xí)算法。主要思路是,對(duì)輸入圖像進(jìn)行分塊和隨機(jī)掩碼操作,然后對(duì)掩碼區(qū)域做一些預(yù)測(cè),進(jìn)而猜測(cè)全圖。掩碼信號(hào)建模在多個(gè)模型中應(yīng)用發(fā)展,例如 OpenAI 的 iGPT 模型(通過馬賽克進(jìn)行信號(hào)的遮蔽和轉(zhuǎn)換)、ViT 模型等。
基于 MIM 的模型在不同類型和復(fù)雜程度的廣泛視覺任務(wù)上實(shí)現(xiàn)了非常高的微調(diào)精度,使得 AI 作畫從生成不完整圖像進(jìn)步到可生成完整圖像的跨越。MIM 在語(yǔ)義較弱的幾何運(yùn)動(dòng)任務(wù)或細(xì)粒度分類任務(wù)中的表現(xiàn)明顯優(yōu)于有監(jiān)督模型;對(duì)于有監(jiān)督模型擅長(zhǎng)的任務(wù),MIM 模型仍然可以取得極具競(jìng)爭(zhēng)力的遷移性能。目前較受認(rèn)可的 MAE 模型產(chǎn)自何愷明對(duì) MIM 的優(yōu)化。
MIM 在預(yù)訓(xùn)練圖像編碼器的時(shí)候,太關(guān)注細(xì)節(jié)損失了高維抽象能力。MAE 的非對(duì)稱編碼器-解碼器結(jié)構(gòu),使模型分工明確,編碼器負(fù)責(zé)抽取高維表示,解碼器則負(fù)責(zé)細(xì)粒度還原;MAE 同時(shí)對(duì)輸入圖像進(jìn)行高比例遮蔽。將以上兩種設(shè)計(jì)結(jié)合,結(jié)果用來(lái)訓(xùn)練大模型:訓(xùn)練速度提升三倍以上,同時(shí)保持高準(zhǔn)確率,具備很好的泛化能力。MAE 廣泛應(yīng)用于人臉識(shí)別等多個(gè)領(lǐng)域。例如,F(xiàn)aceMAE 作為隱私保護(hù)人臉識(shí)別范式,同時(shí)考慮了人臉隱私和識(shí)別性能,可以適配任何人臉數(shù)據(jù)集,以降低隱私泄露風(fēng)險(xiǎn)。
2、特征處理器 Transformer — 優(yōu)化的自然語(yǔ)言處理模型
Transformer 是當(dāng)前綜合表現(xiàn)最優(yōu)的特征提取器。模型首創(chuàng)于 2017 年的 Google 論文《Attention is All You Need》。它的性能優(yōu)于傳統(tǒng)的 RNN 和 CNN 特征提取器。
Transformer 為視覺領(lǐng)域帶來(lái)了革新性的變化,它讓視覺領(lǐng)域中目標(biāo)檢測(cè)、視頻分類、圖像分類和圖像生成等多個(gè)領(lǐng)域?qū)崿F(xiàn)了很大的進(jìn)步。2020 年 10 月,谷歌提出了 Vision Transformer(ViT),它是 Transformer 用于 CV 領(lǐng)域的杰出例子,它在大型數(shù)據(jù)集中處于領(lǐng)先地位。2021 年 1 月,OpenAI 用的 DALL·E 和 CLIP 兩個(gè)模型都利用 Transformer 達(dá)到了較好效果,前者可以基于本文直接生成圖像,后者則能完成圖像與文本類別的匹配。
Transformer 的研究才剛剛起步,因此仍有很大研究和發(fā)展空間。在研究領(lǐng)域,CNN 研究已趨向于成熟,考慮到模型成熟度和性價(jià)比,CNN 在短期內(nèi)仍不會(huì)被淘汰。原因如下:
1)現(xiàn)有的 Visual Transformer 參數(shù)量和計(jì)算量過大,內(nèi)存占用量超過可承受范圍,效率方面還需要提升,亟需開發(fā)高效 Transformer for CV
2)現(xiàn)有的 Visual Transformer 都還是將 NLP 中 Transformer 的結(jié)構(gòu)套到視覺任務(wù)做了一些初步探索,未來(lái)針對(duì) CV 的特性設(shè)計(jì)更適配視覺特性的 Transformer 將會(huì)帶來(lái)更好的性能提升
3)現(xiàn)有的 Visual Transformer 一般是一個(gè)模型做單個(gè)任務(wù),近來(lái)有一些模型可以單模型做多任務(wù),比如 IPT,我們期待未來(lái)出現(xiàn)世界模型,處理全局任務(wù)
3、擴(kuò)散模型 Diffusion Model — 新一代圖像生成主流模型
Diffusion Model 代指擴(kuò)散模型,擁有比 GAN 更優(yōu)的能力并快速崛起。相關(guān)研究最早可以追溯到 2015 年,奠基研究是 2020 年《Denoising Diffusion Probabilistic Models》。
2022 年,借助 AI 繪畫應(yīng)用,擴(kuò)散模型在圖像生成領(lǐng)域展現(xiàn)卓越實(shí)力。擴(kuò)散模型的工作原理,是通過連續(xù)添加高斯噪聲來(lái)破壞訓(xùn)練數(shù)據(jù),然后通過反轉(zhuǎn)這個(gè)噪聲過程,來(lái)學(xué)習(xí)恢復(fù)數(shù)據(jù)。一幅畫當(dāng)中,衣服的紋樣、樹葉、云彩等帶有很多細(xì)節(jié)紋理的地方,其實(shí)細(xì)節(jié)越多,越接近一個(gè)隨機(jī)的噪點(diǎn)。對(duì)于這些地方,也許只需要幾次高斯噪點(diǎn)的摻入(可理解為高斯模糊),就能破壞原來(lái)的紋樣,接近正態(tài)分布。訓(xùn)練后,可以使用 擴(kuò)散模型將隨機(jī)采樣的噪聲傳入模型中,通過學(xué)習(xí)去噪過程來(lái)生成數(shù)據(jù)。都是給定噪聲 xT 生成圖片 x0,相比 GAN,Diffusion 所需數(shù)據(jù)更少,生成效果更優(yōu)。
擴(kuò)散模型在計(jì)算機(jī)視覺、自然語(yǔ)言處理、波形信號(hào)處理、多模態(tài)學(xué)習(xí)、分子圖生成、時(shí)間序列以及對(duì)抗學(xué)習(xí)等七大應(yīng)用方向中都有應(yīng)用。
在 AI 繪畫領(lǐng)域,除 Disco Diffusion,最先進(jìn)的文本生成圖像系統(tǒng) OpenAI 的 DALL·E 2 和 Google 的 Imagen,都是基于擴(kuò)散模型來(lái)完成的。擴(kuò)散模型還在發(fā)展中,改進(jìn)研究在采樣速度提升、最大似然增強(qiáng)和數(shù)據(jù)泛化增強(qiáng)等領(lǐng)域持續(xù)進(jìn)步。
4、神經(jīng)輻射場(chǎng) NeRF — 順應(yīng) 3D 內(nèi)容消費(fèi)趨勢(shì)
NeRF(neural implicit representation,神經(jīng)輻射場(chǎng))利用深度學(xué)習(xí)完成計(jì)算機(jī)圖形學(xué)中的 3D 渲染任務(wù)。這一技術(shù)從 2019 年開始興起,在 2020 年 NeRF 獲得 ECCV best paper 之后受到了廣大關(guān)注。NerF 在很大程度上克服了樣本特征受限的問題。此前,2D 到 3D 生成的領(lǐng)域也包含 GAN 方面的嘗試,比如英偉達(dá)20-21 年推出的 GANverse3D 能夠自定義對(duì)象和交換背景。但由于 GAN 在對(duì)抗訓(xùn)練中會(huì)受限于樣本特征,該模型當(dāng)時(shí)僅適用于汽車、馬匹和鳥類。
NeRF 模型的基本原理是:將場(chǎng)景的體積表示優(yōu)化為向量容數(shù),該函數(shù)由位置和視圖方向組成的連續(xù) 5D 坐標(biāo)定義。具體而言,是沿相機(jī)射線采樣 5D 坐標(biāo)來(lái)合成圖像,將場(chǎng)景表示參數(shù)化為一個(gè)完全連接深度網(wǎng)絡(luò)(MLP),該網(wǎng)絡(luò)將通過 5D 坐標(biāo)信息,輸出對(duì)應(yīng)的顏色和體積密度值。NeRF 對(duì)于虛擬人創(chuàng)建、3D 訓(xùn)練環(huán)境構(gòu)建、增強(qiáng)現(xiàn)實(shí)、線上游戲及電影特效等都具有重要意義。
自 NeRF 在 ECCV2020 提出后,NeRF 模型也持續(xù)在生成范圍、生成效果,乃至所需基礎(chǔ)數(shù)據(jù)上進(jìn)行改進(jìn)。例如陸續(xù)支持光影變化效果、動(dòng)態(tài) NeRF、類實(shí)時(shí)生成、全場(chǎng)景 NeRF、單張生成模型和3D 幾何數(shù)據(jù)生成。
在 AI 繪畫中,NeRF 通過將場(chǎng)景表示為隱式的神經(jīng)輻射場(chǎng),渲染時(shí)通過神經(jīng)網(wǎng)絡(luò)查詢位置上的場(chǎng)景信息生成新視角圖像。直觀來(lái)講,渲染就是用計(jì)算機(jī)模擬照相機(jī)拍照,它們的結(jié)果都是生成一張照片。NeRF 將場(chǎng)景表示為空間中任何點(diǎn)的容積密度和顏色值,有了以 NeRF 形式存在的場(chǎng)景表示后,可以對(duì)該場(chǎng)景進(jìn)行渲染,生成新視角的模擬圖片。
NeRF 使用經(jīng)典體積渲染(volume rendering)的原理,求解穿過場(chǎng)景的任何光線的顏色,從而渲染合成新的圖像。在 NeRF 之后,有人提出了 GRAF,引入了 GAN 來(lái)實(shí)現(xiàn)神經(jīng)輻射場(chǎng),并使用 Conditional GAN 實(shí)現(xiàn)對(duì)渲染內(nèi)容的可控性。在 GRAF 之后,GIRAFFE 實(shí)現(xiàn)了構(gòu)成。在 NeRF、GRAF 中,一個(gè)神經(jīng)輻射場(chǎng)表示一個(gè)場(chǎng)景。而在 GIRAFFE 中,一個(gè)神經(jīng)輻射場(chǎng)只表示一個(gè)物體(背景也算一個(gè)物體)。這樣做可以隨意組合不同場(chǎng)景的物體,可以改變同一場(chǎng)景中不同物體間的相對(duì)位置,渲染生成更多訓(xùn)練數(shù)據(jù)中沒有的全新圖像。
未來(lái) NeRF 發(fā)展主要是基于 NeRF 問題的改進(jìn)。NeRF 的簡(jiǎn)潔性具有優(yōu)勢(shì),但也因此帶來(lái)一些問題:
1)計(jì)算量大導(dǎo)致耗時(shí)長(zhǎng)
NeRF 生成圖像時(shí),每個(gè)像素都需要近 200 次 MLP 深度模型的前向預(yù)測(cè)。盡管單次計(jì)算規(guī)模不大,但完成整幅圖像渲染的計(jì)算量還是很可觀的,NeRF 針對(duì)每個(gè)場(chǎng)景進(jìn)行訓(xùn)練的耗時(shí)較長(zhǎng)。對(duì)此,迭代過后的 Depth-supervised NeRF 能夠?qū)崿F(xiàn)更少的視角輸入和更快的訓(xùn)練速度。
2)只針對(duì)靜態(tài)場(chǎng)景
對(duì)于無(wú)法拓展到動(dòng)態(tài)場(chǎng)景的問題,主要和單目視頻做結(jié)合,從單目視頻中學(xué)習(xí)場(chǎng)景的隱式表示。Neural Scene Flow Fields 將動(dòng)態(tài)場(chǎng)景建模為外觀、幾何體和三維場(chǎng)景運(yùn)動(dòng)的時(shí)變連續(xù)函數(shù)。該方法只需要一個(gè)已知攝像機(jī)姿勢(shì)的單目視頻作為輸入。
3)泛化性差
NeRF 無(wú)法直接擴(kuò)展到?jīng)]有見過的場(chǎng)景,這顯然與人們追求泛化性的目標(biāo) 相違背。因此一些文章開始對(duì) NeRF 進(jìn)行泛化性的改進(jìn)。GRF 學(xué)習(xí) 2D 圖像中每個(gè)像素的局部特征,然后將這些特征投影到 3D 點(diǎn),從而產(chǎn)生通用和豐富的點(diǎn)表示。與之類似的還有 IBRnet、pixelNeRF 等,比較核心的想法都是卷積與 NeRF 相結(jié)合。目前這種泛化都還不夠成熟,無(wú)法在復(fù)雜場(chǎng)景中取得理想效果。
4)需要大量視角
盡管 NeRF 方法能夠?qū)崿F(xiàn)出色的視角合成效果,但是它需要大量的(數(shù)百?gòu)垼┮暯莵?lái)進(jìn)行訓(xùn)練,這限制了它在現(xiàn)實(shí)中的應(yīng)用。針對(duì)視角數(shù)量的改進(jìn),目前還局限在比較封閉的測(cè)試環(huán)境下,如合成物體或者單個(gè)物體。擴(kuò)展其在實(shí)操中的可 用性也是未來(lái)的一大方向。
AI繪畫的突破對(duì)人類意味著什么?
2022年的AI領(lǐng)域,基于文本生成圖像的AI繪畫模型是風(fēng)頭正勁的主角。從2月份的Disco Diffusion開始,4月DALL-E 2和MidJourney邀請(qǐng)內(nèi)測(cè),5月和6月Google發(fā)布了Imagen和Parti兩大模型,然后在7月底,Stable Diffusion橫空出世。
接下來(lái)AI繪畫,或者更廣泛地說(shuō),AI生成的內(nèi)容領(lǐng)域(圖像、聲音、視頻、3D內(nèi)容等)將會(huì)發(fā)生什么,讓我們拭目以待。
其實(shí)不用等未來(lái),經(jīng)歷了以 Stable Diffusion 為代表的最先進(jìn)的AI繪畫模式所能達(dá)到的藝術(shù)高度,基本可以確認(rèn),曾經(jīng)充滿神秘主義色彩的“想象力”和“創(chuàng)造力”是可以被技術(shù)解構(gòu)的。
像 Stable Diffusion 這樣的AI生成模型的一個(gè)核心思想,或者說(shuō)很多深度學(xué)習(xí)AI模型的核心思路,就是把人類創(chuàng)造的內(nèi)容,在某個(gè)高維或者低維的數(shù)學(xué)空間里,表達(dá)成一個(gè)向量(更簡(jiǎn)單的理解,一串?dāng)?shù)字)。如果這個(gè)“內(nèi)容->向量”的變換設(shè)計(jì)足夠合理,那么人類所有的創(chuàng)造性內(nèi)容都可以表示為某個(gè)數(shù)學(xué)空間中的部分向量。而存在于這個(gè)無(wú)限的數(shù)學(xué)空間中的其他向量,不過是那些理論上人類可能創(chuàng)造出來(lái),但還沒有被創(chuàng)造出來(lái)的內(nèi)容。
通過“矢量->內(nèi)容”的逆向轉(zhuǎn)化,這些還沒有被創(chuàng)造出來(lái)的內(nèi)容被AI挖掘出來(lái)。這正是目前的中途,這些最新的AI繪畫模型所做的穩(wěn)定擴(kuò)散。AI可以說(shuō)是在創(chuàng)造新的內(nèi)容,也可以說(shuō)是新繪畫的搬運(yùn)工。AI產(chǎn)生的新畫,在數(shù)學(xué)意義上一直是客觀存在的,只是被AI用巧妙的方式從數(shù)學(xué)空間還原出來(lái)而已。
審核編輯黃昊宇
-
AI
+關(guān)注
關(guān)注
87文章
30227瀏覽量
268466 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5493瀏覽量
120992
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論