自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

終于有人將多模態(tài)重點(diǎn)內(nèi)容做成了動(dòng)畫 原創(chuàng)

發(fā)布于 2024-8-20 09:07
瀏覽
0收藏

多模態(tài)學(xué)習(xí)可以看作是深度學(xué)習(xí)的一個(gè)細(xì)分領(lǐng)域,利用不同類型的神經(jīng)網(wǎng)絡(luò)來處理不同模態(tài)(如圖像、文本、音頻等)的數(shù)據(jù)。多模態(tài)任務(wù)大體可以分為理解和生成兩大類,生成任務(wù)又分為文生圖和圖生文。

?CLIP是入門多模態(tài)的最佳選擇,后續(xù)多模態(tài)模型基本上都延續(xù)了它的思想:分別用圖像編碼器和文本編碼器將圖像和文本編碼到一個(gè)共享的特征空間中,然后通過多模態(tài)融合方法將配對(duì)的圖像文本特征向量拉進(jìn)。

[CLIP] 手書動(dòng)畫 ??

[1] 給定

? 一個(gè)包含3個(gè)文本-圖像對(duì)的小批量數(shù)據(jù)(OpenAI 使用了4億個(gè)文本-圖像對(duì)來訓(xùn)練其原始CLIP模型)。

處理第一個(gè)對(duì):"big table"

[2] ?? 文本 → 2個(gè)向量(3維向量)

? 使用word2vec查找詞嵌入向量。(word2vec可以使用Google提供的預(yù)訓(xùn)練模型)

[3] ?? 圖像 → 2個(gè)向量(4維向量)

? 將圖像分成兩個(gè)塊。

? 將每個(gè)塊展平

[4] 處理其他對(duì)

? 重復(fù)步驟 [2]-[3]

[5] ?? 文本編碼器 & ?? 圖像編碼器(紅框內(nèi)的編碼器參數(shù)通過訓(xùn)練得到)

? 將輸入向量編碼為特征向量

? 在這里,兩個(gè)編碼器都是簡(jiǎn)單的單層感知器(線性 + ReLU)

? 實(shí)際中,編碼器通常是Transformer模型。

[6] ?? ?? 均值池化: 2 → 1 個(gè)向量

? 通過對(duì)列進(jìn)行平均,將2個(gè)特征向量平均為一個(gè)向量

? 目標(biāo)是用一個(gè)向量來表示每個(gè)圖像或文本

[7] ?? ?? -> ?? 投影(投影矩陣通過訓(xùn)練得到)

? 注意,編碼器輸出的文本和圖像特征向量維度不同(3維向量 vs. 4維向量)。

? 使用線性層將圖像和文本向量投影到一個(gè)2D共享嵌入空間。

??? 對(duì)比預(yù)訓(xùn)練 ???

[8] 準(zhǔn)備矩陣乘法

? 復(fù)制文本向量(T1,T2,T3)

? 復(fù)制圖像向量的轉(zhuǎn)置(I1,I2,I3)

? 它們都位于2D共享嵌入空間中。

[9] ?? 矩陣乘法

? 將T和I矩陣相乘。

? 這相當(dāng)于計(jì)算每對(duì)圖像和文本向量之間的點(diǎn)積。

? 目的是使用點(diǎn)積來估計(jì)圖像-文本對(duì)之間的相似度。

[10] ?? Softmax: e^x

? 將e提升為每個(gè)單元格中的數(shù)的冪

? 為簡(jiǎn)化手動(dòng)計(jì)算,我們將e^□ 近似為3^□。

[11] ?? Softmax: ∑

? 為 ?? 圖像→?? 文本 求每行之和

? 為 ?? 文本→ ?? 圖像 求每列之和

[12] ?? Softmax: 1 / 總和

? 將每個(gè)元素除以列總和,以獲得 ?? 文本→?? 圖像 的相似度矩陣

? 將每個(gè)元素除以行總和,以獲得 ?? 圖像→?? 文本 的相似度矩陣

[13] ?? 損失梯度

? 相似度矩陣的“目標(biāo)”是單位矩陣。

? 為什么?如果I和T來自同一個(gè)對(duì)(i=j),我們希望最高值為1,否則為0。

