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

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

AIGC: Discrete Contrastive Diffusion 筆記

2023-07-27 16:16 作者:剎那-Ksana-  | 我要投稿

如果有錯誤還請各位指出。我們都不是搞研究的,咱們不玩復(fù)雜公式 (*^_^*)

Contrastive Predictive Coding

首先,Conditional Discrete Contrastive Diffusion 這個方法,要先從?Contrastive Predictive Coding(1807.03748,1905.09272,以下簡稱CPC)說起。

CPC?是一種從高位數(shù)據(jù)里面抽取代表性的內(nèi)容(Representations)的無監(jiān)督學(xué)習(xí)方法。其要點(diǎn)是,相比于去模擬?p(x%7Cc)x?代表一個高維數(shù)據(jù),如文字、圖片、聲音等,c?代表數(shù)據(jù)對應(yīng)的標(biāo)簽)的話,CPC 的目的是最大化 x?與?c?之間相互信息(Mutual Information):I(x%3Bc)%3A%3D%5Csum_%7Bx%2Cc%7D%20p(x%2Cc)%20%5Clog%20%5Cfrac%7Bp(x%7Cc)%7D%7Bp(x)%7D. 即,相當(dāng)于最大化?%5Cfrac%7Bp(x%7Cc)%7D%7Bp(x)%7D.?

CPC 的過程也很簡單,挑選一個正樣本和 N 個負(fù)樣本(即所謂的 Contrastive),然后最小化Loss:?%5Cmathcal%7BL%7D%3D-%5Cmathbb%7BE%7D_X%5Cleft%5B%20%5Clog%20%5Cfrac%7Bf_k(x_%7Bt%2Bk%7D%2Cc_t)%7D%7B%5Csum_%7Bx_j%20%5Cin%20X%7D%20f_k(x_j%2Cc_t)%7D%20%5Cright%5D, 其中,f_k(x_%7Bt%2Bk%7D%2Cc_t)%5Cpropto%20%5Cfrac%7Bp(x_%7Bt%2Bk%7D%7Cc_t)%7D%7Bp(x_%7Bt%2Bk%7D)%7D.

CPC 的大致原理圖

具體的公式和由來并不是那么的重要,網(wǎng)上由很多相關(guān)的文章可以參考,鏈接放在文章末尾。

如上圖所示,整個模型由負(fù)責(zé)生成的編碼器?g_%7Benc%7D, 一個自我回歸(Autoregressive)模型 g_%7Bar%7D(比如,GRU), 和一個序列?x?組成。在每一步?t?鐘,我們利用?g_%7Bar%7D?的輸出?c_t?來預(yù)測接下來幾步的結(jié)果?x_%7Bt%2B1%7D%2Cx_%7Bt%2B2%7D%2C.... 對于圖像來說,我們可以把圖像整體分割為一個個的小方塊,這樣,整個圖像就可以被看成一個序列了。

然后我們構(gòu)造一些正負(fù)配對,比如,正樣本的配對里面?x_%7Bt%2B1%7D%2Cx_%7Bt%2B2%7D%2C...?來自原始聲音,負(fù)樣本的配對是別的地方的聲音。最后,通過 CPC 這么一套流程下來,模型將會更好的區(qū)分正負(fù)樣本,進(jìn)而,我們得到了一個更好的編碼器。

基本設(shè)定

接下來,進(jìn)入到 Conditional Discrete Contrastive Diffusion(2206.07771,以下簡稱 CDCD)的世界里。

CDCD 的設(shè)定是,我們有一個向量量化模型(Vector-Quantized Model,比如,VQ-VAE),這個 VQ 模型將生成?x?所對應(yīng)的離散向量(Discrete Representation)z_0.?

擴(kuò)散過程的目標(biāo)則是給出依賴條件 c, 然后復(fù)原這個?latent?z_0. 最后我們通過 VQ 模型的解碼器,將 latent z_0?復(fù)原成圖像 x.?

