天天看點

帶你讀《終身機器學習(原書第2版)》之一:引言第1章 引  言

智能科學與技術叢書 點選檢視第二章 點選檢視第三章

終身機器學習(原書第2版)

Lifelong Machine Learning,Second Edition

帶你讀《終身機器學習(原書第2版)》之一:引言第1章 引  言

[美] 陳志源(Zhiyuan Chen)

劉 兵(Bing Liu) 著

陳 健 譯

第1章 引  言

機器學習(ML)已經成為促進資料分析和人工智能(AI)發展的重要工具。最近深度學習取得的成功促使機器學習上升到了一個新的高度。機器學習算法已經應用于計算機科學、自然科學、工程學、社會科學以及其他學科的幾乎所有領域,實際應用甚至更為廣泛。如果沒有有效的機器學習算法,許多行業不會存在,也不會得到快速發展,例如,電子商務和Web搜尋。然而,目前的深度學習範式還存在缺陷。在這一章中,我們首先讨論傳統的機器學習範式及其缺點,然後介紹終身機器學習(Lifelong Machine Learning,或簡稱終身學習(LL)),這是一個以建立像人類一樣學習的機器為最終目标,能夠克服目前機器學習缺點的新興和極有潛力的方向。

1.1 傳統機器學習範式

目前主流的機器學習範式是在一組給定的資料集上運作機器學習算法以生成一個模型,然後将這個模型應用到真實環境的任務中,監督學習和無監督學習都是如此。我們稱這種學習範式為孤立學習(isolated learning),因為這種範式不考慮其他相關的資訊和以前學過的知識。這種孤立學習的主要問題在于,它不保留和積累以前學習的知識,無法在未來的學習中使用這些知識,這與人類的學習過程存在鮮明的對比。人類從來都不會孤立地或者從零開始學習,我們始終保留過去已經學到的知識,并将其用于幫助未來的學習和解決問題。如果不能積累和使用已學的知識,機器學習算法往往需要大量的訓練樣本才能進行有效的學習。這個學習環境通常是靜态的和封閉的。對于監督學習而言,訓練資料的标簽通常需要手工完成,這是一項非常消耗精力和時間的工作。由于這個世界存在許許多多可能的任務,非常複雜,是以,為了讓一個機器學習算法進行學習而為每一個可能的任務或應用标記大量的樣本幾乎是不太可能的事情。更為糟糕的是,我們身邊的事物總是在不斷變化,是以,标記工作也需要持續進行,這對我們來說是一項艱巨的任務。即使是無監督學習,在很多情況下收集大量的資料也是比較困難的事情。

相比而言,人類的學習方式完全不同。我們從過去的任務中積累并保留知識,并無縫地使用這些知識來學習新的任務和解決新的問題。這就是為什麼每當遇到新的情況或問題時,我們可能發現它的很多方面都不是第一次出現,而是在過去的一些場合就已經碰到過。當面對一個新的問題或一個新的環境時,我們能夠運用先前所學的知識來處理新的情況,并且從中總結經驗和吸取教訓。久而久之,我們學到的東西越來越多,變得越來越有知識,學習效率越來越高。終身機器學習的目标就是模拟人類學習過程和學習能力,這種類型的學習方式是相當自然的,因為我們周邊的事物都是密切相關且互相連通的。了解某些學科的知識有助于我們了解和學習其他學科。例如,對于一部電影,我們不需要像機器學習算法一樣在網上抓取1000條正面評論和1000條負面評論作為訓練資料,才能建立一個準确的分類器來對這部電影的正面評論和負面評論進行分類。事實上,對于這項任務,我們甚至不需要一個單獨的訓練樣本就可以完成分類。我們是怎麼做到的呢?原因很簡單,對于用來贊美或者批評事物的語言表達,我們過去已經積累了足夠多的這方面的知識,就算這些贊美或批評并沒有出現在評論語句中,我們也能正确地分類。有趣的是,如果我們沒有這樣的先驗知識,人類可能無法在較短的時間内通過這1000條正面評論和1000條負面評論來建立一個好的分類器。例如,如果你不懂阿拉伯語,而别人給你提供2000條已辨別的阿拉伯語評論,并要求你手動建構一個分類器,在沒有翻譯的情況下,你幾乎是做不到的。

為了在更具一般性的意義下讨論這個問題,我們使用自然語言處理(NLP)作為例子。很容易看出終身學習對自然語言處理的重要性,這有以下幾個原因:首先,單詞和短語在所有領域和所有任務中幾乎都具有相同的含義;其次,每一個領域中的語句都遵循相同的文法和句法;最後,幾乎所有的自然語言處理問題都是彼此密切相關的,這意味着這些問題是内聯的,并且在某種程度上互相影響。前兩個原因保證了已學的知識可以跨領域和跨任務使用,因為這些知識具有相同的形式、含義和文法,這就是人們在進入一個新應用領域時不需要重新學習語言(或者學習一門新的語言)的原因。例如,假設我們從未研究過心理學,而我們現在想要研究它,那麼除了心理學領域的一些新概念之外,我們并不需要學習心理學文本中使用的語言,因為關于語言本身的一切都與其他領域相同。第三個原因確定終身學習可以應用到不同類型的任務中。例如,命名實體識别(NER)系統已經識别出iPhone是一個産品或實體,并且資料挖掘系統已經發現每一個産品都有價格和形容詞“昂貴”來描述實體的價格屬性。然後,從句子“iPhone的圖像品質很好,但它相當昂貴”中,我們可以安全地提取出“圖像品質”作為iPhone的特征或屬性,并且在先驗知識的幫助下檢測出 “它”是指iPhone而不是指圖像品質。習慣上,這些問題是孤立解決的,但是它們是相關的,而且可以互相幫助,因為一個問題的結果對于其他問題是有用的。這種情況對于所有的自然語言處理任務都是普遍的。請注意,我們把從未知到已知的任何事物都看作知識。這樣,一個學習模型是知識,運用這個模型獲得的結果同樣也是知識,盡管這是兩種不同類型的知識。例如,iPhone作為一個實體以及圖像品質作為iPhone的一個屬性是兩種不同類型的知識。

