最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【自用】DALL·E 2(內(nèi)含擴散模型介紹)【論文精讀】(內(nèi)含 生成模型的串講GAN,AE...

2023-04-05 13:22 作者:九轉大腸制作  | 我要投稿

字幕提取:https://b.jimmylv.cn/video/BV17r4y1u77B


【自用】DALL·E 2(內(nèi)含擴散模型介紹)【論文精讀】(內(nèi)含 生成模型的串講GAN,AE, DAE, VAE,?VQ-VAE ... diffusion?

GPT嗶嗶終結者

  • ?? 熱門視頻

  • ???提反饋

  • ?? 客戶端

更新日志 v2.3.0


?? 親愛的用戶,因請求繁忙,OpenAI 成本已失控。如需使用,請付費支持,感謝您助力每一個夢想你只需要把任意 Bilibili 視頻 URL 中的后綴 ".com" 改成我的域名 "jimmylv.cn" 就行啦!??
比如?www.bilibili.com/video/BV1k84y1e7fW????www.bilibili.jimmylv.cn/video/BV1k84y1e7fW

一鍵總結播客音視頻內(nèi)容

Powered by GPT-3.5 AI

在下面的輸入框,直接復制粘貼?bilibili.com/youtube.com?視頻鏈接 ??

請點擊展開填寫 License Key(每天免費10次,支持「購買次數(shù)」啦!也可以真的「給我打賞」哦 ??)

是否顯示Emoji是否顯示時間戳開啟分段總結English中文繁體中文日本語ItalianoDeutschEspa?olFran?aisNederlands?????????????????語言大綱層級(≤1)要點個數(shù)(≤5)句子長短(≤14)一鍵總結??刷刷熱門

?? DALL·E 2(內(nèi)含擴散模型介紹)【論文精讀】

更多論文:https://github.com/mli/paper-reading

大綱視圖字幕列表文章(beta)Copy

片段10:00~2:37

大家好 今天我們就一起來看一下 兩個月之前OpenAI剛放出來的一篇力作 DALL·E 2 DALL·E 2 呢是OpenAI一系列 文本圖像生成工作的最新一篇 去年一月份呢他們先推出了DALL·E然后在年底的時候呢又推出了GLIDE 然后現(xiàn)在4月份呢剛推出了DALL·E 2 DALL·E 2一出來呢其實網(wǎng)友就已經(jīng)炸開了鍋 我記得那兩天的twitter上 或者說instagram上到處都是DALL·E 2生成的圖片 所有的論壇上基本都被DALL·E 2刷屏了 雖然網(wǎng)上有很多很好玩的很新奇的生成那些圖片 但是OpenAI這里 自己做的這個DALL·E 2的介紹呢更是非常精美 所以我們就先來看看 他是怎么宣傳DALL·E 2的作者上來先說呢 DALL·E 2是可以根據(jù)這個文本描述 去生成這種原創(chuàng)性的真實的圖片這個原創(chuàng)性很重要 因為大家經(jīng)常覺得 你這個模型是不是在 很多很多這個數(shù)據(jù)上訓練之后 它其實就是把這些圖片記住了呢然后接下來它就不停的復制粘貼 去生成新的圖片而已 但是作者這里認為呢DALL·E 2是能生成原創(chuàng)性的圖片的 也就說是這種fake image 是從來沒有在訓練集里出現(xiàn)過的圖片然后作者接下說 DALL·E 2呢 是真的把圖片文本里那些特征都學到了 所以說呢 它可以任意的去組合這種概念或者屬性 或者這種風格 接下來呢OpenAI就舉了幾個例子那左邊呢就是這個文本描述 從上到下一共有3行 分別對應的就是這個概念、屬性和風格那比如說呢 我們現(xiàn)在如果選定一個宇航員 騎著一匹馬而且是這種寫實的風格 那它就會生成像右圖這樣的圖片 我們可以看出這個圖片的語義 其實和這個文本描述非常的貼切 而且呢這個細節(jié)也非常的逼真那如果我們現(xiàn)在換一下這些概念或者 風格會怎么樣呢 比如說我們現(xiàn)在換一下一碗湯然后屬性呢 變成了去另外一個空間的傳送門 然后風格呢就是一幅數(shù)字畫然后DALL·E 2就能生成這么一張圖片 真的是讓人瞠目結舌 這個其實都可以直接拿去做插畫或者當任何廣告的這個宣傳畫了 那最后我們再看一個例子 如果我們把最上面這個概念換成teddy bear 然后屬性呢 就是說它們正在做最新的這種AI研究然后風格呢 就是在1980年代的那個月球上 DALL·E 2呢就真的能夠生成有兩只teddy bear 然后在電腦跟前做什么工作 而且是在月球表面這個生成效果 真的是非常的不可思議 那除了根據(jù)文本直接去生成圖片之外呢 那OpenAI這里說DALL·E 2 還能做的事情就是根據(jù)文本去對已有的這個圖片呢 進行編輯和修改 它呢可以任意添加或者移除現(xiàn)在圖片里的物體 而且甚至呢能夠把這些陰影 光的反射

片段22:43~5:18

還有這些物體的紋理全都考慮在內(nèi) 這里呢作者又舉了幾個例子 比如說左邊這張圖片呢是一個室內(nèi)的一個大廳 然后它現(xiàn)在文本呢 就給這對應的這123三個位置上去添加一只火烈鳥 那現(xiàn)在 如果我們把這個火烈鳥添加的位置改成 3 那我們可以看一下哎 就在3的這個位置上就生成了兩只火烈鳥 而且呢 DALL·E 2的這個生成 它不是一對一映射關系的因為它使用的是一種叫 擴散模型的結構 去做這種圖像生成所以它可以生成任意多的圖像 但是呢大體內(nèi)容都差不多 只不過具體的細節(jié)不太一樣那作者這里還給了很多別的例子 比如說他生成的里頭也有一只火烈鳥 或者說呢還有脖子更長的火烈鳥而且這里我們可以注意到 這里的火烈鳥呢其實在水里還有倒影 那更神奇的是呢如果我們把現(xiàn)在火烈鳥添加的位置 改成這個位置2 我們就會發(fā)現(xiàn)呢模型其實是在這個水面上 放了一個火烈鳥形狀的游泳圈 這個生成結果呢其實也是很合理的因為一般在室內(nèi)的這種 泳池或者水面上 不太可能會出現(xiàn)真的火烈鳥往往呢是這種火烈鳥形狀的游泳圈 那現(xiàn)在如果我們再換一個場景 比如說換到這個室內(nèi)大廳里面文本描述呢是添加一個沙發(fā) 我們就會發(fā)現(xiàn) DALL·E 2可以生成各式各樣的沙發(fā)而且還可以變換顏色 而且還可以變換樣式 然后如果我們換一個位置呢加到這個2的位置 它又會生成新的沙發(fā) 但是呢就是在對應的這個位置之上瞬間覺得其實以后的這個家裝設計 家裝裝修呢 也沒有那么難了 給一個平面圖想加什么加什么 想在哪加在哪加 然后呢 DALL·E 2還能干很多事情即使在沒有文本輸入的情況下呢 DALL·E 2依舊 可以做一些圖像生成的工作比如說這里 你給定一張圖片 它就可以根據(jù)已有的這張圖片和它的風格 去生成很多類似的這種風格的圖片 而不改變已有的這個語義那比如說這張世界名畫 經(jīng)過DALL·E 2的變換之后呢 就變成了右邊這個樣子而且呢就像我剛才說的一樣 DALL·E 2這個模型呢 不是一個一對一的映射它其實是可以生成 很多種類似的圖片的 比如這里人頭的方向改變了然后這里頭巾的樣式改變了 當然了 人的長相呢一般也都有微妙的改變若這里呢 我們再看另外一幅世界名畫 這個星期日的下午我們就可以看到 DALL·E 2真的是真實的模仿了這種風格 然后又生成了很多很多種這樣不同的圖片 所以說在DALL·E 2這個工作出來之后呢 OpenAI的CEO本人都在twitter上說他覺得他之前對AI的理解呢 可能有都有了錯誤 因為我們一直覺得AI呢

片段35:23~8:00

是能夠先處理這種就是重復性的工作 這種體力工作 而這種帶有創(chuàng)造性的工作呢往往是AI無法取代的 但在現(xiàn)在看來呢 這種藝術的創(chuàng)作呢反而好像已經(jīng)觸手可及了 那在作者 賣完了這些最驚艷的結果之后呢作者就把DALL·E 2跟DALL·E 的這個生成效果對比了一下 那這里這個例子呢就是用同樣的文本生成的兩張圖片 我們可以看到呢 DALL·E 2可以生成之前4倍的這個分辨率 所以說看起來呢更清晰也更逼真了 那如果光拿一張圖舉例大家可能不信 所以作者這里呢又做了另外一個實驗 就是它找了一些志愿者然后讓這些志愿者呢看1,000張圖片 分別是DALL·E生成的和DALL·E 2生成的 那最后統(tǒng)計的結果呢就是有70%的人認為DALL·E 2生成的圖片 跟這個文本描述呢更貼切 然后有將近90%的人認為呢DALL·E 2生成的圖片 要比DALL·E生成的圖片要更真實 最后呢又是老生常談OpenAI經(jīng)常搞這個大模型 大數(shù)據(jù)這個東西 然后到最后呢他就跟你來談一談這個安全考慮 或者道德公平性倫理這種考慮 他這里就說呢我們暫時還不能開源也不能release我們的模型 我們甚至連API都不開放 目前呢 OpenAI就只是把他們的API 開放給了一小部分用戶 而讓他們呢去做這種內(nèi)測或者做一些研究 看看DALL·E 2到底有什么缺陷 有什么限制那其實作者這里說的這些安全考慮呢 主要就是說怕用戶呢 去生成這種帶有暴力的或者成人的 或者帶有政治色彩的這些圖片 當然了網(wǎng)上收集的這種圖像文本對肯定會帶有很多這種偏見 和公平性的問題 那如果你現(xiàn)在覺得DALL·E 2很吸引你然后想去玩一下的話 那你就可以加入DALL·E 2的這個waitlist 但是這個waitlist應該很長我也早在一個半月之前就申請了 但是至今沒什么消息 從twitter和reddit使用的情況來看呢OpenAI呢主要是把優(yōu)先權給了那些大v 說白了就是讓他們?nèi)ソoDALL·E 2 做這種免費的宣傳那對于大部分 沒有排上waitlist的小伙伴來說呢 如果你非常想嘗試一下DALL·E模型那這里呢 其實github上有一個開源的DALL·E庫 叫做dalle-mini目前呢我們可以看到它的star 也已經(jīng)有9,000個了 雖然它的模型呢都是在比較小規(guī)模的數(shù)據(jù)集上去訓練的 而且模型本身也比較小 所以說最后的結果呢不是那么好但是玩起來已經(jīng)很有意思了 這里呢 你當然可以把它的代碼下下來在你本地上去跑 或者呢你就像它這里說的一樣 打開這個colab然后在colab里去用 再或者呢最簡單的一種方式 就是直接用APP

片段48:05~10:46

也就是它這里最上面說的這個 Hugging Face的這個應用 Hugging Face大家肯定都不陌生了算是現(xiàn)在最流行的nlp的開源庫 而且已經(jīng)漸漸有變成CV 甚至多模態(tài)里最流行的庫的趨勢那Hugging Face這邊呢 它就提供一個東西叫space 就是一個空間然后大家可以把它的模型 代碼上傳到這個上面 就可以做成一個APP然后大家呢就可以直接來玩 比如這里呢 就是一個DALL·E mini的一個應用APP大家呢就可以隨意把你的這個文本 寫在這個文本框里 然后點一下這個run底下就會出來很多 這個DALL·E mini生成的圖片 這里呢因為太多人玩了所以經(jīng)常排不上隊 我就提前體驗了一下 我現(xiàn)在可以把我跑的例子呢跟大家分享一下 比如這里我的第一個例子 就是有一只狗在月球上奔跑我們可以看到 這個模型小了確實還是不行 生成的這個畫質(zhì)還是渣了不少但是呢它大概生成的這個意思還是在 那下一個例子呢 就是一只狗和一只貓在打架那這些圖片里呢 也基本都有一只狗和一只貓在對峙 但是這里呢畫就比較抽象沒有那么多寫實 比如說這里是個狗頭 旁邊接了兩個這種身子一個白色一個黃色 你也不知道它接的是哪個 然后下面這張圖呢看著貓好像是在打架的樣子 可是這個貓臉也沒有了 對整體上還是比較糙的然后再來生成一張食物的照片 就是邊吃拉面邊吃sushi 這里生成這些圖片質(zhì)量還不錯那可能是因為這個例子比較簡單 因為它就是兩個物體 拉面和sushi都是比較常見的物體所以說生成的呢也就比較逼真 好最后呢就是在亞馬遜AWS種西紅柿 但是模型呢應該還不理解什么是AWS對它就是把西紅柿畫出來 這個在DALL·E 2本文里也有介紹 就是當這個文本太過復雜場景太過復雜的時候 其實模型呢 還是會選擇一個最簡單的場景然后把它生成出來 那不論是OpenAI 生成的這種精美的高清大圖還是我用DALL·E mini 生成的這種畫質(zhì)比較糙的小圖片 總之呢 DALL·E系列的工作這種根據(jù)文本去生成圖像的 質(zhì)量還是非常好的 而且可以說是出人意料的好所以 自從DALL·E在2021年1月份出來之后 后續(xù)就有一大堆工作進行跟進比如說在21年5月份的時候呢 清華就推出了CogView這個模型 它呢還支持中文去生成圖像然后到11月份的時候呢 微軟和北大 就推出了這個NüWA(女媧)模型 它不光能生成圖像而且還能生成比較短的視頻 然后到12月份呢 OpenAI自己又推出了GLIDE這個模型也就是我們今天DALL·E 2 主要基于的這個圖像生成的模型 我們一會也會提到然后呢同樣在12月 百度也推出了ERNIE-ViLG這個模型 它也支持中文

片段510:51~13:31

而且它這個模型也非常大 有100億參數(shù) 基本跟最開始這個DALL·E120億參數(shù)呢就非常接近了 然后呢轉眼來到今年 4月份的時候呢OpenAI又推出了DALL·E 2然后同樣在4月呢 清華又再次推出了CogView 2 緊接著一個月之后呢他又推出了CogVideo 就專門針對生成視頻做的 最后呢就在上個月google也不甘示弱推出了他們自己的Imagen Imagen呢其實相對而言 模型要簡單很多而且效果呢也跟DALL·E不相上下 甚至很多人呢 都覺得Imagen的效果更好但是其實呢 Imagen和DALL·E 2所用的模型呢 都差不多它們的底層呢 都是用了 擴散模型去做這種圖像的生成所以說擴散模型 真的是一個很火的方向 預感到未來幾年呢基本上它就要取代GAN的這個位置 因為GAN其實已經(jīng)沒有什么可以做的了 已經(jīng)被人做了五六年了該挖掘的東西呢全都已經(jīng)挖掘完了 擴散模型呢作為新起之秀 有太多太多可以提高的地方現(xiàn)在擴散模型的狀態(tài)呢 基本就跟17、18年時候 那個GAN的狀態(tài)差不多所以應該至少還有兩到三年的時間 去充分發(fā)揮它的潛力 那前面說了這么多接下來呢我們言歸正傳 一起來精讀一下DALL·E 2這篇論文 首先我們看一下題目作者說呢使用CLIP訓練好的這種特征 來做這種層級式的 依托于文本的圖像生成這里層級式的意思呢 是因為DALL·E 2的這個模型 是先生成一個小分辨率的圖片比如說64*64 然后呢 再利用一個模型 上采樣到256*256然后再使用一個模型 上采樣到1024*1024 變成一個高清大圖所以是一個層級式的結構 然后DALL·E 2本身完成的任務呢 就是根據(jù)提供的這個文本從而去生成這個新的圖像 那至于使用CLIP提供的這個特征 其實DALL·E 2這個模型呢是先訓練好了一個CLIP模型 然后找到圖片和文本對 之間的這種相連關系之后這個時候呢給定一個文本 CLIP的文本編碼器呢 就可以把這個文本變成一個文本特征然后DALL·E 2 就訓練一個prior模型 這個模型的輸入呢是這個文本特征 然后它的輸出呢是這個圖像特征然后再把這個圖像特征 給接下來的這個解碼器 從而生成一個完整的圖像所以說整個DALL·E 2模型呢 是離不開CLIP特征的 作者團隊呢都來自OpenAI大家應該都很熟悉了 這里的一作Aditya呢 其實參與過CLIP和DALL·E的工作Mark呢也是DALL·E的原班作者 而且他主要呢是做Codex和GPT 3的 但是因為DALL·E 2這篇論文它這個圖像解碼部分呢 主要用的是diffusion model 就這個擴散模型所以說呢 又找了兩個擴散模型的這個專家 他們呢做過iGPT

片段613:36~16:14

而且最近呢 剛寫過Improved DDPM這篇論文 也就是denoising diffusion model所以把擴散模型呢玩的是很溜 所以一會呢我們也可以看到 DALL·E 2這個模型其實就是CLIP模型加上GLIDE模型 而GLIDE模型呢 就是一個基于擴散模型的文本圖像生成的方法 那從作者這里也可以看出來 就是CLIP的作者 加上GLIDE的作者那在精讀論文之前呢 我們先來看一下文章的整體結構 DALL·E 2這篇論文呢其實不長跟CLIP的四五十頁比起來呢 DALL·E 2其實只有27頁 如果你把后面的這些可視化還有這些參考文獻都去掉的話 其實也就十幾頁 而且全文呢這些圖確實都比較多然后論文上來呢先是說摘要 然后是引言 然后在引言部分呢貼了9個高清大圖就展示了一下 他們生成的這種1024*1024的這些大圖 到底畫質(zhì)有多么的好然后接下來呢 就是DALL·E 2論文的這個主體方法部分 其實只有短短的兩頁然后在這里呢 作者甚至都沒有去講CLIP 他認為你已經(jīng)知道CLIP是什么了他主要就講的是它后面 圖像生成這一部分 比如說這里呢他就先講了一下decoder 這個解碼器 下面呢就講了一下這個prior先驗模型 然后接下來呢 作者就大概用了四五頁的篇幅去介紹一下DALL·E 2到底能干什么 然后又用了四五頁的篇幅呢 去跟別的方法做了一些對比不光是數(shù)字上的對比 還有可視化上的這種對比 然后最后呢寫了一下相關工作最有意思的呢就是最后幾頁 他描述了一下 DALL·E 2的這個現(xiàn)在的局限性和不足其實當我們最后 看到這些不足的時候呢 我們會發(fā)現(xiàn)其實DALL·E 2還有很多需要提高的地方 它遠遠沒有我們看到的那幾張圖片 一樣那么驚艷接下來呢是參考文獻 這里呢是一些具體的這個訓練細節(jié) 最后呢又展示了一下根據(jù)同樣一個文本 能夠生成不同的輸出 而且每一張輸出的圖片呢都非常清晰和逼真 那接下來我們直接看摘要 作者上來說之前的那些對比學習的方法 比如說我們OpenAI自己的CLIP模型 這種模型已經(jīng)可以學習到 很穩(wěn)健的一個圖像特征 它既能夠抓住這個語義信息又能抓住這個圖像的這個風格信息 那既然這個特征這么好這么穩(wěn)健 那如果你只拿它去做這種分類任務就有點可惜 所以作者接下來說呢 為了能夠借助于這些特征然后能用來做這個圖像生成 我們呢提出了一個兩階段的一個模型 這兩個階段呢分別叫prior和這個decoderprior呢就是給定一個文本描述 它能夠給我生成一個類似于CLIP的一個 圖像特征然后解碼器的意思呢 就是說當你給定這個圖像特征之后 我能根據(jù)這個特征生成一個圖像

片段716:20~19:02

所以這個過程呢其實說直白點 就是給定一個文本 然后我先用一個CLIP模型把它生成一個文本的特征 這一步呢是固定的 因為這里這個CLIP模型呢是鎖死的然后接下來呢 就到文章說的這個兩階段的模型 它根據(jù)這個文本特征去生成一個圖像特征 這一步呢就叫做prior 當然CLIP模型在這里也有用了因為CLIP生成的那個對應的圖像特征 是用來在這里做ground truth用的 然后你一旦有了這個圖像特征我就需要有一個這個解碼器 去生成最后的這個圖像 然后呢就完成了這個從文本到圖像的生成過程 然后作者接下來說呢他們發(fā)現(xiàn) 就這種顯式的去生成這種圖像特征的方式 能夠很顯著的提升圖像的這個deversity 就這個多樣性也就是說加上這一步是有好處的 而且呢對于這個圖像的這個寫實程度 還有這個跟文本的這個匹配程度都沒有什么損失 就說我生成的這個圖又逼真又多樣 那這個特性還是非常好的因為我們大家都知道 GAN生成的圖像雖然非常的逼真 因為它本來的目的就是以假亂真嘛但是呢它的多樣性不太好 生成的圖像都長得差不多 不太具備這種原創(chuàng)性所以這也就是最近的模型 像DALL·E 2和Imagen 大家都使用擴散模型的原因因為它的多樣性好 還有創(chuàng)造力 然后作者接下來就強調(diào)了一下 他們這個基于擴散模型的這個解碼器能夠基于給定的這個圖像特征 但是生成很多不一樣的這個圖片 但是這些圖片呢它的這個語義信息 和風格都是比較接近的 只不過是一些細節(jié)呢不太一樣接下來呢作者又開始賣另外一個點 就說 因為我們這個是通過文本生成圖像所以呢 我們就很容易的通過CLIP這個模型 作為中間那個橋梁從而達到這個能用文本 去直接對圖像進行編輯的功能 而且是zero-shot 就是你不需要去訓練你直接拿來這個DALL·E 2的模型 你就可以去用了 就跟我們之前展示的那個在大廳里放沙發(fā)的那個例子一樣 你就可以在任意一個地方 去加個沙發(fā)加個椅子 或者把這個沙發(fā)去掉 把這個壁畫去掉你可以實時的 利用這種文本的信息 去引導這個模型 去生成各種各樣你想要的圖片然后作者最后呢說了一下模型的結構 他說他們的這個解碼器呢 用的是這個擴散模型然后在他們的這個prior模型里呢 他試了這個auto regressive 自回歸模型和這個擴散模型但最后他們發(fā)現(xiàn)了還是這個擴散模型 效率又高 最后生成的效果又好所以整體上呢 DALL·E 2就是一整個都是擴散模型 我其實沒太明白作者為什么要把這句話 當成最后一句話 可能作者們覺得呢

片段819:06~21:45

這個才是他們最想表達的一個觀點 也就說接下來 大家都來使用擴散模型吧所以把模型結構這個東西呢 放在了最后 當成壓軸的一句話接下來呢我們一起讀引言 作者上來說 視覺領域最近的一些進展呢主要就是使用了更大的這個模型 而且呢使用了更大的一個數(shù)據(jù)集 這個數(shù)據(jù)集呢主要是這個圖像文本對也就是帶有標題的這種圖像 那代表作之一呢 就是他們自己的這個CLIP模型了CLIP模型呢 就通過最簡單的那種對比學習的方式 就能夠學習到一個很好的這個特征我們之前也講過CLIP這篇論文 首當其沖的 就是它們有這個特別好的這個zero-shot的能力就是任何一個圖片拿過來 你給一些你感興趣的這些標簽 它就能把這個圖片呢分給其中的一個標簽 所以它能夠識別很多很多很多的類 遠比ImageNet的1,000類要多非常的靈活 然后CLIP學到這個圖像特征呢 也很穩(wěn)健尤其是對這種分布偏移非常的穩(wěn)健 但其實上次我們在CLIP 論文里也讀過如果真的遇到那種OOD的樣例 那就是完全不在當前的分布之內(nèi)的話 CLIP模型呢也一籌莫展就連最簡單的0123456789 它都識別不好 然后作者這里又說 CLIP還有一個好處就是說如果你去做這種fine-tune的話 它能夠在一系列的這種視覺或者文本 的任務上取得很好的成績就是總體而言 CLIP學到的這個特征呢 還是非常好的然后接下來呢作者這個畫風一轉 直接說這個擴散模型 也變成了在這個圖像生成領域里一個非常好用的一個工具 能夠呢在這個圖像 還有這個視頻生成上呢都達到了這種就是最好的程度 那其實呢 擴散模型在很早之前就提出了其實15年就提出了 甚至有可能更早就已經(jīng)提出了 它呢是一種概率分布模型所以說它生成這個圖片呢 是從一個分布里去采樣 所以它的這個多樣性呢非常的好但是它的保真度呢比不過GAN 因為GAN本身就是為了這個以假亂真 去優(yōu)化的所以說那個GAN生成的圖像呢 就特別的逼真 細節(jié)就特別的好但是擴散模型呢就做不到這一點 至少是在數(shù)值比較上 比如說inception score或者說FID score 在這些上面 GAN一直都是壓著diffusion model的但是從20年開始呢 就有一系列的工作 把這個擴散模型的這個保真度做得更好了 比如說剛開始的DDPM 到后來的improved DDPM然后到Diffusion Models Beat GANs 一直到最新的GLIDE和DALL·E 2 這一系列的工作呢采用了很多很多小的這些技巧 其中有一個比較著名的呢 就是這一個叫引導的技巧guidance technique 它能夠呢 犧牲一部分這個這個多樣性

片段921:49~24:25

從而能達到更好的這個保真度 這樣話呢 這個擴散模型一下在數(shù)值比較上就跟這個GAN不相上下了 所以這也就造就了 擴散模型這兩年的火熱因為它也算是SOTA了 那這樣大家就可以去跟進這個工作了 否則老怕過不了審稿人那一關那接下來第二頁呢 作者就放了一個九宮格 展示了九張這個高清大圖我們這里呢也可以看幾個例子 比如說這個圖片呢 就是說一個柴犬帶了一個貝雷帽而且穿了一個黑色的高領毛衣 我們可以看到這個貝雷帽 和這個高領毛衣而且真的這是黑色的下面是紅色 當然是任意生成的 而且這個狗的這個鼻子嘴啊 各種細節(jié)都生成的非常的好 而且甚至這個背景呢還是虛化的 搞的真的跟一個近景拍攝的一個照片一樣 然后這張圖呢 寫的是一個瘋狂的一個熊貓科學家正在把一些冒泡的這個化學物質(zhì)呢 混合到一起 確實也是栩栩如生最后還有這個一個海豚 穿著宇航服 在這個土星外面游蕩或者說呢 在這個時代廣場上有一個小的熊 在這個滑板上這DALL·E 2這個模型 不光是把這些物體畫出來了 而且真的是把這個泰迪熊畫到這個滑板之上 而且它也真的理解 這個時代廣場長這個樣子所以當大家看到這些圖之后呢 腦海中只能覺得 DALL·E 2這個模型真的是太強了這里呢 我們就不看引言的第二段和第三段了 因為其實就直接看這個圖二呢就能知道它們在說什么 作者這里呢把這個圖畫成了兩部分 上半部分呢其實就說了的是這個CLIP下半部分呢 其實才是真正的這個DALL·E 2 那我們一個一個來看首先我們來看上面這個CLIP模型 我們來復習一下CLIP模型呢 就是說我給定一個文本然后我給定一個對應文本的這個圖像 它倆呢是一個對 然后這個時候呢我把這個文本呢 通過一個文本編碼器 得到一個文本特征然后圖像呢 通過一個圖像編碼器 得到一個圖像特征那這兩個呢就應該是一個正樣本 那這個文本跟其他的圖像呢 就應該是負樣本然后我通過這種方式呢 去做這個對比學習 從而最后呢把這個 文本編碼器和這個圖像編碼器 都學的很好而且這個文本和圖像的特征呢 真的就聯(lián)系在一起了 是一個合并的多模態(tài)的一個特征空間 那一旦這個CLIP模型訓練好之后呢 其實這個文本編碼器和這個圖像編碼器呢 就鎖住了 就是在DALL·E 2這篇論文里呢CLIP的這個模型一直都是鎖住的 它是不會進行任何訓練和fine-tune 那接下來呢就是作者在摘要里說過的 這個兩階段的訓練方式 第一個階段呢就是prior第二個階段呢就是decoder 那其實最暴力的做法呢 就是如果我要根據(jù)這個文本

片段1024:30~27:12

去生成最后的這個圖像 那其實呢我這中間有個大模型 中間反正就去學一些融合的特征我直接生成就可以了 但是就像作者在摘要里說的一樣 如果中間有這么一個顯式的生成這個圖像特征的一個過程 就是先從文本生成文本特征 然后再生成圖像特征然后再由這個圖像特征 生成最后的圖像呢 這個效果就會好很多所以他們才采取了這種兩階段的方式 那具體來說呢 在訓練的時候就是首先我給定一個文本 然后 通過一個鎖住的CLIP的這個文本編碼器我就得到了一個這個文本特征 所以說 其實這里這個文本和這個文本特征呢都是固定的 是有一對一映射關系的 然后呢我想通過這個文本特征得到對應的這個圖像特征 那這個怎么學習呢 作者這里就說呢因為CLIP這邊呢也有這個圖像特征 所以在訓練的時候呢 我是有這個圖像文本對的我就可以先把這個圖像呢 得到這個圖像特征 然后拿這個圖像特征過來呢當這個ground truth去監(jiān)督 那意思就是說我要用這個文本特征 去預測這個ground truth的這個圖像特征通過這種方式 就把這個prior模型給訓練出來了 這樣等到真正做推理的時候也就是說我只有文本 沒有配對的這個圖像的時候呢 我這個文本先生成一個文本特征我還是能夠通過訓練好的這個prior模型 去得到一個 類似于CLIP生成的那個圖像特征這個圖像特征按道理來說應該非常好 它既能夠用來生成一個圖像 而且它還是能夠跟這個文本之間是有對應聯(lián)系的 然后一旦我們訓練好了這個prior模型 我們拿到了這個圖像特征 那接下來呢 就是用一個比較常規(guī)的一個擴散模型一個解碼器 去生成最后的這個圖像而已 具體的細節(jié)呢我們接下來再講所以我們可以看到 其實DALL·E 2這篇文章 就是把CLIP和GLIDE的兩個模型呢合在了一起 但是呢里面有很多值得借鑒的技巧 而且呢大力出奇跡這個效果也非常好所以DALL·E 2這個工作的影響力呢 還是非常巨大的 然后其實另外一個比較有意思的事情呢 就是其實在DALL·E 2這篇論文里 他并沒有管自己叫DALL·E 2他其實給自己起的名字呢叫做unCLIP 那為什么是unCLIP呢 因為對于CLIP來說它是給定文本圖像 它最后呢是想得到這個特征 然后拿這個特征去做圖像匹配去做圖像檢索之類的 所以它是一個從輸入到特征的過程 但是呢對于DALL·E 2來說它呢是通過一個文本特征 然后到圖像特征 然后最后到圖像的過程所以它其實呢是一個CLIP的反過程 它是把特征呢又還原到了這個數(shù)據(jù) 所以說作者呢管他們整個的這個框架呢 叫做unCLIP 所以說當你聽到別人說unCLIP的時候

片段1127:17~29:51

不要覺得這是另外一篇新的論文 那其實它就是DALL·E 2 那接下來呢我們就來看一下文章的主體方法部分 但其實呢對于DALL·E 2來說 它的這個文章主體方法部分就只有兩頁 內(nèi)容非常的少 它主要分為兩段這一段講的是這個decoder 然后這一段講的是這個prior 因為decoder就是一個升級版的GLIDE模型所以說他這里呢 主要就寫了一下和之前GLIDE 模型的這個區(qū)別都是一些實現(xiàn)上的細節(jié) 完全沒有講這個方法本身是怎么做的 然后prior這個章節(jié)呢其實寫的也是很簡單 里面都是一些實現(xiàn)上的細節(jié) 所以如果我們只看DALL·E 2這一篇文章的話呢 我們是很難知道 這個總體模型到底長什么樣輸入輸出是什么 這個目標函數(shù)是什么 就很多這種問題呢都無法從這篇論文里得到答案 所以鑒于此呢 在這里我準備先把這個圖像生成這塊之前的一些工作呢 先大概介紹一下 非常簡略地從剛開始的這個GAN模型然后呢還有Auto-encoder Variational Auto-encoder 就是VAE這一系列的工作然后再到最新的這個diffusion model 擴散模型以及它的一系列后續(xù)工作 那我們先來看GANGAN的話呢就是左右手互搏對吧 你要訓練兩個網(wǎng)絡 一個呢叫做generator就是生成器一個是discriminator就是判別器 生成器這邊呢 就是你給定一個這個隨機噪聲它呢就會給你生成一些東西 在這里呢 我們希望它能生成一個比較真實的圖片 然后呢我們把這個生成的圖片呢 給這個判別器同時呢我們再給一些這個真實的圖片 給這個判別器 然后讓這個判別器去看到底哪個是真圖片 哪個是假圖片 所以說后面呢其實就是一個0-1的這個二分類問題 然后呢就通過這個generator和discriminator 這兩個網(wǎng)絡之間這個互相較量然后這個判別器呢不停地提高自己 然后這個生成器呢也不停地提高自己 所以說最后呢能生成這種比較真實的圖片 而事實上呢 因為GAN的這個目標函數(shù)呢就是用來以假亂真的 所以說截止到目前為止呢 GAN生成的圖片這個保真度也是非常高的 就真的是人眼 也不好區(qū)分它生成的圖片是真是假所以這才有了DeepFakes的火爆 然后不光是真實 而且經(jīng)過這么多年對GAN的這個模型改造 之后呢GAN其實現(xiàn)在呢也比較好用 需要的數(shù)據(jù)呢也不是那么多能在各個場景底下使用 所以優(yōu)點還是蠻多的 但它有一個最致命的缺點那就是它還是這個訓練不夠穩(wěn)定 最主要的原因呢 就是它要同時去訓練這兩個網(wǎng)絡所以說就有一個平衡的問題 經(jīng)常如果訓練的不好呢 這模型就訓練坍塌了

片段1229:56~32:30

而且呢因為GAN的這個主要優(yōu)化目標呢 就是讓這個圖片盡可能的真實 但是它生成圖片的這個多樣性呢就不太好 它的這個多樣性呢 主要就來自于剛開始的這個隨機噪聲簡單點說呢 就是它這個創(chuàng)造性還不太好 然后最后呢它不是一個概率模型它的這個生成都是隱式的 它就是通過一個網(wǎng)絡去完成的 所以你也不知道它做了什么你也不知道它遵循了什么分布 所以說GAN呢 在數(shù)學上就不如后續(xù)的這個VAE或者這些擴散模型優(yōu)美 那接下來呢我們看一下auto-encoder 以及到后來的這個VAE和VQ-VAE那auto-encoder呢其實非常簡單了 也是很早之前的技術了 大概意思就是說呢你給定一個輸入x 然后我過一個這個編碼器 然后就能得到一個特征這個特征的維度呢一般都會小很多 所以說我們也管它叫這個bottleneck 然后再從這個bottleneck開始呢我們過一個這個解碼器 然后最后得到一個圖像 然后這個訓練的時候目標函數(shù)呢就說我們希望 這個圖像能盡可能的重建 之前的這個x因為是自己重建自己嘛 所以說這也就為什么叫auto-encoder 就是自編碼器然后在這個自編碼器AE出來之后呢 緊接著就出來了一個denoising auto-encoder 就是個DAE其實說白了它就是先把這個原圖呢 進行了一定程度的這個打亂 比如說變成了一個xc就是corrupted x然后 把這個經(jīng)過擾亂過后的這個輸入呢 傳給這個編碼器然后后續(xù)都是一樣的 我們還是得到了一個bottleneck的特征 然后通過解碼器然后最后得到一個輸出 然后我們還是希望這個輸出呢 能夠重建原始的這個x而不是說去重建這個 經(jīng)過擾動之后的x 這個改進呢證明非常的有用尤其是對視覺這邊來說呢就更有用 會讓這個訓練出來的模型 非常的穩(wěn)健也不容易過擬合 其實部分原因呢 就是說因為圖像這邊這個像素它這個冗余性太高了 所以你即使把原來的這個圖片 做一些這個污染其實模型還是能抓 住它的這個本質(zhì) 然后去把它重建出來的這個呢其實也就有點最近 愷明這個MAE的意思對吧 也是masked auto-encoder這個掩碼自編碼器 它在訓練的時候呢 之所以能夠mask掉75%就是這么多的這個圖像區(qū)域 還能把這個圖像很好的重建出來 也就說明了這個圖像它這個冗余性確實是高 也就從側面證明了 這種denoising auto-encoder或者這個masked auto-encoder 它的這個有效性 但其實呢不論是AE還是DAE還是MAE它們主要的目的呢 都是為了去學中間這個bottleneck特征的 然后把這個特征拿去做一些這個分類 檢測分割這些任務 它并不是用來做生成的

片段1332:35~35:18

原因呢就是 其實它這學到的不是一個概率分布 我們沒法對它進行采樣也就說這里這個z 并不像GAN里面那樣 是一個隨機噪聲它是一個專門用來重建的一個特征 但是呢這種encoder-decoder的形式 確實是一個很好的結構那我們怎么能使用這種結構 去做這種圖像生成呢 所以這就有了VAE (Variational Auto-encoder)那VAE呢其實跟AE是非常不一樣的 雖然它的整體框架看起來 還是一個輸入進了一個編碼器 然后得到了一些東西 最后出解碼器然后最后得到一個輸出然后它的目標函數(shù)呢 還是讓這個輸出 盡可能的去重建原來的這個x看起來好像一樣 但其實呢有一個非常重要的區(qū)別 就是它的這個中間不再是學習一個固定的這個bottleneck的特征了 而是去學習了一個分布 在這里呢作者假設這個分布 是一個高斯分布 所以說高斯分布呢就可以用這個均值和方差來描述 那具體來說呢 就是當我們得到從這個編碼器出來的特征 之后呢我們在后面加一些FC層 然后就去預測一個這個均值和方差然后得到對應的這個均值和方差 之后呢我們就用這個公式 去采樣一個z出來那這樣呢 VAE就可以用來做生成了 因為在你訓練好這個模型之后呢你完全可以把前面這個編碼器呢 直接扔掉 然后你這里是個z呢就是一個 可以從這個高斯隨機噪聲里去 抽樣出來的一個樣本然后你給這個解碼器 你就能生成一張照片了 然后呢因為VAE這里預測的是一個分布那從貝葉斯概率的角度來看呢 那前面的這一過程 就是給定x得到z的這個過程其實就是一個后驗概率 然后學出來的這個distribution呢 其實就是一個先驗分布那至于后面這塊就是給定了z 然后去預測一張圖片x的時候呢 它其實就是likelihood那其實也就是說我們這里做的呢 就是maximize likelihood 那從數(shù)學上看呢就干凈很多優(yōu)美很多而且VAE呢也有一些很不錯的性質(zhì) 那比如說 因為它學的是一個概率分布它是從這個分布里去抽樣 所以說它生成的這個圖像多樣性呢 就比GAN要好得多這也就是為什么大家接下來 做了很多基于這個 VAE的這個后續(xù)工作包括VQ-VAE還有VQ-VAE-2 以及再后來的這個DALL·E第1版模型 其實也就是在VQ-VAE的基礎上做的那既然說到了VQ-VAE 那接下來我們就來講一下 那這里呢上面就是我們剛才說過的這個VAE 然后下面呢 就是我們馬上要說的這個VQ-VAE其實呢整體上看來也差不多 那VQ-VAE這里的含義呢就是vector quantised 就是把這個VAE做量化那為什么要這么做呢 其實原因很簡單 那即使現(xiàn)實生活中

片段1435:23~38:04

你的所有的這些信號包括聲音 然后圖像可能都是連續(xù)的 或者說你大部分任務可能都是一個回歸任務 但事實呢真的當你把它表示出來 真的當你去解決這些問題的時候其實我們都把它離散化了 圖像呢也是變成像素了 語音呢也都抽樣過了大部分工作的比較好的模型呢 也都是分類模型 又都從回歸任務變成分類任務所以這里呢也一樣 如果用之前的這種VAE的方式呢 它就不好把這個模型做大這個圖像的尺寸呢做大 而且這里這個分布呢也不是很好學 所以說取而代之的呢是不去做這個分布的這個推測 而是呢用一個codebook去代替了 這個codebook這里面呢 其實你可以把它理解成一個 比如說聚類的中心這個codebook的大小呢一般是K乘以D 然后K呢一般是8192 然后呢D呢一般可能就512或者768意思呢就是有8,192個 長度為D的這么個向量 在這個codebook里也就說呢我們有8,192個聚類中心 然后這個時候呢如果有一個圖片 經(jīng)過編碼器得到了一個特征圖這個特征圖呢是有長寬的 hw這種長寬的特征圖 然后呢我們就把這個特征圖里的向量 去跟這個codebook里的向量呢去做對比 然后看看它跟哪個聚類中心最接近然后呢我們就把那個最接近的聚類 中心的那個編碼 存到z 這個矩陣里所以說這里面可能就是一些編號 比如說1或者100之類的 那一旦做完了這個聚類的分配那我們就不用之前的這個特征f了 取而代之的是呢 我們把這個index對應的特征比如說這里這個編號為1 那我們繼續(xù)把這個編號為1的向量 拿出來放到這而如果編號為10 那我們就把編號為10這個向量拿出來 放到這 生成一個新的特征圖叫做fq就是quantised feature 經(jīng)過量化后的這個特征 那這個量化后的特征呢就非常的可控了 因為它永遠都是從這個codebook里來的 它不是一個隨機的東西所以說呢優(yōu)化起來就相對容易 那一旦你有了這個特征圖 其實跟之前所有的這種auto-encoder或者VAE 就差不多了 你就通過一個解碼器然后就去重構一張圖片 那這個目標函數(shù)呢 還是讓這個x'盡量跟這個x去保持一致這樣呢就完成了整個VQ-VAE的訓練 VQ-VAE其實非常有用 它不光是后來呢,用到DALI這個項目里頭還用到了視覺這邊 用來做自監(jiān)督學習 比如說BEIT這篇論文它就是把DALL·E訓練好的 這個codebook拿過去 然后把這個圖片呢全都quantise成這樣的特征圖 然后拿這個要去做ground truth 自監(jiān)督的訓練一個視覺網(wǎng)絡最近呢BEIT又出了VL-BEiT 就是vision language的BEIT 也是大概的思路只不過呢 是用一個Transformer編碼器 去做多模態(tài)的任務

片段1538:08~40:45

但其實說完了VQ-VAE 我們會發(fā)現(xiàn) 它這里學習的呢又是一個固定的codebook 這也就意味著 它又沒辦法像VAE這樣去做這種隨機采樣 然后去生成這個對應的圖片了 準確說呢它不像是一個VAE它更像是一個AE 它學的這個codebook和這個特征呢 是拿去做這種high level的任務的也就做分類、檢測的 那如果想要它做生成怎么辦呢 那其實對于VQ-VAE來說我們還需要單獨再訓練一個prior網(wǎng)絡 那在VQ-VAE這篇論文里呢 作者就是又訓練了一個pixel CNN當做這個prior網(wǎng)絡 從而能夠利用已經(jīng)訓練好的這個codebook 去做這種圖像的生成然后在VQ-VAE之后呢又有了VQ-VAE-2 那其實這個呢就是一個簡單的改進 它呢首先把這個模型變成層級式的了它不僅做這種局部的建模 而且做全局的建模 還加上了這種attention對模型的表達能力變強了 同時呢它還根據(jù)這個codebook 又去學了一個prior所以這個生成的效果呢也非常的好 然后OpenAI一看哎這個很合適 對于VQ-VAE來說呢它們就是先訓練了這么一個codebook 然后又訓練了一個pixel CNN 去做這種生成那pixel CNN呢其實是一個auto regressive 就是一個自回歸的模型 那還有什么模型是自回歸呢那就是OpenAI的看家本領GPT系列了對吧 那OpenAI就說那我就把這pixel CNN換掉 換成GPT不就能做一個很好的圖像生成了嗎 而且既然language那邊又做的這么好 那為什么不想個辦法用文本去引導這個圖像生成呢 所以呢就有了DALL·E DALL·E呢其實從模型上來看是非常簡潔的 如果你有一個圖像文本對 這個文本呢先通過BPE編碼得到一個特征 這個特征呢有256維 然后我還有一個圖像這圖像是256*256 然后我就經(jīng)過一個VQ-VAE 這個VQ-VAE呢其實就是像上面這種方法一樣 訓練好的一個codebook 在DALL·E里呢它就是直接拿過來用所以DALL·E呢 也是一個兩階段的圖像生成器 總之呢的把原來的圖像變成這個圖像特征之后呢 它這個維度就下降了很多 就從這個256*256變成了32*32所以最后呢一共就有1,024個token 那最后呢 把這個文本特征和這個圖像特征直接連接起來 就變成了一個 有1,280個token的一個序列那接下來就沒什么好說的了 無非就是把這個序列扔給一個GPT 然后呢把該遮住的地方遮住然后讓GPT模型去預測一個就好了 那至于推理呢 我們只需要提供一個文本然后這個文本呢變成這個文本的特征 然后用這個文本的特征呢 直接用自回歸的方式去把這個圖像生成出來 當然了DALL·E的論文呢還有很多的細節(jié) 比如說會生成很多很多的圖片

片段1640:52~43:38

那到底選哪一張呢 其實它會用這個CLIP模型 去做一個這個排位然后把生成出來的圖片 跟這個文本 最貼切的那個圖片挑出來當做最后的生成圖像 還有很多很多的這個工程細節(jié) 其實DALL·E里有將近一半的篇幅都在寫怎么才能把這個12個billion 那也就是120億這么大的參數(shù)訓練起來 還有就是他們怎樣去收集了一個特別大的數(shù)據(jù)集 能夠支撐訓練這么一個模型 所以說呢是沿襲的GPT系列工作的特點那就是大力出奇跡 那說了40多分鐘 我們才講到了今天的主角diffusion model叫擴散模型 那這個擴散模型到底是什么呢 其實從概念上來看這個過程非常的簡單 擴散模型呢 就是假設說你有一個圖片 X0這就一張正常的圖片 然后假設呢 我們往這個圖片里去加噪聲比如說每一步呢 我都往里加一個很 小的一個正態(tài)分布的噪聲然后得到了這個X1 那這個X1呢其實就是在X0的基礎上 比如說多點了幾個雜的點然后呢我再給它加個噪聲 然后接著加一直加到最后 比如說我一共加了t次那如果這個t呢特別特別的大 如果是無窮無盡的話 那最終它就會變成一個真正的噪聲它就變成了一個正態(tài)分布了 或者更專業(yè)一點呢 就是叫一個各向同性的正態(tài)分布然后整個這個過程呢 就叫做forward的diffusion 就是前向擴散過程那大家可能會想 為什么非要叫擴散模型呢 其實這個名字呢是來自于熱力學的啟發(fā) 就是thermodynamics 它們那邊就有一個名詞叫做diffusion在熱力學里呢 它基本描述的過程就是說 如果你有一些物質(zhì)有高密度的和低密度的 那這個高密度的物質(zhì)呢 就會慢慢的向那個低密度去做這種擴散 比如說你噴了個香水 這個香水呢就會慢慢擴散到整個房間最后呢達到一種平衡 那所謂的平衡呢 也就是我們這里最后提到 這個各向同性的一個正態(tài)分布 就是趨近于隨機噪聲所以說呢 視覺這邊就沿用了這個名字 那還是叫它diffusion model那這個跟圖像生成有什么關系呢 那其實如果你反過來想 那如果我現(xiàn)在的輸入是一個隨機噪聲 也就是GAN里面的那個z 那我現(xiàn)在如果能找到一種方式或者訓練一個網(wǎng)絡 能夠慢慢的把這個噪聲 一點一點這樣再恢復回來恢復到最初的這個圖片 它不就可以做圖像生成了嗎 那事實上呢擴散模型就是這么簡單 它就是通過這個反向過程 去做這個圖像生成的如果我們現(xiàn)在去隨機抽樣一個噪聲 比如說是這個Xt 或者是之前的任意一步那我呢就訓練一個模型 把它從Xt變到Xt-1 然后我再用同樣的模型去把Xt-1變成Xt-2 然后一步一步這樣倒退回來 所有這里使用的模型呢

片段1743:45~46:19

都是共享參數(shù)的就只有一個模型 只不過呢你要抽樣生成很多次 所以這可能也是現(xiàn)在還是個擴散模型一個非常大的一個不足 就是說呢 它訓練上跟別的模型比起來呢也是比較貴的 那在推理的時候呢 那就更別說了它是最慢的一個 因為像GAN的話 我只要訓練好了這個模型那我接下來給它一個噪聲 它唰就給我出來一張圖片 那非常的快就做一次模型forward就可以了 可是如果對于擴散模型來說 尤其是對于最原始的那個擴散模型來說的話 一般呢這個t是選擇1,000步 那就是說如果你隨機選擇了一個噪聲那就說你要做1,000次forward 一點一點把這個圖像恢復出來 那這個開銷是遠遠大于其他生成模型的 那總之呢 我們先撇開這個推理速度不談我們先來看一下 一般這個reverse diffusion過程中 使用的這個模型長什么樣因為我們可以看到 這個擴散模型的輸入輸出 始終是這個圖像就是說它這個大小呢始終不變 所以在這種情況下呢 diffusion model就采取了一個非常常見的一個模型結構 就是U-Net U-Net呢就是一個CNN 先有一個編碼器一點一點把這個圖像壓小 然后再用一個解碼器 一點一點把這個圖像再恢復回來那前后的這兩個圖像尺寸大小呢 是一樣的 然后為了讓這個恢復做得更好呢這個U-Net里還有一些這種skip connection 就直接把這個信息從前面推過來 這樣能恢復一些細節(jié)而且后來呢 對這個網(wǎng)絡結構還有一些改進 那比如說給這個U-Net里也加上這種attention操作 會讓這個圖像生成變得更好 而且其實說白了這里面這個模型呢 也不一定要用U-Net 你也可以用其他的但是大部分這個擴散網(wǎng)絡呢 都是用了這個U-Net 那說完了擴散模型大概是怎么工作的 又說了擴散模型的這個網(wǎng)絡結構 那接下來呢就說一下過去兩年之間這個擴散模型的這個發(fā)展歷程 其實擴散模型早在15年 甚至有可能更早的時候就已經(jīng)提出來了 但當時呢只是一個想法 并不能做到很好的這個圖像生成這可能也就跟20年前深度學習一樣 想法已經(jīng)有了 只不過缺了很多很多的必要因素導致它不能訓練的很好 一直呢到2020年6月 也就是整整兩年前出來了一篇論文 叫做Denoising Diffusion Probabilistic Model 也就是DDPMDDPM呢對原始的這個擴散模型呢 做了一些改進 把這個優(yōu)化過程呢變得更簡單了那最重要的兩個貢獻呢 一個就是之前呢 大家都覺得是要用這個Xt去預測這個Xt-1 是做這種圖像到圖像的轉化 但是呢DDPM就覺得這個呢可能不好優(yōu)化

片段1846:27~49:07

我們要不要不去優(yōu)化這個圖像的轉換 我們能不能去預測這個從Xt-1到Xt 我們這個噪聲是怎么加的我們只去預測這個噪聲行不行 那這個呢其實就有點ResNet的意思 本來我可以直接用x去預測那個y但是現(xiàn)在呢 你說直接預測y太難了 應該把這個問題理解成y等于x加上一個residual 我們只去predict那個殘差residual就可以了 那這里面也是一個意思我們不去預測這個Xt-1 我們?nèi)ヮA測它加了多少這個噪聲 一下就把這個問題給簡化了那具體把這個網(wǎng)絡結構畫出來呢 就是說如果 我們用剛才講過的這個U-Net的這個結構那之前呢這個輸入呢就是Xt這個圖片 那這個輸出呢 就是我們想去預測這個t-1時候的X那在DDPM這篇論文里呢 它就不去預測這個t-1時候的X 而是去預測它添加的這個噪聲那這個U-Net模型的輸入呢 除了當前時刻這個Xt 其實還有一個輸入呢叫time embedding 主要呢就是用來告訴這個U-Net的模型 現(xiàn)在到了反向擴散的第幾步這里這個time embedding的形式呢 其實就跟Transformer里 用的那個位置編碼一樣它呢也是一個正弦的位置編碼 或者是一個傅里葉特征 至于這個time embedding怎么加到這個模型中來 有很多種方式了 那有的呢是直接加有的呢是拼接起來 還有的呢就是用更復雜的手段 把它加到網(wǎng)絡模型里去它給模型帶來的提升呢 也是相當明顯的 那這里為什么要加這么一個time embedding呢 其實還有一個原因 就因為這里的這個U-Net模型它全都是共享參數(shù)的 那你怎樣讓 它根據(jù)不同的輸入而生成不同的輸出最后呢從一個完全的一個隨機噪聲 變成一個有意義的圖片呢 這個還是相當難的一件任務我們希望這個U-Net這個模型 在剛開始的這個反向過程之中呢 它可以先生成一些這個物體的大概輪廓一些很粗糙的就是coarse的這個圖像 不需要很清晰也不需要很寫實 那只要有那個意思就可以了然后隨著這個擴散模型 一點一點往前走 然后到最后快生成這個逼真的圖像的時候呢 這個時候 我們希望它學到一些高頻的一些信息特征 比如說物體的邊邊角角 還有物體的一些細小的特征這樣呢就會讓生成的圖片更加的逼真 但事實上 我們這里用的所有的這個U-Net模型都是共享參數(shù)的 所以這個時候呢 就需要有這么一個time embedding去提醒這個模型 我們現(xiàn)在走到哪一步了 現(xiàn)在這個輸出我是想要糙一點的還是想要細致一點的 所以加這個time embedding 對整個圖像那個生成和采樣過程都很有幫助 那具體到這個目標函數(shù)上來說 如果我們現(xiàn)在給定了Xt

