Parisi, G. I., Kemker, R., Part, J. L., Kanan, C., & Wermter, S. (2019). Continual lifelong learning with neural networks: A review. Neural Networks, 113, 54-71.
因為我們組之前關(guān)注的問題就是,在學(xué)習(xí)中新知識和舊知識產(chǎn)生沖突的時候,人的記憶系統(tǒng)是如何處理的。這個問題人工智能也是關(guān)心的,而且這個問題最近還很熱,我找到了19年的一篇綜述,這個研究主題叫做lifelong learning/continuous learning。
這個問題對AI的人來說主要是這樣的:神經(jīng)網(wǎng)絡(luò)的訓(xùn)練往往是一次性的(concurrent training),也就是說訓(xùn)練個幾天之后,測試它的性能,然后直接拿來使用。但是有很多場景(比如家用機器人),我們是希望神經(jīng)網(wǎng)絡(luò)具有人一樣,不斷學(xué)習(xí)的能力的。
為什么神經(jīng)網(wǎng)絡(luò)做不到不斷學(xué)習(xí)呢,最主要的一個bug就叫做catastrophic forgetting災(zāi)難性遺忘。就是在訓(xùn)練好task A的網(wǎng)絡(luò)上喂新的數(shù)據(jù)訓(xùn)練task B的話,task B學(xué)會了之后網(wǎng)絡(luò)上的權(quán)值變化很大,以至于破壞了taskA需要的映射關(guān)系,導(dǎo)致task A做不了了。
要改善這個問題,神經(jīng)科學(xué)家提出了一些人的記憶系統(tǒng)中可以借鑒的機制,計算機科學(xué)家也提出了一些改進的算法。這個綜述還是neural networks 這本雜志的熱門綜述,19年發(fā)的引用量就快200了。這些解決方案很有意思,相信大家看了這篇文章會有所啟發(fā)的。
問題背景
The Stability-Plasticity Dilemma
人類能夠很好地記憶不同的知識/能力,盡管不斷有外部的知識,信息進到大腦中,但是很多已經(jīng)鞏固了的知識人類是不會忘記的或者說很少有影響。這就依靠著大腦的穩(wěn)定-可變平衡的調(diào)整。 所以這在有關(guān)記憶的神經(jīng)科學(xué)研究中是非常重要的一個課題。人腦神經(jīng)突觸的可變性在不同的區(qū)域,不同的結(jié)構(gòu),不同的記憶階段,在人不同的成長階段呈現(xiàn)出不同的特征。
Hebbian Plasticity and Stability
Hebbian模型是最著名的用于解釋神經(jīng)突觸可變性的模型,他的核心觀點是,來自后突觸細(xì)胞的穩(wěn)定刺激能夠以一定比例強化前突觸細(xì)胞,Δw = x·y·η。因為本身存在不穩(wěn)定性,所以需要一定的補償方法來穩(wěn)定強化學(xué)習(xí)過程。同時,可變性自我平衡的實現(xiàn)需要一個來自觀察的調(diào)和反饋,因此,方程可以被改寫為Δw = m·x·y·η。同時也有非常多的模型能夠解釋神經(jīng)網(wǎng)絡(luò)的自我組織過程
The Complementary Learning Systems
人腦需要特定的方法來記憶儲存長時記憶和短時記憶,人腦的不同區(qū)域會有出不同的短時記憶效果,比如海馬體。海馬體能夠承擔(dān)短時記憶的任務(wù),它能以更快的速度以及更小的損耗進行學(xué)習(xí)。同時,研究者對不同成長階段的人的海馬體的發(fā)育、結(jié)構(gòu)模式有著不同的看法。
Learning without Forgetting
同時也有一些區(qū)域負(fù)責(zé)長時記憶,比如PFC,PFC能夠儲存長時記憶。同時也有研究發(fā)現(xiàn)特定場景能夠讓人們失憶。比如在嬰兒的學(xué)習(xí)中加入干擾能夠影響嬰兒的記憶效果。同樣將3-8歲的兒童脫離母語環(huán)境并且放到不同的語言環(huán)境中,這會影響他們關(guān)于母語的記憶。所以如果要進行長時記憶我們就應(yīng)該想辦法保護這些記憶。
目前的算法
正則化的方法
這個方法的本質(zhì)就是,神經(jīng)網(wǎng)絡(luò)中的參數(shù)有那么多,當(dāng)我學(xué)習(xí)task B的時候,并不需要徹底地改變整個網(wǎng)絡(luò)我才能學(xué),可以保留一些原網(wǎng)絡(luò)的參數(shù),使得taskA的績效不要下降得太多。但是可以想象,這樣做的結(jié)果必然讓A和B的訓(xùn)練效果都有損失,而不同的算法就在探索如何讓這種損失減小。對于人來說,這個就是在學(xué)習(xí)新任務(wù)的時候,老任務(wù)的記憶會干擾新任務(wù)的學(xué)習(xí),新任務(wù)也會一定程度地修改老任務(wù)的記憶,彼此之間是一個抗衡的過程,也就是之前說到的stability-plasticity dilemma。
動態(tài)改變網(wǎng)絡(luò)結(jié)構(gòu)
在人的學(xué)習(xí)中發(fā)現(xiàn),新記憶的產(chǎn)生也會帶來神經(jīng)元的結(jié)構(gòu)變化(例如突觸的增加),產(chǎn)生新的記憶載體有可能是一種可行的方式,來減少和老記憶的沖突。所以第二類方法呢,就是在學(xué)習(xí)taskB的時候,改變網(wǎng)絡(luò)的結(jié)構(gòu)(比如增加神經(jīng)元、構(gòu)建新的層),盡可能多的只改變新結(jié)構(gòu)中的參數(shù),而更多地可以保護taskA訓(xùn)練得到的老參數(shù)。這個的問題就在于,對于每一個新任務(wù)我都要增加結(jié)構(gòu),那當(dāng)任務(wù)大量擴增的時候,我的網(wǎng)絡(luò)也會變得特別復(fù)雜,帶來計算量的急劇增加,效率降低。
構(gòu)建兩個分離的系統(tǒng)
大家在導(dǎo)言里看了CLS,主要是說人的記憶系統(tǒng)分為一個長時一個短時,也就是說,并不是所有的新數(shù)據(jù)過來(短時記憶),我都無差異地整合到我的網(wǎng)絡(luò)(長時記憶)中去,而是需要一些條件(例如數(shù)據(jù)出現(xiàn)的頻率,和之前數(shù)據(jù)的相似度)。這類算法是受這個系統(tǒng)啟發(fā),把新的數(shù)據(jù)暫時以case的形式存儲起來,然后在達到必要條件的時候整合到網(wǎng)絡(luò)中去。帶來的問題各種各樣,例如臨時的存儲容量很小,如果都不符合整合得條件,就會都丟失。
更復(fù)雜的生態(tài)設(shè)計
這個主要是針對多任務(wù)的機器人的,這些算法是從人類發(fā)展受到啟發(fā),認(rèn)為網(wǎng)絡(luò)結(jié)構(gòu)也是隨著學(xué)習(xí)不斷進化和拓展的。另外,人類學(xué)習(xí)的注意、動機因素也被考慮進來,這樣對于樣本數(shù)據(jù)就可以差異化得加工。但是這類算法顯然對人類的模擬還太粗糙了,對于結(jié)構(gòu)的定義也很暴力,達到的效果并不理想。
詳細(xì)算法
抽了一些感興趣的分給大家做精讀,筆記整理如下
Li, M., Zhang, T., Chen, Y., & Smola, A. J. (2014, August). Efficient mini-batch training for stochastic optimization. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 661-670).
Mini-batch stochastic learning是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的一種方法優(yōu)化,也就是現(xiàn)在主流的方法,即每一次訓(xùn)練在訓(xùn)練集里隨機抽取一些數(shù)據(jù)來訓(xùn)練,就是和大家之前看的interleave是對應(yīng)的。這是提出這個方法的文章(大佬+巨佬的文章),重點看作者認(rèn)為這個方法為什么有用??赡苄枰匆恍?shù)學(xué)的東西,筆記盡可能突出核心思想,可以借助其他網(wǎng)絡(luò)資料。
閱讀筆記-Zhu Bihan
Zhou, G., Sohn, K., & Lee, H. (2012, March). Online incremental feature learning with denoising autoencoders. In Artificial intelligence and statistics (pp. 1453-1461).
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。整合多余的特征。Adds neurons for samples with high loss and subsequently merges these neurons with existing ones to prevent redundancy。9p
Xiao, T., Zhang, J., Yang, K., Peng, Y., & Zhang, Z. (2014, November). Error-driven incremental learning in deep convolutional neural network for large-scale image classification. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 177-186).
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。動態(tài)形成層級結(jié)構(gòu)。Classes are grouped according to their similarity and self-organized into multiple levels, with models inheriting features from existing ones to speed up the learning。
閱讀筆記-Tang Wenwen
Yoon, J., Yang, E., Lee, J., & Hwang, S. J. (2017). Lifelong learning with dynamically expandable networks. arXiv preprint arXiv:1708.01547.
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。添加了隨機記憶replay的方法來減少遺忘,監(jiān)督學(xué)習(xí)。selective retraining which expands the network capacity using group sparse regularization to decide how many neurons to add at each layer。https://zhuanlan.zhihu.com/p/87775025 有個知乎的閱讀筆記可以參考。10p
閱讀筆記-Wang Haimin
Draelos, T. J., Miner, N. E., Lamb, C. C., Cox, J. A., Vineyard, C. M., Carlson, K. D., ... & Aimone, J. B. (2017, May). Neurogenesis deep learning: Extending deep networks to accommodate new classes. In 2017 International Joint Conference on Neural Networks (IJCNN) (pp. 526-533). IEEE.
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。添加了隨機記憶replay的方法來減少遺忘。it uses intrinsic replay (a generative model used for pseudo-rehearsal) to preserve the weights required to retain older information。8p.
Rebuffi, S. A., Kolesnikov, A., Sperl, G., & Lampert, C. H. (2017). icarl: Incremental classifier and representation learning. In Proceedings of the IEEE conference on Computer Vision and Pattern Recognition (pp. 2001-2010).
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。用rehearsal的方法來動態(tài)調(diào)整卷積層的特征提取器,以免受到固定數(shù)據(jù)集的bias影響。storing example data points that are used along with new data to dynamically adapt the weights of the feature extractor。
閱讀筆記-Zhu Bihan
Parisi, G. I., Tani, J., Weber, C., & Wermter, S. (2017). Lifelong learning of human actions with deep neural network self-organization. Neural Networks, 96, 137-149.
動態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的方法。這篇借鑒人的記憶系統(tǒng)比較多,甚至模擬了神經(jīng)元的衰退,但是數(shù)學(xué)公式多一些。lifelong learning of human action sequences can be achieved in terms of prediction-driven neural dynamics with internal representations emerging in a hierarchy of recurrent self-organizing networks。12p
Shin, H., Lee, J. K., Kim, J., & Kim, J. (2017). Continual learning with deep generative replay. In Advances in Neural Information Processing Systems (pp. 2990-2999).
CLS長短時記憶系統(tǒng)的方法。隨機記憶(偽)重放的方法,不是存example而且生成記憶重放,可以看看是怎么模仿人的重放系統(tǒng)的。training data from previously learned tasks can be sampled in terms of generated pseudo-data and interleaved with information from the new tasks。10p
閱讀筆記-Lin Beibei
Lopez-Paz, D., & Ranzato, M. A. (2017). Gradient episodic memory for continual learning. In Advances in Neural Information Processing Systems (pp. 6467-6476).
CLS長短時記憶系統(tǒng)的方法。存儲的是學(xué)習(xí)樣本中的一部分,可以看看根據(jù)什么標(biāo)準(zhǔn)來選取哪些樣本被存下來。存在哪些問題?episodic memory used to store a subset of the observed examples from a given task。7p
閱讀筆記-Ye Yizhou
Vinyals, O., Blundell, C., Lillicrap, T., & Wierstra, D. (2016). Matching networks for one shot learning. In Advances in neural information processing systems (pp. 3630-3638).
遷移學(xué)習(xí)。One-shot learning,就是在原來的數(shù)據(jù)集上訓(xùn)練的網(wǎng)絡(luò),經(jīng)過一次訓(xùn)練(一個配對數(shù)據(jù))就可以遷移到新數(shù)據(jù)集上。最新的爆款算法。雖然這個沒有防止之前的記憶被遺忘的功能,但是可以看做是動態(tài)結(jié)構(gòu)的一種拓展。performing well on novel tasks but do not prevent catastrophic forgetting on previously learned tasks. 9p
Pathak, D., Agrawal, P., Efros, A. A., & Darrell, T. (2017). Curiosity-driven exploration by self-supervised prediction. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops (pp. 16-17).
內(nèi)部激勵的探索學(xué)習(xí)。這篇很短,需要自己再找一篇后續(xù),關(guān)注一下后面對這個算法的改進,尤其是當(dāng)沒有interaction存在的時候。using the knowledge acquired from previous experiences for the faster exploration of unseen scenarios。2p