? 使用簡(jiǎn)單的[相似度 - 目標(biāo)]公式來計(jì)算雙向梯度。

? 為什么這么簡(jiǎn)單?因?yàn)楫?dāng)Softmax和交叉熵?fù)p失一起使用時(shí),數(shù)學(xué)計(jì)算會(huì)神奇地如此簡(jiǎn)化。

? 這些梯度啟動(dòng)了反向傳播過程,以更新編碼器和投影層的權(quán)重和偏置(紅色邊框)。

CLIP簡(jiǎn)單的融合方法使其非常適合檢索任務(wù),而不適合生成任務(wù),后續(xù)的一些模型為了提升融合效果,常采用Transformer編碼器作為融合模塊,為了具備圖生文本的能力,后續(xù)模型也都增加了Transformer解碼器;或者為了提升效率,則干脆直接使用訓(xùn)練好的大模型作為編解碼器,然后使用一個(gè)適配器作為銜接。

多模態(tài)模型:

    CLIP

    ViLT

    ALBEF

    VLMO

    BeiT v3

    BLIP

    CoCa

    Flamingo

    BLIP-2

    IMAGEBIND

    Meta-Transformer

[Autoencoder(AE)]手書動(dòng)畫??

圖生文和文生圖雖然都是生成類型任務(wù),但模型架構(gòu)和思想?yún)s有很大不同,與CLIP一樣,AE也是學(xué)習(xí)文生圖的最佳選擇。

自編碼器用于學(xué)習(xí)數(shù)據(jù)的低維表示,常用于圖像壓縮、降維、去噪等任務(wù);但由于缺乏控制變量,所以不太適合用于文生圖,但它為后續(xù)變分自編碼器(VAE)奠定了基礎(chǔ)。

終于有人將多模態(tài)重點(diǎn)內(nèi)容做成了動(dòng)畫 -AI.x社區(qū)

-- 網(wǎng)絡(luò)架構(gòu) --

編碼器

線性層(4,3)

ReLU激活

線性層(3,2)

ReLU激活

解碼器

線性層(2,3)

ReLU激活

線性層(3,4)

-- 步驟詳解 --

[1] 給定

? 四個(gè)訓(xùn)練樣本 X1, X2, X3, X4

[2] 自動(dòng)

? 將訓(xùn)練樣本復(fù)制為目標(biāo) (Y'),目標(biāo)就是訓(xùn)練樣本本身。

? 目的是訓(xùn)練網(wǎng)絡(luò)重構(gòu)訓(xùn)練樣本。

[3] 編碼器: 第1層 + ReLU

? 將輸入與權(quán)重和偏置相乘

? 應(yīng)用ReLU,將負(fù)值劃掉 (-1 -> 0)

[4] 編碼器: 第2層 + ReLU

? 將特征與權(quán)重和偏置相乘

? 應(yīng)用ReLU,將負(fù)值劃掉 (-1 -> 0)

? 這一層通常被稱為"bottleneck",因?yàn)樗妮敵?綠色)的特征維度(2)比輸入特征(4)少得多。

[5] 解碼器: 第1層 + ReLU

? 將特征與權(quán)重和偏置相乘

? 應(yīng)用ReLU,劃掉負(fù)值。這里沒有負(fù)值需要?jiǎng)澋簟?/p>

[6] 解碼器: 第2層

? 將特征與權(quán)重和偏置相乘

? 輸出(Y)是解碼器嘗試從降維到2D的表示(綠色)重構(gòu)訓(xùn)練樣本。

[7] 損失梯度和反向傳播