片段1949:14~51:53

我們要去預測這個Xt-1 我們要算的loss呢 就是我們已知的這個噪聲和我們現(xiàn)在 預測出來的這個噪聲的差值 那對于ground truth的這個噪聲來說呢我們是知道的呀 因為在這個正向的擴散過程中呢 每一步添加的噪聲都是我們自己加的都是一個固定的過程 所以說是已知的 那后面呢才是我們預測的那這里這個f函數(shù)呢 其實對應的就是下面的我們這個U-Net 網(wǎng)絡結構那這個Xt呢就是我們的輸入Xt 然后這個t呢 就是我們這里輸入的這個time embedding然后呢通過計算這個簡單的目標函數(shù) 我們就能把DDPM這個網(wǎng)絡訓練起來了 然后DDPM呢還做了第二個貢獻具體來說呢 就是如果你要去預測一個正態(tài)分布呢 其實你只要學它這個均值和方差就可以了 然后作者這里發(fā)現(xiàn)了 其實你只要去預測那個均值就可以你方差都不用學 你這個方差呢只要變成一個常數(shù) 最后這個效果就已經(jīng)很好了所以這又再次 降低了這個模型優(yōu)化的難度 所以DDPM就工作的很好第一次能夠用這個擴散模型 生成很好的圖片 算是擴散模型這邊的這個開山之作那大概介紹完了擴散模型和DDPM 其實這里可以做個總結 DDPM跟這個VAE的模型其實還是有很多相似之處的 比如說呢 你也可以把它想象成是一個編碼器解碼器的結構 只不過呢在這個擴散模型中 它的這個編碼器一步一步這樣走過來 走到中間的這個z 它是一個固定的過程而對于VAE來說呢 它的那個編碼器是學習 那第二個不同呢就是說對于擴散模型來說 它的每一步的這個中間過程 跟剛開始的這個輸入呢都是同樣維度大小的 但是呢對于一般的這種AE VAE這種編碼器解碼器的結構來說它那個中間的那個bottleneck特征 往往是要比輸入小很多 那第三個區(qū)別呢就是對于擴散模型來說 它有這么步數(shù)的一個概念 它從這個隨機噪聲開始要經(jīng)過很多很多步才能生成一個圖片 所以它有這個time step time embedding這些概念而且呢在所有的這個time step里 它的這個U-Net模型結構呢 都是共享參數(shù)的而在VAE里呢其實就不存在這一點 那這個擴散模型 一旦做work了之后呢大家的興趣一下就上來了 因為它在數(shù)學上呢特別的簡潔美觀 而且因為不論是正向還是逆向它都是這種高斯分布 所以也能做很多推理證明 有很多很不錯的性質(zhì)所以之前呢大家可能就擔心 那它不能在真實的數(shù)據(jù)集上 去工作的很好它可能不能適用于很大的模型 或者很大的數(shù)據(jù)集 但結果呢現(xiàn)在有人把它做work了那OpenAI的人 也就是DALL·E 2 我們之前說過的二作和三作呢

