『壹』 強化學習探索家|令人拍案叫絕的RND (1)
強化學習探索家專欄本期將帶您深入探討RND(隨機網路蒸餾)演算法的核心秘密。在前兩期中,我們已介紹了強化學習中的ICM(內部獎勵模型)知識。若需補課,可訪問下方鏈接。
強化學習聚焦於智能體如何根據環境獎勵信號優化策略,以實現累計最大獎勵。面臨稀疏或無獎勵環境時,高效探索狀態與動作空間尤為重要。為此,RND演算法旨在引入額外的內在獎勵激勵智能體探索更多新穎狀態。
新穎性度量通常基於狀態在預測任務中的預測誤差。預測誤差越大,意味著智能體在該狀態附近訪問次數少,該狀態新穎性較高。ICM演算法通過學習狀態轉移模型,利用預測誤差指導探索,但存在局限性。
RND演算法引入了一種基於隨機網路蒸餾的探索機制。它定義了兩個結構相同的神經網路,用於解決與觀測狀態相關的隨機蒸餾問題,而非直接涉及環境動力學。RND訓練階段,兩個網路交互學習,產生的內在獎勵在常規RL訓練中使用,與環境獎勵共同驅動智能體行為。
實驗結果顯示,RND在多種復雜稀疏獎勵任務上表現出色,尤其在不依賴專家軌跡或底層狀態的情況下,它成為了首個在Montezuma's Revenge任務上超越人類平均水平的方法,這一成就具體細節將在下期專欄中詳述。
深入探討RND演算法設計,我們關注預測誤差的影響因素。這些因素包括模型復雜度、數據分布變化、環境雜訊等。RND通過簡化預測問題,有效減少這些因素的影響,從而提供更准確的新穎性度量。通過自監督學習任務,如AutoEncoder,雖然可以計算內在獎勵,但其復雜性與不穩定的數據分布導致了較高的重建誤差。
對比ICM的前向動力學模型,RND預測問題映射的確定性使得學習過程更為穩定,一定程度上緩解了環境雜訊帶來的影響。RND的預測誤差更好地反映出狀態的新穎性,從而提升智能體探索效率。
將RND探索模塊與多種RL演算法結合,實現了較低的計算開銷,使得集成過程簡單高效。在RND論文中,底層演算法採用的是on-policy PPO。演算法偽代碼如圖2所示,探索相關模塊以藍色線勾畫。
下期專欄將帶來RND實驗分析與實踐心得分享。敬請期待。
參考文獻:
[1] Burda Y, Edwards H, Storkey A, et al. Exploration by random network distillation[J]. arxiv.org/abs/1810.12894, 2018.
[2] openai.com/blog/reinforcement-learning-open-source/
[3] lilianweng.github.io/lilianweng/2020/01/08/reinforcement-learning-icm/
[4] 論文作者的TensorFlow代碼實現
作者:山河星月
排版:muxu
『貳』 網路架構搜索
作為計算智能方法的代表,起源於上個世紀四十年代的人工神經網路經歷了五六十年代的繁榮,七十年代的低潮,八十年代的再次復甦,到近十年的廣泛關注,如今已經成為理論日趨完善,應用逐步發展的前沿方向。Hinton 等人2006 年在《Science》上發表的文章引發了深度神經網路研究的熱潮。面對大數據的諸多挑戰,以深度信念網路、卷積神經網路和遞歸神經網路為代表的深度神經網路模型在很多應用領域展示出明顯的優勢和潛力,特別是隨著數據量和數據維數的增加,深度學習的優勢愈加突出。例如,Google 藉助深度學習開發的AlphaGo 能從海量的對弈中學習正確的決策,微軟語音識別採用深度學習使識別錯誤率顯著降低,網路基於深度學習開發的機器人「小度」在跨年齡人臉識別上超越了人類。
經過多年的研究和發展,基於人工神經網路的識別方法也逐漸取代傳統的模式識別方法。神經網路已成為當前比較先進的技術,用來解決許多具有挑戰性的識別任務如文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字元的識別等。其中主流的神經網路模型有卷積網路和遞歸神經網路,卷積神經網路由 Yann LeCun 在 1998 年提出,自從 AlexNe 在 2012 年的 ImageNet 比賽中使用了這一架構拔得頭籌,卷積神經網路迅速流行起來並廣泛應用到視覺任務。如今,最先進的卷積神經網路演算法在進行圖像識別時,甚至可以超過人類肉眼識別的准確率。遞歸神經網路網路提出於 1990 年,被視為循環神經網路的推廣,遞歸神經網路可以引入門控機制以學習長距離依賴,適用於包含結構關系的機器學習任務,在序列識別方面有重要應用。
深度神經網路和深度學習演算法因為在科研工作與工程任務中都取得了顯著的效果從而大受歡迎。它取代了傳統的手動提取特徵方法,夠端到端地自動提取和學習特徵。而其中取得顯著成功的深度神經網路通常是由於它們成功的架構設計,研究的工作重心從提取特徵轉移到了尋找最優架構上。通常來說,模型的容量越大網路的性能就越好,能夠擬合任意函數。因此為了提升網路性能,網路結構被設計的越來越復雜。例如,VGG-16 約有1.4億浮點數參數,整個網路佔用超過500兆存儲空間,需要153億次浮點操作來處理一個$224\times224$大小的圖像。雖然更深的網路層次和復雜的拓撲結構能夠更有效地學習特徵,但是網路規模的增大意味著人工設計網路時需要花費更多時間來反復試驗,即使是專家也需要大量的資源和時間來創建性能良好的模型。
神經網路架構搜索(NAS)是一種自動化學習網路結構的新方法,用於減少繁重的網路設計成本。目前為止,NAS方法設計的網路在識別任務上的表現已經超過了人工設計的架構。NAS可以視作自動機器學習(AutoML)的子領域,與超參數優化和元學習有明顯的重疊。不同的NAS方法的區別主要在於三個維度:搜索空間、搜索策略和性能評估,我們對此分別進行了調研。
搜索空間:搜索空間定義了網路的所有可選結構和操作,通常指數級大,甚至無界。在設計搜索空間時結合先驗知識,即參考現有的針對當前任務的先進結構設計知識,能夠有效減小搜索空間並簡化搜索。但這也會引入偏好,從而限制網路學習到超越當前人類知識的結構。
搜索策略:定義搜索空間後,搜索策略引導尋找高性能的模型架構,其中的難點是保證探索和利用的平衡。一方面,希望快速找到性能良好的架構,另一方面,需要避免過早收斂到次優的架構。
性能評估:NSA的目的是找到一個在未知數據上具有良好泛化性能的架構,一旦模型生成,就需要對其性能進行評估。直觀的方法是在訓練集上訓練收斂,並在驗證集上得到其性能,但是這種方法會耗費巨大的算力,從而限制了可探索的網路結構。一些先進的方法關注於減小性能評估時的計算代價,但會引入誤差。因此,平衡評價的效率和效果是一個需要研究的問題。
從計算的角度來看,神經網路代表了一個通過一系列操作將輸入變數 x 轉換為輸出變數 y 的函數。基於計算圖語言,神經網路可以表示為一個有向無環圖(DAG),其中每個節點表示一個張量 z ,通過邊連接其父節點 I(k),每條邊表示從候選操作集O中選擇的一個操作 o 。節點 k 的計算公式為:
其中候選操作集合$O$主要包括卷積、池化、激活函數、跳躍連接、拼接、加法等基本操作。此外,為了進一步提高模型的性能,一些先進的人工設計模塊也可以作為候選操作,如深度可分離卷積、膨脹卷積、組卷積。基於操作的類型可以選擇不同的超參數,例如輸入節點選取、卷積核數量、尺寸、步長等。不同的搜索空間設計,選擇和組合操作的方法也不同所以參數化的形式也不一樣。一般來說,一個好的搜索空間應該能夠排除人類的偏見,並且足夠靈活,能夠覆蓋更廣泛的模型架構。
全局搜索空間搜索一個完整的網路結構,具有很高的自由度。最簡單的例子是鏈式搜索空間,見圖1左。固定的數量的節點按順序堆疊,只有前一個節點的輸出提供給後一個節點作為輸入,每個節點代表一個層,並具有指定的操作。右圖引入更復雜的跳躍鏈接和多支路結構,此時當前節點可以結合前面所有節點的輸出作為輸入,使得搜索的自由度顯著增大。許多網路都是多分支網路的特例,比如
1)鏈式網路: ;
2)殘差網路: ;
3)DenseNets:
雖然整體結構搜索很容易實現,但它也有一些缺點。首先,搜索空間的大小與網路深度是指數級關系,尋找泛化性能好的深度網路計算成本高。此外,生成的架構缺乏可遷移性和靈活性,在小型數據集上生成的模型可能不適合較大的數據集。有研究提出,初始架構的選擇在搜索全局結構時十分重要。在適當的初始條件下,可以獲得與單元搜索空間性能相當的架構,但是初始架構選擇的指導原則仍然不明確。
基於單元的搜索空間受啟發於人工設計知識,許多有效的網路結構都會重復使用固定結構,例如在RNNs中重復LSTM塊或堆疊殘差模塊。因此可以只搜索這樣的重復單元(cells),整個神經結構的搜索問題被簡化為在單元搜索空間中搜索最優的單元結構,從而極大的減小搜索空間。大多數研究對比了基於全局搜索空間和單元搜索空間的實驗結果,證明在基於單元的搜索空間中可以獲得良好的性能。單元搜索空間的另一個優勢是能方便地在數據集和任務之間進行泛化,因為通過增減卷積核和單元的數量,架構的復雜性幾乎可以任意改變。
NASNet是最早提出的單元搜索空間之一,也是當前最熱門的選擇,之後的大部分改進只是在此基礎上對操作選擇和單元組合策略進行了少量修改。如圖2所示,它由兩種單元組成,分別為保持輸入特徵維度的標准單元(normal cell),和減小空間維度的簡化單元(rection cell)。每個單元由b個塊組成,每個塊由它的兩個輸入和相應的操作定義。可選的輸入包括前兩個單元的輸出和單元中先前定義的塊的輸出,所以它支持跨單元的跳躍連接。未使用的塊被連接起來並作為單元格的輸出,最終通過預定義好的規則級聯這些單元。
不同於上面將單元結構按照人工定義的宏結構進行連接,層次結構是將前一步驟生成的單元結構作為下一步單元結構的基本組成部件,通過迭代的思想得到最終的網路結構。Hier提出的層次搜索空間,通過合並低層單元生成高級單元實現單元級別和網路級別的同時優化。此方法具體分為3層。第一層包含一系列的基礎操作;第二層通過有向無環圖連接第一層的基礎操作,構建不同的單元,圖結構用鄰接矩陣編碼;第三層是網路級的編碼,決定如何連接第二層的單元,組合成一個完整的網路。基於單元的搜索空間可以看作是這種層次搜索空間的一個特殊情況。
強化學習方法(RL)能夠有效建模一個順序決策的過程,其中代理與環境相互作用,代理學會改善其行為從而使目標回報最大化。(圖3)給出了一個基於強化的NAS演算法的概述。代理通常是一個遞歸神經網路(RNN),它在每一步t執行一個動作 來從搜索空間采樣一個新的樣本,同時接收狀態 的觀察值和環境中的獎勵 ,以更新代理的采樣策略。這種方法非常適合於神經結構搜索,代理的行為是生成神經結構,行為空間是搜索空間,環境是指對代理生成的網路進行訓練和評估,獎勵是訓練後的網路結構對未知數據的預測性能,在最後一個行為之後獲得。
4.2進化演算法
進化演算法(EA)是一種成熟的全局優化方法,具有較高的魯棒性和廣泛的適用性。許多研究使用進化演算法來優化神經網路結構。進化演算法演化了一組模型,即一組網路;在每個世代中,至少從這組模型中選擇一個模型,作為親本在突變後作為生成子代。在對子代進行訓練之後,評估它們的適應度並將它們添加到種群中。
典型的進化演算法包括選擇、交叉、變異和更新等步驟。選擇時一般使用聯賽選擇演算法對父類進行采樣,其中適應性最好的一個作為親本。Lemonade對適應度使用核密度估計,使網路被選擇的概率與密度成反比。交叉方式因編碼方案的不同而不同。突變針對的是親本的部分操作,例如添加或移除層,改變層的超參數,添加跳躍連接,以及改變訓練超參數。對於產生的後代,大多數方法隨機初始化子網路權重,而Lemonade把父網路學習到的權重通過使用網路態射傳遞給其子網路。Real等人讓後代繼承其父母的所有不受突變影響的參數,雖然這種繼承不是嚴格意義上的功能保留,它可以加速學習。生成新的網路的同時需要從種群中移除一些個體。Real等人從群體中移除最差的個體,AmoebaNet移除最老的個體。也有一些方法定期丟棄所有個體,或者完全不移除個體。EENA通過一個變數調節最壞模型和最老模型的刪除概率。
基於代理模型的優化方法(SMBO)用一個代理模型來近似目標函數。即不需要訓練采樣到的網路結構,只需要訓練一個代理模型,使用代理模型預測網路的性能。通常在實踐中只需要得到架構的性能排序,而不一定要計算出具體的損失值,因此代理模型只需要預測相對得分並選出有前途的候選架構。然後只對預測性能好的架構進行評估,用它們的驗證精度更新代理模型,這樣只需要完全訓練少量候選架構,大大減少搜索時間。代理模型通常訓練為最小化平方誤差:
貝葉斯優化(BO)是用於超參數優化的最流行的方法之一。最經典的是基於高斯過程的BO,生成的神經結構的驗證結果可以建模為高斯過程,然而,基於高斯的BO方法在觀察次數上的推理時間尺度是立方的,並且不擅長處理變長神經網路。有些工作使用基於樹或者隨機森林的方法來在非常高維的空間中高效的搜索,並且在很多問題上取得了優異的效果。Negrinho利用其搜索空間的樹形結構,並使用蒙特卡洛樹搜索。雖然沒有完整的比較,但初步的證據表明這些方法可以超越進化演算法。
上面的搜索策略搜是從一個離散的搜索空間提取神經結構樣本。DARTS提出搜索空間的連續鬆弛,在連續可微的搜索空間上搜索神經架構如圖4所示,並使用如下softmax函數來鬆弛離散空間:
鬆弛後,架構搜索的任務轉化為網路架構與神經權值的聯合優化。這兩類參數分別在訓練集和驗證集上交替優化,表示為一個雙層優化問題。
為了對搜索過程進行引導,必須對產生的神經網路性能進行評估。一種直觀的方法是訓練網路至收斂,然後評估其性能。但是,這種方法需要大量的時間和計算資源。因此提出了幾種加速模型評估的方法。
為了減少計算負擔,可以用實際性能的低質近似來估測性能。實現方法包括: 縮短訓練時間、選擇數據集的子集、在低解析度的圖像上訓練、每層使用更少的通道數、堆疊更少的單元結構。在低質條件下搜索到的最優網路或單元,構建出最終結構在數據集上重新訓練,得到目標網路。雖然這些低精度的近似能夠減少訓練花費,但性能被低估的同時不可避免地引入了誤差。最近的研究表明,當這種低質評價與完全評價之間的差異較大時,網路性能的相對排名可能變化很大,並強調這種誤差會逐漸增加。
早停技術最初用於防止過擬合。一些研究通過在訓練初期預測網路性能,在驗證集上預計表現不佳的模型被強制停止訓練,以此來加速模型評估。一種在早期估計網路性能的方法是學習曲線外推法。Domhan 等提出訓練初期對學習曲線進行插值,並終止那些預測性能不好的網路結構的訓練。Swersky等在評估學習曲線的好壞時,把網路架構的超參數作為參考因素。另一種方法根據梯度的局部統計信息實現早期停止,它不再依賴驗證集,允許優化器充分利用所有的訓練數據。
代理模型可以被訓練用預測網路性能。PNAS提出訓練一個代理網路(LSTM)來預測網路結構的性能,他不考慮學習曲線而是基於結構的特點來預測性能,並在訓練時推斷更大的網路結構。SemiNAS是一種半監督NAS方法,利用大量的未標記架構進一步提高搜索效率。不需要在對模型進行訓練,只使用代理模型來預測模型精度。預測網路性能的主要難點是:為加快搜索過程,需要在對較大的搜索空間進行較少的評估的基礎上進行良好的預測。當優化空間過大且難以量化,且對每個結構的評估成本極高時,基於代理的方法就不適用。
代理模型還可以用來預測網路權重。超網路(Hypernetworks)是一種神經網路,被訓練來為各種架構生成網路權值。超網路在搜索過程中節省了候選體系結構的訓練時間,因為它們的權值是通過超網路的預測得到的。Zhang等人提出了一種計算圖表示,並使用圖超網路(GHN)比常規超網路(SMASH)更快更准確地預測所有可能架構的權值。
權重繼承是讓新網路結構繼承之前訓練完成的其他網路結構的權值。其中一種方法是網路態射,一般的網路設計方法是首先設計出一個網路結構,然後訓練它並在驗證集上查看它的性能表現,如果表現較差,則重新設計一個網路。可以很明顯地發現這種設計方法會做很多無用功,因此耗費大量時間。而基於網路態射結構方法能夠在原有的網路結構基礎上做修改,修改後的網路可以重用之前訓練好的權重。其特殊的變換方式能夠保證新的網路結構還原成原網路,因此子網路的表現至少不會差於原網路,並且能在較短的訓練時間內繼續成長為一個更健壯的網路。具體地,網路射態能夠處理任意非線性激活函數,可以添加跳躍連接,並且支持添加層或通道得到更深或更寬的等效模型。經典的網路態射只能使網路變大,這可能導致網路過於復雜,之後提出的近似網路態射通過知識蒸餾允許網路結構減小。進化演算法經常使用基於網路態射的變異,或者直接讓孩子繼承親本的權重,再執行一般變異操作,這樣產生的網路具有一個更好的初始值,而不用重頭開始訓練。
『叄』 論文解讀:Policy Distillation and Value Matching in Multiagent Reinforcement Learning
論文題目: Policy Distillation and Value Matching in Multiagent Reinforcement Learning
論文鏈接 : https://arxiv.org/pdf/1903.06592
研究對象 :多智能體協作系統
研究動機 :現有的關於多智能體強化學習(multi-agent reinforcement learning, MARL)的工作,主要通過集中式評價機制(centralized critic)或智能體之間的通信來共享信息,從而提升學習效果。但是這些工作通常不會研究智能體之間如何通過信息共享來解決維度災難(the curse of dimensionality)的問題。
假設 :多智能體問題可以被分解成一個多任務問題,這樣每個智能體可以只在整體狀態空間的子集中進行搜索,而不用在整個狀態空間中搜索。這種假設的好處是可以大大縮小系統的搜索空間,從而加快學習速度。
主要工作 :
基於以上假設,通過蒸餾(distillation)和值匹配(value-matching)的方法將同質智能體的知識進行整合,提出一種新的multi-agent actor-critic演算法。
所謂同質多智能體,就是狀態空間和動作空間都是一樣的智能體,比如無人機和無人機組成的就是同質智能體,無人機和無人車組成的就是異質多智能體。
問題背景 :
多智能體系統中,智能體獨立地在同一個環境中行動,但是同時彼此也會影響到對方的決策。因此,如果直接將單智能體強化學習技術應用到多智能體中,也就是所謂的independent learning,學習過程將會不穩定。因為傳統的單智能體強化學習假設外部環境的變化是穩定的,而在多智能體系統中,任何一個智能體策略的改變,都會影響到其它智能體的學習。為此,研究人員常常採用一種集中式訓練和分布式執行的架構來實現MARL。但是這就會存在一個問題,就是當智能體的數量增大的時候,整個系統的狀態空間和動作空間會指數增長,智能體的搜索空間也變得特別大。
對每個智能體來說,有的狀態對最優策略的求解並不起作用,因此它並不需要對整個狀態空間進行搜索。一個高效率的搜索可以幫助智能體縮短訓練時間,但是現有的方法卻沒有一個通用的方法來解決這樣的問題,這也是現在MARL研究中智能體數量受到限制的原因之一。
解決思路:
在訓練中,共享智能體之間的經驗數據等信息,通過策略蒸餾(Policy distillation)的思路充分利用並學習新的策略。
關於policy distillation,一開始提出來是為了解決單智能體-多任務強化(mutli-task reinforcement learning, MTRL)問題,論文鏈接: https://arxiv.org/pdf/1511.06295 。因此本文先將單任務-MARL問題看成單智能體-MTRL問題,這樣就可以利用policy distillation方法來尋找最優策略了。
但是怎麼理解這種假設呢?比如三個智能體A、B、C,任務是分別以最短的時間到達指定位置L1、L2、L3,這是一個單任務-MARL問題。現在將這個問題看成一個智能體A,同時具備以最短的時間到達L1、L2、L3的能力,這就是一個單智能體-MTRL問題了。
演算法細節:
由於要用到policy distillation,所以本文用的是隨機策略(stochastic policy)。對於連續動作問題,作者將Soft Actor-Critic演算法由單智能體擴展到多智能體。同時還要將actor的輸出利用softmax函數轉換為概率分布的形式。
Policy Distillation:
蒸餾策略的損失函數為
(1)
注意(1)式中的 都是概率分布,並不是策略本身。從replay buffer中只採樣變數 ,而不採樣 。這是因為replay buffer中的 可能是次優的,而通過這種方式直接從 中遍歷動作空間中的所有動作,更容易找到最優動作。每次蒸餾之後,所有的智能體策略都更新為 (硬更新)。這樣,智能體 和其它智能體就實現了信息的共享。
策略蒸餾的好處是,即使智能體 有的狀態沒被采樣過,但是其它智能體采樣過,那麼這個狀態的信息就可以通過其它智能體策略的蒸餾間接地傳遞到智能體 中。
Value Matching:
光有蒸餾策略對策略進行更新還是不夠的,如果策略學習加入了蒸餾環節,而值函數的學慣用傳統的方法,顯然會產生分歧。因此,也需要對值函數進行調整。
需要指出的是,對於合作任務的同質多智能體,由於其狀態空間和動作空間一致,同時共享一個reward,所以它們的最佳策略是相同的。基於這個前提,作者提出value matching的方法來縮小搜索空間。
傳統的集中式訓練,其值函數的輸入為所有智能體的觀測和動作,如 和 。並且這些輸入的順序一般是固定的,例如對狀態值函數來說,就會滿足 。但是根據本文的設定,即多智能體是同質的,而且共享一個reward函數,因此值函數輸入的順序是不影響輸出的具體值的。
例如對於上圖中的兩個智能體,假設狀態A( )的值函數已經學出來了為 ;狀態B是狀態A的對稱形式, ,根據同質智能體合作任務的假設,這兩個狀態的值函數應該相等,即 。擴展到具有 個智能體的情況下,滿足
(2)
其中 表示 所有順序的排列組成的集合。這樣,一旦某個狀態的值函數學到了,以此為監督信息,訓練value-matching的評價網路,則對應的不同組合的對稱狀態值就都有了。Policy的Distillation和critic的value-matching,合起來就是DVM。
為了訓練這個新的值函數(蒸餾值函數),本文使用的是均方誤差損失函數(MSE),
. (3)
其中, 表示matched value function(匹配值函數)的參數。
和蒸餾策略類似,匹配值函數不需要遍歷所有的狀態就能表徵狀態空間中的知識。本文還指出,很多MARL方法使用Q值函數來作為critic,以上的方法同樣適用,只需要保證狀態和動作是一致的就行。
Multi-agent Soft Actor-Critic (SAC):
Actor-Critic(AC)大家都很熟悉,那什麼是Soft Actor-Critic呢?
SAC最早出現在ICML2018中,論文鏈接: http://proceedings.mlr.press/v80/haarnoja18b/haarnoja18b.pdf
SAC不僅的優化目標不僅是最大化期望累積獎勵,還要最大化信息熵(entropy),這樣有利於平衡智能體的學習和探索。即使動作的選擇足夠隨機,也能保證任務的學習。SAC的actor輸出的是隨機變數,這也是本文為什麼選擇使用SAC框架的原因。接著,作者SAC擴展到多智能體,提出MA-SAC,同時加入前面提到的DVM。
作者在文章中指出,這里使用Policy Distillation方法來訓練策略網路,因此其actor網路輸出的都是概率分布。對於MADDPG這樣的確定性策略的演算法,由於策略網路輸出的是連續的動作值,因此無法計算KL損失。
本文中對於連續動作控制問題,策略函數輸出的是一定均值和方差的高斯分布,然後從這個高斯分布中采樣得到一個連續的動作值。
本文提出的演算法流程如下:
實驗環境:
總結:
本文提出的DVM方法,主要用於同質協作多智能體之間的信息共享和傳遞,通過另外學習一個單獨的蒸餾策略和蒸餾值函數,將多智能體單任務問題看成單智能體多任務問題。作者認為這種方法可以有效降低智能體的狀態搜索空間,從而加快學習速度。即使一些狀態某個智能體沒遇到過,只要其它智能體遇到過就行。蒸餾策略可以將其它智能體學習到的知識整合到一個策略中,從而實現知識在智能體之間的共享。而對於連續動作無法計算KL損失的問題,作者使用MA-SAC框架實現MARL,從而繼續利用DVM來學習。
『肆』 只需要十分之一數據,就能通關四大視覺任務,居然還開源了
Github鏈接:https://github.com/opengvlab
家人們,你們有沒有這種苦惱?
搬一次家就換一次傢具,那些又貴又重的傢具既不好搬運,又不好全部帶走。
下一次又重新購置一遍傢具,浪費錢不說,關鍵是來來回回都做一樣的事情!傢具還沒用過幾次,利用率不高呀!
這種搬家的苦惱,就好比AI領域,做幾個任務就需要開發幾個高度定製的模型,不僅所需的數據採集量非常大,每次還都得從頭標注。既提不起數據的學習效率,又耗費巨大的數據獲取成本。
光是AI前端研究就耗費如此巨大的精力,更別提應用場景中數以萬計的長尾任務。
那怎麼辦?
做一款通用的深度學習模型,才是關鍵。
1 通用,才是技術根本
目前,通用語言模型(GLM)已經取得了令人矚目的進展,比如BERT、T5和GPT-3,它們在應對廣泛的語言下游任務時已經游刃有餘。
相形之下,通用視覺模型(GVM)的研究遲遲未交出一份令人滿意的答卷。
以往的大多數 GVM 研究主要利用一種監督信號來源,如 ViT-G/14 採用有標簽監督,SEER 採用樣本的不同增強之間的對比學習,CLIP採用圖片文本對進行監督。如果是在單個監督信號下進行的預訓練,這幾種範式確實能夠生成在固定場景下表現良好的模型。但如果用在場景多元、任務多樣的下游場景,這些模型就難以勝任了。
比如現在最火的自動駕駛, 汽車 處於移動狀態,既要看到路況,又要看到紅綠燈,還要注意行人,甚至在智能座艙興起後,還要和語言技術、LBS場景服務協同,這么多的感知數據與協同任務,這么多隨機的新任務,無論在體量還是維度方面,都對視覺模型的要求極大提高。
這時,打造一款通用視覺模型,降低研發門檻,尤其是學術界的時間成本、資金成本,才能暢享下游的極致場景體驗。
去年11月,上海人工智慧實驗室聯合商湯 科技 、香港中文大學、上海交通大學發布通用視覺技術體系「書生」(INTERN),一套持續學習框架,用於系統化解決當下人工智慧視覺領域中存在的任務通用、場景泛化和數據效率等一系列瓶頸問題。
前不久,上海人工智慧實驗室聯合商湯 科技 發布通用視覺開源平台OpenGVLab,面向學術界和產業界開放其超高效預訓練模型、超大規模公開數據集,以及業內首個針對通用視覺模型的評測基準。
這些開源技術,究竟有何魔力?
2 大力出奇跡,打造通用視覺模型
「書生」 (INTERN),就是練就通用視覺能力的底層技術。
從技術實現上講,「書生」技術體系由由七大模塊組成,包括三個基礎設施模塊和四個訓練階段構成。
書生(INTERN)結構圖
首先,通用視覺數據系統。
這是一個超大規模的精標數據集,擁有100億個樣本和各種監督信號,並依照四大視覺任務分別設置了四個數據子集:多模態數據GV-D- 10B分類標注的GV-Dc-36M、檢測標注的GV-Dd-3M、分割標注的GV-Ds-143K。
另外,這一數據集還包含11.9萬的標簽系統,不僅涵蓋了自然界的眾多領域和目前計算機視覺研究中的幾乎所有標簽,還擴充了大量細粒度標簽,涵蓋各類圖像中的屬性、狀態等。
而這,就是書生「大力出奇跡」的一大注腳。
其次,通用視覺模型結構。
它是由一個具有CNN和Transformer的統一搜索空間構建而成。
為何要建立這樣的混合結構?要知道,多年來,卷積神經網路(CNN)一直主導著視覺表徵學習,並在圖像分類、目標檢測和語義分割等下游任務中表現出穩定的可遷移性。但最近幾年,Vision Transformer (ViT)僅使用普通的Transformer結構就能作為圖像編碼模型在ImageNet-1k上取得媲美 CNN 的性能,在大規模數據集上 ViT 更是展示出比 CNN 更大的潛力。
盡管ViT在性能上有優點,但純Transformer網路相比卷積神經網路缺乏某些歸納偏置(inctive biases),因此需要更多的數據和計算資源。此外,自注意的計算成本相對於輸入的數量是平方的,限制了對高輸入解析度的應用。因此,將CNN和Transformer和MLP結合起來,平衡效率和有效性兩個方面,才是模型通用的關鍵。
這種兼具更好的泛化能力和更高的模型容量的模型結構名為MetaNet。在MetaNet網路結構族裡面進行網路結構搜索,從而得到最優的一個模型訓練結構。
統一搜索的MetaNet架構:Conv和Trans分別表示卷積和Transformer。C和S為每一階輸出通道數和步幅。
具體來看,MetaNet不僅基於強化學習 的PPO演算法提出了統一搜索架構,並且,為了避免傳統的下采樣模塊會成為模型性能的瓶頸,「書生「結合了包含 local-global-DSM (LG_DSM) 和 global-DSM (G-DSM)的context-aware down-sampling moles (DSM),用來代替原本的下采樣模塊。
因此,在淺層,模型依然使用卷積來提取特徵,但在深層,模型卻能將Transformer模塊和LG-DSM結合使用,以便於更好地提取全局信息。
同時,書生還基於最大的MetaNet-B15蒸餾出了多達13種不同的模型結構,共24種不同的模型權重,現已全部開源。
這些模型結構基本涵蓋了現有市面上大部分的主流backbone,不僅能夠很輕易地遷移到所需要的演算法框架作為新網路預訓練的初始化,而且只需要更短的訓練時間就可以達到比原來更好的訓練效果。
MetaNet 模型與其他模型結構比較,結果如下:
基於卷積、Transformer和兩者混合的結構,分別用C,T和H表示,可以看出,在圖像分類性能上,MetaNet系列的MN-B1,MN-B4和MN-B7,和其他的SOTA模型相比,不僅有更高的精度,還有更低的FLOPS和參數量。
除了分類任務,把MetaNet做為檢測和分割的backbone,在COCO數據集上使用Mask R-CNN結構訓練,結果發現:在模型參數量更小的前提下,MN-B4比Swin-T精度高出2到4個點。另外還在ADE20K數據集上進行了語義分割任務,MN-B4的mIoU指標比Swin-T高出5個點之多。
上述兩個實驗結果表明,MetaNet系列模型結構,在模型精度與計算量之間,都達到了新的SOTA!
最後,通用視覺評測基準。
視覺評測基準GV-B ,就像是一個「擂台」。
如下表所示,測評基準收集了 26 個下游任務數據集,囊括了 4 種視覺任務類型:分類,檢測,分割和深度估計。
在設置上,該基準引入了百分比樣本(percentage-shot),只需要選取整個數據集的一部分,例如 10%、20% ,對比縮小下游任務的訓練數據量後的模型性能。
與傳統的少樣本設置相比,這種百分比樣本設置可以很好地保留原始數據集的長尾分布等屬性,並減輕對樣本選擇的敏感性。因為有一些數據集樣本類別分布不平衡,比如下表中的VOC07+12,百分比數據的劃分方式卻會繼承這種分布情況。
右側三列avg,min和max,分別表示在10%的數據中,不同類別樣本數量的平均值,最小值和最大值。
結合上述數據集和任務類型,論文選取了一些具有代表性的模型來做評測對比。為了比較公平性,該對比使用了這些模型的官方預訓練權重。這些模型包括:
有了超大精標數據集、模型結構,以及評測基準後,已經是萬事俱備,只欠訓練。
書生作為中國古代讀書人的經典形象,代表著一個通過不斷學習、不斷成長進而擁有各方面才能的人格化角色:從基礎的知識技能學習開始,到對多種專業知識觸類旁通,進而成長為擁有通用知識的通才。藉此意象,「書生」(INTERN)系統可通過持續學習,舉一反三,逐步實現通用視覺領域的融會貫通,最終實現靈活高效的模型部署。
下面就來看看,這套系統是如何通過訓練,一步步從生手變成專家再到多面手,最終在各種任務中大顯身手。
第一階段,訓練的是基礎能力,被稱為「基礎模型」(Amateur)。
然而CLIP需要400M的圖像-文本對進行前訓練,囿於極大的數據量,CLIP很難進一步發展。但「書生」提出了一種新的訓練範式,DeCLIP(Data efficient CLIP ),能夠同時使用來自圖像-文本、圖像-圖像和文本-文本對的監督信號進行模型預訓練,從而更有效地實現通用性。
此外,為了充分利用大規模多模態數據獲取基礎模型的優勢,這一階段提出了Upstream-Amateur (Up-A)視覺語言預訓練框架,同時挖掘模態內和跨模態知識。
這一訓練框架分為兩個預訓練階段:Upstream-Amateur for Global Representation (Up-A-G)和Upstream-Amateur for Local Representation (Up-A-L)。
其中,Up-A-G(左)使用群體監督功能,從更豐富的監督中學習。Up-A-L(右)採用局部自我監督學習方法,對訓練好的視覺-語言模型進行調整,從而提高自身在密集預測CV任務中的表現。
Upstream-Amateur的框架
得益於這些內在的監督,DeCLIP-ResNet50可以在ImageNet上實現60.4%的zero-shot 精度第一。這比CLIP-ResNet50高出0.8%,數據使用量少了81%。當遷移到下游任務時,DeCLIP-ResNet50在11個視覺數據集中有8個優於CLIP。
更關鍵的是,訓練完成的Upstream-Amateur為後續的訓練階段提供了一個很高的起點。
第二階段,訓練的是專業能力,被稱為「專家模型」(Expert)。
Up-A階段得到的基礎模型,在一般的視覺識別問題上顯示出優異的性能。但要完全掌握檢測、分割等更具體的任務,還需要在每個任務中進行更專業的預訓練,這就促成了第二個階段的到來,專家模型。
對於每個專家,「書生」採用了一種簡單的多頭設計,每個頭是一個特定數據集的子網路,從一個公共的、共享的「主幹」分支出來。比如Up-E (C)、Up-E (D)和Up-E (S),分別用於圖像分類、對象檢測和語義分割。
第三階段,訓練的是組合能力,被稱為「通才模型」(Generalist)。
上述的多任務是指不同數據集(如ImageNet和CIFAR)的一個視覺問題(如分類),或一個數據集的多個視覺問題(如分類和檢測)。但關鍵是,如何將專家整合到一個統一的模型中,獲得一個更加通用的視覺模型。因此,在預訓練「專家」階段之後,又將「通才」作為第三個預訓練階段,以進一步統一特徵表示。
「書生」提出了一個新的範式,名為「混合參數共享」,從而開發一個名為「多面手」的通才模型。
具體來說,由於專家捕獲的知識是相互關聯的,當專家的特徵融合為一個共享的表示形式時,再利用基於軟共享的跨任務知識轉移和基於硬共享的通用表示學習的方法,在不引入任務沖突的情況下在專家之間傳遞信息(特徵轉移),從而進一步提高了多任務訓練的模型(專家)性能,即「通才」能力。
在結構上,通才模型是所有專家的一個相互關聯的版本,因此可以把每個「專家主幹」稱為「通才分支」。此外,我們還可以根據訓練相應專家的任務將通才中的每個分支分為圖像、補丁和像素。但無論是軟共享還是硬共享,都意味著從專家模型到通才模型的一次躍升。
在經歷了前三個訓練階段模塊後,終於來到最後的任務遷移階段 (Adaptation)。
這個階段屬於技術鏈條的下游,用來解決各式各樣不同類型的任務,而這也是最考驗「書生」舉一反三能力的時刻。它需要在這個階段把之前學到的通用知識,融會貫通地應用到不同特定任務中。
在此之前,很多遷移學習方法確實取得了很多進步,但問題是,這些方法既沒有利用上游預訓練中的隱含信息,也沒有考慮到下游數據在少鏡頭場景中的不足。
因此,「書生」提出了一種Multi-stage Fine-tuning (MF)方法,緩解在數據較少的情況下傳輸的困難,再通過將上游數據編碼成生成模型,即VQ-GAN,可以將預訓練的模型轉移到多個任務和領域,而無需每次都使用上游數據,而這也使得「書生」更具通用性和可擴展性。
多級微調(MF)概述:VQ-GAN模型首先在第一階段使用上游數據進行訓練,然後在第二階段由它重構下游數據。在此之後,第三階段只對新增任務的特定參數進行重新表示的圖像訓練,第四階段則通過下游數據對整個模型進行微調。
至此,一個具有持續學習能力的通用視覺模型終於出世。
而具體有哪些提升,不如看一下更直觀的實驗數據對比!
3 一網打盡視覺領域四大任務
視覺領域,任務繁多,主流任務包含分類、目標檢測、語義分割、深度估計四大類型。
在這四大任務中,最強大的視覺模型還是去年OpenAI發布的CLIP模型。但相比較而言,「書生」則在准確率和數據使用效率上都有所提升。
1、精度表現
通過對「書生」訓練出的模型在GV-B上的評測對比,發現經過多階段預訓練的MetaNet精度表現優異。
在ImageNet等26個最具代表性的下游場景中, 「書生」在分類、目標檢測、語義分割及深度估計等四大任務上,平均錯誤率分別降低了40.2%、47.3%、34.8%和9.4%。
書生(INTERN)與CLIP-R50x16在不同樣本量上的性能對比,正確率展示
2、數據使用效率
「書生」在數據效率方面的提升尤為矚目:只需要1/10的下游數據,就能超過CLIP基於完整下游數據訓練的准確度。
以CLIP-R50x16和Up-G MN-B15在GV-B的評測對比為例,分別在分類、目標檢測、語義分割、深度估計四大類型的26個下游任務數據集上進行了評測,僅使用了10%數據進行訓練的Up-G MN-B15模型,在絕大部分數據集上都能比使用了全部訓練數據的CLIP-R50有更好的精度表現。這表明,經過多階段預訓練的MetaNet具有極強的泛化能力,能夠在僅有少量的訓練樣本情況下,達到SOTA的精度表現。
在下游視覺場景中,小樣本訓練帶來的是極高的訓練速度,以及極低的訓練成本。
例如在花卉種類識別任務上,「書生「只需要每一類型的花卉提供兩個訓練樣本,就能實現99.7%的准確率。
這個花卉數據集由102種英國常見的花組成,每個類別有40至258張圖片。其中包含有很大的比例、姿勢和光線變化。
102個類別的花卉數據集:
https://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html
4 通用視覺平台,已正式開源
如此強大的通用視覺訓練模型已經正式開源!
更關鍵的是,連同上述講到的標簽數據集、網路結構以及評測基準,均在OpenGVLab被統一打包開源。
其中的網路結構除了MetaNet,還包含大家普遍使用的ResNet, MobileNet, ViT, EfficientNet等,以滿足不同場景的應用,賦能計算機視覺。
然而,「書生」的布局不止於此。
OpenGVLab將與上海人工智慧實驗室此前發布的OpenMMLab、OpenDILab一道,共同構築開源體系OpenXLab,持續推進通用人工智慧的技術突破和生態構建。
一位已經使用過此次開源平台的自動駕駛演算法研究員表示:「書生系列模型充分覆蓋了從移動可部署的小模型,到超大規模自研結構,為行業帶來了希望,尤其是它的收斂速度,大幅節省了訓練開銷,是技術落地的一大助推器。「
不僅是自動駕駛領域,智慧城市、智慧醫療、智慧交通,以及千千萬萬其他的智能化領域,都將獲得通用視覺模型帶來的技術紅利。
一位騰訊研究員大贊OpenGVLab:「能把這么大的工作開源出來真的是業界良心。簡單用了一下,確實比CLIP要更fine-grained(細粒度更高)。」
而來自學界的師生也對此感慨有加:「OpenGVLab集成了大量各種量級的state-of-the-art(先進)模型,使用起來更得心應手,省去了對不同codebase、不同模型繁瑣調研的煩惱。」
換句話說,當那些代碼和公式脫去了枯燥乏味的外衣,人們才發現了真正的創造力。而這,也是技術創新與平台開源的魅力所在。
往近了說,用這款通用視覺模型打比賽,怕不是獎金多到飛起!在技術生產力的道路上,又誕生了一個致富小妙招!
目前,「書生」技術報告《INTERN: A New Learning Paradigm Towards General Vision》已在arXiv平台發布。
論文地址:arxiv.org/abs/2111.08687