實作和能夠利用跨領域的單詞和詞組的共有特性以及任務之間的内在關聯還不夠。為了有效地幫助新任務進行學習,通常還需要大量的知識儲備,因為從過去的任務中獲得的知識隻是很少一部分,這部分知識甚至無法适用于新任務(除非兩個任務非常相似)。是以,從大量不同的領域學習以積累各種知識是非常重要的。未來的任務可以從過去學過的知識中挑選合适的知識來幫助其學習。正因為這個世界随時都在變化,是以學習也是一個持續或者終身的過程,就像人類學習一樣。

雖然我們使用自然語言處理作為例子,但這其中的一般道理對于任何其他領域都是适用的,因為世間萬物都是彼此聯系的。沒有什麼事物與任何其他事物毫不相關。是以,在某些領域已經學到的知識可以應用到另一些領域的相似場景當中。傳統的獨立學習範式無法達到終身學習的效果。如上所述,這樣的範式隻能适用于封閉環境中狹隘和受限的任務,這對于建立一個不斷學習以接近人類智能水準的智能系統仍然是不夠的,終身學習旨在這個方向上取得進展。随着機器人、智能個人助理、聊天機器人的普及,終身學習變得越來越重要,因為這些系統都必須與人或其他系統互動,在千變萬化的環境裡通過這些互動過程不斷地學習,并存儲已學知識,進而随着時間的推移學到更多知識,能夠更好地運作。

1.2 案例

在上一節中,我們從人類學習和自然語言處理的角度闡述了終身學習的出現動機。在這一節中,我們将使用一些具體的例子(如情感分析、無人駕駛汽車和聊天機器人)來更進一步說明終身學習。我們研究終身學習的最初動機實際上源于幾年前在一家初創公司中對情感分析(SA)的廣泛應用。一個情感分析系統需要執行兩個主要任務:第一個任務通常稱為特征提取,目的是從類似線上評論的意見文檔中發現實體(例如,iPhone)以及實體的屬性或特征(例如,電池壽命)。這些實體和實體屬性在情感分析中通常稱為特征(aspect)。第二個任務是判斷關于特征(實體或者實體屬性)的意見是正面的、負面的還是中性的[Liu,2012,2015]。例如,從句子“iPhone 真的很酷,但是它的電池壽命很糟糕”中,情感分析系統會發現作者對iPhone持肯定的态度,但是對電池壽命的态度卻是負面的。

這樣的應用場景主要有兩類:第一類是分析關于某個特定産品或者服務(或者少量産品或服務)的消費者評價,例如,iPhone或者某個酒店。這類應用是高度集中的,通常也不困難。第二類是分析消費者對于大量産品或服務的評價,例如,關于Amazon或Best Buy網站上銷售的所有産品的評價。雖然和第一類應用場景相比,第二類應用場景隻是産品或服務數量上的變化,但實際上卻引發了質變,因為應用于第一類應用場景的技術可能不适用于第二類應用場景。下面讓我們看看監督學習和無監督學習方法是如何執行這些任務的。

首先,我們來分析監督學習方法。對于第一類應用場景而言,花費一些時間和精力來對大量資料進行标記以便完成特征提取和情感分類是合理的。值得注意的是,這些都是不同類型的任務,是以也需要不同類型的标簽或注釋。通過已标記的訓練資料,我們可以在不同的機器學習模型上進行實驗、調整參數和設計不同特征,進而為特征提取和分類建立一個良好的模型。因為我們隻需處理一種産品或服務的意見,是以這種方式是比較合理的。對于無監督學習方法,常用的做法是使用人工編譯的文法規則來提取特征。對于情感分類,常用的做法是使用一組情感詞和短語(例如,好、壞、漂亮、劣質、恐怖和糟糕)以及句法分析來判斷情感。雖然這些方法被稱為無監督學習,但并不能完全脫離具體領域。在不同的領域裡,因為人們表達意見的方式可能不同,是以提取規則也會不同。對于情感分類來說,一個單詞在一個領域的特定語境中是正面的,但是在另一個領域中卻有可能是負面的。例如,對于“安靜”這個詞,句子“這輛車很安靜”在汽車行業中是一個正面的評價,但是句子“這個耳機很安靜”在耳機行業裡卻是負面的評價。還有其他一些難題[Liu et al.,2015b]。如果隻需處理一個或兩個領域(産品或服務),我們就可以花費時間手工制定規則,并識别那些特定領域的情感表達,以便建立準确的提取和分類系統。

然而,對于第二類應用場景,監督方法和無監督方法都存在問題,因為它們無法擴充。Amazon.com上可能會銷售數十萬甚至更多不同種類的産品,為每一種産品标記大量的資料是一項艱巨的任務,更不用說随時都有可能推出新的産品。衆所周知,一個領域中标記的訓練資料不适用于另一個領域。雖然遷移學習對此有所幫助,但也不一定準确。更糟糕的是,遷移學習往往需要使用者提供相似的源領域和目标領域,否則可能導緻負向遷移,并産生較差的結果。雖然衆包也可用于标簽,但是标簽資料的品質難以保證。更重要的是,網上銷售的大部分産品沒有足夠多的評論來建構準确的分類器或提取器。無監督學習方式也同樣存在此類問題。每種類型的産品都不同,手工提取規則并通過特定于領域的情感極性來識别情感詞也是一項幾乎不可能完成的任務。