片段2051:57~54:37

其實就立馬來著手研究這個問題了 他們呢就仔細鉆研了一下這個DDPM 提出了一些改進然后就變成了這個improved DDPM 大概就是在同年20年的年底放到arXiv上 他這邊呢做了幾個改動其中一個改動呢 就是DDPM里說這個正態(tài)分布的方差呢 不用學就用一個常數(shù)就可以了 但是呢 他們覺得如果你能把這個東西學了那可能效果會更好 然后他這邊呢就去學了 然后確實呢在后面的取樣 還有這個生成效果上的都不錯 第二個呢就是他把怎么添加噪聲的這個schedule改了 從一個線性的schedule 變成了一個余弦的schedule發(fā)現(xiàn)也工作的不錯 那這個呢我就不細說了 理解上呢你可以去跟那個學習率 的schedule去做一個對比 也是從線性到余弦然后最后一個貢獻呢 就是他們簡單的嘗試一下 如果用這個大模型這個擴散模型會表現(xiàn)的怎么樣 結果發(fā)現(xiàn)呢 這個擴散模型scale得非常好也就說如果給它上更大的模型 它就會給你更好的圖像生成結果 那這對OpenAI來說那無疑是個非常好的消息 所以二作和三作呢立馬著手去做這件事 所以緊接著幾個月之后就出來了這一篇論文 就是Diffusion model beats GAN 就是擴散模型比GAN強那在這篇論文里呢 首先呢上來就是說把模型加大加寬 然后增加自注意力這個頭的數(shù)量attention head還有single-scale的attention不夠用了 我們就上multi-scale的attention 所以總之就是把模型變得又大又復雜然后呢 他還提出了一個新的 一個歸一化的方式叫做adaptive group normalization 就是根據(jù)這個步數(shù) 去做這種自適應的歸一化發(fā)現(xiàn)效果也非常不錯 而且在這篇論文里呢 作者還使用了一個叫classifier guidance的方法 去引導這個模型做采樣和生成 不僅讓生成的這個圖片更加的逼真而且也 加速了這個反向采樣的這個速度 論文中說他們可以做到就做25次采樣 就能從一個噪聲 生成一個非常好的圖片所以說是加速了相當多 那這里說的classifier guidance方法是什么 然后后續(xù)的這個GLIDE的模型和DALL·E 2里用的classifier-free 的guidance方法又是什么呢 那在這個擴散模型能打敗GAN的這篇論文出現(xiàn)之前呢 其實擴散模型生成的這個圖像 看起來已經(jīng)非常不錯了也很逼真 但是呢它就在算這些inception score 就IS score或者FID score那些分數(shù)的時候呢它比不過GAN 如果光讓大家看你生成這個圖的話 那大家可能就覺得你生成這些圖是不是你挑的呢 這個結果呢就不夠那么有信服力 而且這個呢當然也不好審稿也不好中論文 所以還是把這個分能提上來 那是比較關鍵的

