? 姓名:尹凱
? 學(xué)號(hào):22011210590
? 學(xué)院:通信工程學(xué)院
? 原文鏈接:https://blog.csdn.net/air__Heaven/article/details/127302735
【嵌牛導(dǎo)讀】文本生成圖像的概念介紹與技術(shù)梳理
【嵌牛鼻子】文本生成圖像
基于深度學(xué)習(xí)的機(jī)器學(xué)習(xí)方法已經(jīng)在語(yǔ)音、文本填硕、圖像等單一模態(tài)領(lǐng)域取得了巨大的成功铁孵,而同時(shí)涉及到多種輸入模態(tài)的多模態(tài)機(jī)器學(xué)習(xí)研究有巨大的應(yīng)用前景和廣泛的研究?jī)r(jià)值,成為了近年來(lái)的研究熱點(diǎn)。
而最近怎虫,研究人員似乎對(duì)在這些傳統(tǒng)上獨(dú)立的領(lǐng)域中結(jié)合語(yǔ)義信息和視覺(jué)信息感興趣喊熟,文本生成圖像領(lǐng)域應(yīng)運(yùn)而生。
一达皿、相關(guān)概念介紹
1.1天吓、多模態(tài)機(jī)器學(xué)習(xí)
模態(tài)是指某件事情發(fā)生或經(jīng)歷的方式。每一種信息的來(lái)源或者形式峦椰,都可以稱為一種模態(tài)龄寞。人類對(duì)世界的體驗(yàn)是多模態(tài)的例如觸覺(jué),聽(tīng)覺(jué)汤功,視覺(jué)物邑,嗅覺(jué);而人類獲取信息的媒介滔金,有語(yǔ)音色解、視頻、文字等餐茵;
為了讓人工智能在理解我們周圍的世界方面取得進(jìn)展科阎,它需要能夠一起解釋這種多模態(tài)信號(hào)。多模態(tài)機(jī)器學(xué)習(xí)旨在建立能夠處理和關(guān)聯(lián)來(lái)自多種模態(tài)的信息的模型忿族。
這是一個(gè)日益重要和具有非凡潛力的充滿活力的多學(xué)科領(lǐng)域锣笨。
基于近年來(lái)圖像處理和語(yǔ)言理解方面的技術(shù)突破,融合圖像和文本處理的多模態(tài)任務(wù)獲得了廣泛的關(guān)注并取得了相當(dāng)大的成功道批,例如基于視覺(jué)的指代表達(dá)理解和短語(yǔ)定位错英、圖像和視頻字幕生成、視覺(jué)問(wèn)答(VQA)屹徘、基于文本的圖像生成(文本生成圖像)走趋、基于語(yǔ)言的視覺(jué)推理等。
1.2噪伊、文本生成圖像
如果我們的計(jì)算機(jī)視覺(jué)系統(tǒng)要真正理解視覺(jué)世界簿煌,它們不僅必須能夠識(shí)別圖像,而且必須能夠生成圖像鉴吹。
文本到圖像的 AI 模型僅根據(jù)簡(jiǎn)單的文字輸入就可以生成圖像姨伟。用戶可以輸入他們喜歡的任何文字提示——比如,“一只可愛(ài)的柯基犬住在一個(gè)用壽司做的房子里”——然后豆励,人工智能就像施了魔法一樣夺荒,會(huì)產(chǎn)生相應(yīng)的圖像瞒渠。
這些模型產(chǎn)生的圖像在世界上和任何人的想象中都從未存在過(guò)。它們是新穎的創(chuàng)作技扼,其獨(dú)創(chuàng)性和復(fù)雜性令人嘆為觀止伍玖。
文本生成圖像(text-to-image)即根據(jù)給定文本生成符合描述的真實(shí)圖像,其是多模態(tài)機(jī)器學(xué)習(xí)的任務(wù)之一剿吻,具有巨大的應(yīng)用潛力窍箍,如視覺(jué)推理、圖像編輯丽旅、視頻游戲椰棘、動(dòng)畫(huà)制作和計(jì)算機(jī)輔助設(shè)計(jì)。除了傳授深刻的視覺(jué)理解榄笙,生成逼真圖像的方法也可以是實(shí)際有用的邪狞。在短期內(nèi),自動(dòng)圖像生成可以幫助藝術(shù)家或平面設(shè)計(jì)師的工作茅撞。有一天帆卓,我們可能會(huì)用生成定制圖像和視頻的算法來(lái)取代圖像和視頻搜索引擎,以響應(yīng)每個(gè)用戶的個(gè)人喜好乡翅。
1.3鳞疲、零樣本學(xué)習(xí)
基于深度學(xué)習(xí)的模型近年來(lái)在圖像識(shí)別和對(duì)象檢測(cè)等很多問(wèn)題上已經(jīng)達(dá)到或超過(guò)了人類水平罪郊。然而蠕蚜,這些模型依賴于監(jiān)督學(xué)習(xí),其性能在很大程度上取決于帶標(biāo)注的訓(xùn)練數(shù)據(jù)悔橄。此外靶累,模型局限于識(shí)別訓(xùn)練時(shí)見(jiàn)過(guò)的類別。
零樣本學(xué)習(xí) Zero-Shot Learning就是用來(lái)解決這一問(wèn)題的癣疟,其致力于讓計(jì)算機(jī)模擬人類的推理方式挣柬,來(lái)識(shí)別從未見(jiàn)過(guò)的新事物。在傳統(tǒng)的圖像識(shí)別算法中睛挚,要想讓計(jì)算機(jī)認(rèn)出斑馬邪蛔,往往需要給計(jì)算機(jī)投喂足夠量的斑馬圖像才有做到。而且扎狱,訓(xùn)練出來(lái)的分類器侧到,往往無(wú)法識(shí)別它沒(méi)有見(jiàn)過(guò)的其他類別的圖像。
但是人類卻可以依據(jù)斑馬的先驗(yàn)知識(shí)淤击,在沒(méi)見(jiàn)過(guò)斑馬的情況下識(shí)別出斑馬匠抗,零樣本學(xué)習(xí)就是希望能夠模仿人類的推理過(guò)程,使得計(jì)算機(jī)具有識(shí)別新事物的能力污抬。
文本生成圖像模型的預(yù)期最佳效果也是零樣本學(xué)習(xí)的文本生成圖像汞贸,即具有遷移性,在沒(méi)有提供新事物數(shù)據(jù)的情況下,只憑特征描述就能生成出新事物矢腻。
二门驾、技術(shù)梳理
2.1、生成對(duì)抗網(wǎng)絡(luò):GAN
文本編碼器 + 生成器 + 鑒別器的結(jié)構(gòu)多柑。文本編碼器由RNN或者Bi-LSTM組成猎唁,生成器可以做成堆疊結(jié)構(gòu)或者單階段生成結(jié)構(gòu),主要用于在滿足文本信息語(yǔ)義的基礎(chǔ)上生成圖像顷蟆,鑒別器用于鑒別生成器生成的圖像是否為真和是否符合文本語(yǔ)義诫隅。整個(gè)訓(xùn)練過(guò)程都是兩者不斷地進(jìn)行相互博弈和優(yōu)化。生成器不斷得生成圖像的分布不斷接近真實(shí)圖像分布帐偎,來(lái)達(dá)到欺騙判別器的目的侣背,提高判別器的判別能力。判別器對(duì)真實(shí)圖像和生成圖像進(jìn)行判別茂卦,來(lái)提高生成器的生成能力酸纲。
Reed等人是第一個(gè)擴(kuò)展條件GAN以實(shí)現(xiàn)文本到圖像合成的人。由于GANs在圖像合成方面的進(jìn)步漫贞,該任務(wù)在采用堆疊架構(gòu)甸箱、循環(huán)一致性、注意力機(jī)制迅脐、對(duì)利用條件仿射變換方面取得了重大進(jìn)展芍殖。如:
堆疊結(jié)構(gòu):StackGAN、StackGAN++谴蔑、HDGAN豌骏;
循環(huán)一致性:PPGN、CycleGAN隐锭、MirrorGAN窃躲;
注意力機(jī)制:AttnGAN、SEGAN钦睡、ControlGAN蒂窒、RiFeGAN;
條件仿射變換:DFGAN荞怒、SSGAN洒琢、RATGAN;
…
感興趣可以深入查看專欄:文本生成圖像專欄
2.2挣输、擴(kuò)散模型 :Diffusion Model
不同于 VQ-VAE纬凤,VQ-GAN,擴(kuò)散模型是當(dāng)今文本生成圖像領(lǐng)域的核心方法撩嚼,當(dāng)前最知名也最受歡迎的文本生成圖像模型 Stable Diffusion停士,Disco-Diffusion挖帘,Mid-Journey,DALL-E2 等等恋技,均基于擴(kuò)散模型拇舀。
在擴(kuò)散模型中,主要有兩個(gè)過(guò)程組成蜻底,前向擴(kuò)散過(guò)程骄崩,反向去噪過(guò)程,前向擴(kuò)散過(guò)程主要是將一張圖片變成隨機(jī)噪音薄辅,而逆向去噪過(guò)程則是將一張隨機(jī)噪音的圖片還原為一張完整的圖片要拂,原理:由淺入深理解擴(kuò)散模型(Diffusion Model)
擴(kuò)散過(guò)程從右向左(X 0 = > X t X_0 =>X_tX0=>Xt)對(duì)圖片逐漸加噪,X 0 X_0X0表示從真實(shí)數(shù)據(jù)集中采樣得到的一張圖片站楚,當(dāng)t足夠大時(shí)脱惰,X t X_tXt變?yōu)楦咚狗植肌F浔举|(zhì)就是在原始圖像上添加噪音窿春,通過(guò) T 步迭代拉一,最終將原始圖片的分布變成標(biāo)準(zhǔn)高斯分布 ,而重要的事旧乞,每一步噪音都是已知的蔚润,即q ( X t ∣ X t ? 1 ) q(X_t | X_t-1)q(Xt∣Xt?1)是已知的(因?yàn)橹缊D像t-1,知道噪聲數(shù)據(jù))尺栖,根據(jù)馬爾科夫過(guò)程的性質(zhì)嫡纠,可以遞歸得到q ( X t ∣ X 0 ) q(X_t |X_0)q(Xt∣X0),得到X t X_tXt决瞳。逆擴(kuò)散過(guò)程從左向右(X t = > X 0 X_t =>X_0Xt=>X0)對(duì)圖片逐漸降噪货徙,如果我們能夠在給定X t X_tXt條件下知道X t ? 1 X_{t-1}Xt?1,我們就可以逐步從X t X_tXt推出X 0 X_0X0皮胡,即就可以從噪聲推導(dǎo)出一張圖像。要達(dá)到這種赏迟,我們要知道q ( X t ∣ X t ? 1 ) q(X_t | X_t-1)q(Xt∣Xt?1)屡贺,即如何從任意一張?jiān)肼晥D片中經(jīng)過(guò)一次次的采樣得到一張圖片而達(dá)成圖片生成的目的。顯然我們很難知道q ( X t ∣ X t ? 1 ) q(X_t | X_t-1)q(Xt∣Xt?1)锌杀,于是我們使用p ( X t ∣ X t ? 1 ) p(X_t | X_t-1)p(Xt∣Xt?1)來(lái)近似q ( X t ∣ X t ? 1 ) q(X_t | X_t-1)q(Xt∣Xt?1)甩栈,p ( X t ∣ X t ? 1 ) p(X_t | X_t-1)p(Xt∣Xt?1)就是我們要訓(xùn)練的網(wǎng)絡(luò)。我們可以使用q ( X t ∣ X t ? 1 ) q(X_t | X_t-1)q(Xt∣Xt?1)來(lái)指導(dǎo)p ( X t ∣ X t ? 1 ) p(X_t | X_t-1)p(Xt∣Xt?1)的訓(xùn)練糕再,在完成訓(xùn)練之后量没,訓(xùn)練好的模型就可以通過(guò)不斷的「減去」模型預(yù)測(cè)的噪音,完成逆擴(kuò)散步驟突想,逐漸的生成一張完整的圖片殴蹄。
擴(kuò)散模型在實(shí)現(xiàn)文本生成圖像任務(wù)中究抓,主要有以下策略:
Semantic Diffusion Guidance(以文本描述作為語(yǔ)義引導(dǎo))通過(guò)使用引導(dǎo)函數(shù)來(lái)注入語(yǔ)義輸入(此時(shí)文本可以看成一種分類器或者判別器),以指導(dǎo)無(wú)條件擴(kuò)散模型的采樣過(guò)程袭灯,這使得擴(kuò)散模型中的生成更加可控刺下,并為語(yǔ)言和圖像引導(dǎo)提供了統(tǒng)一的公式。在逆向過(guò)程的每一步稽荧,用一個(gè)文本條件對(duì)生成的過(guò)程進(jìn)行引導(dǎo)橘茉,基于文本和圖像之間的交叉熵?fù)p失計(jì)算梯度,用梯度引導(dǎo)下一步的生成采樣
Classifier-Free Diffusion Guidence:前文額外引入一個(gè)網(wǎng)絡(luò)來(lái)指導(dǎo)姨丈,推理的時(shí)候比較復(fù)雜畅卓,且將引導(dǎo)條件作為模型的輸入效果其實(shí)一般。Classifier-Free Diffusion Guidence核心思路是共同訓(xùn)練有條件和無(wú)條件擴(kuò)散模型蟋恬,并發(fā)現(xiàn)將兩者進(jìn)行組合髓介,可以得到樣本質(zhì)量和多樣性之間的權(quán)衡。這個(gè)方法一個(gè)很大的優(yōu)點(diǎn)是筋现,不需要重新訓(xùn)練擴(kuò)散模型唐础,只需要在前饋時(shí)加入引導(dǎo)既能實(shí)現(xiàn)相應(yīng)的生成效果。應(yīng)用有:GLIDE矾飞、DALL·E 2一膨、Imagen等
…
2.3、基于Transformer的自回歸方法
Transformer模型利用其強(qiáng)大的注意力機(jī)制已成為序列相關(guān)建模的范例洒沦,受GPT模型在自然語(yǔ)言建模中的成功啟發(fā)豹绪,圖像GPT(iGPT)通過(guò)將展平圖像序列視為離散標(biāo)記,采用Transformer進(jìn)行自回歸圖像生成申眼。生成圖像的合理性表明瞒津,Transformer模型能夠模擬像素和高級(jí)屬性(紋理、語(yǔ)義和比例)之間的空間關(guān)系括尸。Transformer整體主要分為Encoder和Decoder兩大部分巷蚪,利用多頭自注意力機(jī)制進(jìn)行編碼和解碼。但其訓(xùn)練成本高濒翻,推理時(shí)間較長(zhǎng)屁柏,且強(qiáng)大而有趣的模型一直未開(kāi)源。
Transformer在實(shí)現(xiàn)文本生成圖像上有送,大概有以下策略:
Transformer和VQ-VAE(矢量量化變分自動(dòng)編碼器)進(jìn)行結(jié)合淌喻,首先將文本部分轉(zhuǎn)換成token,利用的是已經(jīng)比較成熟的SentencePiece模型雀摘;然后將圖像部分通過(guò)一個(gè)離散化的AE(Auto-Encoder)轉(zhuǎn)換為token裸删,將文本token和圖像token拼接到一起,之后輸入到GPT模型中學(xué)習(xí)生成圖像阵赠。訓(xùn)練后涯塔,在處理文本圖像生成類任務(wù)時(shí)肌稻,模型會(huì)通過(guò)計(jì)算一個(gè)Caption Score對(duì)生成圖像進(jìn)行排序,從而選擇與文本最為匹配的圖像作為結(jié)果:如CogView
Transformer和CLIP結(jié)合伤塌。首先對(duì)于一幅沒(méi)有文本標(biāo)簽的圖像灯萍,使用 CLIP 的圖像編碼器,在語(yǔ)言-視覺(jué)(language-vision)聯(lián)合嵌入空間中提取圖像的 embedding每聪。接著旦棉,將圖像轉(zhuǎn)換為 VQGAN 碼本空間(codebook space)中的一系列離散標(biāo)記(token)。也就是將圖像以與自然語(yǔ)言相同的方式進(jìn)行表示药薯,方便后續(xù)使用 Transformer 進(jìn)行處理绑洛。其中,充當(dāng) image tokenizer 角色的 VQGAN 模型童本,可以使用手里的無(wú)標(biāo)記圖像數(shù)據(jù)集進(jìn)行訓(xùn)練真屯。最后,再訓(xùn)練一個(gè)自回歸 Transformer穷娱,用它來(lái)將圖像標(biāo)記從 Transformer 的語(yǔ)言-視覺(jué)統(tǒng)一表示中映射出對(duì)應(yīng)圖像绑蔫。經(jīng)過(guò)這樣的訓(xùn)練后,面對(duì)一串文本描述泵额,Transformer 就可以根據(jù)從 CLIP 的文本編碼器中提取的文本嵌入(text embedding)生成對(duì)應(yīng)的圖像標(biāo)記(image tokens)了配深。如:CLIP-GEN、DALL·E嫁盲、DALL·E 2
…
2.4篓叶、基于對(duì)比的圖片-文本的跨模態(tài)預(yù)訓(xùn)練模型:CLIP
CLIP(Contrastive Language-Image Pre-Training,簡(jiǎn)稱 CLIP) 模型嚴(yán)格來(lái)說(shuō)是一種輔助模型羞秤,是 OpenAI 在 2021 年初發(fā)布的用于匹配圖像和文本的預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型缸托,CLIP 最初是一個(gè)單獨(dú)的輔助模型,用于對(duì) DALL·E 的結(jié)果進(jìn)行排序瘾蛋。
對(duì)比模型可以給來(lái)自同一對(duì)的圖像和文本產(chǎn)生高相似度得分俐镐,而對(duì)不匹配的文本和圖像產(chǎn)生低分。
該模型由兩個(gè)編碼器組成:一個(gè)用于文本瘦黑,另一個(gè)用于圖像:
圖像編碼器:用于將圖像映射到特征空間京革;
文本編碼器:用于將文本映射到相同的特征空間。
原理其實(shí)很簡(jiǎn)單:為了對(duì)image和text建立聯(lián)系幸斥,首先分別對(duì)image和text進(jìn)行特征提取,image特征提取的backbone可以是resnet系列模型也可以是VIT系列模型咬扇,text特征提取目前一般采用bert模型甲葬,特征提取之后,由于做了normalize懈贺,直接相乘來(lái)計(jì)算余弦距離经窖,同一pair對(duì)的結(jié)果趨近于1坡垫,不同pair對(duì)的結(jié)果趨近于0,因?yàn)榫涂梢圆捎脤?duì)比損失loss(info-nce-loss)画侣,熟悉這個(gè)loss的同學(xué)應(yīng)該都清楚冰悠,這種計(jì)算loss方式效果與batch size有很大關(guān)系,一般需要比較大的batch size才能有效果配乱。
CLIP可以理解成一種多模態(tài)pretrain 方式溉卓,為文本和圖像在特征域進(jìn)行對(duì)齊。
但CLIP采取了4億的圖像文本對(duì)的數(shù)據(jù)集搬泥,但這4億的圖像文本對(duì)并未對(duì)外開(kāi)源桑寨,且CLIP是通過(guò)龐大的數(shù)據(jù)集來(lái)盡可能的覆蓋下游任務(wù),而它在未見(jiàn)過(guò)的數(shù)據(jù)上表現(xiàn)非常不理想忿檩,其不非常側(cè)重算法上的創(chuàng)新尉尾,而是采集了大量的數(shù)據(jù)以及使用了大量的訓(xùn)練資源(592 個(gè) V100 + 18天 和 256 個(gè) V100 + 12天)。
CLIP主要作為輔助模型在文本生成圖像中應(yīng)用燥透,比如GAN+CLIP(如FuseDream)沙咏、Diffusion Model +CLIP (如GLIDE、DALL·E )班套、Transformer+CLIP(如CLIP-GEN肢藐、DALL·E 2)
參考
What are Diffusion Models?:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
擴(kuò)散模型(Diffusion Model)——由淺入深的理解
基于擴(kuò)散模型的文本引導(dǎo)圖像生成算法:https://zhuanlan.zhihu.com/p/505257039
擴(kuò)散模型與其在文本生成圖像領(lǐng)域的應(yīng)用:https://zhuanlan.zhihu.com/p/546311167
連接文本和圖像的第一步:CLIP:https://zhuanlan.zhihu.com/p/427740816
————————————————
版權(quán)聲明:本文為CSDN博主「中杯可樂(lè)多加冰」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議孽尽,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明窖壕。