因此,在?CPC 的設(shè)定下,這里我們的目標(biāo)是最大化相互信息?I(z_0%3Bc). 如果我們也采用和 CPC 原論文相同的方法,設(shè)定一個比值?f(z_0%2Cc)%3D%5Cfrac%7Bp_%5Ctheta(z_0%7Cc)%7D%7Bp_%5Ctheta(z_0)%7D?,然后去最大化這個比值的話,我們可以導(dǎo)出和 CPC 論文中的形式的 Loss:

%5Cmathcal%7BL%7D_%7BCDCD%7D%3A%3D-%5Cmathbb%7BE%7D%5Cleft%5B%20%5Clog%20%5Cfrac%7Bf(z_0%2Cc)%7D%7Bf(z_0%2Cc)%2B%5Csum_%7Bz%5Ej%20%5Cin%20Z'%7D%20f(z_0%5Ej%2Cc)%7D%20%5Cright%5D%20

這里的?Z'%3D%5C%7Bz%5E1%2Cz%5E2%2C...%2Cz%5EN%5C%7D?代表了負(fù)樣本通過 VQ 編碼器生成的?latent.

但是,在擴(kuò)散模型的設(shè)定里面,我們并不需要去最大化比值??f(z_0%2Cc), 我們可以直接去優(yōu)化?p_%7B%5Ctheta%7D(但依舊保持 Contrastive Learning 的世界觀)

與擴(kuò)散模型的關(guān)聯(lián)

之前寫的 DDIM 文章里面,詳細(xì)地介紹過 DDPM 的目標(biāo)——最大化變分下界(Evidence Lower Bound),所對應(yīng)的 Loss 為:

%5Cmathcal%7BL%7D_%7Bvb%7D%3D%5Cmathbb%7BE%7D_q%5BD_%7BKL%7D(q(x_T%7Cx_0)%7C%7Cp(x_T)%20%2B%5Csum_%7Bt%3E1%7DD_%7BKL%7D%5Cleft(q(x_%7Bt-1%7D%7Cx_t%2Cx_0)%7C%7Cp_%5Ctheta(x_%7Bt-1%7D%7Cx_t)%5Cright)%20-%5Clog%20p_%7B%5Ctheta%7D(x_0%7Cx_1))%5D

當(dāng)然,因為我們這里還有一個依賴條件?c, 所以上面公式里面的?p_%5Ctheta(x_%7Bt-1%7D%7Cx_t)?, p_%5Ctheta(x_%7B0%7D%7Cx_1)?變成了?p_%5Ctheta(x_%7Bt-1%7D%7Cx_t%2C%20c), p_%5Ctheta(x_%7B0%7D%7Cx_1%2C%20c). (在這里,p_%5Ctheta(x_%7Bt-1%7D%7Cx_t%2C%20c)?的具體形式并不重要)

隨后,論文里面提出了兩種擴(kuò)散機(jī)制—— Step-Wise Parallel Diffusion 和 Sample-Wise Auxiliary Diffusion

兩種不同的 Diffusion 機(jī)制的示意圖,左邊為 Step-wise,右邊為 Sample-wise。綠色的代表正樣本,紅色的代表負(fù)樣本。論文中是以一個視頻轉(zhuǎn)音樂的模型為例子,所以這里的條件依賴 c 是視頻(一連串的圖片)。

這兩種擴(kuò)散機(jī)制,源頭都來自于?loss %5Cmathcal%7BL%7D_%7BCDCD%7D(論文的附錄中有詳細(xì)的公式推導(dǎo)),但是工作方式有所區(qū)別,而上面的示意圖已經(jīng)很直觀地表明了——

無論是 Step-wise 還是 Sample-wise,我們都選取 1 個正樣本 N 個負(fù)樣本,

但是對于 Step-wise 來說,如圖所示,我們同時進(jìn)行 N+1 個擴(kuò)散過程,在每一步 t 中,?.我們"增強(qiáng)"正樣本?z_t?的同時,"抑制"負(fù)樣本?z_t%5Ej. 這些負(fù)樣本來自于上一步的擴(kuò)散,即公式中的 p_%5Ctheta%20(z_%7Bt-1%7D%5Ej%7Cz_%7Bt%7D%5Ej%2Cc),(這里注意,凡是有上標(biāo)的都意味著負(fù)樣本)

