深度學習論文筆記(增量學習)——fearnet: brain-inspired model for incremental learning

前言

我將看過的增量學習論文建了一個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如下:
在這裏插入圖片描述
LclassL_{class}爲標準的分類損失函數,例如交叉熵,LreconL_{recon}定義如下:
Lrecon=j=0Mi=0Hj1λjhencoder,(i,j)hdecoder,(i,j)2L_{recon}=\sum_{j=0}^M\sum_{i=0}^{H_j-1}\lambda_j||h_{encoder,(i,j)}-h_{decoder,(i,j)}||^2
MM爲Encoder的層數,HjH_j爲第jj層隱藏層神經元的個數,hencoder,(i,j)h_{encoder,(i,j)}爲Encoder第jj層第ii個神經元的輸出,hdecoder,(i,j)h_{decoder,(i,j)}同理,λj\lambda_j爲超參數,λ0\lambda_0取值最大,深度越深,λj\lambda_j取值越小。


HC network

PNN,用於存儲短期記憶,PNN存儲有最近幾次增量學習訓練數據的feature embeded,其分類依據如下(其實PNN有點冷啓動算法的味道):
在這裏插入圖片描述
xx表示訓練數據的feature embeded,uk,ju_{k,j}表示k類別第j個樣本的feature embeded。


BLA

由於HC network與mPFC network均具備分類的功能,假設目前有MM類,HC network可以預測mmMM類,mPFC network可以預測0到m1m-1類,兩個網絡預測的類別不重合,對於測試數據的feature embeded,由BLA決定採用哪個網絡的輸出作爲最終輸出。

BLA的輸出取值爲0~1之間,表明取mPFC作爲最終輸出的概率,設A(x)A(x)表示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,即睡眠階段

實驗部分並沒有太有意思的地方,在此不做過多總結,有興趣可以瀏覽原文。

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