片段2154:42~57:25

同時呢 這個擴散模型這個采樣和生成圖片呢 過程又這么慢所以大家是在想 怎么能用一些額外的幫助 或者說找一些guidance找一些這種額外的指導 來幫助這個模型進行采樣和學習呢 所以呢就借鑒了一個之前很常用的一個技巧 叫做這個classifier guided diffusion 那這里呢我們先 再次把這個反向擴散過程畫一下 那現(xiàn)在呢最開始是Xt也就是最后時刻 也就更偏向于噪聲的那個時刻 而X0呢是最開始這個圖片所以說這個呢是一個反向擴散的過程 那我們也剛才說了 在這個反向過程中呢給定一個Xt時刻的輸入 我們通過一個U-Net的網(wǎng)絡就得到了Xt-1 然后呢不停的通過這個U-Net取樣生成取樣生成最后得到這個X0 那classifier guided diffusion 的意思是什么呢就說在我們訓練這個模型的同時 我們再去訓練一個這個分類器 就是一個簡單的圖像分類器這個分類器呢 其實在很多論文里 就是在ImageNet上訓練的只不過呢 他把ImageNet的圖片呢都加了很多噪聲 因為對于擴散模型來說呢它的輸入始終都是加了噪聲的 這些圖片 跟真實的ImageNet的圖片是很不一樣的所以說你必須從頭 再去訓練這么一個圖片分類器 那這個分類器的作用是什么呢就是說當我有這么一個圖片Xt之后呢 我把它直接扔給這個分類器 然后我就能去看它分類的對不對我就能算一個交叉熵目標函數(shù) 對應的呢就會得到一些梯度 然后我用這個梯度去幫助這個模型 接下來進行采樣和圖像的生成 那這個有什么好處呢因為其實這里的梯度呢 就大概暗含了當前這個圖片 它里面到底有沒有一個物體或者說它現(xiàn)在生成的這個物體 真不真實 那通過這種梯度的引導呢其實就是告訴這個U-Net 我現(xiàn)在生成的圖片呢 要看起來更像某一類物體不是說意思到了就行 這個物體的形狀顏色 紋理各種細節(jié)都盡量的要跟真實的物體去匹配上 所以說 在經(jīng)過了這個classifierguided diffusion操作之后 這個生成的圖片呢就逼真了很多一下 在這些IS或者FID score上呢就大幅度的提升了 也就是在這篇 diffusion model beats GAN的論文里擴散模型呢 第一次在這些分數(shù)上 而超越了之前比較好的一個GAN模型就是big GAN 雖然文章里說 通過這種方式他相當是犧牲了一部分的多樣性 然后就換取了這個 生成圖片的這個寫實性那其實呢這個取舍還是比較好的 因為它的多樣性還是比GAN要好 然后現(xiàn)在呢生成的圖片的逼真程度也比GAN要好 那這樣一下子呢 就奠定了擴散模型在圖像生成里的地位 那這個擴散模型火了之后 而且大家看到哎

