<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          DALL·E 從文本到圖像,超現(xiàn)實(shí)主義的圖像生成器

          共 2703字,需瀏覽 6分鐘

           ·

          2021-09-03 17:46

          超現(xiàn)實(shí)主義強(qiáng)調(diào)夢(mèng)幻與現(xiàn)實(shí)的統(tǒng)一才是絕對(duì)的真實(shí),而如今OpenAI創(chuàng)造的DALL·E圖像生成器,能夠直接通過文本描述生成類似超現(xiàn)實(shí)主義的圖像,讓機(jī)器也能擁有頂級(jí)畫家、設(shè)計(jì)師的創(chuàng)造力。DALL·E的名字是為了向藝術(shù)家薩爾瓦多·達(dá)利和皮克斯的機(jī)器人WALL-E致敬。

          先感受一下DALL·E生成圖像,輸入文本"牛油果形狀的扶手椅。仿梨型的扶手椅。"DALL·E果然生成了類似超現(xiàn)實(shí)主義的圖片,像真實(shí)存在的一樣。


          01

          DALL·E


          DALL·E的目標(biāo)是把文本token和圖像token當(dāng)成一個(gè)數(shù)據(jù)序列,通過Transformer進(jìn)行自回歸。由于圖片的分辨率很大,如果把單個(gè)pixel當(dāng)成一個(gè)token處理,會(huì)導(dǎo)致計(jì)算量過于龐大,于是DALL·E引入了一個(gè)dVAE模型來降低圖片的分辨率。

          DALL·E的整體流程如下:

          1.第一個(gè)階段,先訓(xùn)練一個(gè)dVAE把每張256x256的RGB圖片壓縮成32x32的圖片token,每個(gè)位置有8192種可能的取值(也就是說dVAE的encoder輸出是維度為32x32x8192的logits,然后通過logits索引codebook的特征進(jìn)行組合,codebook的embedding是可學(xué)習(xí)的)。

          2.第二階段,用BPE Encoder對(duì)文本進(jìn)行編碼,得到最多256個(gè)文本token,token數(shù)不滿256的話padding到256,然后將256個(gè)文本token與1024個(gè)圖像token進(jìn)行拼接,得到長度為1280的數(shù)據(jù),最后將拼接的數(shù)據(jù)輸入Transformer中進(jìn)行自回歸訓(xùn)練。

          3.推理階段,給定一張候選圖片和一條文本,可以通過預(yù)訓(xùn)練好的CLIP計(jì)算出文本和圖片的匹配分?jǐn)?shù),采樣越多數(shù)量的圖片,就可以通過CLIP得到不同采樣圖片的分?jǐn)?shù)排序。

          從以上流程可知,dVAETransformerCLIP三個(gè)模型都是不同階段獨(dú)立訓(xùn)練的。下面講一下dVAE、Transformer和CLIP三個(gè)部分。

          dVAE

          先簡(jiǎn)單講一下VAE的原理,VAE就是在AntoEncoder的基礎(chǔ)上給lantent vector添加限制條件,讓其服從高斯分布,這樣我們通過訓(xùn)練得到的decoder就可以直接使用,將隨機(jī)生成的一個(gè)高斯分布喂給decoder就能生成圖片,如上面第一張圖所示(關(guān)于VAE可以看我之前的文章漫談VAE和VQVAE,從連續(xù)分布到離散分布)。

          相比于普通的VAE,dVAE有兩點(diǎn)區(qū)別:

          1.和VQVAE方法相似,dVAE的encoder是將圖像的patch映射到8192的詞表中,論文中將其分布設(shè)為在詞表向量上的均勻分類分布,這是一個(gè)離散分布,由于不可導(dǎo)的問題,此時(shí)不能采用重參數(shù)技巧,DALL·E使用Gumbel Softmax trick來解決這個(gè)問題(簡(jiǎn)單來說就是arg max不可導(dǎo),可以用softmax來近似代替max,而arg softmax是可導(dǎo)的,后面補(bǔ)一篇Gumbel Softmax的文章)。

          2、在重建圖像時(shí),真實(shí)的像素值是在一個(gè)有界區(qū)間內(nèi),而VAE中使用的Gaussian

          分布和Laplace分布都是在整個(gè)實(shí)數(shù)集上,這造成了不匹配的問題。為了解決這個(gè)問題,論文中提出了logit-Laplace分布,如下式所示:

            

          Transformer

          DALL·E中的Transformer結(jié)構(gòu)由64層attention層組成,每層的注意力頭數(shù)為62,每個(gè)注意力頭的維度為64,因此,每個(gè)token的向量表示維度為3968。如圖所示,attention層使用了行注意力mask、列注意力mask和卷積注意力mask三種稀疏注意力。

          Transformer的輸入如圖所示,文本不滿256個(gè)token時(shí),使用pad embed填充,文本token需要加上pos embed,圖片token需要加上行列的embed,這些embed都是可學(xué)習(xí)的。

          CLIP

          先講一下CLIP的推理過程:

          1.先將預(yù)訓(xùn)練好的CLIP遷移到下游任務(wù),如圖(2)所示,先將下游任務(wù)的標(biāo)簽構(gòu)建為一批帶標(biāo)簽的文本(例如 A photo of a {plane}),然后經(jīng)過Text Encoder編碼成一批相應(yīng)的word embedding。

          2.然后將沒有見過的圖片進(jìn)行zero-shot預(yù)測(cè),如圖(3)所示,通過Image Encoder將一張小狗的圖片編碼成一個(gè)feature embedding,然后跟(2)編碼的一批word embedding先歸一化然后進(jìn)行點(diǎn)積,最后得到的logits中數(shù)值最大的位置對(duì)應(yīng)的標(biāo)簽即為最終預(yù)測(cè)結(jié)果。

          在DALL·E中,CLIP的用法跟上述過程相反,提供輸入文本和一系列候選圖片,先通過Stage One和Stage Two生成文本和候選圖片的embedding,然后通過文本和候選圖片的匹配分?jǐn)?shù)進(jìn)行排序,最后找到跟文本最匹配的圖片。

          CLIP部分可以看我之前寫的文章ViLD:超越Supervised的Zero-Shot檢測(cè)器


          02

          生成結(jié)果


          下面看幾個(gè)DALL·E圖像生成效果

          輸入文本:一個(gè)穿著芭蕾舞裙的小白蘿卜遛狗的插圖

          輸入文本:一個(gè)專業(yè)高質(zhì)量的頸鹿烏龜嵌合體插畫。模仿烏龜?shù)拈L頸鹿。烏龜做的長頸鹿。

          超現(xiàn)實(shí)主義,DALL·E對(duì)于文本的理解,非常的邏輯自洽,太夸張了


          03

          總結(jié)


          如今,AI在一些細(xì)分領(lǐng)域逐漸向人類發(fā)起挑戰(zhàn),如圍棋(AlphaZero)、蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)(AlphaFold)等等,DALL·E則是對(duì)繪畫、設(shè)計(jì)領(lǐng)域向人類發(fā)起挑戰(zhàn)。

          未來中低端畫師、設(shè)計(jì)師可能會(huì)源源不斷的被AI替代,只有高端畫師、設(shè)計(jì)師能夠繼續(xù)保持自身的競(jìng)爭(zhēng)力,越來越卷了!


          Reference

          [1] Zero-Shot Text-to-Image Generation

          [2] https://www.zhihu.com/question/447757686/answer/1764970196


          推薦閱讀:
          Pandas中的寶藏函數(shù)-transform()

          Pandas中的寶藏函數(shù)-map

          Pandas中的寶藏函數(shù)-apply

          Pandas中的寶藏函數(shù)-applymap

          Pandas中的寶藏函數(shù)-agg()

          一文搞懂Pandas數(shù)據(jù)排序

          Pandas缺失值處理-判斷和刪除

          一網(wǎng)打盡Pandas中的各種索引 iloc,loc,ix,iat,at,直接索引


          掃描關(guān)注本號(hào)↓
          瀏覽 165
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产内射一级毛片农民工 | 日本黄色理论 | 成人黄色在线播放 | 骚视频在线观看 | 青草青青成人在线 |