从NeurIPS 2018看AI发展路线!
去年9月份的時候,我發表過一份技術報告,闡述了我認為人工智能最重要的挑戰,大概有以下四個方面:
·可伸縮性(Scalability)計算或存儲的成本不與神經元的數量成二次方或線性比例的神經網絡;
·持續學習(Continual Learning)那些必須不斷地從環境中學習而不忘記之前獲得的技能和重置環境能力的代理;
·元學習(Meta-Learning)為了改變自己的學習算法而進行自我參照的代理;
·基準(Benchmarks)具有足夠復雜的結構和多樣性的環境,這樣智能代理就可以派上用場了,而無需對強感應偏差進行硬編碼;
在2018年NeurIPS會議期間,我調查了目前其他研究人員關于這些問題的方法和觀點,以下是報告的具體內容:
可伸縮性
很明顯,如果我們用人工神經網絡來實現人類大腦中所發現的1000億個神經元,標準的二維矩陣乘積并沒有多大的用處。
?
模塊層由一個模塊池和一個控制器組成,控制器根據輸入來選擇要執行的模塊
為了解決這個問題,我在2018年的NeurIPS上發表了研究性論文《模塊化網絡:學習分解神經計算》。不評估對于每個輸入元素的整個ANN,而是將網絡分解為一組模塊,其中只使用一個子集,這要取決于輸入。這個過程是受人腦結構的啟發,在其中我們使用了模塊化,這也是為了改善對環境變化的適應能力和減輕災難性的遺忘。在這個方法中,我們學習到了這些模塊的參數,以及決定哪些模塊要一起使用。以往有關條件計算的文獻都記載著許多模塊崩潰的問題,即優化過程忽略了大部分可用的模塊,從而導致沒有用最優的解決辦法。我們基于期望最大化的方法可以防止這類問題的發生。
遺憾的是,強行將這種分離劃分到模塊有其自身的問題,我們在《模塊化網絡:學習分解神經計算》中相繼討論了這些問題。相反地,我們可能會像我在關于稀疏性的技術報告中討論的那樣,設法在權重和激活中利用稀疏性和局部性。簡而言之,我們只想對少數非零的激活執行操作,丟棄權重矩陣中的整行。此外,如果連通性是高度稀疏的,那么我們實際上可以將二次方成本降到一個很小的常數。這種的條件計算和未合并的權值訪問在當前的GPU上實現的成本非常的高,通常來說不太值得操作。
Nvidia處理條件計算和稀疏性
NVIDIA一個軟件工程師說,目前還沒有計劃建造能夠以激活稀疏性的形式而利用條件計算的硬件。主要原因似乎是通用性與計算速度之間的權衡。為這個用例搭建專用硬件所花費的成本太高了,因為它有可能會限制其它機器學習的應用。相反,NVIDIA目前從軟件的角度更加關注權重的稀疏性。
GraphCore處理的條件計算和稀疏性
GraphCore搭建的硬件允許在靠近處理單元的緩存中向前遷移期間存儲激活,而不是在GPU上的全局存儲內存中。它還可以利用稀疏性和特定的圖形結構,在設備上編譯并建立一個計算圖形。遺憾的是,由于編譯成本太高,這個結構是固定的,不允許條件計算。
作為一個整體的判斷,對于范圍內的條件計算似乎沒有對應的硬件解決方案,目前來說我們在很大程度上必須堅持多機器并行的方式。在這方面,NeurIPS發布了一種全新的分配梯度計算方法—Mesh-Tensorflow,該方法不僅可以橫跨多機進行計算,還可以跨模型計算,甚至允許更大的模型以分布式的方式進行訓練。
持續學習
長期以來,我一直主張基于深度學習的持續學習系統,即它們能夠不斷地從經驗中學習并積累知識,當新任務出現的時候,這些系統可以提供之前積累的知識以幫助學習。本身,它們需要能夠向前遷移,以及防止災難性的遺忘。NeurIPS的持續學習研討會正是討論這些問題的。雖然這兩個標準也許是不完整的,但是多個研究者(Mark Ring,Raia Hadsell)提出了一個更大的列表:
·向前遷移
·向后遷移
·無災難性的遺忘
·無災難性的沖突
·可擴展(固定的存儲和計算)
·可以處理未標記的任務邊界
·能夠處理偏移
·無片段
·無人控制
·無可重復狀態
在我看來,解決這個問題的方法有六種:
·(部分)重放緩沖區
·重新生成以前經驗的生成模型
·減緩重要權重的訓練
·凍結權重
·冗余(更大的網絡->可伸縮性)
·條件計算(->可擴展性)
以上這些方法的任何一個都不能處理上述持續學習列表里的所有問題。遺憾的是,這在實踐中也是不可能的。在遷移和內存或計算之間總是有一個權衡,在災難性遺忘和遷移或者內存或者計算之間也總是有一個權衡。因此,很難完全地、定量地衡量一個代理的成功與否。相反,我們應該建立基準環境,要求持續學習代理具備我們所需要的能力,例如,在研討會上展示的基于星際爭霸(Starcraft)的環境。
此外,Raia Hadsell認為,持續學習涉及到從依賴i.i.d.(Independent and Identically distributed)數據的學習算法轉向從非平穩性分布中學習。尤其是,人類擅長逐步地學習而不是IID。因此,當遠離IID需求時,我們有可能能夠解鎖一個更強大的機器學習范式。
論文《通過最大限度地遷移和最小化干擾的持續學習(Continual Learning by Maximizing Transfer and Minimizing Interference)》表明REPTILE(MAML繼承者)和減少災難性遺忘之間有著一個有趣的聯系。從重放緩沖區中提取的數據點的梯度(顯示在REPTILE)之間的點積導致梯度更新,從而最小化干擾并減少災難性遺忘。
討論小組內有人認為,我們應該在控制設置環境中進行終身學習實驗,而不是監督學習和無監督學習,以防止算法的開發與實際應用領域之間的任何不匹配。折現系數雖然對基于貝爾曼方程(Bellman?Equation)的學習是有幫助的,但對于更現實的增強學習環境設置來說可能存在問題。此外,任何學習,特別是元學習,都會由于學分分配而受到固有的限制。因此,開發具有低成本學分分配的算法是智能代理的關鍵。
元學習
元學習就是關于改變學習算法其本身。這可能是改變一個內部優化循環的外部優化循環,一個可以改變自身的自引用算法。許多研究人員還關注著快速適應性,即正向遷移,到新的任務或者環境等等。如果我們將一個學習算法的初始參數看作它自己的一部分,則可以將其視為遷移學習或者元學習。Chelsea Finn的一個最新算法—MAML(未知模型元學習法),他對這種快速適應性算法產生了極大的興趣。例如,MAML可以用于基于模型的強化學習,其中的模型可以快速地進行動態改變。
?
在進化策略梯度(Evolved Policy Gradients ,EPG)中,損失函數使用隨機梯度下降法優化策略的參數,同時損失函數的參數也改進了。
一個有趣的想法是代理軌跡和策略輸出的可區分損失函數的學習。這允許在使用SGD來訓練策略時,對損失函數的幾個參數進行改進。與此同時,進化策略梯度的作者們表明了,學習到的損失函數通過回報函數進行了泛化,并允許有快速適應性。它的一個主要問題是學分分配非常緩慢:代理必須使用損失函數進行完全地訓練,以獲得元學習者的平均回報(適合度)。
?
我在元學習研討會上的另一個有趣發現是元學習者損失情況的結構。Luke Metz在一篇關于學習優化器的論文中指出,隨著更新步驟的展現,優化器參數的損失函數變得更加復雜。我懷疑這是元學習算法的普遍行為,參數值的微小改變可以關系到最終表現中的巨大變化。我對這種分析非常感興趣。在學習優化的案例中,Luke通過變分優化(Variational Optimization)—進化策略的一種原則性解釋,以此緩和損失情況來解決這個問題。
基準
目前大多數強化學習算法都是以游戲或模擬器為基準環境的,比如ATARI 或者是Mujoco。這些是簡單的環境,與現實世界中的復雜性幾乎沒什么相似之處。研究人員經常嘮叨的一個主要問題是,我們的算法來自低效的樣本。通過非策略優化和基于模型的強化學習,可以更有效地利用現有數據,從而部分解決這一問題。然而,一個很大的因素是我們的算法沒有之前在這些基準中使用過的經驗。我們可以通過在算法中手工歸納偏差來避開這一問題,這些算法反映了某些先驗知識,但是搭建允許在未來可以利用知識積累的環境有可能更有趣。據我所知,直到現在還沒有這種基準環境。雷艇(Minecraft)模擬器可能是最接近這些要求的了。
?
持續學習星際爭霸(Starcraft)環境是一個以非常簡單的任務開始的課程。對于如此豐富的環境,另外一種選擇是建立明確的課程,如前面提到的星際爭霸環境,它是由任務課程組成的。這在一定程度上也是Shagun Sodhani在他的論文《Environments for Lifelong Reinforcement Learning》。他在清單上列出了:
·環境多樣性
·隨機性
·自然性
·非平穩性
·多形式
·短期和長期目標
·多代理
·因果相互影響
游戲引擎開發商Unity3D發布了一個ML-Agents工具包,用于在使用Unity的環境搭建中進行訓練和評估代理。一般來說,現實環境搭建的一個主要問題是需求與游戲實際設計有本質的不同:為了防止過擬合,重要的是,在一個廣闊的世界里,物體看起來都是不一樣的,因此不能像在電腦游戲中經常做的那樣被復制。這意味著為了真正的泛化,我們需要生成的或精心設計的環境。
最后,我相信可以使用計算來生成非平穩環境,而不是通過手動來搭建。例如,這有可能是一個具有與現實世界類似環境的物理模擬器。為了節省計算資源,我們也可以從基于三維像素的簡化工作開始。如果這個模擬過程呈現了正確的特性,我們有可能可以模擬一個類似于進化的過程,來引導一個非平穩的環境,開發出許多相互影響的生命形式。這個想法很好地擬合了模擬假設理論,并且與Conway’s Game of Life有一定的聯系。這種方法的主要問題是產生的復雜性與人類已知的概念沒有相似點。與此同時,由此產生的智能代理將無法遷移到現實世界中。最近,我發現Stanley和Clune的團隊在他們的論文《假想:不斷地生成越來越復雜和多樣化的學習環境》中已經部分地實現了這個想法。環境是非平穩性的,可以被看作是一個用于最大化復雜性和代理學習進程的代理。他們將這一觀點稱為開放式學習,我建議你閱讀一下這篇文章。
?
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的从NeurIPS 2018看AI发展路线!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全面剖析 Knative Eventin
- 下一篇: 奉上一份云上数据安全保护指南