? 計(jì)算輸出(Y)和目標(biāo)(Y')之間的均方誤差(MSE)損失的梯度。

? 公式是 2 * (Y - Y')

? 首先我們計(jì)算 輸出(Y) - 目標(biāo)(Y')

? 然后我們將每個(gè)元素乘以2

? 這些梯度啟動(dòng)反向傳播過程,用于更新權(quán)重和偏置。

[Variant Autoencoder(VAE)] 手書動(dòng)畫??

變分自編碼器(VAE)擴(kuò)展了自編碼器(AE)的概念。自編碼器將輸入映射到固定的隱變量表示,而變分自編碼器則將輸入映射到隱變量的概率分布。通過從這個(gè)概率分布中進(jìn)行采樣,VAE能夠生成多樣化的新數(shù)據(jù)樣本,而不僅僅是重建輸入數(shù)據(jù)。這種方法使得VAE在生成任務(wù)中表現(xiàn)得更加靈活和有效。

終于有人將多模態(tài)重點(diǎn)內(nèi)容做成了動(dòng)畫 -AI.x社區(qū)

[1] 給定:

? 三個(gè)訓(xùn)練樣本 X1, X2, X3

? 將訓(xùn)練樣本復(fù)制成目標(biāo)。

? 目的是訓(xùn)練網(wǎng)絡(luò)來重建這些訓(xùn)練樣本。

[2] 編碼器:第一層 + ReLU

? 將輸入與權(quán)重和偏置相乘

? 應(yīng)用 ReLU,將負(fù)值去除(-1 -> 0)

[3] 編碼器:均值和方差

? 將特征與兩組權(quán)重和偏置相乘

? ?? 第一組預(yù)測(cè)潛在分布的均值 (??)

? ?? 第二組預(yù)測(cè)潛在分布的標(biāo)準(zhǔn)差 (??)

[4] 重參數(shù)化技巧:隨機(jī)偏移

? 從均值為0、方差為1的正態(tài)分布中抽取隨機(jī)變量 ε。

? 目的是隨機(jī)選擇一個(gè)偏移值,使其偏離均值。

? 將標(biāo)準(zhǔn)差值與 ε 值相乘。

? 目的是根據(jù)標(biāo)準(zhǔn)差來縮放偏移值。

[5] 重參數(shù)化技巧:均值 + 偏移

? 將抽樣得到的偏移值加到預(yù)測(cè)的均值上

? 結(jié)果是新的參數(shù)或特征 ??,作為解碼器的輸入。

[6] 解碼器:第一層 + ReLU

? 將輸入特征與權(quán)重和偏置相乘

? 應(yīng)用 ReLU,去除負(fù)值。此處,-4 被去除。

[7] 解碼器:第二層

? 將特征與權(quán)重和偏置相乘

? 輸出是解碼器嘗試從 ?? 和 ?? 描述的重參數(shù)化分布中重建輸入數(shù)據(jù) X。

[8]-[10] KL散度損失

[8] 損失梯度:均值 ??

? 我們希望 ?? 接近 0。

? 一些叫做 SGVB 的數(shù)學(xué)計(jì)算簡(jiǎn)化了損失梯度的計(jì)算,使其直接為 ??

[9,10] 損失梯度:標(biāo)準(zhǔn)差 ??

? 我們希望 ?? 接近 1。

? 一些數(shù)學(xué)計(jì)算簡(jiǎn)化了計(jì)算,使其為 ?? - (1/ ??)

[11] 重建損失

? 我們希望重建的數(shù)據(jù) Y(深 ??)與輸入數(shù)據(jù) X 相同。

? 一些涉及均方誤差的數(shù)學(xué)計(jì)算簡(jiǎn)化為 Y - X。

VAE中比較難理解的是它的訓(xùn)練過程有兩個(gè)損失,一個(gè)是圖像重構(gòu)損失,重構(gòu)損失衡量模型生成的數(shù)據(jù)與輸入數(shù)據(jù)之間的差異,通常使用MSE;另一個(gè)是KL散度損失,用于衡量VAE中隱變量的近似后驗(yàn)分布與先驗(yàn)分布(通常是標(biāo)準(zhǔn)正態(tài)分布)之間的差異,通過減小該損失,以鼓勵(lì)隱變量的分布接近先驗(yàn)分布,使得模型的潛在空間具有良好的連續(xù)性和生成能力。

[GAN] 手書動(dòng)畫 ??

生成對(duì)抗網(wǎng)絡(luò)(GAN)是一種生成模型,通過兩個(gè)神經(jīng)網(wǎng)絡(luò)——生成器和判別器——相互對(duì)抗,生成與真實(shí)數(shù)據(jù)相似的新樣本。

原始的GAN通過隨機(jī)噪聲控制生成圖像的多樣性,后續(xù)不同版本的GAN豐富了控制變量的類型,例如,標(biāo)簽、文本、圖像等等。

終于有人將多模態(tài)重點(diǎn)內(nèi)容做成了動(dòng)畫 -AI.x社區(qū)

目標(biāo):從2維噪聲生成逼真的4維數(shù)據(jù)。

[1] 給定

? 4個(gè)2維的噪聲向量(N)

? 4個(gè)4維的真實(shí)數(shù)據(jù)向量(X)

[2] ?? 生成器:第一層

? 將噪聲向量與權(quán)重和偏置相乘,以獲得新的特征向量

[3] ?? 生成器:ReLU

? 應(yīng)用ReLU激活函數(shù),其效果是抑制負(fù)值。在此練習(xí)中,-1 和 -2 被劃掉并設(shè)為0。

[4] ?? 生成器:第二層

? 將特征向量與權(quán)重和偏置相乘,以獲得新的特征向量。

? 應(yīng)用了ReLU函數(shù),但由于每個(gè)值都是正數(shù),因此沒有效果。

? 這些新的特征向量就是由這個(gè)簡(jiǎn)單的兩層生成器網(wǎng)絡(luò)生成的“偽”數(shù)據(jù)(F)。

[5] ?? 判別器:第一層

? 將偽數(shù)據(jù)(F)和真實(shí)數(shù)據(jù)(X)都輸入到第一層線性層

? 將F和X與權(quán)重和偏置相乘,以獲得新的特征向量。

? 應(yīng)用了ReLU函數(shù),但由于每個(gè)值都是正數(shù),因此沒有效果。

[6] ?? 判別器:第二層

? 將特征向量與一組權(quán)重和偏置相乘,以獲得新的特征。

? 預(yù)期效果是將每個(gè)數(shù)據(jù)向量的特征減少到僅一個(gè)特征值。

[7] ?? 判別器:Sigmoid σ

? 使用Sigmoid函數(shù)將特征(Z)轉(zhuǎn)換為概率值(Y)

? 1表示判別器100%確信數(shù)據(jù)是真實(shí)的。

? 0表示判別器100%確信數(shù)據(jù)是偽造的。

[8] ??? 訓(xùn)練:?? 判別器

? 通過簡(jiǎn)單的Y - YD公式計(jì)算判別器的損失梯度。為什么這么簡(jiǎn)單?因?yàn)楫?dāng)我們同時(shí)使用Sigmoid和二元交叉熵?fù)p失時(shí),數(shù)學(xué)計(jì)算會(huì)神奇地簡(jiǎn)化為這個(gè)公式。