雖然傳統機器學習方法很難應用于第二類應用場景,但這并不意味着沒有解決方案。在為初創公司的客戶開展過多個項目之後,我們發現跨領域(或不同類型的産品)的特征提取和情感分類有大量的知識共享。随着我們觀察越來越多的産品評論,新的事物越來越少。很顯然,各個領域具有相同的情感詞組和表達(例如,好、壞、貧窮、糟糕和昂貴),也有大量的共有特征(實體和屬性)。例如,每一個産品都具有價格屬性,大多數電子産品都有電池,很多還有電子螢幕。不采用這些共有特性來大幅度提高情感分析的準确度,而是單獨處理每一類産品的評論,是不可取的做法。

這種經驗和直覺促使我們試圖找到一種系統的方法來利用過去學到的知識。終身學習正是這種自然而言的選擇,因為它是一種持續學習、保留過去學到的知識,并利用積累的知識幫助未來學習和解決問題的範式。終身學習可以直接應用于情感分析的監督方法和無監督方法中,并使情感分析可以擴充到非常多的領域。在監督方法中,我們不再需要大量标記的訓練樣例。許多領域甚至已經不再需要訓練資料,因為它們可能已經被其他過去的領域覆寫了,而且這些相似領域是自動發現的。在無監督方法中,借助知識的共享,系統将獲得更準确的提取和情感分類,同時也有助于自動發現特定領域中單詞的情感極性。我們将在本書介紹一些相關的技術。

有趣的是,終身學習的這種應用引發了兩個關鍵問題,即知識的正确性和适用性。在對某個特定領域使用過去已學的知識之前,需要確定這些知識是正确的。如果這些知識是正确的,還必須保證它們适用于目前領域。如果這兩個問題處理不好,在新領域中産生的結果可能會變得更糟糕。在本書後面的章節裡,我們将讨論在監督和無監督學習的環境中解決這些問題的一些方法。

在無人駕駛汽車領域,也同樣存在這類問題。學習駕駛有兩種基本方法:基于規則的方法和基于學習的方法。在基于規則的方法中,很難制定出覆寫所有路面駕駛場景的規則,基于學習的方法也存在類似的問題,因為道路環境是動态變化而且非常複雜的。我們以感覺系統為例,為了使感覺系統能夠檢測和識别出道路上的各種事物,以便預測潛在的障礙和危險情況,僅僅使用經過标記的訓練資料來訓練系統是非常困難的。我們非常希望系統能夠在駕駛期間進行持續學習,并且在該過程中識别從未見過的事物并學習識别它們,還可以通過運用過去的知識和周圍環境的回報來學習這些事物的行為以及對車輛的危險程度。例如,當汽車在道路上發現一個前所未見的黑色斑塊時,它必須首先意識到這是一個從未見過的事物,然後逐漸學習識别它,并評估它的危險系數。如果其他汽車已經從這個黑色斑塊上面開過去(環境回報),這意味着這個黑色斑塊不存在危險。事實上,汽車可以從路上其他來往的車輛中學習到很多知識。這種學習過程是自我監督(沒有外部手動标記資料)并且永遠不會結束。随着時間的推移,汽車将越來越有知識,而且越來越智能。

最後,我們使用聊天機器人的發展來進一步說明終身學習的必要性。近年來,聊天機器人變得越來越受歡迎,它們被廣泛應用在執行目标導向的任務(比如協助消費者購物、預訂機票等)上,還可以通過開放式聊天為人們減壓。目前已經上市了大量的聊天機器人,還有一些正在開發中,許多研究人員也在積極研究聊天機器人技術。但是,目前的聊天機器人仍然存在一些重要的缺陷,由此限制了其應用範圍,其中一個嚴重的缺陷是它們無法在聊天的過程中學習新知識,即它們的知識是事先設定好的,無法在聊天過程中自動擴充或更新,這與人類的聊天對話截然不同。人類通過交談可以學到很多知識,我們既可以從别人的言語中學習,也可以在自己不明白的時候通過向别人詢問來進行學習。例如,每當我們在别人的問題或者談話中聽到未知的概念時,在回答這個問題或對此談話做出反應之前,我們會盡力收集關于這個未知概念的資訊,并通過長期記憶中的相關知識進行推理。為了收集資訊,我們通常會對交談者提問,因為通過與他人互動來擷取新知識是人類的基本技能。新擷取的資訊或知識不僅有助于完成目前的推理任務,還對未來的推理任務有用。是以,我們的知識會逐漸增加。随着時間的推移,我們變得越來越博學,越來越善于學習和交流。自然地,聊天機器人也應該具備這種終身學習或持續學習的能力。在第8章中,我們将看到讓聊天機器人在對話中學習的一個新嘗試。

1.3 終身學習簡史

終身學習(Lifelong Learning,LL)的概念是在1995年左右由Thrun和Mitchell[1995]提出的。從那以後,終身學習就開始向幾個不同的方向發展,我們将在下面對每一個研究方向進行簡單介紹。

1.終身監督學習。Thrun[1996b]首先研究了終身概念學習,其中每一個先前任務或新任務都使用二進制分類法來識别一個特定的概念或類,并在基于記憶學習和神經網絡的範圍内提出了一些終身學習技術。Silver 和 Mercer[1996,2002]以及Silver等人[2015]改進了神經網絡方法。Ruvolo和Eaton [2013b]提出了高效終身學習算法(Efficient Lifelong Learning Algorithm,ELLA)來改進Kumar等人[2012]提出的多任務學習(Multi-Task Learning,MTL)方法,其中學習任務是彼此獨立的。Ruvolo和 Eaton [2013a]也在活動任務選擇的環境中考慮了終身學習。Chen等人[2015]在樸素貝葉斯(NB)分類的範疇内提出了終身學習技術。Pentina和Lampert [2014]在PAC學習架構下完成了終身學習的理論研究。Shu等人[2017b]在模型應用或測試過程中提出了一個改進條件随機場(CRF)模型的方法,這有點類似于在工作中學習,在其他現有模型中是無法實作的。Mazumder等人[2018]沿着人機對話的方向進行研究,使聊天機器人能在對話過程中持續學習新知識。

