優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

WBOY
發布: 2023-10-13 16:21:03
轉載
447 人瀏覽過

持續學習的目的是模仿人類在連續任務中持續累積知識的能力,其主要挑戰是在持續學習新任務後如何保持對先前所學任務的表現,即避免災難性遺忘(catastrophic forgetting)。持續學習與多任務學習(multi-task learning)的差別在於:後者在同一時間可以得到所有任務,模型可以同時學習所有任務;而在持續學習中任務 一個一個出現,模型在某一時刻只能學習一個任務的知識,並且在學習新知識的過程中避免遺忘舊知識。

南加州大學聯合Google Research 提出了一種解決持續學習(continual learning)的新方法##通道式輕量級重編碼(Channel-wise Lightweight Reprogramming [CLR]):透過在固定任務不變的backbone 中加入可訓練的輕量級模組,對每層通道的特徵圖進行重編程,使得重編程過的特徵圖適用於新任務。這個可訓練的輕量級模組僅佔整個backbone的0.6%,每個新任務都可以有自己的輕量級模組,理論上可以持續學習無窮多新任務而不會出現災難性遺忘。文已刊登於 ICCV 2023。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

  • 論文網址: https://arxiv.org/pdf/2307.11386.pdf
  • #專案網址: https://github.com/gyhandy/Channel-wise-Lightweight-Reprogramming
  • 數據集位址: http://ilab.usc.edu/andy/skill102

#通常解決持續學習的方法主要分為三大類:基於正規化的方法、動態網路方法和重播方法。

  • 基於正規化的方法是模型在學習新任務的過程中對參數更新添加限制,在學習新知識的同時鞏固舊知識。
  • 動態網路方法是在學習新任務的時候新增特定任務參數並對舊任務的權重進行限制。
  • 重播方法假設在學習新任務的時候可以取得舊任務的部分數據,並與新任務一起訓練。

本文提出的CLR方法是一種動態網路方法。下圖表示了整個流程的流程:研究者使用與任務無關的不可變部分作為共享的特定任務參數,並添加特定任務參數對通道特徵進行重編碼。同時,為了盡可能減少每個任務的重編碼參數的訓練量,研究者只需調整模型中內核的大小,並學習從backbone到特定任務知識的通道線性映射來實現重編碼。在持續學習中,每個新任務都可以訓練得到一個輕量級模型;這種輕量級模型所需訓練的參數很少,即使任務很多,總共需要訓練的參數相對於大模型來說也很小,並且每個輕量級模型都能達到很好的效果

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

#研究動機

########################### #持續學習專注於從資料流中學習的問題,即透過特定的順序學習新任務,不斷擴展其已獲得的知識,同時避免遺忘先前的任務,因此如何避免災難性遺忘是持續學習研究的主要問題。研究者從以下三個面向來考慮:######
  • 重用而不是重學:對抗重編碼(Adversarial Reprogramming [1])是一種透過擾動輸入空間,在不重新學習網路參數的情況下,"重編碼" 一個已經訓練並凍結的網路來解決新任務的方法。研究者藉用了 「重編碼」 的思想,在原始模型的參數空間而不是輸入空間進行了更輕量級但也更強大的重編程。
  • 通道式轉換可以連接兩個不同的核心:GhostNet [2] 的作者發現傳統網路在訓練後會得到一些相似的特徵圖,因此他們提出了一種新型網路架構GhostNet:透過對現有特徵圖使用相對廉價的操作(例如線性變化)產生更多的特徵圖,以此來減少記憶體。受此啟發,本文方法同樣使用線性變換產生特徵圖來增強網絡,這樣就能以相對低廉的成本為各個新任務量身定制。
  • 輕量級參數可以改變模型分佈:BPN [3] 透過在全連接層中增加了有益的擾動偏差,使網路參數分佈從一個任務轉移到另一個任務。然而 BPN 只能處理全連接層,每個神經元只有一個標量偏置,因此改變網路的能力有限。相反研究者為卷積神經網路(CNN)設計了更強大的模式(在卷積核中增加 “重編碼” 參數),從而在每項新任務中實現更好的性能。

方法敘述

#通道式輕量級重編碼先用一個固定的backbone 作為一個任務共享的結構,這可以是一個在相對多樣性的資料集(ImageNet-1k, Pascal VOC)上進行監督學習的預訓練模型,也可以是在無語義標籤的代理任務上學習的自監督學習模型(DINO,SwAV)。有別於其他的持續學習方法(例如SUPSUP 使用一個隨機初始化的固定結構,CCLL 和EFTs 使用第一個任務學習後的模型作為backbone),CLR 使用的預訓練模型可以提供多種視覺特徵,但這些視覺特徵在其他任務上需要CLR 層進行重編碼。具體來說,研究者利用通道式線性變化(channel-wise linear transformation)對原有捲積核產生的特徵影像進行重編碼。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

圖中展示了 CLR 的結構。 CLR 適用於任何卷積神經網絡,常見的捲積神經網路由 Conv 區塊(Residual 區塊)組成,包括卷積層、歸一化層和活化層。