? YD 是判別器的目標(biāo)預(yù)測(cè)。判別器必須學(xué)習(xí)預(yù)測(cè)4個(gè)偽數(shù)據(jù)(F)為0,4個(gè)真實(shí)數(shù)據(jù)(X)為1。YD=[0,0,0,0,1,1,1,1]。

? 請(qǐng)注意,判別器的損失涉及偽數(shù)據(jù)和真實(shí)數(shù)據(jù)。

? 計(jì)算出損失梯度后,我們可以啟動(dòng)反向傳播過程,以更新判別器的權(quán)重和偏置(藍(lán)色邊框)。

[9] ??? 訓(xùn)練:?? 生成器

? 通過簡(jiǎn)單的Y - YG公式計(jì)算生成器的損失梯度。

? YG 是生成器的目標(biāo)預(yù)測(cè)。生成器必須欺騙判別器,使其預(yù)測(cè)4個(gè)偽數(shù)據(jù)(F)為1。YG=[1,1,1,1]。

? 請(qǐng)注意,生成器的損失只涉及偽數(shù)據(jù)。

? 計(jì)算出損失梯度后,我們可以啟動(dòng)反向傳播過程,以更新生成器的權(quán)重和偏置(綠色邊框)。

對(duì)于文生圖任務(wù),目前最常用的是Diffusion擴(kuò)散模型,前面介紹了VAE和GAN,那么它們各自有什么優(yōu)缺點(diǎn)呢?

GAN生成圖像質(zhì)量高但訓(xùn)練不穩(wěn)定,VAE生成穩(wěn)定但圖像質(zhì)量較低,Diffusion生成質(zhì)量?jī)?yōu)異但速度較慢。

[SORA] 手書動(dòng)畫 ??

