前言
我將看過的增量學習論文建了一個github庫,方便各位閱讀地址
主要工作
提出一種無需examplar的增量模型——FearNet
motivation
對於人類大腦而言,近期記憶存儲在海馬複合體中,而長期記憶存儲在內側前額葉皮層,在睡眠階段,近期記憶會整合轉變爲長期記憶中,從海馬複合體中轉移至內測前額葉皮層。
受大腦記憶方式啓發,FearNet採用了一種雙記憶系統,利用PNN(概率神經網絡)存儲短期記憶,可理解爲存儲最近幾次增量學習的知識。利用AutoEncoder存儲長期記憶,可理解爲存儲前幾次增量學習的知識。在”睡眠階段“,PNN中存儲的知識會”轉移“至AutoEncoder中,PNN中存儲的所有類別信息被清空。
method
採用一個預訓練好的ResNet網絡作爲特徵提取器,將圖片映射爲Feature Embeded。這麼做其實有點打擦邊球了,增量應該連着特徵提取器一起增量纔對,不過本文工作的新意主要體現在舊知識的存儲上。
FearNet的結構如下:
mPFC network
AutoEncoder,用於存儲長期記憶,Encoder將feature embeded映射爲大小爲m的向量,接着接一個fc分類器,用於分類。Decoder將Encoder輸出的大小爲m的向量映射回feature embeded。Encoder用於分類,Decoder用於存儲記憶信息。Encoder與Decoder層數相同。
mPFC network訓練的loss如下:
爲標準的分類損失函數,例如交叉熵,定義如下:
爲Encoder的層數,爲第層隱藏層神經元的個數,爲Encoder第層第個神經元的輸出,同理,爲超參數,取值最大,深度越深,取值越小。
HC network
PNN,用於存儲短期記憶,PNN存儲有最近幾次增量學習訓練數據的feature embeded,其分類依據如下(其實PNN有點冷啓動算法的味道):
表示訓練數據的feature embeded,表示k類別第j個樣本的feature embeded。
BLA
由於HC network與mPFC network均具備分類的功能,假設目前有類,HC network可以預測到類,mPFC network可以預測0到類,兩個網絡預測的類別不重合,對於測試數據的feature embeded,由BLA決定採用哪個網絡的輸出作爲最終輸出。
BLA的輸出取值爲0~1之間,表明取mPFC作爲最終輸出的概率,設表示BLA的輸出,x表示測試圖片的feature embeded,預測公式如下:
Consolidation
該階段用於訓練mPFC網絡,分爲首次訓練與增量訓練,首次訓練,利用訓練數據訓練AutoEncoder,訓練完畢後,對每一個類別,利用訓練數據分別計算其Encoder輸出的均值與方差。
增量訓練,依據每個類別的均值與方差,從對應的混合高斯分佈採樣,將其輸入到decoder中得到與舊類別feature embeded類似的pseudo-examples,與HC中存儲的feature embeded構成訓練集微調mPFC網絡,訓練完畢後,利用訓練數據重新計算其混合高斯分佈的均值與方差。此時mPFC可以生成每個類別(包括HC中存儲的類別)的feature embeded,因此,清空HC network中的類別信息,相當於短期記憶轉換爲長期記憶。
Training/Recall
訓練階段只訓練BLA,mPFC network與HC network是固定的,從每個類別的混合高斯分佈中採樣,利用Decoder,將其轉變爲feature embeded,並標記爲1,將HC中的feature embeded標記爲0,訓練BLA,BLA的損失函數論文沒說,可以是交叉熵等分類損失函數,如下圖:
整體算法
每隔K個極端,進行一次Consolidation,即睡眠階段
實驗部分並沒有太有意思的地方,在此不做過多總結,有興趣可以瀏覽原文。