2.深度神經網絡中的持續學習。在過去的幾年裡,随着深度學習的普及,許多研究人員都在研究在深度學習背景下持續學習一系列任務的問題[Parisi et al.,2018a]。值得注意的是,終身學習在深度學習社群中也被稱為持續學習 (continual learning)。對于深度學習中的持續學習來說,其主要動機是在學習一系列任務的過程中解決災難性遺忘(catastrophic forgetting)的問題[McCloskey and Cohen,1989]。重點是在同一個神經網絡中逐漸學習每一個新任務,而不會導緻神經網絡忘記已經在過去任務中學到的模型。關于如何利用過去已學到的知識幫助更好地學習新任務,人們也做了一些工作。而其他終身學習方法則強調利用過去已學知識來幫助進行新學習。

3.開放學習。傳統的監督學習存在封閉世界假設(closed-world assumption),即假設測試執行個體的分類一定在訓練中見過[Bendale and Boult,2015;Fei and Liu,2016]。這種方法不适用于開放且動态環境下的學習,因為這種環境下總會出現新的事物。也就是說,在模型測試或應用中,可能會出現一些從未出現過的執行個體。開放學習正是用于解決這種情況的[Bendale and Boult,2015;Fei et al.,2016;Shu et al.,2017a]。也就是說,開放環境下的學習者必須能夠建立這樣的模型,能在測試或模型應用過程中檢測出從未出現過的類别,并且還可以基于新類和舊模型持續地學習新的類别。

4.終身無監督學習。該領域的論文主要是關于終身主題模組化和終身資訊提取的。Chen和Liu [2014a,b] 以及Wang等人 [2016]提出了幾種終身主題模組化技術,可以從許多先前任務産生的主題中挖掘知識,并用這些知識來幫助新任務産生更好的主題。Liu等人[2016]在觀點挖掘的範圍内為資訊提取提出了一種基于推薦的終身學習方法。Shu等人[2016]提出一種終身松弛标記法來解決無監督分類問題。這些技術都是基于元級别挖掘,即跨任務挖掘共享知識。

5.終身半監督學習。這方面的代表是NELL(Never-Ending Language Learner)系統[Carlson et al.,2010a;Mitchell et al.,2015],該系統自2010年1月以來一直從Web中提取資訊,已經積累了數百萬的實體和關系。

6.終身強化學習。Thrun和Mitchell [1995]首先提出了一些用于機器人學習的終身學習算法,這些算法試圖擷取每一個單獨任務的固定知識。Tanaka和 Yamamura [1997]将每一個環境視為終身學習的一個任務。Ring [1998]提出一種連續學習智能體,旨在通過學習簡單任務來逐漸解決複雜任務。Wilson等人[2007]在馬爾可夫決策過程(Markov Decision Process,MDP)的架構下提出了一種分層貝葉斯終身強化學習方法。Fernández和Veloso [2013]緻力于多任務環境中的政策重用。Deisenroth等人[2014]提出了一種跨任務泛化的非線性回報政策。跟從ELLA 思想[Ruvolo and Eaton,2013b],Bou Ammar等人 [2014]提出了一種高效政策梯度的終身學習算法,這項工作進一步促進了跨領域的終身強化學習[Bou Ammar et al.,2015a]和基于安全限制的終身強化學習[Bou Ammar et al.,2015c]。

終身學習在其他領域也有應用。Silver等人[2013]在AAAI 2013春季研讨會上發表了早期終身學習研究報告。

正如我們看到的那樣,雖然終身學習在20年前就已經被提出來,但是該領域的研究并不廣泛。原因很多,其中一些原因如下。第一,在過去20多年裡,機器學習研究一直專注于統計和算法。終身學習通常需要一種結合了多個元件和學習算法的系統方法,而系統的學習方法并不受歡迎。這可以在一定程度上解釋雖然終身學習研究不流行,但與它緊密相關的遷移學習範式和多任務學習卻已得到廣泛的研究,因為它們可以通過統計和算法的方式完成。第二,過去的機器學習研究和應用大多都集中在使用結構化資料的監督學習上,這對于終身學習而言是比較困難的,因為多任務或領域之間的共有知識很少。例如,從貸款申請的監督學習系統中學到的知識很難在健康或教育之類的應用中使用,因為這些領域沒有太多的共同點。此外,大多數監督學習算法隻生成一個模型或分類器,不産生其他額外知識,這就使得即使在相似領域内也很難使用其他分類任務的先驗知識。第三,許多有效的機器學習方法,如SVM和深度學習,都無法簡單地使用先驗知識,即使這些知識已經存在。這些分類器就像黑盒子,很難分解或解析。它們往往使用更多的訓練資料來得到更準确的模型。第四,像遷移學習和多任務學習這類相關領域能夠流行起來的原因是它們通常隻需少數幾個相似任務或者資料集,并不需要保留顯性知識。另一方面,終身學習需要更多先前的任務和資料來學習和積累大量的顯性知識,以便在新任務學習時能夠挑選出合适的知識,這與人類的學習非常類似。如果一個人沒有大量的知識儲備,他就很難學到更多的知識。一個人擁有的知識越多,他就越容易學習。例如,國小生幾乎不可能學習圖模型,即使是成年人,如果他沒有學過機率論,那麼他也不可能學習圖模型。

