1.引言
隨著計算能力的提高和計算理論的創新,機器學習在過去30年中取得了長足的發展,正受到越來越多人的關注,並在生物、醫藥、能源、交通、環境等諸多領域中獲得了成功的應用。與此同時,機器學習也面臨越來越多的問題,傳統機器學習理論框架的不足被逐漸發現和確認,新的機器學習理論框架不斷被提出[1]。
中科院自動化所王飛躍研究員於2004年提出了平行系統的思想,試圖用一種適合複雜系統的計算理論與方法解決社會經濟系統中的重要問題。其主要觀點是利用大型計算模擬、預測並誘發引導複雜系統現象,通過整合人工社會,計算實驗和平行系統等方法,形成新的計算研究體系[2−5]。在過去的10多年中,平行系統這一研究體系在實踐中取得了大量的成果,並不斷豐富和完善起來[6−9]。近年來,我們嘗試將平行系統的思想擴展並引入到機器學習領域建立一種新型理論框架以更好地解決數據取捨、行動選擇等傳統機器學習理論不能很好解決的問題。
以下我們將首先回顧常見的一些機器學習理論,並比較它們在數據獲取—行動選擇這一核心問題上的處理方式。接著,我們將提出「平行學習」這一新型機器學習理論框架,並著重分析其獨特之處,最後我們總結全文。
2.一些現有機器學習的理論框架
著眼於數據獲取和行動選擇之間的關係,我們可以建立如下數學模型來描述常見的一些機器學習理論框架 :
假設我們獲取到一系列數據並構成集合X={xi},i=1,……,I,若研究對象為複雜系統,則這些數據通常為觀測到的系統狀態或輸出。針對這些數據,我們可以採取一系列行動ak並構成集合A={ak(X』)},k=1,……,J,X』⊆X表示數據集X的一個子集。每一個行動可以導致一個回報R(aj),且數據的獲取和採取行動可以在時間上分離。我們的目標是,通過機器學習,最大化長期回報
如果我們關心的是每一個行動導致的損失L(ak),則目標函數可變為最小化長期損失
對於常見的有監督學習(Supervised learning)[10−11]而言,上述這一模型可以進一步簡化為:當所有數據已知且已經被正確分類後,我們採取一個行動:建立一個函數映射(通常是分類函數)來最小化分類誤差。一般而言,我們預設數據服從獨立同分布假設(Independent and identically distributed, i.i.d.),則目標函數可進一步寫為
相對於有監督學習,在線機器學習(Online machine learning)[12−14]強調了數據是逐漸獲取的,且每新獲得一個數據,系統可基於所有已經獲取的數據採取一個行動。對於在線機器學習的特例序貫學習(Sequential learning),我們每次僅僅獲取一個數據xi,依據映射函數f(·)產生一個預測行動f(xi),接著我們再獲取xi真正的標記數據y(xi),並計算由此產生的損失L[f(xi),y(xi)]。最終我們的目標函數為選取合適的映射f(·),最小化長期後悔值(Regret value)
這裡我們有多個行動,並隨著所獲數據的增多,不斷優化採取的行動。與在線學習類似,強化學習(Reinforcement learning)[15−16]依然假設數據逐漸獲取,但機器學習系統不再被動地接受數據,而轉為主動尋求。系統在t時刻每獲得一個數據xi(t)(在強化學習中xi為系統狀態), 可採取一系列行動ai(t)。為簡化符號,下文中系統狀態和行動記為xt和at。強化學習允許我們在t時刻的行動at,影響到我們在(t+1)時刻的獲取的數據xt+1,也即存在如下的T(·,·) : X×A→X表示特定的狀態轉移函數
我們的目標函數為
其中,Ra(xt,a(xt))為t時刻系統處於狀態xt、施加行動a(xt) 所獲得的即時回報,V(xt+1) 為系統處於狀態xt+1的長期平均回報,γ為折扣因子。因此,強化學習屬於主動學習(Active learning)[17]的一種,我們可以選取特定的行動來兼顧優化目標函數和探索輸入數據集合X。這相對於在線機器學習是非常重要的改進。
然而,經典的強化學習將數據獲取和對應行動局限在馬爾科夫決策過程(Markov decision processes)的框架中,限制了其能力的發揮。目前研究者提出了不少強化學習的變體,如深度強化學習(Deep reinforcement learning), 但基本沿用了馬爾科夫決策過程這一框架。這一做法雖然保證了一定範圍內學習的有效性,卻不能很好地應用到非馬爾科夫決策過程 。
強化學習不需要傳統意義上的有標籤數據,實際上其學習的過程就是不斷更新數據標籤的過程。但是它的學習效率並不高,需要跟環境進行大量交互從而獲得反饋用以更新模型。當面臨複雜系統大數據處理時,過高的系統狀態維數常常使得可行解的探索變得十分困難[18−20]。
3.平行學習的理論框架
為了進一步拓展學習能力,特別是為了解決強化學習所面臨的難題,我們提出如下圖1所示的平行學習的基本框架。其大致可以分為數據處理和行動學習兩個互相耦合關聯的階段 。
圖 1 平行學習的理論框架圖 ( 虛線上方為通過軟體定義的人工系統進行大數據預處理 , 虛線下方表示基於計算實驗的預測學習和集成學習 , 以及平行控制和指示學習 . 細線箭頭代表數據生成或數據學習 , 粗線箭頭代表行動和數據之間的交互 .)
Fig.1 The theoretical framework of parallel learning (The part above the dash line focuses on big data preprocessing using software defined artificial systems; the part beneath the dash line focuses on predictive learning and ensemble learning based computational experiments, as well as parallel control and prescriptive learning. The thin arrows represent either data generation or data learning; the thick arrows present interactions between data and actions.)
在數據處理階段,平行學習首先從原始數據中選取特定的「小數據」,輸入到軟體定義的人工系統中,並由人工系統產生大量新的數據。然後這些人工數據和特定的原始小數據一起構成解決問題所需要學習的「大數據」集合,用於更新機器學習模型[18]。
在行動學習階段,平行學習沿用強化學習的思路,使用狀態遷移來刻畫系統的動態變化,從人工合成大數據中學習,並將學習到的知識存儲在系統狀態轉移函數中。但特別之處在於,平行學習利用計算實驗方法進行預測學習(Predictive learning)。通過學習提取,我們可以得到應用於某些具體場景或任務的「小知識」,並用於平行控制和平行決策。這裡的「小」是針對所需解決具體問題的特定智能化的知識,而不是指知識體量上的小。
而平行控制和平行決策將引導系統進行特定的數據採集,獲得新的原始數據,並再次進行新的平行學習,使系統在數據和行動之間構成一個閉環。不僅如此,我們還引入指示學習(Prescriptive learning)的思想,從另一個角度來重新結合數據和行動。
4.平行學習的三大特色方法
在上述新型理論框架的基礎上,我們展開說明平行學習採用的特色方法。
4.1 通過軟體定義的人工系統進行大數據預處理
雜亂無序的數據難以學習。基於平行理論,我們可以構建人工場景來模擬和表示複雜系統的特定場景,並將選取的特定「小數據」在平行系統中演化和迭代,以受控的形式產生更多因果關係明確、數據格式規整、便於探索利用的大數據,再把大數據濃縮成小知識、小智慧和小定律[2−9,18]。這一點也符合美國物理學家費曼(Richard Feynman)所說的名言「不是我創造的,我就不能理解」(What I cannot create, I do not understand)[21]。
以業界當前研究的新熱點「平行視覺」(Parallel vision)為例[22−25]。我們根據實際採集的少量圖像數據,提取特定要素,然後在模擬環境條件中加入新的變化(如改變攝像機朝向、光照和天氣條件等)以得到更加多樣化的虛擬數據。對虛擬實驗產生的結果進行計算評估,我們可以校正視覺模型,並重新設計新計算實驗,產生新的虛擬數據。這一迭代將反覆執行直到收斂。測試表明,結合虛擬數據和真實數據可以有效提高模型性能 。
需要指出的是,平行學習中將用於產生虛擬數據的人工系統和分析數據的機器學習系統進行了一定程度的切分,允許直接在數據處理階段進行採樣。這為數據產生和數據分析添加了更多的靈活性,和傳統機器學習主要由行動來驅動數據採集是不同的 。
由於我們採用的是軟體定義的人工系統,我們可以藉助虛實互動的平行執行來在線優化人工系統模型,更好地實現對複雜系統的智能理解和數據採樣。所有數據學習的結果都能用來對人工系統模型進行校正和升級。因此,我們並非割裂數據產生和數據分析這兩部分,而是將其看成一個整體的兩面。
4.2 包含預測學習和集成學習的數據學習
在平行學習中,我們強調使用預測學習和集成學習來拓展經典學習方法 。
1) 我們允許多個智能體(Agent) On,n=1,……,N共同學習,每個智能體可以獨立地獲取到一系列觀測數據並構成集合Xn={xin},i =1,……,In。每個智能體還可以獨立地採取一系列行動並構成集合An={akn(X』n)},k=1,……,Jn,X』n⊆Xn表示數據集Xn的一個子集。
2) 每個智能體獲取的數據和採取行動的次數和時間均獨立。首先,我們允許一個行動可以產生多個新的數據,而強化學習一次只能產生一個新的數據。其次,強化學習要求獲取數據和完成行動必須依次間隔執行,而平行學習允許獲取數據和完成行動有著完全不同的頻次和發生順序。
3) 我們以平行世界的角度來看待系統狀態的演化過程。將新獲得的數據映射到平行空間中,我們可以通過大量長期的仿真迭代來預測和分析預期行動的結果,並最終將最優動作返回現實空間[2−8,18] 。
圖 2 AlphaGo 將現實世界的數據映射到平行世界 , 進行多線迭代來求取預期行動
Fig.2 AlphaGo maps data in realistic world into parallel world and uses multithread iterations to determine the expected actions
基於上述三點擴展,我們可以放鬆數據和行動之間的耦合,極大地擴展現有的強化學習方法[26−27]。其實,上述三點擴展已經在AlphaGo這一划時代的人工智慧產品中得以體現[28]。參見圖2所示,AlphaGo對於當前局面,使用蒙特卡洛樹(Monte Carlo tree)方法,進行數盤20∼30步的模擬測試下來探求局部最優的下法,這可以看作是使用智能體進行中長期仿真迭代來預測和分析預期行動的結果。同時,其數據的產生和行動的產生相對獨立,不需時間對齊。AlphaGo利用輸入的數萬盤高手對局數據進行自我對戰。在和李世乭比賽之前,自我對戰了3000多萬盤。這就是典型的實際小數據到虛擬大數據的過程。
LeCun在最近幾年的演講中反覆以「蛋糕」比喻整個機器學習領域。而強化學習是蛋糕上的一粒櫻桃,監督學習是蛋糕外面的一層糖霜,無監督學習(Unsupervised learning)[29−30]則是蛋糕胚。然而目前,糖霜和蛋糕胚之間還存在巨大的空白區域。為此,LeCun在 2016 年認為預測學習可以來填補這一空白[31]。
預測學習起源於認知心理學對於兒童學習方式的解釋[32]。其後被用來解釋智能體如何從與環境的交互中學習特定知識[33−34]。深入比較不難發現,預測學習和我們在過去10多年中所一直倡導的基於計算實驗的平行系統方法[2−9]本質是一樣的。簡而言之,平行系統和預測學習的核心就是用機器給真實環境建模,仿真預測可能的未來,並通過觀察和演示來理解世界如何運行的能力。其中仿真是無監督或半監督(Semi-supervised learning)[35−36]的,而初始狀態和最終結果是有監督的。我們稱這種學習方式為平行預測+指示學習(Parallel predictive+Prescriptive learning),可以糅合無監督、半監督和有監督三種學習方式,填補各自之間的空白 。
4) 類比於多智能體系統[37−38],平行學習還允許分散學習和集成學習兩種機制。
分散學習機制要求每個智能體可以獨立根據自身獲取的數據來進行行動,每一個行動可以導致一個回報 R(akn)。我們的目標是最大化所有智能體的總體長期回報
該學習機制適合於分散控制等問題,其中每個智能體獲得的數據和執行的行動都是時空局部、甚至可以時間異步的。例如,我們在分布式平行交通控制系統中設定不同路口的控制器進行迭代和學習,協同式產生和發現最優的交通信號燈控制策略[7−8]。集成學習機制則要求設置一個所謂代理智能體(Surrogate agent)。每個智能體可以獨立地根據自身獲取的數據來進行行動,每一個行動可以導致一個回報Rm(akm)。我們的目標是選取所有這些智能體可能獲得的回報中最大的那個動作,並讓代理智能體執行該動作。
該學習機制類似於現有的集成學習(Ensemble learning)[39],可適合於靜態數據的集中分類等問題。而我們的研究表明,更為廣義的集成學習技術也可以應用於動態系統的建模和控制之中[40]。其中每個智能體都致力於在學習中對複雜系統進行建模並執行特定的行動來達到某一優化目標。各智能體執行的行動是時間同步,但所獲取的數據可以是時空局部的。特別地,我們可以設定策略使得每個Agent根據自身偏好來探索輸入數據集的不同部分,並建立適合特定輸入數據子集的行動策略[40]。這一想法亦被我們用在所謂平行動態規劃(Parallel dynamic programming)之中,以克服現有近似動態規划算法對於解空間探索不足的困難[41] 。
4.3 基於默頓定律實現數據—行動引導的指示學習
一般而言,複雜系統可以大致分為牛頓系統和默頓系統兩種。無論我們怎麼對牛頓系統進行分析,都不會影響系統運行的結果。例如天氣預報明天下雨,那麼天氣是下雨下雪還是颳風,跟我們的分析調控無關。而在默頓系統中,存在雙向影響通路,我們對系統的調控會影響系統運行的結果。例如,著名分析師對於股市的評論會影響股市的波動。因此,我們可以設定預期的系統狀態,通過對於系統的描述、預測、引導來使得系統達到控制者所期望的狀態。美國社會學家默頓將這一長期行動稱為預言的自我實現定律(Self-fulfilling prophecy)[42]。該定律也被後人稱為默頓定律。
默頓定律希望通過改變行動的模式,即實際系統與人工系統的平行互動,促使實際系統運行到既定目標。然而與牛頓系統不同,默頓系統中的「行動建模」與「目標建模」相互獨立,且「行動建模」受到有限先驗知識,系統高度隨機性等多方面因素的影響,難以實現[43]。如果用上面的學習框架來描述 ,就是難以確知我們每一次探索所獲得的即時回報Ra(x,a(x)),而且即時回報Ra(x,a(x))和長期回報V(x)之間的關係亦不明確 。
幸運的是,近10年來研究者先後提出了對抗學習(Adversarial learning)[44−46]、對偶學習(Dual learning)[47]等全新的學習原則,為解決上述問題提出了新的思路。
對抗學習通過構造相互競爭的生成器和辨別器來提高學習的效率[44−46]。在圖像學習中,前者試圖產生假的圖像,後者試圖鑑別出真正的圖像。本質上,這依然是費曼所稱「不是我創造的,我就不能理解」概念的體現,即通過構建驗證過的概念來理解事物。但對抗學習最大的優點是系統的回報/損失函數不必顯式給出,而是通過生成器和辨別器的對抗來自動學習和挖掘來產生。這是默頓定律所期待的,在系統和行動的互動之中,達成知識的「泛化」(Generalization)。
對偶學習[47]的思路則更加偏重迭代演進。假設學習過程中有兩個智能體分別從事原任務(從集合X到集合Y的學習任務)和對偶任務(從集合Y到集合X的學習任務)。假如我們首先把集合X用第一個智能體的模型F映射成集合Y的子集Y』 ,再利用第二個智能體的模型G把集合Y』映射成集X的子集X』。比較集合X和X』,我們常常可以獲得非常有用的反饋信號來改進映射模型F和G。以機器翻譯為例,上面的這個過程可以無限循環下去。可以證明,只要機器翻譯模型F和G的解碼部分都使用的是隨機算法,這一學習過程是收斂的,最終會學到兩個穩定有效的模型F和G。
綜合對抗學習和對偶學習,我們可以提出如下更一般的指示學習。指示學習關注如何設置引導,使得我們獲得預期的學習目的或者學習效果[48]。具體到大數據環境中的數據獲取–數據學習這一矛盾關係中,指示學習可以被建模為反覆循環的兩階段學習–探索過程。
假設我們不斷地獲取數據並構成集合X={xi},i=1,……,I。針對這些數據,我們可以採取一系列行動並構成集合A={ak(X)},k=1,……,J。
在第一階段,我們學習特定行動原則,最大化階段性回報V (X,ak(X))
在第二階段,我們在此基礎上通過數據生成算法產生新的數據集合X』={x』i}, i = 1,……,I,並衡量階段性損失L[X』,ak(X』))]。損失函數L[·]為已學會的行動原則在新數據集合X』上的損失,該函數指示了我們下一步學習的方向。對於對抗學習而言,L[·]可以直接設為誤分類比率。對於對偶學習而言,L[·]為迭代產生的映射誤差。對於平行系統控制而言,L[·]通常可以設為當前系統狀態和理想系統狀態之間的差值[7−9]。
當上述兩個階段過程完成後,我們進入新的循環,直到我們覆蓋所有的數據集或系統狀態,又或者我們已經到達理想的系統狀態。
目前,強化學習已經為我們在第一階段的數據學習提供了相當強的理論工具和方法。但我們對於第二階段的數據探索尚有很多未知的領域值得深入研究。原始的對抗學習中,數據產生的方式是無模型無監督學習,但其效果有待改進[44]。而對偶學習中 ,數據產生的方式是有模型無監督學習,理論證明清晰但限制較多[47]。最近的研究表明,類似於我們在上文中提及的平行仿真和預測學習這種半監督、具有限定條件和指示性目標的演化式學習(例如利用信息熵的InfoGAN[49])可能更加適合特定問題的解決。這即是我們在上文中提到的平行預測 + 指示學習(Parallel predictive + Prescriptive learning)的思想的體現:既有方向性指示,亦不過多限制中間探索過程。我們期待這一思想能帶來更多新的機器學習方法 。
5.總結
在本文中,我們提出平行學習的基本思想和理論框架,並闡述了平行學習的三大特色方法: 1)通過軟體定義的人工系統進行大數據預處理,2) 包含預測學習、集成學習的數據學習,和 3)基於默頓定律實現數據–行動引導的指示學習 。
概括而言,平行學習理論框架強調:使用預測學習解決如何隨時間發展對數據進行探索;使用集成學習解決如何在空間分布上對數據進行探索; 使用指示學習解決如何探索數據生成的方向。目前我們的研究顯示,擴展現有的強化學習模型能夠較好地和這三者結合。但我們不排除今後有更好的模型來和我們提出的平行學習理論框架結合發展 。
需要指出的是,我們主要強調從理論框架層面改進和擴展已有機器學習方法,並初步開展了相應模型和算法的研究。例如我們將平行學習方法應用到了虛擬場景生成和無人駕駛車輛智能測試[50−51],以及社會計算和情報處理[52−54]。但很多細節之處尚需完備的理論證明。期待本文拋磚引玉,引起業內專家學者興趣,共同對機器學習理論做出更加深入的革新。