EWC:Elastic Weight Consolidation

LAAI
4 min readApr 25, 2020

Paper: “Overcoming catastrophic forgetting in neural networks”.

主題

這篇文章主要要解決的是Catastrophic Forgetting problem in Multi-tasking. 簡單來說,我們有任務1、任務2…任務n,依序學習任務1,2,…n,然而每次學習新的任務時,我們就會忘記舊的任務的能力,所以如果拿新的模型套用在舊的任務上,就會得到很差的效能.有一種解法是一次學習全部的任務,然而,這個方法的缺點是需要大量的儲存空間儲存訓練資料,並且大量的運算去最佳化我們的模型.於是這篇文章提出了EWC的這個方法去解決,讓你的模型可以依序學習,又同時不忘記或是破壞先前所學好的技能.

想法

我們知道一個模型內會有很多很多的參數(parameters),有些參數對於任務1很重要,有些則是對任務2比較重要,“重要”指的是影響其在任務中的效能(performance),因此簡單的想法是,在學習新的任務時,我們不要動那些對其他任務重要的參數們.舉個例子來說

任務A與任務B有不同的Loss Function,其最佳解並不一樣,然而如果兩個的Loss space長成向左邊這個樣子,我們希望在訓練任務B時,並不要影響到任務A的效能.因次我們不想要綠色的線,也不想要藍色的線,我們想要的是紅色的線.那該如何做到呢?

簡單來說,我們不想要動到那些重要的參數,因此,我們只要把這個想法放入Loss function即可,新參數不要離就參數太近,否則就會產生很大的Loss,但並不是全部的參數都不能動,所以前方我們多了一個 F_i,描述每一個paramter對於先前任務的重要性,如果F_i很小,代表沒那們重要,在訓練新任務時,我們可以更改它,即使更改的幅度很大,也不會造成太多loss.

效果

單看SGD的藍線,單純訓練task A,效能很好,一開始訓練task B,我們可以發現在task A的效能開始下降,再訓練task C,在taskA and taskB 效能再下降.可以發現到,依序訓練會導致catastrophic forgetting.反之,EWC的紅線就能一直保持高效能,即使開始訓練新的task,也不會更改太多原先的模型,所以先前的task效能可以保持住.

結論

此篇想法簡單易懂,然而如何在模型之間給予限制,使其不要影響到先前task的效能.方法還有

  • Take 2nd derivative of the loss function with respect to the parameter. If the value is large, then it might affect the loss heavily, assign a high importance to that parameter.
  • Continual Learning Through Synaptic Intelligence from Stanford.
  • Memory Aware Synapses: Learning what (not) to forget from iMEC and Facebook.

--

--