考慮到這些因素,我們認為終身學習的一個較有前景的領域是自然語言處理,正如我們前面讨論的那樣,自然語言處理在領域和任務之間廣泛地共享知識,任務内部的聯系也比較緊密,可使用的文本資料也很充足。終身監督學習、無監督學習、半監督學習以及強化學習都可以應用于文本資料。

1.4 終身學習的定義

終身學習的早期定義[Thrun,1996b]如下:假設在任一時間點,系統已經學習了N個任務,在遇到第N+1個任務時,系統能夠利用前N個任務中學到的知識來幫助學習第N+1個任務。我們通過給出更多的細節和附加特征擴充這個定義。第一,增加一個顯性知識庫(Knowledge Base,KB)用于儲存從以前的任務中學到的知識。第二,系統應具備在模型應用過程中發現新學習任務的能力。第三,還應具備邊工作邊學習(即在工作中學習)的能力。

定義1.1 終身學習(Lifelong Learning,LL)是一個持續學習的過程。在任一時間點,學習器已經執行了N個學習任務T1,T2,…,TN,這些任務也被稱為先前任務(previous task),并且有各自對應的資料集D1,D2,…,DN。這些任務可以是不同類型(type),也可屬于不同領域(domain)。當遇到第N+1個任務TN+1(被稱為新任務或者目前任務)和其對應的資料集DN+1時,學習器可以利用知識庫中的曆史知識來幫助學習TN+1。這個任務可以是給定的,也可以是系統自身檢測出來的(這将在後面進行介紹)。終身學習的目标通常是優化新任務TN+1的性能,但是它可以通過将其餘任務視為先前任務來優化任何任務。知識庫維護先前學習到的知識,并通過學習先前任務來進行知識積累。當完成學習TN+1後,根據從TN+1中學習到的知識(例如,中間和最後的結果)對知識庫進行更新。這種更新包括更高層次知識的一緻性檢查、推理和元挖掘。理想的情況下,一個終身學習器應該具有以下功能:

1.在開放環境下學習和運作,不僅可以運用學到的模型和知識來解決問題,而且還能發現要學習的新任務。

2.在應用和測試已學模型的過程中學會優化模型性能。這就像是職業教育訓練之後,我們應會邊做邊學來提升工作技能。

可以看到,這個定義既不正式也不具體,因為我們對于終身學習這個新興的領域的了解還是有限的。例如,研究界還無法正式定義知識。我們相信終身學習的定義保留在概念層面會更好,而不必将其固定或形式化。顯然,這并不妨礙我們在解決特定的終身學習問題時給出一個形式定義。下面我們給出一些額外的附注。

  1. 這個定義表明終身學習具有五個關鍵特性:

    (a) 持續學習過程

(b) 知識庫中的知識積累和儲存

(c) 使用積累的已學知識幫助未來學習的能力

(d) 發現新任務的能力

(e) 邊工作邊學的能力

這些特性使得終身學習差別于其他相關的學習範式,如遷移學習[Jiang,2008;Pan and Yang,2010;Taylor and Stone,2009]和多任務學習[Caruana,1997;Chen et al.,2009;Lazaric and Ghavamzadeh,2010],它們都不同時具備以上特性。我們将在第2章中詳細介紹這些相關的學習範式以及它們與終身學習的不同之處。

如果不具備這些特性和能力,機器學習系統就無法在動态開放的環境下自學,也就無法真正實作智能化。所謂的開放環境,是指應用環境可能包含之前沒有學習過的新事物和場景。例如,我們想要為酒店開發一個迎賓機器人。在機器人已經學會識别所有已入住酒店客人之後,當它看到一個已識别過的客人時,它應該能夠叫出客人的名字并與客人聊天。并且,它還應能檢測出之前未見過的新客人,在看到一個新客人時,它可以打招呼,詢問客人的名字,給客人拍照并學會識别這個客人。當它再見到這個客人時,它就可以叫出客人的名字,并且像老朋友一樣聊天。無人駕駛汽車的真實道路環境則是另一個比較典型的動态開放環境。

  1. 既然在終身學習中知識是日漸積累并使用的,這個定義就促使我們思考先驗知識及其在學習過程中所起的作用。是以,終身學習将人工智能的許多方面引入機器學習中,例如,知識的表示、擷取、推理和存儲。事實上,知識是一個核心規則,它不僅能幫助促進未來的學習,還能幫助收集和标記訓練資料(自我監督學習),并檢測要學習的新任務以實作學習的主動性。資料驅動學習和知識驅動學習的結合很可能就是人類學習的全部。目前的機器學習幾乎全部集中在資料驅動的優化學習上,這是我們人類不擅長的。相反,我們非常善于利用過去所學到的知識。衆所周知,對于人類而言,懂的越多,學到的就越多,也更容易進一步學習。如果我們什麼都不懂,那麼學習其他東西就很困難。是以,對機器學習的研究應該更多地關注知識,并建立像人類一樣學習的機器。
  2. 我們區分兩種不同類型的任務:

    (a) 獨立任務:每個任務Ti都與其他任務互相獨立。這意味着每個任務是單獨進行學習的,盡管任務之間可能是相似的,也可能共有一些潛在的知識結構,可以利用從先前任務中學到的知識來學習Ti。

