深度學習論文筆記(增量學習)——Large Scale Incremental Learning

前言

我將看過的增量學習論文建了一個github庫,方便各位閱讀,地址

主要工作

在大型數據集上,現有的增量學習方法的準確率都不高,歸結於兩個原因

  1. 在大型數據集上利用examplarexamplar進行增量學習,類別不平衡的問題會隨着增量學習次數的增加而變得愈加嚴重。
  2. 大型數據集上存在許多相似的類別,類別不平衡下很難區分相似類別。

論文發現類別不平衡會導致全連接層分類器出現分類偏好,由此在全連接層後引入一個偏置糾正層,來儘可能抵消偏好現象,該方法稱爲BiC算法,在ImageNet100與ImageNet1000上的表現驚人。


算法介紹

總體流程

在這裏插入圖片描述
數據分爲舊類別數據與新類別數據,舊類別數據遠少於新類別數據,舊類別數據分爲兩部分trainoldvaloldtrain_{old}、val_{old},新類別數據也分爲兩部分trainnewvalnewtrain_{new}、val_{new}

總體分爲兩個階段
階段一:使用trainoldtrainnewtrain_{old}、train_{new}訓練CNN模型
階段二:使用valoldvalnewval_{old}、val_{new}訓練偏置糾正層


步驟一:訓練CNN模型

按國際慣例,這部分會介紹訓練CNN模型的loss函數,還是一如既往的知識蒸餾loss,配方沒變

首先是訓練數據的整合,用Xn^\hat{X^n}表示examplarexamplar中的nn類舊類別數據集合,XmX^m表示mm類新類別的數據集合


loss函數介紹

在這裏插入圖片描述
on+m(x)o^{n+m}(x)o^n(x)\hat o^{n}(x)函數表示新舊模型的輸出,按國際慣例,classification loss採用交叉熵,如下:
在這裏插入圖片描述

distillation loss的定義如下:
在這裏插入圖片描述

都是按照國際慣例使用的loss函數,在此不多做介紹,需注意,新類別數據的舊類別輸出也會用於distillation loss的計算

最終的loss函數如下:
在這裏插入圖片描述
λ=nn+m=11+mn\lambda=\frac{n}{n+m}=\frac{1}{1+\frac{m}{n}},n表示舊類別數目,m表示新類別數目,隨着增量學習步驟的增加(m固定,n增加),λ\lambda的值逐漸變大,模型越來越傾向於保留已有知識



階段二:訓練偏置糾正層

實驗:分類器是否出現分類偏好

猜測

增量學習中,類別不平衡問題明顯,會使分類器偏向於數據多的類別

實驗

數據集:CIFAR-100
模型:使用上述loss訓練的CNN模型
訓練方式:利用examplar+20類新類別數據構成訓練數據,實現增量學習

實驗一
訓練的模型準確率下降趨勢明顯,並且在最後一次增量學習後,從模型的混淆矩陣可以看出模型偏向於預測最後一次學習的20類,如下:
在這裏插入圖片描述

實驗二
在實驗一的基礎上,凍結特徵提取器,用舊類別(不是examplar)與新類別的所有數據訓練模型,即對全連接層分類器進行訓練,與實驗一相比,準確率得到提升。

結論
本節實驗的準確率結果如下圖:
在這裏插入圖片描述
實驗一的分類器使用類別不平衡的數據訓練,實驗二的分類器使用類別平衡的數據進行訓練,實驗一二模型的不同之處在於分類器。

實驗一的模型出現分類偏好,實驗二的模型準確率大幅提升,加之實驗一的混淆矩陣,足以說明使用distillation loss訓練的模型仍然會出現分類偏好,出現分類偏好的原因在於分類器

比較有趣的是,爲什麼實驗二的模型準確率比不上“Train all layers using all data”的模型?也許是特徵提取器的差異,即使用全部數據訓練的特徵提取器能提取更具有分類意義的特徵


引入Bias Correction Layer

基於上述分析,爲了矯正全連接層分類器的分類偏好,論文引入了偏置糾正層,其實就是一個線性迴歸層,該層的輸出如下:
在這裏插入圖片描述
由於分類器偏向於新類別,即新類別的輸出普遍比舊類別要大,因此,偏置糾正層主要對新類別分支輸出進行矯正,所以對新類別分支引入了αβ\alpha、\beta兩個可學習參數。

由於線性迴歸只有兩個參數,訓練速度快,並且最終效果不錯,因此論文選用線性迴歸作爲偏置矯正層

在階段二,全連接層分類器以及特徵提取器的參數被凍結,用valoldvalnewval_{old}、val_{new}訓練上述線性迴歸模型,按國際慣例,採用的loss函數爲極大似然估計推出的交叉熵:
在這裏插入圖片描述

實驗

數據集:CIFAR-100、ImageNet-1000、Celeb-10000
baselineEEILiCaRL、LwF
其他:運用了數據增強


在大型數據集上的實驗
論文題目是Large Scale,因此論文主要關注BiC在大型數據集上的表現,在ImageNet-1000與Celeb-10000上的表現如下:
在這裏插入圖片描述
表現非常的亮眼,比baseline多出十多個百分點


不同規模數據集下的比較
在這裏插入圖片描述
可看出BiC更適合大規模數據集下的增量學習(點題)


在小規模數據集CIFAR100上的比較
在這裏插入圖片描述
在小規模數據集上的表現不盡人意,提升並不明顯,但是仍然具有一定的競爭力,這也說明BiC更適合大規模數據集下的增量學習(點題)


Ablation Study

論文首先比對了BiC各部分對於準確率提升的作用,在CIFAR100上的結果如下:
在這裏插入圖片描述

在這裏插入圖片描述


階段一與階段二的訓練數據比爲多少合適呢?結果如下:
在這裏插入圖片描述


論文還比對了構建examplar的樣本選擇算法,結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章