對應(yīng)的 Loss 為:

%5Cmathcal%7BL%7D_%7BCDCD-Step%7D%3D%5Cmathcal%7BL%7D_%7Bvb%7D(z%2Cc)-C%5Csum_%7Bz%5Ej%5Cin%20Z'%7D%5Cmathcal%7BL%7D_%7Bvb%7D(z%5Ej%2Cc)

而對于 Sample-wise 來說,如圖所示,這里只有一個擴(kuò)散過程,在每一步 t 中,?“增強(qiáng)”?到達(dá)正樣本?z_0?的路線,?"抑制"到達(dá)負(fù)樣本?z_0%5Ej?的路線,即公式中的?p_%5Ctheta%20(z_%7B0%7D%5Ej%7Cz_%7Bt%7D%2Cc).

對應(yīng)的 Loss 為:

%5Cmathcal%7BL%7D_%7BCDCD-Sample%7D%3D%5Cmathbb%7BE%7D_%7Bq%7D%5B-%5Clog%20p_%5Ctheta%20(z_0%7Cz_t%2Cc)%5D-C%5Csum_%7Bz%5Ej%20%5Cin%20Z'%7D%5Cmathbb%7BE%7D_%7Bq%7D%5B-%5Clog%20p_%5Ctheta%20(z_0%5Ej%20%7C%20z_t%2Cc)%5D

所以最終的 loss 由變分下界引導(dǎo)出的 loss 和以上的 CDCD loss 兩部分組成

%5Cmathcal%7BL%7D%3D%5Cmathcal%7BL%7D_%7Bvb%7D%2B%5Clambda%20%5Cmathcal%7BL%7D_%7BCDCD%20%5C%20Step%2FSample%7D

(注:論文的附錄B4有算法的偽代碼,但是個人感覺里面的符號好像有點(diǎn)問題,沒有貼出來,想?yún)⒖嫉目梢匀シ丛撐模?/p>

Loss 相關(guān)的代碼可以參考官方 github 源代碼?synthesis\modeling\transformers\diffusion_d2m.py 中的 458 行開始(d2m應(yīng)該是 dance to music 的意思...)?

Intra/Inter Sampling

intra: 在...之內(nèi);inter: 在...之間

對于負(fù)樣本的獲取,我們可以有兩種不同的辦法,一種是利用原始數(shù)據(jù)本身來制造負(fù)樣本(Intra),一種是利用別的數(shù)據(jù)來充當(dāng)負(fù)樣本(Inter)

兩種不同采樣方式的示意圖

這里,原論文給出的示意圖已經(jīng)直觀地說明了兩種不同的方式的差異,故不在多提。

所以根據(jù) Step 和 Sample 兩種擴(kuò)散方式以及 Intra 和 Inter 兩種采樣方式,就有4種不同的組合,這些組合的差異和表現(xiàn)可見原論文第4節(jié),在此也不提了。

一些值得參考的文章

CPC 的原理,非常通俗易懂:https://zhuanlan.zhihu.com/p/137076811

現(xiàn)在擴(kuò)散模型相關(guān)的論文都太多公式了,導(dǎo)致很多內(nèi)容,都特別難懂 orz…

AIGC: Discrete Contrastive Diffusion 筆記的評論 (共 條)

分享到微博請遵守國家法律
进贤县| 伊宁县| 绩溪县| 渑池县| 沅江市| 班戈县| 康平县| 北辰区| 扎鲁特旗| 望江县| 盈江县| 平遥县| 武清区| 舟曲县| 河间市| 玛沁县| 铁岭市| 革吉县| 乌拉特中旗| 射洪县| 通海县| 大姚县| 重庆市| 湖口县| 冕宁县| 来安县| 东丽区| 泽普县| 长顺县| 苍溪县| 宿松县| 齐河县| 双江| 梧州市| 乌兰察布市| 林周县| 开阳县| 巢湖市| 恭城| 苍山县| 延川县|