最近爆火的AI繪圖,相信大家并不陌生了。
從AI繪圖軟件生成的作品打敗一眾人類(lèi)藝術(shù)家,斬獲數(shù)字藝術(shù)類(lèi)冠軍,到如今DALL.E、Imagen、novelai等國(guó)內(nèi)外平臺(tái)遍地開(kāi)花。也許你也曾點(diǎn)開(kāi)過(guò)相關(guān)網(wǎng)站,嘗試讓AI描繪你腦海中的風(fēng)景,又或者上傳了一張自己帥氣/美美的照片,然后對(duì)著最后生成的糙漢哭笑不得。那么,在你感受AI繪圖魅力的同時(shí),有沒(méi)有想過(guò)(不你肯定想過(guò)),它背后的奧妙究竟是什么?
美國(guó)科羅拉多州技術(shù)博覽會(huì)中獲得數(shù)字藝術(shù)類(lèi)冠軍的作品——《太空歌劇院》
一切,都要從一個(gè)名為DDPM的模型說(shuō)起…
話說(shuō)DDPM
DDPM模型,全稱(chēng)Denoising Diffusion Probabilistic Model,可以說(shuō)是現(xiàn)階段diffusion模型的開(kāi)山鼻祖。不同于前輩GAN、VAE和flow等模型,diffusion模型的整體思路是通過(guò)一種偏向于優(yōu)化的方式,逐步從一個(gè)純?cè)胍舻膱D片中生成圖像。
現(xiàn)在已有生成圖像模型的對(duì)比
沒(méi)有相關(guān)機(jī)器學(xué)習(xí)背景的小伙伴可能會(huì)問(wèn)了,什么是純?cè)胍魣D片?
很簡(jiǎn)單,老式電視機(jī)沒(méi)信號(hào)時(shí),伴隨著"刺啦刺啦"噪音出現(xiàn)的雪花圖片,就屬于純?cè)胍魣D片。而DDPM在生成階段所做的事情,就是把這些個(gè)"雪花"一點(diǎn)點(diǎn)移除,直到清晰的圖像露出它的廬山真面目,我們把這個(gè)階段稱(chēng)之為"去噪"。
純?cè)胍魣D片:老電視的雪花屏
通過(guò)描述,大家可以感受到,去噪其實(shí)是個(gè)相當(dāng)復(fù)雜的過(guò)程。沒(méi)有一定的去噪規(guī)律,可能你忙活了好半天,到最后還是對(duì)著奇形怪狀的圖片欲哭無(wú)淚。當(dāng)然,不同類(lèi)型的圖片也會(huì)有不同的去噪規(guī)律,至于怎么讓機(jī)器學(xué)會(huì)這種規(guī)律,有人靈機(jī)一動(dòng),想到了一種絕妙的方法。
"既然去噪規(guī)律不好學(xué),那我為什么不先通過(guò)加噪的方式,先把一張圖片變成純?cè)胍魣D像,再把整個(gè)過(guò)程反著來(lái)一遍呢?"
這便奠定了diffusion模型整個(gè)訓(xùn)練-推理的流程,先在前向過(guò)程(forward process)通過(guò)逐步加噪,將圖片轉(zhuǎn)換為一個(gè)近似可用高斯分布的純?cè)胍魣D像,緊接著在反向過(guò)程(reverse process)中逐步去噪,生成圖像,最后以增大原始圖像和生成圖像的相似度作為目標(biāo),優(yōu)化模型,直至達(dá)到理想效果。
DDPM的訓(xùn)練-推理流程
到這里,不知道大家的接受度怎樣?如果感覺(jué)沒(méi)問(wèn)題,輕輕松的話。準(zhǔn)備好,我要開(kāi)始上大招(深入理論)啦。
1.前向過(guò)程(forward process)
又稱(chēng)為擴(kuò)散過(guò)程(diffusion process),整體是一個(gè)參數(shù)化的馬爾可夫鏈(Markov chain)。從初始數(shù)據(jù)分布 出發(fā),每步在數(shù)據(jù)分布中添加高斯噪音,持續(xù)T次。其中從第t-1步到第t步的過(guò)程可以用高斯分布表示為:
通過(guò)合適的設(shè)置,隨著t不斷增大,原始數(shù)據(jù)會(huì)逐漸失去他的特征。我們可以理解為,在進(jìn)行了無(wú)限次的加噪步驟后,最終的數(shù)據(jù)會(huì)變成沒(méi)有任何特征,完全是隨機(jī)噪音的圖片,也就是我們最開(kāi)始說(shuō)的"雪花屏"。
在這個(gè)過(guò)程中,每一步的變化是可以通過(guò)設(shè)置超參來(lái)控制,在我們知曉最開(kāi)始的圖片是什么的前提下,前向加噪的整個(gè)過(guò)程可以說(shuō)是已知且可控的,我們完全能知道每一步的生成數(shù)據(jù)是什么樣子。
但問(wèn)題在于,每次的計(jì)算都需要從起始點(diǎn)出發(fā),結(jié)合每一步的過(guò)程,慢慢推導(dǎo)至你想要的某步數(shù)據(jù),過(guò)于麻煩。好在因?yàn)楦咚狗植嫉囊恍┨匦裕覀兛梢砸徊降轿?,直接從得到?/p>
(這里的和為組合系數(shù),本質(zhì)上是超參的表達(dá)式)
2.反向過(guò)程(reverse process)
和前向過(guò)程同理,反向過(guò)程也是一個(gè)馬爾可夫鏈(Markov chain),只不過(guò)這里用到的參數(shù)不同,至于具體參數(shù)是什么,這個(gè)就是我們需要機(jī)器來(lái)學(xué)習(xí)的部分啦。
在了解機(jī)器如何學(xué)習(xí)前,我們首先思考,基于某一個(gè)原始數(shù)據(jù),從第t步,精準(zhǔn)反推回第t-1步的過(guò)程應(yīng)該是怎樣的?
答案是,這個(gè)仍可以用高斯分布表示:
注意這里必須要考慮,意思是反向過(guò)程最后生成圖像還是要與原始數(shù)據(jù)有關(guān)。輸入貓的圖片,模型生成的圖像應(yīng)該是貓,輸入狗的圖片,生成的圖像也應(yīng)該和狗相關(guān)。若是去除掉,則會(huì)導(dǎo)致無(wú)論輸入哪種類(lèi)型的圖片訓(xùn)練,最后diffusion生成的圖像都一樣,"貓狗不分"。
經(jīng)過(guò)一系列的推導(dǎo),我們發(fā)現(xiàn),反向過(guò)程中的參數(shù)和,竟然還是可以用,,以及參數(shù),表示出來(lái)的,是不是很神奇~
當(dāng)然,機(jī)器事先并不知道這個(gè)真實(shí)的反推過(guò)程,它能做到的,只是用一個(gè)大概近似的估計(jì)分布去模擬,表示為。
3.優(yōu)化目標(biāo)
在最開(kāi)始我們提到,需要通過(guò)增大原始數(shù)據(jù)和反向過(guò)程最終生成數(shù)據(jù)的相似度來(lái)優(yōu)化模型。在機(jī)器學(xué)習(xí)中,我們計(jì)算該相似度參考的是交叉熵(cross entropy )。
關(guān)于交叉熵,學(xué)術(shù)上給出的定義是"用于度量?jī)蓚€(gè)概率分布間的差異性信息"。換句話講,交叉熵越小,模型生成的圖片就越和原始圖片接近。但是,在大多數(shù)情況下,交叉熵是很難或者無(wú)法通過(guò)計(jì)算得出的,所以我們一般會(huì)通過(guò)優(yōu)化一個(gè)更簡(jiǎn)單的表達(dá)式,達(dá)到同樣的效果。
Diffusion模型借鑒了VAE模型的優(yōu)化思路,將variational lower bound(VLB,又稱(chēng)ELBO)替代cross entropy來(lái)作為最大優(yōu)化目標(biāo)。通過(guò)無(wú)數(shù)步的分解,我們最終得到:
看到這么復(fù)雜的公式,好多小伙伴肯定頭都大了。但不慌,這里需要關(guān)注的,只是中間的罷了,它表示的是和之間估計(jì)分布和真實(shí)分布的差距。差距越小,模型最后生成圖片的效果就越好。
4.上代碼
在了解完DDPM背后的原理,接下來(lái)就讓我們看看DDPM模型究竟是如何實(shí)現(xiàn)…
才怪啦。相信看到這里的你,肯定也不想遭受成百上千行代碼的洗禮。好在MindSpore已經(jīng)為大家提供了開(kāi)發(fā)完備的DDPM模型,訓(xùn)練推理兩手抓,操作簡(jiǎn)單,單卡即可運(yùn)行,想要體驗(yàn)效果的小伙伴,可以先pip install denoising-diffusion-mindspore后,參考如下代碼配置參數(shù):
對(duì)重要的參數(shù)進(jìn)行一些解析:
-
GaussianDiffusion
- image_size: 圖片大小
- timesteps: 加噪步數(shù)
- sampling_timesteps: 采樣步數(shù),為提升推理性能,需小于加噪步數(shù)
- Trainer
話說(shuō)MindDiffusion
DDPM只是Diffusion這個(gè)故事的開(kāi)篇。目前,已有無(wú)數(shù)的研究人員被其背后瑰麗的世界所吸引,紛紛投身其中。在不斷優(yōu)化模型的同時(shí),也逐漸開(kāi)發(fā)了Diffusion在各個(gè)領(lǐng)域的應(yīng)用。
其中,包括了計(jì)算機(jī)視覺(jué)領(lǐng)域的圖像優(yōu)化、inpainting、3D視覺(jué),自然語(yǔ)言處理中的text-to-speech,AI for Science領(lǐng)域的分子構(gòu)象生成、材料設(shè)計(jì)等,更有來(lái)自斯坦福大學(xué)計(jì)算機(jī)科學(xué)系的博士生Eric Zelikman大開(kāi)腦洞,嘗試將DALLE-2與最近另一個(gè)大火的對(duì)話模型ChatGPT相結(jié)合,制作出了溫馨的繪本故事。
DALLE-2 + ChatGPT合力完成的,關(guān)于一個(gè)名叫"羅比"的小機(jī)器人的故事
不過(guò)最廣為大眾所知的,應(yīng)該還是它在文生圖(text-to-image)方面的應(yīng)用。輸入幾個(gè)關(guān)鍵詞或者一段簡(jiǎn)短的描述,模型便可以為你生成相對(duì)應(yīng)的圖畫(huà)。
比如,輸入"城市夜景 賽博朋克 格雷格.路特科夫斯基",最后生成的便是一張色彩鮮明,頗具未來(lái)科幻風(fēng)格的作品。
再比如,輸入"莫奈 撐陽(yáng)傘的女人 月亮 夢(mèng)幻",生成的便是一張極具有朦朧感的女人畫(huà)像,色彩搭配的風(fēng)格有木有讓你想起莫奈的《睡蓮》?
想要寫(xiě)實(shí)風(fēng)格的風(fēng)景照作為屏保?沒(méi)問(wèn)題!
鄉(xiāng)村 田野 屏保
想要二次元濃度多一點(diǎn)的?也可以!
來(lái)自深淵 風(fēng)景 繪畫(huà) 寫(xiě)實(shí)風(fēng)格
以上這些圖片,均是由MindDiffusion平臺(tái)的下的悟空畫(huà)畫(huà)制作而成的哦,悟空畫(huà)畫(huà)是基于擴(kuò)散模型的中文文生圖大模型,由華為諾亞團(tuán)隊(duì)攜手中軟分布式并行實(shí)驗(yàn)室,昇騰計(jì)算產(chǎn)品部聯(lián)合開(kāi)發(fā)。模型基于Wukong dataset訓(xùn)練,并使用昇思框架(MindSpore)+昇騰(Ascend)軟硬件解決方案實(shí)現(xiàn)。
躍躍欲試的小伙伴先別著急,為了讓大家擁有更好的體驗(yàn),更多自行開(kāi)發(fā)的空間,我們打算讓MindDiffusion中的模型同樣也具備可訓(xùn)練、可推理的特性,預(yù)計(jì)在明年就要和大家見(jiàn)面啦,敬請(qǐng)期待,歡迎大家頭腦風(fēng)暴,生成各種別具風(fēng)格的作品哦~
(據(jù)去內(nèi)部打探情報(bào)的同事說(shuō),有人已經(jīng)開(kāi)始嘗試"張飛繡花"、"劉華強(qiáng)砍瓜"、"古希臘神大戰(zhàn)哥斯拉"了。ummmm,怎么辦,突然就很期待成品了呢(?ω?))
一個(gè)突然正經(jīng)的結(jié)語(yǔ)
最后的最后,在Diffusion爆火的如今,有人也曾發(fā)出過(guò)疑問(wèn),它為什么可以做到如此的大紅大紫,甚至風(fēng)頭開(kāi)始超過(guò)GAN網(wǎng)絡(luò)?Diffusion的優(yōu)勢(shì)突出,劣勢(shì)也很明顯;它的諸多領(lǐng)域仍是空白,它的前方還是一片未知。為什么卻有那么多的人在孜孜不倦地對(duì)它進(jìn)行研究呢?
興許,馬毅教授的一番話,可以給我們提供一種解答。
"但diffusion process的有效性以及很快取代GAN也充分說(shuō)明了一個(gè)簡(jiǎn)單道理:
幾行簡(jiǎn)單正確的數(shù)學(xué)推導(dǎo),可以比近十年的大規(guī)模調(diào)試超參調(diào)試網(wǎng)絡(luò)結(jié)構(gòu)有效得多。"
或許,這就是Diffusion模型的魅力吧。
-
圖像
+關(guān)注
關(guān)注
2文章
1087瀏覽量
40501 -
AI
+關(guān)注
關(guān)注
87文章
31141瀏覽量
269478 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8425瀏覽量
132772
原文標(biāo)題:Reference
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論