片段2257:31~1:00:11

這種guided diffusion非常的有效 那除了這種最簡單 比較原始的這種classifier guided diffusion之外我們還能用什么當做這個指導信號呢 那首當其沖呢 大家就想到我們能不能把一個簡單的這個圖像分類器 換成一個CLIP模型呢 那如果換成CLIP模型之后這個文本和 圖像不就可以聯(lián)系起來了嗎 那這樣呢我們不光是可以利用這個梯度 去引導這個模型的這個采樣和生成 我們甚至可以用這個文本去控制這個圖像的采樣和生成 所以在這個方面呢也有一些工作 而且確實也是比較有效的那當然了 分別在圖像和文本上呢 也有很多這個引導的工作比如說在圖像這邊呢 你不光是可以利用這個圖像的重建 去做這種像素級別的引導你還可以去做這種特征層面的引導 你還可以去做這種圖像 風格方面的引導只不過就用一個gram matrix就可以了 那文本這邊呢 你也可以用那些已經(jīng)訓練的很好很大的一些語言模型去做引導 效果呢也是非常的好 那所有的這些引導呢其實在這個目標函數(shù)里呢 都是后面的這個y 就說我這個模型的輸入不光是xt和t了 同時我還有一個condition 那至于這個條件是什么那就根據(jù)你的應用來選了 然后再加了這個條件之后呢 就能讓這個圖像的采樣和生成變得又快 效果又好 但是呢所有這一系列的方法它都有一個缺陷 就是說 它真的都是又用了另外一個模型去做這種引導 要么呢我們拿一個直接pre-train好的模型 要么呢我們就還得去訓練這么一個模型 不僅成本比較高 而且這個訓練的過程呢也不可控那所以說呢 這就引出來了后續(xù)的一篇工作 他呢就提出來一個非常有效的技巧叫做classifier-free guidance 那意思就是說呢我不想要這些classifier 我還能不能找到一種指導信號去讓這個模型的生成變得更好呢 簡單來說呢 就是他在訓練模型的時候生成了兩個輸出 一個呢 是在有條件的時候生成了一個輸出一個是在沒有條件的時候 生成了一個輸出 那舉個例子比如說你訓練的時候呢 用的是圖像文本對 那這個時候呢你想用文本去做你的這個guidance信號 那也就是說這里這個y就是一個文本 然后你在訓練的時候呢用這個文本y去生成了一個圖像 然后呢隨機的把這個條件去掉 就說我不用這個文本我用一個空集就是一個空的序列 再去生成另外一個輸出 那假設我們現(xiàn)在有一個空間那剛才生成的兩個圖片呢 分別是沒有用這個條件的 生成了一個X 用了這個y這個條件呢生成了一個Xy 那我們就知道有一個方向 能從這種無條件最后得到的輸出

