深度強化學習你知道是什么嗎
強化學習非常適合實現(xiàn)自主決策,相比之下監(jiān)督學習與無監(jiān)督學習技術則無法獨立完成此項工作。強化學習在人工智能領域長久以來一直扮演著小眾性角色。然而,過去幾年以來,強化學習正越來越多地在各類AI項目當中發(fā)揮令人矚目的作用。其最突出的應用平臺正是在計算代理的環(huán)境背景性決策場景當中,負責判斷最佳行動。
憑借著試錯法來最大程度提升算法報酬函數(shù),強化學習得以在IT運營管理、能源、醫(yī)療衛(wèi)生、同類型、金融、交通以及貿易等領域構建起大量自適應性控制與多代理自動化應用。其可負責對傳統(tǒng)重點領域(機器人、游戲以及模擬)的AI方案進行訓練,并有能力在邊緣分析、自然語言處理、機器翻譯、計算機視覺以及數(shù)字化助手方面帶來新一代AI解決方案。
強化學習亦成為物聯(lián)網自主邊緣應用發(fā)展的前提性基礎。在工業(yè)、交通運輸、醫(yī)療衛(wèi)生以及消費者應用等方面,大部分邊緣應用的開發(fā)工作皆需要構建AI驅動型機器人,從而在動態(tài)環(huán)境之下根據(jù)不同情境信息以自主方式完成操作。
強化學習的工作原理
在這樣的應用領域當中,邊緣裝置當中的AI大腦必須依賴于強化學習技術; 更具體地講,其必須有能力在缺少預置“基于真實”的訓練數(shù)據(jù)集的前提下,最大程度積累報酬函數(shù)——例如根據(jù)規(guī)范當中包含的一組標準找到問題解決方法。這種作法與其它類型的人工智能學習方式——例如監(jiān)督學習(立足真實數(shù)據(jù)最大程度降低算法丟失函數(shù))以及無監(jiān)督學習(立足各數(shù)據(jù)點最大程度降低距離函數(shù))——正好相反。
然而,AI學習方法之間并不一定必須彼此孤立。AI發(fā)展趨勢當中最值得關注的一點在于,強化學習正在各類更為先進的應用當中與監(jiān)督及無監(jiān)督學習相融合。AI開發(fā)者們努力將這些方法整合至應用程序當中,旨在使其實現(xiàn)單一學習方法也不足以達到的新高度。
舉例來說,在不具備標記訓練數(shù)據(jù)的情況下,監(jiān)督學習本身無法起效——這一點在自動駕駛應用當中體現(xiàn)得尤為顯著。由于每個瞬時環(huán)境情況基本上獨立存在且未經預先標記,學習方法必須自行找到解決辦法。同樣的,無監(jiān)督學習(利用聚類分析來檢測傳感器源以及其它復雜未標記數(shù)據(jù)中的模式)也無法在現(xiàn)實世界當中的決策場景內,準確識別智能端點并采取最佳操作。
深度強化學習是什么
接下來是深度強化學習,這種領先技術當中的自主代理利用強化學習的試錯算法與累加報酬函數(shù)以加速神經網絡設計。這些設計能夠極大支持各類依賴于監(jiān)督與/或無監(jiān)督學習的AI應用程序。
深度強化學習已經成為AI開發(fā)以及訓練管道當中的核心關注區(qū)域。其利用強化學習驅動代理以快速探索各類架構、節(jié)點類型、連接、超參數(shù)設置以及深度學習、機器學習乃至其它AI模型,并對這些供設計人員使用的選項進行相關效能權衡。
舉例來說,研究人員可利用深度強化學習從無數(shù)深度學習卷積神經網絡(簡稱CNN)架構當中快速確定最適合當前特征工程、計算機視覺以及圖像分類任務的選項。由深度強化學習提供的結果可供AI工具用于自動生成最優(yōu)CNN,并配合TensorFlow、MXNet或者PyTorch等深度學習開發(fā)工具完成具體任務。
在這方面,強化學習開發(fā)與訓練開放框架的持續(xù)涌現(xiàn)無疑令人振奮。若您希望深入了解強化學習,那么以下強化學習框架無疑值得關注——通過運用這些框架并對其加以擴展,您將能夠將其與TensorFlow以及其它得到廣泛應用的深度學習與機器學習建模工具進行對接:
強化學習框架
具體作用以及獲取方式
TensorFlow Agents:TensorFlow Agents 提供多種工具,可通過強化學習實現(xiàn)各類智能應用程序的構建與訓練。作為TensorFlow項目的擴展方案,這套框架能夠將OpoenAI Gym接口擴展至多個并行環(huán)境,并允許各代理立足TensorFlow之內實現(xiàn)以執(zhí)行批量計算。其面向OpoenAI Gy環(huán)境的批量化接口可與TensorFlow實現(xiàn)全面集成,從而高效執(zhí)行各類算法。該框架還結合有BatchPPO,一套經過優(yōu)化的近端策略優(yōu)化算法實現(xiàn)方案。其核心組件包括一個環(huán)境打包器,用于在外部過程中構建OpenAI Gym環(huán)境; 一套批量集成,用于實現(xiàn)TensorFlow圖步并以強化學習運算的方式重置函數(shù); 外加用于將TensorFlow圖形批處理流程與強化學習算法納入訓練特內單一卻步的組件。
Ray RLLib:RLLib 提供一套基于任務的靈活編程模式,可用于構建基于代理且面向多種應用場景的強化學習應用程序。RLLib由伯克利大學開發(fā),目前已經迎來版本2,其立足Ray實現(xiàn)運行。Ray是一套靈活且高性能的分布式執(zhí)行框架。值得一提的是,RLLib開發(fā)者團隊中的一位成員曾經擔任Apache Spark的主要締造者職務。
RLLib 可立足TensorFlow與PyTorch框架之內起效,能夠實現(xiàn)不同算法間的模型共享,并可與Ray Tune超參數(shù)調整工具進行集成。該框架結合有一套可組合且可擴展的標準強化學習組件庫。各個RLLib組件能夠在分布式應用程序當中實現(xiàn)并行化、擴展、組合與復用。
RLLib當中包含三種強化學習算法——近端策略優(yōu)化(簡稱PPO)、異步優(yōu)勢Actor-Critic(簡稱A3C)以及Deep Q Networks(簡稱DQN),三者皆可運行在任意OpenAI Gym Markov決策流程當中。其還為各類新算法的開發(fā)工作提供可擴展原語,用于將RLLib應用于新問題的Python API、一套代理超參數(shù)設置庫以及多種可插拔分布式強化學習執(zhí)行策略。其亦支持由用戶創(chuàng)建自定義強化學習算法。
Roboschool:Roboschool 提供開源軟件以通過強化學習構建并訓練機器人模擬。其有助于在同一環(huán)境當中對多個代理進行強化學習訓練。通過多方訓練機制,您可以訓練同一代理分別作為兩方玩家(因此能夠自我對抗)、使用相同算法訓練兩套代理,或者設置兩種算法進行彼此對抗。
Roboschool由OpenAI開發(fā)完成,這一非營利性組織的背后贊助者包括Elon Musk、Sam Altman、Reid Hoffman以及Peter Thiel。其與OpenAI Gym相集成,后者是一套用于開發(fā)及評估強化學習算法的開源工具集。OpenAI Gym與TensorFlow、Theano以及其它多種深度學習庫相兼容。OpenAI Gym當中包含用于數(shù)值計算、游戲以及物理引擎的相關代碼。
Roboschool基于Bullet物理引擎,這是一套開源許可物理庫,并被其它多種仿真軟件——例如Gazebo與Virtual Robot ExperimentaTIon Platform(簡稱V-REP)所廣泛使用。其中包含多種強化學習算法,具體以怨報德 異步深度強化學習方法、Actor-CriTIc with Experience Replay、Actor- CriTIc using Kronecker-Factored Trust Region、深度確定性策略梯度、近端策略優(yōu)化以及信任域策略優(yōu)化等等。
Machine Learning Agents:盡管尚處于beta測試階段,但Unity Technology的Machine Learning Agents已經能夠面向游戲、模擬、自動駕駛車輛以及機器人實現(xiàn)智能代理的開發(fā)與強化學習訓練。ML-Agents支持多種強化學習訓練場景,具體涉及各類代理、大腦以及報酬機制的配置與彼此交互。該框架的SDK支持單代理與多代理場景,亦支持離散與連續(xù)操作空間。其提供Python API以訪問強化學習、神經進化以及其它機器學習方法。
ML-Agents學習環(huán)境包括大量通過與自動化組件(即‘大腦’)交互以實現(xiàn)執(zhí)行的代理。各個代理皆能夠擁有自己的一套獨特狀態(tài)與觀察集,在環(huán)境當中執(zhí)行特定操作,并在環(huán)境之內接收與事件相關的獨特報酬。代理的操作由與之對接的大腦決定。每個大腦負責定義一項特定狀態(tài)與操作空間,并決定與之相連的各代理應采取哪項操作。
除此之外,每個ML-Agents環(huán)境還包含一個獨立“學院”,用于定義環(huán)境范圍——具體包括引擎配置(訓練與推理模式下游戲引擎的速度與渲染質量)、幀數(shù)(每個代理作出新決策的間隔當中跳過多少引擎步驟)以及全局事件長度(即事件將持續(xù)多長時間)。
在大腦能夠設定的各類模式當中,外部模式最值得一提——其中的操作決策利用TensorFlow或者其它選定的機器學習庫制定,且通過開放套接配合ML-Agents的Python API實現(xiàn)通信。同樣的,內部模式中的代理操作決策則利用一套通過嵌入TensorFlowSharp代理接入項目的預訓練模型負責制定。
Coach:英特爾公司的Nervana Coach是一套開源強化學習框架,負責對游戲、機器人以及其它基于代理的智能應用進行智能代理的建模、訓練與評估。
Coach 提供一套模塊化沙箱、可復用組件以及用于組合新強化學習算法并在多種應用領域內訓練新智能應用的Python API。該框架利用OpenAI Gym作為主工具,負責與不同強化學習環(huán)境進行交換。其還支持其它外部擴展,具體包括Roboschool、gym-extensions、PyBullet以及ViZDoom。Coach的環(huán)境打包器允許用戶向其中添加自定義強化學習環(huán)境,從而解決其它學習問題。
該框架能夠在桌面計算機上高效訓練強化學習代理,并利用多核CPU處理相關任務。其能夠為一部分強化學習算法提供單線程與多線程實現(xiàn)能力,包括異步優(yōu)勢Actor-CriTIc、深度確定性策略梯度、近端策略優(yōu)化、直接未來預測以及規(guī)范化優(yōu)勢函數(shù)。所有算法皆利用面向英特爾系統(tǒng)作出優(yōu)化的TensorFLow完成,其中部分算法亦適用于英特爾的Neon深度學習框架。
Coach 當中包含多種強化學習代理實現(xiàn)方案,具體包括從單線程實現(xiàn)到多線程實現(xiàn)的轉換。其能夠開發(fā)出支持單與多工作程序(同步或異步)強化學習實現(xiàn)方法的新代理。此外,其還支持連續(xù)與離散操作空間,以及視覺觀察空間或僅包含原始測量指標的觀察空間。
AI開發(fā)者需要掌握的強化學習技能
展望未來,AI開發(fā)者們需要盡可能掌握上述框架以及其中所使用的各類強化學習算法。此外,您還需要強化自身對于多代理強化學習架構的理解,因為其中多種框架都大量利用前沿博弈論研究成果。最后,您還需要熟悉深度強化學習知識,并借此發(fā)現(xiàn)計算機視覺應用程序當中所出現(xiàn)的“模糊(fuzzing)”攻擊及相關安全漏洞。