機器學習筆記17(Lifelong Learning)


Lifelong Learning 終身學習

1、什么是Lifelong Learning

2、怎么做Lifelong Learning 

      (Elastic Weight Consolidation )EWC

      其他方法

3、怎么評估Lifelong Learning

4、Model Expansion

5、Curriculum Learning 課程學習(任務排序, 如何排序?)

 

1、什么是Lifelong Learning

      在我們前面的任務中,每個任務都需要有不同的的神經網絡,只能解決某一個問題。但是我們想要用一個方案解決所有的問題。像這樣,學習完第一個任務之后,再學習第二個任務,就可以同時解決兩個問題了。以此類推就可以解決好多問題。也就是說在學習后面的內容的時候,也要保證前面學習過的東西不能忘掉。

     

     但事實上,現在並不能做到這樣。如下分別訓練一個NN,來進行數字識別,兩個可以得到很高的正確率;但是如果首先用一個NN來訓練task1,完成之后再用這個NN的參數作為初始參數來訓練task2,雖然對於task2能得到不錯的正確率,但是再去判別task1就會變差。也就是忘掉了前面學過的內容。

     但是如果直接用兩個任務的data去訓練一個NN,則會得到不錯的結果,也就是說機器是有能力學習到這么多的東西的。並不是能力限制,比如數據量太多等。

      

      同樣的,對於其他方面也是一樣的結果,在學習完后面的內容之后,就會忘記前面所學過的內容。

      但是我們不能采用前面說的把所有的資料都放在一起學習的方法,比如已經學習了999組data的NN,如果又需要學習第1000種東西,則又重新需要將所有的data放在一起重新訓練,這是個很耗時費力地過程。機器終將背負他的一生。

          

 

 

 2、怎么做Lifelong Learning

    一、(Elastic Weight Consolidation )EWC

     NN中的一些參數,對於對於前面已經學過的任務而言這些參數很重要,但是也有些參數對於前面的內容並不太重要;在學習后面的任務時,我們只改變這些不重要的參數就可以了。

     L為前面已經學過的任務的 loss  function,L` 如下圖所示,𝜃𝑏  是NN中前面已經確定的參數,𝜃i 為同個位置后面需要的參數,在前面加上bi 之后,bi表示 𝜃 這個參數有多重要;舉例說明,如果 bi = 0,那說明 不管 𝜃i 為多少,都對前面的任務沒什么影響,對於這個參數而言,新的 L 和原來的 L一樣, loss function並沒有發生改變,但是如果 bi 很大,則略有改動  𝜃i 就會使得NN對於前面的任務改變很大。

       

 

         

     圖形理解:

       假設一個NN有兩個參數,在train task1的 時候,藍色部分說明 loss function 小,白色的部分說明,loss function 比較大;在我們對task1訓練的時候,隨機選取一個點𝜃0,train完之后,達到了新的點𝜃b,然后繼續用這個參數作為初始參數來train task2,兩個參數到達了新的位置𝜃* ,這個時候我們發現這個NN在task1 上的表現會變差。

       因此我們求取關於兩個參數的二次微分,發現對於參數𝜃1而言,改變並不會對 L 有較大影響,因此這個b1就可以選的比較小,而對於參數𝜃2,改變會對 L 有較大影響,因此這個b2就要選的比較大,在訓練時也就不能輕易改變𝜃2的值。

      

        二、 其他方法

          1)生成數據     

        使用一個生成器 來替代存儲大量的數據集。 需要數據集來訓練任務時,直接使用生成器來生成數據即可。先讓機器學task1,然后學task2,同時要訓練generator,學會生成task1的數據,此時就可以把task1的data丟掉,用生成的數據和task2的放在一起訓練。

        PS: 目前靠機器生成復雜數據,能不能做的起來尚待研究

        2017 Continual Learning with Deep Generative Replay https://arxiv.org/abs/1705.08690

        2017 FearNet: Brain-Inspired Model for Incremental Learning https://arxiv.org/abs/1711.10563

            

     2)

      當不同的任務需要使用不同的網絡結構時,該如何更改網絡結構呢?

      Learning without Forgetting https://arxiv.org/abs/1606.09282
      iCaRL: Incremental Classifier and Representation Learning https://arxiv.org/pdf/1611.07725.pdf
              

   Knowledge transfer

      不使用不同的model 來訓練不同的任務的原因:

      1. 一個模型學習一個任務。會出現不同的任務之間是相互獨立的,我們希望 模型/任務之間是有關聯的,知識的學習應該是存在遞進關系的,不同任務之間的學習應該能互相促進。
      2. 存儲空間與任務數量是線性的,我們希望更小的模型學習更多的東西。

            

       但同時,LLL不同於Transfer Learning (前一節),遷移學習只關注當前的任務,LLL要求不能忘記之前的任務。

           

 

  3、怎么評估Lifelong Learning

     如下表所示,橫着表示model在每個task上的表現如何,數着表示在學完新的task之后,在每個task上表現如何;比如,R0,1 R0,2,.....,R0,T,表示還沒學習時,model在每個task上的正確率。R1,1 R1,2,.....,R1,T,表示在學習完task1之后,在各個task上的表現如何。

    評估的方法有三種:

       1、Accurary (紅色方框)

       2、Backward Transfer (藍色方框)(BWT)

         

       3、Forward Transfer (綠色的方框)(FWT)

       

   Gradient Episodic Memory (GEM) 

            Gradient Episodic Memory for Continual Learning https://arxiv.org/abs/1706.08840
            Efficient Lifelong Learning with A-GEM https://arxiv.org/abs/1812.00420

       在當前任務上進行的每一次權重修改,都需要計算當前權重對先前任務的梯度方向,保證最終的權重修改方向與先前任務(即先前任務數據集,所以需要利用之前的數據集)在此時的權重修改方向的內積為正。目的是為了保證不對之前的任務產生負影響,甚至產生好的影響。
           

        GEM的BWT是正的,說明學習新的任務提升了舊任務的表現。

        

 

 4、Model Expansion

        

     當我們的model完不成我們需要的任務時,我們希望我們的model會進行擴張,比如多生成幾個神經元,同時也我們希望模型的增長速度是低於任務的增長速度。

  1)Progressive Neural Networks 

      訓練新任務時,利用之前的模型參數。多一個任務,多一個模型。

       2016 Progressive Neural Networks https://arxiv.org/abs/1606.04671

            

   2)多一個任務多一個模型;利用之前的模型來建立新的模型。

         Expert Gate: Lifelong Learning with a Network of Experts https://arxiv.org/abs/1611.06194

               

  3)將原來的節點一分為二,之后加 noise 保證兩個節點有點卻別,能學習心得任務,但不忘記舊的任務。

         2016 Net2Net: Accelerating Learning via Knowledge Transfer https://arxiv.org/abs/1511.05641
         2019 Towards Training Recurrent Neural Networks for Lifelong Learning https://arxiv.org/pdf/1811.07017.pdf
       

 

5、Curriculum Learning 課程學習(任務排序, 如何排序?)
       如果LLL完全實現了,那如何排出一個最有效的學習順序呢?Curriculum Learning

       2018 Disentangling Task Transfer Learning CVPR18 beat paper : http://taskonomy.stanford.edu/#abstract

   下圖是說明,順序不同,訓練的結果不同。

          

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM