<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Lifelong Learning 終生學(xué)習(xí),漲知識了!

          共 2567字,需瀏覽 6分鐘

           ·

          2020-12-12 00:05

          AI編輯:我是小將

          本文作者:謝楊易

          https://zhuanlan.zhihu.com/p/262005857

          本文已由原作者授權(quán)


          1 什么是lifelong learning

          Lifelong learning終生學(xué)習(xí),又名continuous learning,increment learning,never ending learning。通常機器學(xué)習(xí)中,單個模型只解決單個或少數(shù)幾個任務(wù)。對于新的任務(wù),我們一般重新訓(xùn)練新的模型。而LifeLong learning,則先在task1上使用一個模型,然后在task2上仍然使用這個模型,一直到task n。Lifelong learning探討的問題是,一個模型能否在很多個task上表現(xiàn)都很好。如此下去,模型能力就會越來越強。這和人類不停學(xué)習(xí)新的知識,從而掌握很多不同知識,是異曲同工的。



          LifeLong learning需要解決三個問題

          • Knowledge Retention 知識記憶。我們不希望學(xué)完task1的模型,在學(xué)習(xí)task2后,在task1上表現(xiàn)糟糕。也就是希望模型有一定的記憶能力,能夠在學(xué)習(xí)新知識時,不要忘記老知識。但同時模型不能因為記憶老知識,而拒絕學(xué)習(xí)新知識。總之在新老task上都要表現(xiàn)比較好。

          • Knowledge Transfer 知識遷移。我們希望學(xué)完task1的模型,能夠觸類旁通,即使不學(xué)習(xí)task2的情況下,也能夠在task2上表現(xiàn)不錯。也就是模型要有一定的遷移能力。這個和transfer learning有些類似。

          • Model Expansion 模型擴張。一般來說,由于需要學(xué)習(xí)越來越多的任務(wù),模型參數(shù)需要一定的擴張。但我們希望模型參數(shù)擴張是有效率的,而不是來一個任務(wù)就擴張很多參數(shù)。這會導(dǎo)致計算和存儲問題。

          2 Knowledge Retention 知識記憶

          出現(xiàn)知識遺忘其實很容易理解。試想一下,訓(xùn)練完task1后,我們得到了一個模型。再利用這個模型在task2上進行訓(xùn)練時,會對模型參數(shù)進行一定調(diào)整。如果參數(shù)調(diào)整方向和task1的gradient方向相反,則會導(dǎo)致模型在task1上表現(xiàn)變差。那怎么讓task1的知識能夠得到保留呢?顯然我們需要對模型參數(shù)更新做一些限制,讓它不要偏離task1太遠。

          2.1 EWC

          EWC(Elastic Weight Consolidation)就是用來解決這個問題的。它在Loss函數(shù)上加入了一個正則,使得模型參數(shù)更新必須滿足一定條件,如下



          • L(θ)為原始的loss function,后面一項為正則項。

          • bi為參數(shù)更新權(quán)重,表示參數(shù)θi有多重要,能不能變化太多

          • θi為需要更新的參數(shù),θib為該參數(shù)在之前任務(wù)上學(xué)到的數(shù)值。

          bi為參數(shù)更新權(quán)重,表示參數(shù)θi能不能變化太多,試想一下

          • 如果bi很大,則表明θi不能和θib差距過大,也就是盡量不要動θi

          • 如果bi很小,則表明θi的變化,不會對最終loss帶來很大的影響。

          有了正則項和bi后,我們就能指導(dǎo)模型合理的更新參數(shù),從而避免忘記之前的task。那問題來了,bi怎么得到呢?EWC給出了它的解決方案。它利用二階導(dǎo)數(shù)來確定bi。如果二階導(dǎo)數(shù)比較小,位于一個平坦的盆地中,則表明參數(shù)變化對task影響小,此時bi小。如果二階導(dǎo)數(shù)比較大,位于一個狹小的山谷中,則表明參數(shù)變化對task影響大,此時bi大。


          利用EWC后的效果如下圖所示。藍色越深代表模型效果越好。假如模型有兩個參數(shù)θ1和θ2,在task1上訓(xùn)練后,參數(shù)更新為θb。在task2上更新參數(shù)時,有很多個不同的參數(shù)組合,都可以在task2上表現(xiàn)很好(藍色區(qū)域)。如果我們沿斜上方更新參數(shù),雖然task2效果好,但在task1上效果卻很差,也就是出現(xiàn)了遺忘問題。如果我們沿水平方向更新參數(shù),也就是θ1的方向,則task1上模型效果依然OK。這表明,通過EWC是可以做到讓模型記住以前學(xué)到的知識的。



          2.2 生成樣本

          還有一種思路,在學(xué)習(xí)task2時,我們可以利用生成模型,生成task1的樣本。然后利用task1和task2的樣本,進行多任務(wù)學(xué)習(xí),使得模型在兩個task上均表現(xiàn)很好。這里的難點在于,生成樣本,特別是復(fù)雜的樣本,目前難度是很大的。可以作為一個idea參考,但個人認為可行性不高。



          3 Knowledge Transfer 知識遷移

          終生學(xué)習(xí)也對模型提出了另一個要求,那就是遷移能力。通過學(xué)習(xí)task1、task2等多個task,在不學(xué)習(xí)task n的情況下,模型是否能舉一反三,表現(xiàn)仍然不錯呢。




          終生學(xué)習(xí)和遷移學(xué)習(xí)有一些類似的地方。區(qū)別在于遷移學(xué)習(xí)只關(guān)注遷移后模型在target task上要表現(xiàn)好,至于source task則不關(guān)心。而終生學(xué)習(xí)則需要模型在兩個task上都表現(xiàn)好,不能出現(xiàn)遺忘。可以將終生學(xué)習(xí)理解為更嚴(yán)格的遷移學(xué)習(xí)。

          4 Model Expansion 模型擴張

          一般來說,由于需要學(xué)習(xí)越來越多的任務(wù),模型參數(shù)需要一定的擴張。但我們希望模型參數(shù)擴張是有效率的,而不是來一個任務(wù)就擴張很多參數(shù)。這會導(dǎo)致計算和存儲問題。所以怎么對模型參數(shù)進行有效率的擴張,就顯得十分關(guān)鍵了。

          一種方法是progressive neural network。它將task1每層輸出的feature,作為task2對應(yīng)層的輸入,從而讓模型在學(xué)習(xí)后面task的時候,能夠記住之前task的一些信息。如下圖



          另一種方法是Net2Net。它對網(wǎng)絡(luò)進行加寬。如下圖所示,由神經(jīng)元h2分裂得到一個神經(jīng)元h3。初始時和h2一樣,h2和h3權(quán)重均為之前h2權(quán)重的一半。為了防止h2和h3訓(xùn)練過程中始終保持一致,故在h3上添加一些小噪聲,使二者能夠獨立更新。



          5 評價方法

          終生學(xué)習(xí)模型的評價,也很重要。如下圖我們構(gòu)建一個table。橫軸表示學(xué)習(xí)完某個task后,在其他task上的表現(xiàn)。縱軸表示某個task,在其他task學(xué)習(xí)完后的表現(xiàn)。綜合下來

          • 當(dāng)i>j時,表示學(xué)習(xí)完task i后,task j有沒有被忘記。代表模型記憶能力

          • 當(dāng)i


          評估主要包括三個指標(biāo)

          • ACC

          • 記憶能力

          • 遷移能力

          5.1 ACC

          模型準(zhǔn)確率ACC為,學(xué)習(xí)完最后一個任務(wù)task T后,模型在task1、task2、task T-1上的平均準(zhǔn)確率。



          5.2 記憶能力

          記憶能力衡量了模型學(xué)習(xí)完最后一個任務(wù)task T后,在之前task上的表現(xiàn)。一般來說,模型會忘記之前task,所以這個指標(biāo)一般為負數(shù)






          5.3 遷移能力

          遷移能力衡量了模型在學(xué)習(xí)完一個任務(wù)后,在未學(xué)習(xí)的task上的表現(xiàn)。一般和隨機初始化的模型進行對比。






          推薦閱讀

          無需tricks,知識蒸餾提升ResNet50在ImageNet上準(zhǔn)確度至80%+

          不妨試試MoCo,來替換ImageNet上pretrain模型!

          重磅!一文深入深度學(xué)習(xí)模型壓縮和加速

          從源碼學(xué)習(xí)Transformer!


          機器學(xué)習(xí)算法工程師


          ? ??? ? ? ? ? ? ? ? ? ? ? ??????? ??一個用心的公眾號


          ?

          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码中文字幕第一页 | 国产激情内射 | 亚洲欧美色图 | 久久久久国产一区二区三区四区 | 亚洲va欧美va国产va精品 |