(b) 依賴任務:每個任務Ti在一定程度上依賴于其他任務。例如,在開放學習中(第5章)[Fei et al.,2016]中,每個新的監督學習任務都為先前的分類問題添加一個新類,然後需要建構一個新的多類分類器來對所有先前和目前的資料進行分類。

  1. 這些任務不一定來自相同的領域。值得注意的是,還沒有一個文獻對領域(domain)做出統一的定義,使之能夠适用于所有領域。在大多數情況下,非正式地使用該術語時,是指一個具有固定特征空間的環境,其中可以存在相同類型或不同類型的多個任務(例如,資訊提取、指代消解以及實體連結)。一些研究人員甚至交替使用“領域”和“任務”,因為在他們的研究中每個領域隻有一個任務。基于此,我們在本書的很多地方也互換使用這兩個概念,但在需要時會将其區分開來。
  2. 向新任務的轉變可以突然或逐漸發生,并且這些任務及其資料不必由外部系統或客戶提供。理想狀态下,終身學習器還應該能夠在與人和環境互動時找到自己的學習任務和訓練資料,或使用先前學到的知識來實作開放世界和自我監督的學習。
  3. 這個定義表明終身學習是一個系統方法,需要結合多個學習算法和不同的知識表達方式。一個單獨的學習算法是不太可能實作終身學習的目标的。事實上,終身學習代表一個龐大而豐富的問題空間,需要進行大量研究來設計算法以實作每一個性能和特征。

基于定義1.1,我們可以概述終身學習的一般過程及其系統架構,這與僅具有單個任務T和資料集D的孤立學習範式不同。圖1.1展示了經典的孤立學習範式,其中,學習得到的模型在預期應用中使用。

帶你讀《終身機器學習(原書第2版)》之一:引言第1章 引  言

圖1.2是新的終身學習的系統架構。下面我們首先介紹該系統的關鍵元件,然後介紹終身學習的過程。需要注意的是,這種通用架構僅用于說明,并非所有的系統必須使用所有元件或子元件。事實上,大多數現有的系統相對簡單。此外,目前還沒有通用的終身學習系統可以在所有可能的領域為所有可能類型的任務執行終身學習算法。事實上,我們距離這個目标還非常遙遠。對于許多機器學習算法(如SVM和深度學習)來說,隻要資料符合這些算法所需要的特定格式要求,就可以應用在任何學習任務上。與之不同,目前的終身學習算法仍然隻能針對特定類型的任務和資料。

  1. 知識庫(KB):主要用于存儲以前學習的知識,它有一些子元件:

    (a) 曆史資訊庫(Past Information Store,PIS):用于存儲之前的學習産生的資訊,包括結果模型、模式或其他形式的輸出。PIS可能包括資訊的子庫,例如:(1)每個曆史任務中使用的原始資料;(2) 來自每個曆史任務的中間結果;(3) 每個曆史任務學習的最終模型或模式。至于應該保留哪些新資訊或知識,取決于學習任務和學習算法。對于特定系統,使用者需要決定保留什麼知識來幫助未來的學習。

(b) 元知識挖掘器(Meta-Knowledge Miner,MKM):在PIS和元知識庫中執行知識的元挖掘。之是以稱為元挖掘(meta-mining),是因為它能夠從已儲存的知識中挖掘更高層次的知識,由此生成的知識被存儲在元知識庫中。這裡可以使用多種挖掘算法來産生不同類型的結果。

(c) 元知識庫(Meta-Knowledge Store,MKS):存儲從PIS和MKS本身挖掘或合并的知識。每種應用都需要一些合适的知識表示模式。

(d) 知識推理器(Knowledge Reasoner,KR):基于MKS和PIS中的知識進行推理以産生更多知識。目前大多數系統都沒有這個子元件。然而,随着終身學習的發展,這個元件将變得越來越重要。

帶你讀《終身機器學習(原書第2版)》之一:引言第1章 引  言

如前所述,目前的終身學習研究仍處于初期階段,沒有一個現有系統包含所有這些子元件。

  1. 基于知識的學習器(Knowledge-Based Learner,KBL):對于終身學習而言,學習器必須能夠在學習中使用先驗知識,我們稱之為基于知識的學習器,它可以利用知識庫中的知識來學習新任務。該元件通常包含兩個子元件:(1) 任務知識挖掘器(Task Knowledge Miner,TKM),利用知識庫中未經加工的知識或資訊來挖掘或識别适用于目前任務的知識,這是非常有必要的,因為在某些情況下KBL無法直接使用知識庫中的原始知識,但是又需要從知識庫中挖掘某些任務特定和通用的知識[Chen and Liu,2014a,b];(2) 學習器,能夠在學習中使用已挖掘的知識。
  2. 基于任務的知識挖掘器(Task-based Knowledge Miner,TKM):這個元件專門為新任務挖掘知識庫中的知識。
  3. 模型(Model):這是一個學習模型,可以是監督學習中的預測模型或分類器,也可以是無監督學習中的聚類或主題、強化學習中的政策等。
  4. 應用(Application):這是該模型的實際應用。重要的是在模型應用中,系統仍然可以學習新知識(即“結果中的知識”),并且可能發現要學習的新任務。應用還可以向基于知識的學習器提供回報以便進行模型優化。
  5. 任務管理器(Task Manager,TM):接收和管理到達系統的任務,處理任務轉變,并以終身方式向KBL呈現新的學習任務。

終身學習過程:典型的終身學習過程從任務管理器向KBL配置設定新任務開始(這個任務可以是給定的,也可以是自動識别的)。然後,KBL利用知識庫(KB)中存儲的知識為使用者生成模型,并将需要保留的資訊或知識發送給KB以供未來使用。在應用過程中,系統還可以發現新任務并在工作中學習。從應用中擷取的一些知識還可以存儲起來,以便幫助未來的學習任務。

1.5 知識類型和關鍵挑戰