片段231:00:17~1:03:03

成為有條件得到的這個輸出 通過訓練呢我們最后就會知道 它們兩個之間大概的這個差距是多少那等到最后去做這種反向擴散 去真正做圖像生成的時候呢 當我們有了一個沒有用條件 生成的這個圖像輸出的時候 我們呢也能做出一個比較合理的推測 能從一個沒有條件生成的X 變成一個有條件生成的X這樣呢就擺脫了這個分類器的限制 所以說叫classifier-free guidance 但是這個方法呢其實在模型訓練的時候也是非常貴的 因為擴散模型本來訓練就已經(jīng)很貴了 結果使用這種classifier-free guidance的方法呢那在訓練的時候還要生成兩個輸出 一個有條件的一個沒條件的 所以又增加了很多訓練的成本但總之呢 classifier-free guidance一經(jīng)提出 大家就覺得它真的是一個很好用的方法 所以說不光是在GLIDE這篇論文里用到了 而且之后的DALL·E 2呢也用到了還有最新的Imagen呢也用到了 而且這幾篇論文里呢 都說這是一個非常重要的技巧所以感興趣的同學呢 可以再去看一下細節(jié) 總之呢在融合了之前這么多技巧之后呢 GLIDE模型而終于是一個用擴散模型 能夠做很好的這種根據(jù)文本去生成圖像的任務了 它呢只用了3.5 billion 的這個參數(shù)但是生成的效果呢 就直逼之前的DALL·E模型 而DALL·E模型呢是有12 billion的就比它大四倍 但是GLIDE模型呢 不論是從分數(shù)上還是從這個感官上得到的這個圖片效果都比DALL·E好 那OpenAI一看哎這個方向確實靠譜 那我也就不順著DALL·E也就是DALL·E 1的那套系統(tǒng) 用VQ-VAE去做了 我接下來呢就用擴散模型來做了所以他在這個GLIDE的基礎上呢 又加了很多東西 比如說在前面加了一個prior比如說他又使用了這種層級式的生成 就從64到256 再從256到1024就使用了很多最新的一些技巧 最終呢就成為了DALL·E 2 那做了一個小時的鋪墊那接下來呢我們回到DALL·E 2的原文 我們會來先看一下 他這個主體的方法部分很短就一頁多 然后接下來看一下DALL·E 2能干什么 他列了很多很有意思的應用然后最后呢還有一些數(shù)值上的結果 那作者上來先說 他訓練數(shù)據(jù)集長什么樣他說他們的這個訓練數(shù)據(jù)集 里面呢也是這種圖像文本對 就跟CLIP模型一樣那如果我們給定一個圖片x 然后我們用這個zi 去表示這個CLIP出來的圖像的特征然后用這個zt 去代表這個CLIP出來的文本特征 i就代表imaget就代表text 那整個這個DALL·E 2的網(wǎng)絡結構呢 就被分成了兩個部分我們之前在引言的時候也講過 一個呢是prior模型 一個呢是decoder的模型

片段241:03:09~1:05:48

那prior模型呢就說根據(jù)這個文本y 我去生成一個圖像的這個特征zi 然后這個編碼器的輸入呢 (應為解碼器)就是這個zi 有的時候呢也會帶上這個文本y 但其實也可以不要總之呢就是通過這個編碼器 (應為解碼器) 那么把這個zi呢恢復成一個圖像x 這樣呢就完成了從文本到圖像的這個過程 那可能跟剛才我們講引言 時間隔得也比較久了那我們就再來回顧一下這個圖2 圖2里呢作者就說DALL·E 2這個模型 它相當是先是有一個CLIP模型然后再訓練這個DALL·E 2的 圖像生成模型 那一旦你這個CLIP模型訓練好之后呢你任意給定一個文本 它就可以通過這個文本編碼器 去得到一個文本特征然后呢 我就用這個prior模型把文本特征呢 變成一個圖像特征然后再通過一個解碼器 就把這個圖像特征變成了幾個圖片 所以是一個兩階段的圖像生成器完成了最后這個文本 到圖片的生成過程 然后作者接下來呢還用公式給你講了一下 我為什么能用一個兩階段的方式 來實現(xiàn)這個東西那首先剛開始這個公式的意思是說 給定一個文本 我要去恢復出來最后這個x那其實呢 它可以先寫成這種概率的形式 就是給定一個文本我去生成x和zi那zi是什么呢 zi是這個圖片的特征 它呢跟這個圖片本身是一對一的關系因為你這個CLIP模型訓練好之后 它的參數(shù)是鎖住的嘛 所以你給定一個圖片就會生成一個固定的zi 所以說這里呢zi和x就是對等的 所以說這個概率呢是可以寫成這里這種概率 然后作者這里再利用chain rule 就能把這個概率寫成這種形式那寫成這種形式之后呢 我們就可以明顯看出來 這個呢就是給定文本去生成zi這一步就是prior 然后呢給定y和zi之后 用這個圖像embedding去生成x就是decoder 所以作者這里其實就是想跟你說 我做這種兩階段的圖像生成不是沒有依據(jù)的 從概率上來講呢是完全行得通的 那既然兩階段的設計是合理的作者接下來呢 就分別去講了這個decoder和這個prior 那在decoder這邊呢我們之前也說過它其實就是一個GLIDE模型的變體 改動呢并不大 首先呢它用了這種CLIP模型的guidance那我們之前也說過 有用classifier guidance 有用CLIP guidance 他們這里呢就用了CLIP guidance只不過使用的形式呢 在這個具體操作上稍微有一些變化 這里我就不細說了因為如果不看代碼的話 這里描述的技術細節(jié)呢 其實都不太好說出來然后第2段呢 作者就說 他們也用了這種classifier-free guidance具體來說呢 他們的這個guidance信號呢 要么是來自于這個CLIP模型

片段251:05:52~1:08:27