研究者先把預訓練的backbone 固定,然後在每個固定卷積塊中的捲積層後面加入通道式輕量級重編程層(CLR 層)來對固定卷積核後的特徵圖進行通道式線性變化。

給定一張圖片X,對於每個卷積核優化學習效率:透過0.6%額外參數將舊模型遷移至新任務,可以得到通過卷積核的特徵圖 X',其中每個通道的特徵可以表示為優化學習效率:透過0.6%額外參數將舊模型遷移至新任務;之後用 2D 卷積核對X'的每個通道優化學習效率:透過0.6%額外參數將舊模型遷移至新任務#線性變化,假設每個卷積核優化學習效率:透過0.6%額外參數將舊模型遷移至新任務對應的線性變化的捲積核為優化學習效率:透過0.6%額外參數將舊模型遷移至新任務,那麼可以得到重編碼後的特徵圖優化學習效率:透過0.6%額外參數將舊模型遷移至新任務。研究者將CLR 卷積核的初始化為同一變化核(即對於的2D 卷積核,只有中間參數為1,其餘都為0),因為這樣可以使得最開始訓練時原有固定backbone 產生的特徵和加入CLR layer 後模型產生的特徵相同。同時為了節約參數並防止過擬合,研究者並不會在的捲積核後面加入 CLR 層,CLR 層只會作用在的捲積核後。對於經過 CLR 作用的 ResNet50 來說,增加的可訓練參數相比於固定的 ResNet50 backbone 只佔 0.59%。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

對於持續學習,加入可訓練的CLR參數和不可訓練的backbone的模型可以依序學習每個任務。在測試時,研究者假設有一個任務預測器可以告訴模型測試圖片屬於哪個任務,然後固定的backbone和對應的任務專用CLR參數可以進行最終預測。由於CLR具有絕對參數隔離的特性(每個任務對應的CLR層參數都不一樣,而共享的backbone不會改變),因此CLR不會受到任務數量的影響

實驗結果

資料集:研究者使用影像分類作為主要任務,實驗室收集了53 個影像分類資料集,有大約180 萬張圖片和1584 個種類。這 53 個資料集包含了 5 個不同的分類目標:物件識別,風格分類,場景分類,計數和醫療診斷。

研究者選擇了13個基線,可以大致分為3個類別

  • 動態網路:PSP,SupSup,CCLL ,Confit,EFTs
  • 正則化:EWC,online-EWC,SI,LwF
  • ##重播:ER,DERPP

還有一些不屬於持續學習的基線,例如SGD 和SGD-LL。 SGD 學習每個任務時對整個網路進行微調;SGD-LL 是一個變體,它對所有任務都使用一個固定的 backbone 和一個可學習的共享層,其長度等於所有任務最大的種類數量。

實驗一:第一個任務的準確率

#為了評估所有方法在克服災難性遺忘的能力,研究者追蹤了學習新任務後每個任務的準確性。如果某個方法有災難性遺忘,那麼在學習新任務後,同一任務的準確率就會很快下降。一個好的持續學習演算法可以在學習新任務後保持原有的表現,這意味著舊任務應受到新任務的影響最小。下圖展示了本文方法從學完第 1 到第 53 個任務後第 1 個任務的準確率。整體而言,本文方法可以保持最高的準確率。更重要的是它很好地避免了災難性遺忘並保持和原始訓練方式得到的相同準確率無論持續學習多少個任務。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

第二個實驗:完成所有任務後的平均準確率學習#

下圖所有方法在學完全部任務後的平均準確率。平均準確率反映了持續學習方法的整體表現。由於每個任務的難易度不同,當增加一項新任務時,所有任務的平均精確度可能會上升或下降,這取決於增加的任務是簡單還是困難。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

首先,讓我們來分析一下參數與計算成本

對於持續學習,雖然獲得更高的平均準確率非常重要,但是一個好的演算法也希望可以最大限度地減少對額外網路參數的要求和計算成本。 "新增任務的額外參數" 表示與原始 backbone 參數量的百分比。本文以 SGD 的計算成本為單位,其他方法的計算成本則依 SGD 的成本進行歸一化處理。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

重寫內容:不同骨幹網路的影響分析

本文方法透過在相對多樣化的資料集上使用監督式學習或自監督學習的方法來訓練得到預訓練模型,從而作為與任務無關的不變參數。為了探討不同預訓練方法的影響,本文選擇了四種不同的、與任務無關的、使用不同資料集和任務訓練出來的預訓練模型。對於監督式學習,研究者使用了在 ImageNet-1k 和 Pascal-VOC 在影像分類上的預訓練模型;對於自監督學習,研究者使用了 DINO 和 SwAV 兩種不同方法得到的預訓練模型。下表展示了使用四種不同方法得到預訓練模型的平均準確率,可以看出來無論哪種方法最後的結果都很高(註:Pascal-VOC 是一個比較小的數據集,所以準確率相對低一點),並且對不同的預訓練backbone 具有穩健性。

優化學習效率:透過0.6%額外參數將舊模型遷移至新任務

#

以上是優化學習效率:透過0.6%額外參數將舊模型遷移至新任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!