定義1.1沒有給出任何關于知識庫的知識及其表示形式的細節描述,這主要是因為我們對其了解有限。目前仍然沒有廣為接受的知識定義和通用的表示模式。在目前的終身學習研究中,過去的知識通常被用作新任務的某種先驗資訊(例如,先驗模型參數或先驗機率)。目前的每一篇論文都使用一種或兩種特定形式的知識,僅适用于文中所提出的技術和預期的應用。例如,一些方法使用一組共享的潛在參數作為知識[Ruvolo and Eaton,2013b;Wilson et al.,2007];一些方法則直接使用先前任務的模型參數作為知識[Chen et al.,2015;Shu et al.,2016];一些方法使用過去模型的應用結果作為知識,比如主題模組化中的主題[Chen and Liu,2014a;Chen et al.,2015]和從先前資訊提取模型提取出來的特征詞 [Liu et al.,2016;Shu et al.,2017b];還有一些方法使用過去的相關資料作為知識來補充新任務的資料[Xu et al.,2018]。通常基于在各個算法中的使用方式來表示知識。目前仍然沒有通用的知識表示模式适用于不同的算法或不同的任務類型,定義1.1也沒有指定應如何存儲或更新知識庫。對于特定的終身學習算法和特定形式的共享知識而言,要根據算法和知識表示需求來設計知識庫及其對應的存儲和更新方法。

目前主要有兩種類型的共享知識可用于學習新任務。

1.全局知識(global knowledge)。許多現有的終身學習方法都假設所有任務共享一個全局潛在結構(global latent structure) [Bou Ammar et al.,2014;Ruvolo and Eaton,2013b;Thrun,1996b;Wilson et al.,2007](3.2、3.4、9.1、9.2和9.3節)。這個全局潛在結構可以在新任務中被學習和利用。基于全局知識遷移和共享的方法主要來源于多任務學習(即共同優化多個相似任務的學習),或受到多任務學習的啟發。這種知識更适用于同一領域中的相似任務,因為這些任務往往具有高度相關性,或具有非常相似的分布。

2.局部知識(local knowledge)。許多其他的方法并沒有全局潛在結構假設[Chen and Liu;2014a,b;Chen et al.,2015;Fei et al.,2016;Liu et al.,2016;Shu et al.,2016;Tanaka and Yamamura,1997] (3.5、5.2、6.2、6.3、7.1、7.2、7.3和7.4節),相反,在學習新任務的過程中,這些方法根據目前任務的需要從先前任務學到的知識裡挑選出一部分來使用。這意味着不同的任務可以使用從不同的先前任務中學到的不同知識,我們将這些知識稱為局部知識,因為這些知識都是之前各自任務的本地知識,并且不被認為能形成一緻的全局結構。局部知識可能更适用于來自不同領域的相關任務,因為來自任意兩個領域的可共享知識可能很少。但是,可以被新任務利用的先驗知識還是相當多的,因為先驗知識可以來自很多過去的領域。

基于局部知識的終身學習方法通常側重于借助過去的知識來優化目前的任務性能。通過将該任務視為新任務或目前任務,基于局部知識的終身學習方法還可以用于提高任何先前任務的性能。這些方法的主要優點是非常靈活,因為它們可以選擇對新任務有用的任意已學到的知識。如果沒有可用的知識,也可以不用。基于全局知識的終身學習方法所具有的主要優點是,它們通常逼近所有任務的最優解,包括先前和目前的任務。這是從多任務學習中繼承來的特性,然而,當任務高度多樣化或數量龐大的時候,這将很難實作。

由于涉及之前學到的知識,除了前面讨論的關于知識的典型問題(例如,保留什麼知識,如何表示和使用知識,以及如何維護知識庫)以外,在終身學習中,還有兩個關于知識的基本挑戰。我們将在稍後的章節中介紹一些能夠處理這些挑戰的現有技術。

  1. 知識的正确性:顯然,使用錯誤的過去知識不利于新任務的學習。簡言之,終身學習可以被視為一個連續的自舉過程。先前任務的錯誤可以傳播到後續的任務中,并且會産生更多的錯誤。人類似乎很清楚什麼是正确的,什麼是錯誤的,但是目前還沒有一項令人滿意的技術能夠檢測錯誤的知識。很多文獻都沒有涉及這個問題 [Silver and Mercer,2002;Silver et al.,2015;Thrun,1996b],或隻是在某種程度上隐含地處理這類問題[Ruvolo and Eaton,2013b;Wilson et al.,2007]。也有一些文章明确處理這一問題 [Chen and Liu,2014a,b;Chen et al.,2015;Liu et al.,2016;Mitchell et al.,2015;Shu et al.,2016]。例如,一個政策是找出許多先前任務或領域中那些共有的知識[Chen and Liu,2014a,b;Chen et al.,2015;Shu et al.,2016]。另一個政策是確定使用不同的技術從不同内容中發現知識[Mitchell et al.,2015]。盡管這些政策都有用,但是仍然存在兩個令人不太滿意的問題。首先,這些政策并非絕對正确,因為它們仍然會産生錯誤的知識;其次,這些政策具有較低的召回率,因為大部分的正确知識無法通過這些政策,繼而無法在後續的學習中使用,這使終身學習無法産生更好的結果。我們将在後面的章節詳細讨論這些政策。
  2. 知識的适用性:雖然一些知識在某些先前任務中可能是正确的,但是可能無法應用到目前的任務中。應用不恰當的知識同樣會導緻如上文所介紹的負面結果。同樣,人類比較擅長識别知識應用的正确背景,但是,這對自動化系統卻是非常困難的。很多文獻都沒有涉及知識适用性的問題,而部分文獻對此進行了處理,如Chen和Liu [2014a]、Chen等人[2015]、Shu 等人[2016]以及Xu等人 [2018]。我們将在後面引用這些文獻時詳細介紹。