要么是來自于這個文本 所以在這里呢他就隨機 比如說有10%的時間呢他就把這個CLIP的特征呢設成0 還有呢 就是說在訓練的時候有50%的時間呢就把這個文本特征呢直接就扔掉了 所以就是說 在DALL·E 2這篇論文里他基本是把能用的全都用了 就是包括CLIP guidance 還有這種classifier-free guidance他全都用了其實classifier-free guidance就像之前說的一樣 它是比較貴的一個操作 但是OpenAI呢向來是不怕貴效果怎么好怎么來 所以說在做完classifier-free guidance以后呢 第三段他又做了這種級聯(lián)式的生成 就是說 我怎么能生成這種1024的高清大圖去吸引公眾的目光呢 所以我就先從64*64變成256*256 然后我再訓練一個模型從256*256呢生成這個1024*1024 那在這里呢為了訓練的穩(wěn)定性 作者在訓練的過程中呢還加了很多這個噪聲 然后 這里還有一個比較值得注意的點呢就是我們聽起來好像這些大模型 應該是Transformer 但其實呢就像我們說了一樣這個擴散模型呢大部分時候是U-Net 是一個CNN的結構 所以作者這里也強調(diào)他們呢只是用了這種spatial convolution 就是用了這個卷積 沒有用這種attention layers所以說在接下來做推理的時候呢 它可以用在任何的一個尺寸上 而不需要擔心說你這個序列長度必須得保持一致 所以說訓練出來這個擴散模型 是直接可以去生成那種更清晰的圖片的 那說完了解碼器 接下來我們看一下這個prior模型prior模型的作用呢 就是說我給定一個文本 我怎么能去生成一個圖像的特征zi這樣呢 我好把這個zi輸給這個解碼器 從而你能恢復出來這個圖片 那作者這里呢嘗試了兩種方案 就說要么呢用這種auto regressive自回歸的模型 去做這個prior model 要么呢就用這種擴散模型去做這個prior model 那自回歸模型這里呢 其實就跟DALL·E或者GPT這些就很像就說反正我的輸入呢是文本特征 然后呢我也有從CLIP那篇來的圖像特征 那我就把這個圖像呢遮住然后我就去自回歸的預測就行了 但是呢 其實OpenAI從CLIP這篇論文就說過這種自回歸的模型 這種預測性的模型呢 它的這個訓練效率太低了就是為了讓這個訓練呢變得更快速 他們還使用了很多技巧 比如說PCA降維之類的那因為最后呢 他也沒有講太多的這個結果 所以這里呢我們就不太細說 這個自回歸的這個prior模型 我們主要呢就是來看一下這個diffusion prior長什么樣 那這里值得注意的一點呢 就是在這一段里作者這里說 不論我們是用這種自回歸的模型 還是用這種擴散性的模型

片段261:08:32~1:11:13

我們?nèi)加昧诉@種classifier-free guidance 因為發(fā)現(xiàn)效果好 這個classifer-free guidance這個技術它確實是很有用 所以說接下來Imagen里也用了 而且也專門用一個段落證明了它的有效性 所以說做生成的同學 都可以來試一試那對于擴散prior來說呢 作者這里 他訓練了一個Transformer的decoder那因為這里呢它的輸入輸出是embedding 所以說用U-Net就不太合適 直接上Transformer去處理這個序列就可以了 然后這里呢 模型的輸入其實相當多從這個文本到這個CLIP的文本的特征 還有這個time step就這個步數(shù)的embedding 還有呢就是加過噪聲之后的這個CLIP的圖像特征 還有Transformer自己的本身的一個embedding 比如說之前我們說過那種cls token然后最終的這個embedding特征呢 就被拿去 預測這個沒有加過噪聲的CLIP圖像特征 然后模型別的方面還有訓練技巧 就跟之前的這個擴散模型沒什么區(qū)別了 有一點比較有意思 就是自從DDPM提出來去預測這個噪聲之后呢 大家呢就一直都是去預測這個噪聲 就像我們剛才說的去預測那個殘差 發(fā)現(xiàn)訓練的又快又好 但是作者這里發(fā)現(xiàn)呢對于這種特征的重建 或者 對于他們先要處理的這個任務來說呢直接去預測 這種沒有被污染過的圖像特征 是要比之前那種預測噪聲要來的好的所以他這里的目標函數(shù)的這塊呢 就不是之前的那個噪聲了 反而就是CLIP出來的這個圖像特征zi那其實講到這呢 文章的主體方法部分呢就說完了 圖像生成這邊呢確實各種技巧非常多 經(jīng)常連一個模型總覽圖都很難畫出來 所以如果不去直接看代碼是很難對這個論文有一個整體的把握 而且這些技巧呢 在我們說完這么多之后呢我們也會發(fā)現(xiàn) 其實它有的時候有用 有的時候呢也沒用比如之前你說這種預測噪聲好使 但是DALL·E 2這里呢又不去預測噪聲 直接去預測zi了還有呢比如說 DALL·E 2這篇論文 他做的是一個兩階段的圖像生成那實際上呢 Imagen里面直接上一個U-Net 就把這個圖像生成解決了更簡單效果也很好 所以說也不一定非要兩階段 那還有呢CLIP模型還有DALL·E 2 都說這種自回歸的模型太貴了 然后訓練太不高效了但是呢也就在我錄視頻的這兩天里 Google了又出了一篇新論文叫做Parti 用Pathways模型然后去做這種自回歸的這個文本 圖像生成 效果呢也是直接超越了DALL·E 2和Imagen 所以到最后看下來呢 其實都是大力出奇跡也就說只有scale matters 其他的東西呢 不論是模型還是訓練的技巧都好商量 那說完了方法 接下來我們就來看一下

片段271:11:18~1:13:47

DALL·E 2具體能干什么 那文章里這個圖3舉的第一個例子呢 其實就是說DALL·E 2能夠根據(jù)一張圖片 然后去生成 很多很多的類似的這個圖片然后生成圖片里的這個整體的 這些風格呢 都跟原始用戶提供的圖片呢是一致的而且呢這個物體也都是一致的 比如說有鐘表有沙漠 然后有一棵樹就是語義 信息呢大體是不變的 但是呢那些不太關鍵的信息比如說這個圖片整體的布局 還有這些鐘表的各種樣式 還有天上這種云吶每一張生成的圖片呢都會不一樣 那在另外一個例子里 也就是OpenAI自己的這個LOGO里呢他把這個LOGO輸給DALL·E 2 DALL·E 2也能返回來各種各樣的LOGO 那總體而言呢這個風格也是很一致的背景都是種五顏六色的色彩 那前景呢都是這種交織在一起的 這種白色的線條當然了這種交織的這個模式 每個跟每個都不太一樣 那DALL·E 2為什么能做到這一點呢那其實看這個圖2這個總覽圖呢 就能知道了 當用戶給定一個圖片的時候呢它就能夠通過 CLIP預訓練好的這個圖像編碼器 去得到一個圖像特征然后呢它把這個圖像特征 變成這個文本特征 然后再把這個文本特征呢輸給下面的prior模型 去生成另外一個圖像特征 然后這個圖像特征呢就會生成新的這個圖片 也就跟這里的這兩個柯基一樣 都是一個柯基在吹小號那事實上呢 這個柯基的這個朝向 還有這個背景都改變了所以這個應用呢其實挺好玩的 很方便這個設計者 去做各種各樣的設計那比如說現(xiàn)在呢 我們要給一個公司去設計這么一個LOGO 我們可能有一些大概的想法但是最終呢也沒有定稿 那我們呢 就可以把這個大概的想法先畫成一個圖片 然后我們就扔給DALL·E 2 DALL·E 2呢就能返回 給我們很多很多不一樣的圖片 我們可以從中呢再選一個我們比較喜歡的 然后再把它扔給DALL·E 2 DALL·E 2又會給我們返出來很多很多不一樣的圖片 所以呢你就不用自己去想了 你只要挑圖就可以大大簡化了這個設計的過程 那另外一個比較好玩的例子 呢就是說可以做這種圖像的內(nèi)插那在圖4里呢 作者其實說給了兩張圖片 這兩張圖片呢分別有自己的這個圖像特征 那這個時候呢 我們在這兩個圖像特征之間去做這種內(nèi)插 當插出來這個特征 更偏向于這個圖片的時候呢生成出來的圖像呢 就像這樣更多的這個風格 還有里面的物體呢就是跟這個左圖比較類似 但是隨著這個內(nèi)插的這個比例呢 越來越偏向這個右圖那生成出來的這些圖像呢 主要的物體就是右面的 比如說這些狗還有房子之類的

片段281:13:52~1:16:33

就沒有這些月亮和星星的物體 而且也不像梵高這樣畫的這種風格 那下面這個例子呢也比較有意思左邊呢是一個橘黃色的 也不知道是個包還是一個瓷器 右邊呢是一個形狀很詭異的一個幾何物體 然后 隨著在這兩個圖像的特征之間進行插值這個顏色呢越來越就 從橙色就變成了黑白 而且樣式呢也從一個固定的一個結構 變成了這種很詭異的這種幾何形狀 那前面那個圖像內(nèi)插的例子呢是在兩個圖像之間哎去做這種內(nèi)插 那接下來呢作者舉的這個例子 就是在圖像和文本之間去做這個內(nèi)插比如說呢這里面就提供了一個文本 原來的文本呢 只是說這是一個貓的圖片但現(xiàn)在呢 他說這是一個動畫版的這個貓 而且描述的呢是一個超級賽亞貓當模型在這兩個文本的特征之間 去做這個插值的時候呢 生成的圖片呢就逐漸也在改變比如說剛開始呢 就是一個正正經(jīng)經(jīng)的貓 那慢慢呢這頭發(fā)就炸起來最后變成超級賽亞貓了 那像第二個例子里 從一個維多利亞風的一個建筑風格最后就變成了一個現(xiàn)代版的一個建筑 還有呢就是從一頭成年的雄獅 變成了一個幼年的小獅子最后一個例子呢 就是從冬天的景象 變成了一個秋天的景象那這個應用當然也是很有意思 如果能再做的更細致一點 那其實就有點直接輸入文本這個模型就能替你去PS一樣 那以后再P圖那就太簡單了 我想改哪我就直接給模型輸入幾句話 我想把中間這個人去掉 我想讓我的腿長一點我想讓我的臉更白一點 你只要這么打字就可以了 再也不用去學Photoshop了當然論文還舉了幾個別的例子 我們這里呢就不一一列舉了 我們最后直接來看這個數(shù)值對比的表格那一般呢在圖像生成這邊 大家就是在這個MS-COCO數(shù)據(jù)集上 去比較這個FID的分數(shù)那我們主要來看 這個表格的下半部分 也就是說做這種zero-shot的FID分數(shù)到底誰最低 那我們可以看到之前像DALL·E 其實還在28這個水平GLIDE呢也就降到了12 降的還是非常多的 也就說明這個擴散模型好用然后呢再到他們的這個unCLIP 用AR去做這個prior 或者用這個擴散模型去做這個prior我們可以發(fā)現(xiàn)這個數(shù)字方面呢 這兩個模型都差不多 擴散模型呢稍微好一點點而且呢訓練上呢也稍微容易一些 所以整篇論文呢 其實基本上都是在圍繞這個擴散的prior在做這個unCLIP 那畢竟對于圖像生成的任務來說呢 比較這個分數(shù)是一方面最主要的呢 還是讓大家看 這個生成的效果到底如何所以作者接下來呢 又列了很多這個圖像的對比 那從圖像生成的結果來看呢這個DALL·E 2呢確實是不錯 比如說第一個文本呢 就有一個綠色的火車

片段291:16:38~1:19:16

