日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

对比学习可以使用梯度累积吗?

發(fā)布時間:2024/10/8 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对比学习可以使用梯度累积吗? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?PaperWeekly 原創(chuàng) ·?作者?|?蘇劍林

單位?|?追一科技

研究方向?|?NLP、神經(jīng)網(wǎng)絡(luò)

在之前的文章用時間換取效果:Keras 梯度累積優(yōu)化器中,我們介紹過“梯度累積”,它是在有限顯存下實現(xiàn)大 batch_size 效果的一種技巧。一般來說,梯度累積適用的是 loss 是獨立同分布的場景,換言之每個樣本單獨計算 loss,然后總 loss 是所有單個 loss 的平均或求和。然而,并不是所有任務(wù)都滿足這個條件的,比如最近比較熱門的對比學習,每個樣本的 loss 還跟其他樣本有關(guān)。

那么,在對比學習場景,我們還可以使用梯度累積來達到大 batch_size 的效果嗎?本文就來分析這個問題。

簡介

一般情況下,對比學習的 loss 可以寫為:

這里的 b 是 batch_size; 是事先給定的標簽,滿足 ,它是一個 one ?hot 矩陣,每一列只有一個 1,其余都為0;而 是樣本 i 和樣本 j 的相似度,滿足 ,一般情況下還有個溫度參數(shù),這里假設(shè)溫度參數(shù)已經(jīng)整合到 中,從而簡化記號。模型參數(shù)存在于 中,假設(shè)為 。

可以驗證,一般情況下:

所以直接將小 batch_size 的對比學習的梯度累積起來,是不等價于大 batch_size 的對比學習的。類似的問題還存在于帶 BN(Batch Normalization)的模型中。

梯度

注意,剛才我們說的是常規(guī)的簡單梯度累積不能等效,但有可能存在稍微復(fù)雜一些的累積方案的。為此,我們分析式(1)的梯度:

其中 表示不需要對 求 的梯度,也就是深度學習框架的?stop_gradient 算子。上式表明,如果我們使用基于梯度的優(yōu)化器,那么使用式(1)作為 loss,跟使用 作為 loss,是完全等價的(因為算出來的梯度一模一樣)。

內(nèi)積

接下來考慮 的計算,一般來說它是向量的內(nèi)積形式,即 ,參數(shù) 在 里邊,這時候:

所以 loss 中的 可以替換為 而效果不變:

第二個等號源于將 那一項的求和下標 i,j 互換而不改變求和結(jié)果。

流程

式(5)事實上就已經(jīng)給出了最終的方案,它可以分為兩個步驟。第一步就是向量:

的計算,這一步不需要求梯度,純粹是預(yù)測過程,所以 batch_size 可以比較大;第二步就是把 當作“標簽”傳入到模型中,以 為單個樣本的 loss 進行優(yōu)化模型,這一步需要求梯度,但它已經(jīng)轉(zhuǎn)化為每個樣本的梯度和的形式了,所以這時候就可以用常規(guī)的梯度累積了。

假設(shè)反向傳播的最大 batch_size 是 b,前向傳播的最大 batch_size 是 nb,那么通過梯度累積讓對比學習達到 batch_size 為 nb 的效果,其格式化的流程如下:

1. 采樣一個 batch 的數(shù)據(jù) ,對應(yīng)的標簽矩陣為 ,初始累積梯度為 g=0;

2. 模型前向計算,得到編碼向量 以及對應(yīng)的概率矩陣 ;

3. 根據(jù)式(6)計算標簽向量 ;

4. 對于 ,執(zhí)行:

5. 用 g 作為最終梯度更新模型,然后重新執(zhí)行第 1 步。

總的來說,在計算量上比常規(guī)的梯度累積多了一次前向計算。當然,如果前向計算的最大 batch_size 都不能滿足我們的需求,那么也可以分批前向計算,因為我們只需要把各個 算出來存好,而 可以基于 算出來。

最后還要提醒的是,上述流程只是在優(yōu)化時等效于大 batch_size 模型,也就是說 的梯度等效于原 loss 的梯度,但是它的值并不等于原 loss 的值,因此不能用 作為 loss 來評價模型,它未必是單調(diào)的,也未必是非負的,跟原來的 loss 也不具有嚴格的相關(guān)性。

問題

上述流程有著跟《節(jié)省顯存的重計算技巧也有了 Keras 版了》[1] 介紹的“重計算”一樣的問題,那就是跟 Dropout 并不兼容,這是因為每次更新都涉及到了多次前向計算,每次前向計算都有不一樣的 Dropout,這意味著我們計算標簽向量 時所用的 跟計算梯度時所用的 并不是同一個,導致計算出來的梯度并非最合理的梯度。

這沒有什么好的解決方案,最簡單有效的方法就是在模型中去掉 Dropout。這對于 CV 來說沒啥大問題,因為 CV 的模型基本也不見 Dropout 了;對于 NLP 來說,第一反應(yīng)能想到的結(jié)果就是 SimCSE 沒法用梯度累積,因為 Dropout 是 SimCSE 的基礎(chǔ)。

小結(jié)

本文分析了對比學習的梯度累積方法,結(jié)果顯示對比學習也可以用梯度累積的,只不過多了一次前向計算,并且需要在模型中去掉 Dropout。本文同樣的思路還可以分析 BN 如何使用梯度累積,有興趣的讀者不妨試試。

參考文獻

[1] https://kexue.fm/archives/7367

更多閱讀

#投 稿?通 道#

?讓你的文字被更多人看到?

如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學術(shù)熱點剖析科研心得競賽經(jīng)驗講解等。我們的目的只有一個,讓知識真正流動起來。

?????稿件基本要求:

? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標注?

? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題

? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算

?????投稿通道:

? 投稿郵箱:hr@paperweekly.site?

? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者

? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿

△長按添加PaperWeekly小編

????

現(xiàn)在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關(guān)注」訂閱我們的專欄吧

關(guān)于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結(jié)

以上是生活随笔為你收集整理的对比学习可以使用梯度累积吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。