顯然,知識的正确性和适用性這兩個挑戰密切相關。看起來我們隻需關注适用性這個挑戰,而不必理會知識是否正确,因為如果一項知識不正确,它就不适用于新任務。但事實往往并非如此,因為在決定知識是否适用時,我們可能隻能判斷新任務或領域是否與過去某些舊的任務或領域内容相似。如果相似,我們就可以使用從先前任務擷取的知識,這時就必須確定知識是正确的。

1.6 評估方法和大資料的角色

針對傳統的孤立學習算法的評估方法是基于相同任務/領域的資料進行訓練和測試,與此不同,終身學習由于涉及一系列的任務,并且期望在新任務的學習中得到提高,是以需要一種不同的評估方法。在目前的研究中,終身學習算法的實驗性評估通常遵循以下步驟:

  1. 在先前任務的資料上運作:首先在一組先前任務的資料上運作算法,按指定的順序每次運作一個,并将獲得的知識儲存到知識庫。顯然,用來做實驗的算法可以有多種變體或版本(例如,使用不同類型的知識,以及或多或少的知識)。
  2. 在新任務的資料上運作:接下來利用知識庫中的知識在新任務的資料上運作終身學習算法。
  3. 運作基準算法:為了進行比較,運作一些基準算法。通常有兩種類型的基準算法:第一種是在不使用任何過去知識的情況下對新資料執行孤立學習的算法,第二種是現有的終身學習算法。
  4. 分析結果:比較步驟2和3的結果并加以分析、觀察,以證明步驟2中終身學習算法的結果要優于步驟3中基準算法的結果。

在進行終身學習實驗評估時,還有幾個需要額外考慮的因素。

  1. 大量任務:評估終身學習算法需要大量的任務和資料集。這是因為從少量任務中獲得的知識不可能大幅度提高新任務的學習,原因是每個任務可能隻為新任務提供非常少量的有用知識(除非所有任務都非常相似),而且新任務中的資料通常很少。
  2. 任務順序:要學習的任務的順序是非常重要的,這意味着不同的任務順序會産生不同的結果。這是因為終身學習算法通常不保證所有先前任務的最優解。為了在實驗中考慮順序因素的影響,可以嘗試使用幾個随機的任務順序并生成結果,然後彙總結果進行比較。目前的論文在其實驗中大多僅使用一個随機序列。
  3. 漸進式實驗:越多的先前任務會産生越多的知識,越多的知識會促進終身學習為新任務産生更好的結果,是以有必要知道随着先前任務的增加算法在新任務上的性能。

請注意,我們無意覆寫目前終身學習研究中所有可能的評估方法,目的隻是介紹通用的評估方法。在評估特定算法時,必須考慮算法的特殊性(例如,其假設和參數設定)以及相關研究,以便設計一套全面的實驗。

大資料在終身學習評估中的作用:衆所周知,我們懂得越多,就學得越多,也學得越容易。如果我們什麼都不懂,那就很難學到任何東西。這些都是很直覺的,因為在我們每個人的生活中都有過這樣的經曆。計算機算法也是如此。是以,終身學習系統必須從大量不同的領域中學習,以便為系統提供廣泛的詞彙和知識,進而幫助它在不同未來領域中進行學習。此外,與遷移學習不同,終身學習需要自動識别它可以使用的過去知識,并非每一個過去任務/領域對目前任務都是有用的。是以,終身學習的實驗和評估需要來自大量領域或任務的資料。幸運的是,在許多應用中大型資料集都是現成的,例如可用于評估終身學習的圖像和文本。

1.7 本書大綱

本書介紹了終身學習這個重要的新興領域。雖然文獻體系不是特别大,但是相關的論文發表在大量的會議和期刊上。還有很多論文沒有表現出終身學習的所有特征,但在某種程度上與之相關。涵蓋該領域的所有重要工作很難而且也不太可能,是以,本書不應被視為該領域所有内容的詳盡說明。

本書的組織架構如下:

在第2章中,讨論一些相關的機器學習範式來介紹其發展和背景。我們将看到這些現有範式與終身學習的差異,因為這些範式缺少終身學習的一個或多個關鍵特征。然而,所有這些範式都涉及某些形式的知識共享或跨任務遷移,甚至在某些情況下還可以持續進行。是以,我們認為終身學習是一種先進的機器學習範式,它是對現有機器學習範式的擴充,使其更智能,也更接近人類的學習過程。

在第3章中,我們重點讨論有關監督終身學習的現有研究狀況,詳細介紹一些早期和最近的監督終身學習方法。在第4章中,我們繼續讨論在深度神經網絡(DNN)背景下的監督終身學習,終身學習有時也稱為持續學習,其主要目标是在學習多項任務時解決深度學習中的災難性遺忘問題。第5章也與監督學習相關。但顧名思義,主要讨論開放環境下的學習類型,其中的測試資料可能包含未知類别的執行個體(即在訓練中不存在的類别)。這與典型封閉環境下的學習形成鮮明對比,在封閉環境下的學習中,所有執行個體都來自訓練。

在第6章中,我們讨論終身主題模型。這些模型對之前任務所發現的主題進行挖掘,以提取出可靠的知識供新模型推導使用,進而為新任務産生更好的主題。第7章讨論終身資訊提取。資訊提取對于終身學習來說是非常合适的,因為過去提取的資訊對未來的資訊提取通常很有幫助,這是因為存在跨任務和領域的知識共享。第8章切換主題,将讨論人機對話中終身互動知識學習的初步工作。這是一個嶄新的方向,因為現有的聊天機器人在建構或部署後無法學習新知識。第9章介紹終身強化學習。第10章總結本書,并讨論終身學習研究所面臨的主要挑戰和未來方向。

繼續閱讀