沿著這個鐵軌開過來了 那我們可以看到 之前這個DALL·E模型生成的這個綠色火車 就非常的像動漫火車 這不真實GLIDE模型呢還不錯 但這個火車太大了 也沒有展現(xiàn)出沿著鐵軌開過來的感覺但是這個DALL·E 2呢 這兩個圖像都生成的不錯 然后像后面的這個圖像呢有一群大象在這個泥水里玩 那我們可以看到DALL·E 2生成這個模型 這個大象身上還有反光而且生成的這個細節(jié)呢也非常的好 像這個滑雪場景里 左上角這種太陽這種亮光就跟真的這個照相機照出來的一樣 非常的逼真 而且生成的這些圖片呢全都跟這些文本是非常符合的 不過當然了 這里面呢就舉了5個例子當然有可能是作者精心挑選出來的 所以說效果呢確實是不錯 那既然展現(xiàn)了一些比較好的例子作者這里呢在第7節(jié) 也很好的討論了一下他們目前 DALL·E 2的這個模型不足和局限性 這個呢我推薦大家 其實都應該去仔細的看一看這樣才知道接下來該怎么去繼續(xù) 提高這個模型 比如作者這里說的第一個DALL·E 2的這個局限性呢 就是它不能很好的把這個物體 和它的這個屬性結合起來比如說在這里呢物體呢就是這種方塊 屬性呢就是紅色或者藍色 然后現(xiàn)在呢如果我們給一個文本就是說有一個紅色的方塊 在一個藍色方塊上面 然后你讓這個DALL·E 2模型去生成一些圖片 然后再讓GLIDE呢也去生成一些圖片 我們就會發(fā)現(xiàn)GLIDE模型 其實還是做的相當不錯的 基本上這個紅色的這個方塊都是在藍色這個方塊上面 正確率是非常高的 但是呢對于DALL·E 2模型來說呢這個就比較慘不忍睹了 錯誤的結果呢非常的多 作者這里就說呢很有可能是用了CLIP模型的原因 雖然從一方面呢 用了CLIP模型之后呢你這個圖像和文本的聯(lián)系更緊密了 你就更容易 或者更好去做這種文本生成圖像的任務 但是另外一方面呢 你這個CLIP模型在學習的時候呢只是考慮這種相似性 比如說對于這個文本來說 紅方塊藍方塊那其實就是去找哪些圖片里有紅方塊 藍方塊 然后把這個相似度提到最高就可以了其實CLIP模型呢 是不了解什么叫on top of這種東西的 它也不了解什么叫上下左右什么叫是或者不是 它從頭到尾呢 就是在找這種物體上的相似性所以說呢 當你去用這種CLIP 模型生成的特征去做這種下游任務的時候呢 你就不能很好的區(qū)分這個物體 和它的屬性從而導致這里這個圖像生成的結果呢 就非常差了 那作者這里舉的另外一個例子呢就是說它發(fā)現(xiàn) 當用DALL·E 2去生成一些圖片 那這些圖片里有這種文字的時候呢

片段301:19:22~1:21:59

這些文字的順序呢 其實是完全都不對的 比如說它這里的這個提示詞prompt說的是我想要生成一個提示語 然后上面寫的是deep learning 然后我們可以看出來它生成的這些呢確實是長得這個提示語這個樣子 但是上面呢完全不是deep learning 可能偶爾有一些這個deep對吧但即使是這樣 這個拼寫的順序也不對 更別提learning呢基本就完全沒有了而且這不光是這一個例子 我們最后在結論的時候呢 還會給出更多這樣的例子這里說呢 很有可能是這個文本編碼器 剛開始這個文本編碼的時候用了這種BPE編碼 這種呢就你就可以想象成 是一種詞根詞綴這種編碼形式所以說它不是整個單詞這樣去編碼的 它是詞根詞綴 就這種比如說de或者pt啊這種東西去編碼的 所以很有可能呢 是造成這種結果的原因但應該還有更多的原因 總之呢直接去生成這種文字 目前還做的不夠好那作者這里舉的最后一個例子呢 就是說DALL·E 2還是 不能生成就是特別復雜的場景很多細節(jié)它生成不出來 比如第一個圖片里說 我想要生成一個非常高質(zhì)量的圖片里面有一個狗在綠草地上玩 然后這個綠草地旁邊呢還有一個小湖 那其實這里面我覺得生成呢也已經(jīng)非常不錯了 但是這里面的圖片呢 都有點從網(wǎng)上的圖片復制粘貼過來的感覺 而且呢都是近景照 都是直接生成這個狗占了絕大部分的這個空間 完全沒有體現(xiàn)出 比如說草地旁邊有個湖或者說狗在玩這種感覺 當然這個例子呢我覺得還不錯 主要的原因呢可能是下面這個例子下面這個例子呢是說我想生成一張 特別高清的一張 就是時代廣場的圖你乍一看呢覺得哎生成的挺好的呀 這不就長得像時代廣場嗎 但其實回頭如果你去看DALL·E 2這篇論文 你把它放大去看的話 它這里廣告牌上的東西呢全都是模糊的 它所有的這些具體的細節(jié)啊圖像啊 這里面的東西也都是隨機生成的那種顏色塊 就完全沒有任何語義信息的 就它只是生成了這種高樓大廈的這個樣子而已 這里面的細節(jié)缺失呢是非常嚴重 當然我覺得這也不能全怪模型畢竟你給的這個文本太少了 如果你把這個文本寫的再長一點 寫成一段話比如說里面有多少個人呢 比如說這個廣告牌上寫的是哪個公司 我覺得DALL·E 2呢也是能夠一定程度上去生成 這些細節(jié)了 那最后呢我們來總結一下這篇論文其實DALL·E 2這篇論文呢 沒有結論這個部分 他直接就用第7段這個局限性和不足 就結束了整篇論文 作者說完前幾個不足之后呢在最后一段就說 所有的這些圖像生成的論文 比如說從DALL·E到后來的這種GLIDE

片段311:22:04~1:24:41

然后一直到現(xiàn)在DALL·E 2 其實最值得關心的一個問題呢 就是這種生成圖像里比如說有不公平的東西 或者有這種有毒害的東西 DALL·E 2呢它的性能生成圖片的這個真實度 雖然說比GLIDE更強了 比如說FID的分數(shù)呢在COCO上從12變成10了但是隨之而來的這個risk呢也就更高了 因為你現(xiàn)在生成的這個圖像 越來越像真實的圖片了你越來越找不到 就是說有任何的痕跡 或者說這種標志去告訴你這張圖片是AI生成的 那也就意味著 更多的人可以拿這種模型去以假亂真 去生成各種帶有政治性色彩的 或者帶有歧視性色彩的這種圖像或者視頻 但是民眾呢都發(fā)現(xiàn)不了 所以作者這里就呼吁呢更多的研究應該是放在這種就是說安全性上 他們在博客里呢 也說們內(nèi)部現(xiàn)在正在做這種研究去研究這個模型的公平性 和它生成這種有害圖片 視頻的這種可能性但是DALL·E和DALL·E 2呢 真的是開啟了這種文本 生成圖像的這一系列的工作迅速加快了這一領域 這個研究的進程 比如說之前呢都是半年出一篇比較有影響力的論文 那可是最近呢我們也知道 4月份DALL·E 2才放出來5月份google的Imagen就出來了 然后就把這個FID分數(shù)呢 從10點幾變成了7點幾然后呢6月份緊接著一個月之后 這個google的Parti模型又出來了 當然這個FID分數(shù)呢還是7左右但是它用的是自回歸模型 而且效果也非常好 模型也非常大 有20 billion的參數(shù) 有200億所以說這個競爭是越來越激烈 越來越白熱化了 然后除了去做這種圖像生成還有人腦洞大開 覺得可以用這種方式 去做這種數(shù)據(jù)增強比如說呢 我先寫一個prompt 寫幾個單詞 然后我用GPT 3模型呢哎去幫我把這個作文寫完 多寫一大段話 然后我再把這段話呢扔給DALL·E 2然后讓DALL·E 2幫我生成一個圖片 哎我這不就有一個圖像文本對了嗎 然后我就可以無窮無盡的去生成這種圖像文本對 然后再用這個圖像文本對去生成CLIP 或者去做DALL·E 2的這個訓練不就完了嗎 這個呢 就有點這個左腳踩右腳的感覺了在twitter上呢有很多人吵吵著說要做 也有很多人覺得可能OpenAI和google呢 已經(jīng)在這么做了但是畢竟現(xiàn)在的這個模型規(guī)模 和數(shù)據(jù)規(guī)模 就已經(jīng)沒有人能玩的動了那再加上這無窮無盡的訓練數(shù)據(jù) 感覺呢 還是得坐看這些大公司之間怎么玩然后最近呢 twitter上還有一個很火的帖子 又說DALL·E 2其實它自己有自己的一套語言 它呢理解的不是英語 它可以通過一些我們完全看不懂的語言 去生成對應的圖片 比如說這個小哥就說

片段321:24:46~1:27:20

DALL·E 2有自己的一套這個秘密語言 比如說這個句子呢其實是鳥的意思 然而這又是一堆鳥語呢其實是說這個昆蟲 然后接下來呢他就給了一句話 就巴拉巴拉巴這個完全我也不知道該怎么讀 但是事實上生成的圖片呢 全都是一鳥在吃昆蟲然后除了那個例子之外呢 作者又發(fā)現(xiàn)了很多有意思的例子 比如說這里他如果把這個文本輸進去 說有兩個農(nóng)民伯伯呢在討論這個蔬菜 嗯而且這張生成的圖片呢最好要帶有這個字幕 然后我們就會生成這么一個圖片 上面呢有一個標題這塊呢也有這個人說話的這個字幕 當然了我們之前也講過 就是說DALL·E 2有這種局限性這個生成的文字呢就是誰也看不懂 但是這里呢作者神奇的發(fā)現(xiàn) 上面的這個標題呢其實代表的就是蔬菜 下面的這個標題呢代表的就是鳥 所以說當他們把上面的那個標題那個看不懂的文字 輸給DALL·E 2的時候呢 DALL·E 2就得到了這樣的圖片就全是做好的菜 然后把 下面的那個人說出來的那句話呢然后輸給DALL·E 2的時候呢 就生成了很多鳥 所以這也就反映了DALL·E 2的另外一個問題 就這個屬性對不上 本來這個人說的呢其實應該是在討論這個蔬菜 但其實對應過來呢 其實人討論的是鳥那還有一個更好玩的例子 就是說 有兩只鯨魚在討論食物這個呢你也要給我生成一個字幕 它就生成了這么一個圖片 兩只鯨魚在討論什么東西然后又是一串鯨魚語 然后他們把生成的這個文本呢 抄下來然后扔給DALL·E 2 然后讓它去生成圖片 結果哎就生成了很多海鮮這個就真的很有意思了 那看來這兩只鯨魚 還真的就在討論它們的食物是什么然后呢這個作者還嘗試了 很多別的不同的例子 我這里就不一一說了他們把他們的這個發(fā)現(xiàn)呢 全都總結到他們的這個arXiv論文里 在他的個人主頁上是可以找到的然后作者這里呢也跟OpenAI一樣 非常擔心這個模型的安全性的使用問題 因為他說之前的這種NLP的這種系統(tǒng) 一般都是說會根據(jù)這種政策 法規(guī)去過濾掉一些信息一般這種過濾系統(tǒng)呢 還是比較準確和高效的 但是呢他們這里發(fā)明的這種DALL·E 2用的黑話或者這種鳥語 誰也看不懂的這種語言 也就是他們這里說的Gibberish其實就是垃圾提示詞 那就很有可能會繞過這些 已經(jīng)設置好的過濾器從而產(chǎn)生一些安全性 還有這種可解釋性上的這個問題 總之呢DALL·E 2的這個圖像生成的效果呢 還是非常讓我驚訝的 我自己呢也玩了很久那個DALL·E mini盡管呢不論是在論文里 還是在twitter上還是在別人的論文里 都說DALL·E 2

片段331:27:25~1:27:47

有這樣那樣的局限性和不足 但是我覺得呢 以現(xiàn)在這種競爭的白熱化的程度以現(xiàn)在這種做研究的速度 應該很快 我們就能看到更完美的一個圖像生成的模型了 如果你還沒有玩過DALL·E 2 那你也可以去加入那個waitlist但如果waitlist實在排不上了 其實也無所謂 反正DALL·E 2才出來了兩個月就已經(jīng)成爺爺輩的工作了 說不定下個月又有新的工作出來關注我 ??回到視頻一鍵復制保存到 Notion?? 一鍵保存到筆記Made with ?? by?JimmyLv?on?GitHubStatus ·Changelog ·TwitterGitHubToggle theme

    一鍵總結 嗶哩音視頻內(nèi)容


    【自用】DALL·E 2(內(nèi)含擴散模型介紹)【論文精讀】(內(nèi)含 生成模型的串講GAN,AE...的評論 (共 條)

    分享到微博請遵守國家法律
    遵义市| 德安县| 通城县| 巨野县| 邵阳县| 鹰潭市| 北辰区| 西宁市| 盘锦市| 米脂县| 抚松县| 麦盖提县| 勐海县| 墨江| 夏邑县| 乡城县| 桃园县| 乃东县| 宜兰市| 旺苍县| 磐石市| 翁源县| 麻江县| 云林县| 灵石县| 乌鲁木齐市| 祁门县| 都兰县| 通州市| 黔南| 永宁县| 万安县| 白山市| 勐海县| 日土县| 禄丰县| 凤城市| 岱山县| 桂东县| 亳州市| 大理市|