OpenAI 的 #SORA 在今年早些時(shí)候宣布時(shí)風(fēng)靡網(wǎng)絡(luò)。Sora 背后的技術(shù)是由 William Peebles 和 Shining Xie 開發(fā)的擴(kuò)散Transformer (DiT)。

DiT 是如何工作的?

????????: 基于文本提示和一系列擴(kuò)散步驟生成視頻

[1] 給定

? 視頻

? 提示詞: "sora is sky"

? 擴(kuò)散步驟: t = 3

[2] 視頻 → 補(bǔ)丁

? 將所有幀中的所有像素劃分為4個(gè)時(shí)空補(bǔ)丁

[3] 視覺編碼器:像素 ?? → 潛在特征 ??

? 將補(bǔ)丁與權(quán)重和偏置相乘,然后經(jīng)過 ReLU 激活函數(shù)

? 每個(gè)補(bǔ)丁得到一個(gè)潛在特征向量

? 目的是將維度從 4 (2x2x1) 降維到 2 (2x1)。

? 在論文中,降維過程是從196,608 (256x256x3)→ 4096 (32x32x4)

[4] ? 添加噪聲

? 根據(jù)擴(kuò)散時(shí)間步 t 采樣噪聲。通常,t 越大,噪聲越小。

? 將采樣的噪聲添加到潛在特征中以獲得有噪聲的潛在特征。

? 目的是故意向視頻添加噪聲,并要求模型猜測(cè)這些噪聲是什么。

? 這類似于通過故意刪除句子中的一個(gè)詞來訓(xùn)練語(yǔ)言模型,并讓模型猜測(cè)被刪除的詞是什么。

[5-7] ?? 通過自適應(yīng)層歸一化進(jìn)行條件化

[5] 編碼條件

? 將 "sora is sky" 編碼為文本嵌入向量 [0,1,-1]。

? 將 t = 3 編碼為一個(gè)二進(jìn)制向量 [1,1]。

? 將這兩個(gè)向量連接成一個(gè)5D列向量。

[6] 估計(jì)縮放/平移

? 將組合向量與權(quán)重和偏置相乘

? 目的是估計(jì)縮放 [2,-1] 和平移 [-1,5]。

? 將結(jié)果復(fù)制到 (X) 和 (+)

[7] 應(yīng)用縮放/平移

? 將有噪聲的潛在特征按 [2,-1] 縮放

? 將縮放后的有噪聲潛在特征按 [-1, 5] 平移

? 結(jié)果是“條件化”的有噪聲潛在特征。

[8-10] Transformer

[8] 自注意力

? 將條件化的有噪聲潛在特征輸入到 Query-Key 函數(shù)中以獲得自注意力矩陣

? 省略了 Value 以簡(jiǎn)化操作

[9] 注意力池化

? 將條件化的有噪聲潛在特征與自注意力矩陣相乘

? 結(jié)果是加權(quán)的注意力特征

[10] 點(diǎn)積前饋網(wǎng)絡(luò)

? 將注意力加權(quán)特征與權(quán)重和偏置相乘

? 結(jié)果是預(yù)測(cè)的噪聲

????♂? ?????????? 訓(xùn)練

[11]

? 通過計(jì)算預(yù)測(cè)噪聲與采樣噪聲(真實(shí)值)之間的 MSE 損失梯度。

? 使用損失梯度啟動(dòng)反向傳播,以更新所有可學(xué)習(xí)的參數(shù)(紅色邊框)。

? 注意,視覺編碼器和解碼器的參數(shù)是凍結(jié)的(藍(lán)色邊框)。

?? ???????????????? (????????????) 生成(采樣)

[12] 去噪

? 從有噪聲的潛在特征中減去預(yù)測(cè)噪聲,以獲得無噪聲的潛在特征。

[13] 視覺解碼器:潛在特征 ?? → 像素 ??

? 將補(bǔ)丁與權(quán)重和偏置相乘,然后經(jīng)過 ReLU 激活函數(shù)

[14] 補(bǔ)丁 → 視頻

? 將補(bǔ)丁重新排列成一系列視頻幀。


本文轉(zhuǎn)載自公眾號(hào)人工智能大講堂 

原文鏈接:??????https://mp.weixin.qq.com/s/2lAfcrqy1goVwVhX5PTGOw??




?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