什么是深度強(qiáng)化學(xué)習(xí):人工智能和深度學(xué)習(xí)的下一步

責(zé)任編輯:cres

作者:James Kobielus

2018-03-02 11:15:27

來源:企業(yè)網(wǎng)D1Net

原創(chuàng)

傳統(tǒng)上,強(qiáng)化學(xué)習(xí)在人工智能領(lǐng)域占據(jù)著一個合適的地位。但強(qiáng)化學(xué)習(xí)在過去幾年已開始在很多人工智能計(jì)劃中發(fā)揮更大的作用。其最佳的應(yīng)用點(diǎn)在于計(jì)算艾真體(agent)在環(huán)境上情境化的決策場景中要采取的最佳行動。

強(qiáng)化學(xué)習(xí)非常適合自主決策,因?yàn)閱慰勘O(jiān)督學(xué)習(xí)或無監(jiān)督學(xué)習(xí)技術(shù)無法完成任務(wù)。
 
傳統(tǒng)上,強(qiáng)化學(xué)習(xí)在人工智能領(lǐng)域占據(jù)著一個合適的地位。但強(qiáng)化學(xué)習(xí)在過去幾年已開始在很多人工智能計(jì)劃中發(fā)揮更大的作用。其最佳的應(yīng)用點(diǎn)在于計(jì)算艾真體(agent)在環(huán)境上情境化的決策場景中要采取的最佳行動。
 
強(qiáng)化學(xué)習(xí)使用試錯法將算法獎勵函數(shù)最大化,它非常適用于IT運(yùn)營管理、能源、醫(yī)療保健、商業(yè)、金融、交通和金融領(lǐng)域的很多自適應(yīng)控制和艾真體自動化應(yīng)用。它用來訓(xùn)練人工智能,它為傳統(tǒng)的重點(diǎn)領(lǐng)域提供支持——機(jī)器人技術(shù)、游戲和模擬——以及邊緣分析、自然語言處理、機(jī)器翻譯、計(jì)算機(jī)視覺和數(shù)字助理等新一代人工智能解決方案。
 
強(qiáng)化學(xué)習(xí)也是物聯(lián)網(wǎng)中自主邊緣應(yīng)用程序開發(fā)的基礎(chǔ)。很多邊緣應(yīng)用程序的開發(fā)(工業(yè)、交通、醫(yī)療和消費(fèi)應(yīng)用)涉及對注入了人工智能的機(jī)器人技術(shù)的構(gòu)建,這些技術(shù)可以在動態(tài)環(huán)境條件下以不同程度的情境自主性進(jìn)行操作。
 
強(qiáng)化學(xué)習(xí)如何工作
 
在這樣的應(yīng)用領(lǐng)域中,邊緣設(shè)備的人工智能大腦必須依賴強(qiáng)化學(xué)習(xí),由于在這里缺少預(yù)先存在的“真實(shí)值(ground truth)”訓(xùn)練數(shù)據(jù)集,他們試圖將累計(jì)獎勵函數(shù)最大化,例如根據(jù)規(guī)范中包含的一組標(biāo)準(zhǔn)組裝一個生產(chǎn)組件。這與其它類型的人工智能的學(xué)習(xí)方式形成對比,后者要么是(像監(jiān)督學(xué)習(xí)一樣)對相對于真實(shí)值數(shù)據(jù)的算法上的損失函數(shù)進(jìn)行最小化,要么(像無監(jiān)督學(xué)習(xí)一樣)對數(shù)據(jù)點(diǎn)之間的距離函數(shù)進(jìn)行最小化。
 
但是,這些人工智能學(xué)習(xí)方法不一定是孤島。最有趣的人工智能趨勢之一是強(qiáng)化學(xué)習(xí)與更高級的應(yīng)用程序中的監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的融合。人工智能開發(fā)人員將這些方法融入到僅憑單一的學(xué)習(xí)方法不足為用的應(yīng)用程序中。
 
例如,監(jiān)督學(xué)習(xí)本身在沒有標(biāo)記的訓(xùn)練數(shù)據(jù)的情況下是無用的,在自動駕駛這樣的應(yīng)用中往往缺乏標(biāo)記的訓(xùn)練數(shù)據(jù),在這里,每個瞬時的環(huán)境情況本質(zhì)上都是未標(biāo)記且獨(dú)特的。同樣,無監(jiān)督學(xué)習(xí)(使用聚類分析來檢測傳感器饋源和其它復(fù)雜的未標(biāo)記數(shù)據(jù)中的模式)并非用來發(fā)現(xiàn)智能終端在真實(shí)世界的決策場景中應(yīng)采取的最佳操作。
 
什么是深度強(qiáng)化學(xué)習(xí)
 
然后是深層強(qiáng)化學(xué)習(xí),這是一種領(lǐng)先的技術(shù),在這種技術(shù)中,自治的艾真體(autonomous agent)使用強(qiáng)化學(xué)習(xí)的試錯算法和累計(jì)獎勵函數(shù)來加速神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)。這些設(shè)計(jì)為很多依靠監(jiān)督和/或無監(jiān)督學(xué)習(xí)的人工智能應(yīng)用程序提供支持。
 
深度強(qiáng)化學(xué)習(xí)是人工智能開發(fā)和培訓(xùn)管道自動化的核心重點(diǎn)領(lǐng)域。它涉及對強(qiáng)化學(xué)習(xí)驅(qū)動的艾真體的使用,以快速探索與無數(shù)體系結(jié)構(gòu)、節(jié)點(diǎn)類型、連接、超參數(shù)設(shè)置相關(guān)的性能權(quán)衡,以及對深度學(xué)習(xí)、機(jī)器學(xué)習(xí)和其他人工智能模型設(shè)計(jì)人員可用的其它選擇。
 
例如,研究人員正在使用深度強(qiáng)化學(xué)習(xí)來快速確定哪一種深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)可能用于解決特征工程、計(jì)算機(jī)視覺和圖像分類中的各種難題。人工智能工具可能會使用從深度強(qiáng)化學(xué)習(xí)獲得的結(jié)果來自動生成最佳CNN,使用TensorFlow、MXNet或PyTorch等深度學(xué)習(xí)開發(fā)工具來完成該任務(wù)。
 
在這方面,看到強(qiáng)化學(xué)習(xí)發(fā)展和培訓(xùn)的開放框架的出現(xiàn)是鼓舞人心的。你在探索深度強(qiáng)化學(xué)習(xí)時可能需要探索下面這些強(qiáng)化學(xué)習(xí)框架,這些框架利用、擴(kuò)展并與TensorFlow和其它深度學(xué)習(xí)和機(jī)器學(xué)習(xí)建模工具接合,這些工具已得到廣泛采用:
 
強(qiáng)化學(xué)習(xí)

框架 它的功能以及在哪里獲得它
TensorFlow Agents TensorFlow Agents提供了通過強(qiáng)化學(xué)習(xí)來構(gòu)建和培訓(xùn)各種智能應(yīng)用程序的工具。該框架是TensorFlow的擴(kuò)展,它將OpenAI Gym接口擴(kuò)展到多個并行環(huán)境,并允許艾真體在TensorFlow中執(zhí)行并執(zhí)行批量計(jì)算。其針對OpenAI Gym環(huán)境的批處理接口完全與TensorFlow集成,以實(shí)現(xiàn)高效的算法實(shí)施。該框架結(jié)合了BatchPPO,這是Proximal Policy Optimization(近端策略優(yōu)化算法)的優(yōu)化實(shí)施。其核心組件包含一個用來在外部過程中構(gòu)建OpenAI Gym環(huán)境的環(huán)境包裝器;使TensorFlow圖的步驟和重置函數(shù)像強(qiáng)化學(xué)習(xí)操作一樣易于使用的批集成;以及在一個訓(xùn)練循環(huán)內(nèi)將TensorFlow批處理和強(qiáng)化學(xué)習(xí)算法融合為單一操作的組件。
Ray RLLib RLLib提供了一個靈活的基于任務(wù)的編程模型,該模型用于構(gòu)建基于艾真體的強(qiáng)化學(xué)習(xí)應(yīng)用程序,以滿足不同的應(yīng)用程序。RLLib由加州大學(xué)伯克利分校開發(fā),目前是第二版,它工作在Ray中,Ray是一個在靈活的,高性能的分布式執(zhí)行框架。RLLib的開發(fā)人員中值得關(guān)注的一個人是Apache Spark的主要創(chuàng)造者之一。
 
RLLib在TensorFlow和PyTorch框架內(nèi)工作,它支持在算法之間共享模型,并與Ray Tune超參數(shù)調(diào)整工具集成在一起。該框架包含一個可合成的,可擴(kuò)展的標(biāo)準(zhǔn)強(qiáng)化學(xué)習(xí)組件庫。每個RLLib組件可以在分布式應(yīng)用程序中得到并行化、擴(kuò)展、組合和重用。
 
RLLib包括三種強(qiáng)化學(xué)習(xí)算法——近端策略優(yōu)化(PPO),Asynchronous Advantage Actor-Critic(A3C)和深度Q網(wǎng)絡(luò)(DQN)——它們都可以在任何OpenAI Gym的馬爾可夫決策過程中運(yùn)行。它為新算法的開發(fā)提供了可擴(kuò)展的最小單元(primitive),用于將RLLib應(yīng)用于新問題的Python API,艾真體超參數(shù)設(shè)置的存儲庫以及可插拔的分布式強(qiáng)化學(xué)習(xí)執(zhí)行策略。它支持用戶創(chuàng)建自定義強(qiáng)化學(xué)習(xí)算法。
Roboschool Roboschool提供通過強(qiáng)化學(xué)習(xí)來構(gòu)建和訓(xùn)練機(jī)器人模擬的開源軟件。它有助于在同一環(huán)境中同時對多個艾真體進(jìn)行強(qiáng)化學(xué)習(xí)訓(xùn)練。你可以在多人訓(xùn)練的情況下訓(xùn)練同一個艾真體同時加入雙方(所以可以與自己一起比賽),使用相同算法訓(xùn)練兩個參與者,或者設(shè)置兩種算法。
 
Roboschool由OpenAI開發(fā),該非營利組織的贊助者包括Elon Musk、Sam Altman、Reid Hoffman和Peter Thiel。它與OpenAI Gym集成在一起,后者是開發(fā)和評估強(qiáng)化學(xué)習(xí)算法的開源工具包。OpenAI Gym與TensorFlow、Theano和其它深度學(xué)習(xí)庫兼容。OpenAI Gym包含數(shù)字計(jì)算、游戲和物理引擎的代碼。
 
Roboschool基于Bullet物理引擎,這是一個開放源代碼許可的物理庫,它已被其它仿真軟件(如Gazebo和Virtual Robot Experimentation Platform(V-REP))使用。它包含幾種強(qiáng)化學(xué)習(xí)算法:Asynchronous Methods for Deep Reinforcement Learning(深度強(qiáng)化學(xué)習(xí)的異步方法)、Actor-Critic with Experience Replay、使用Kronecker-Factored Trust Region的Actor-Critic,Deep Deterministic Policy Gradients(深度確定性策略梯度)、Proximal Policy Optimization(近端策略優(yōu)化)和Trust Region Policy Optimization(信賴域策略優(yōu)化)。
機(jī)器學(xué)習(xí)艾真體(Machine Learning Agent 盡管Unity Technology的機(jī)器學(xué)習(xí)艾真體仍處于測試階段,它能支持游戲、模擬、自動駕駛車輛和機(jī)器人的開發(fā)和強(qiáng)化學(xué)習(xí)訓(xùn)練。 ML-Agents(機(jī)器學(xué)習(xí)艾真體)支持多種強(qiáng)化學(xué)習(xí)訓(xùn)練場景,這其中涉及代理、大腦和獎勵之間的不同配置和交互。該框架的SDK支持單一場景和多代理場景以及分立和連續(xù)的動作空間。它提供了一個Python API來訪問強(qiáng)化學(xué)習(xí)、神經(jīng)元演化和其它的機(jī)器學(xué)習(xí)方法。
 
ML-Agents學(xué)習(xí)環(huán)境由通過與名為“大腦”的自動化組件進(jìn)行交互來執(zhí)行強(qiáng)化學(xué)習(xí)的艾真體組成。每個代理可以擁有一組獨(dú)特的狀態(tài)和觀察結(jié)果,在環(huán)境中采取獨(dú)特的行動,并且可以獲得內(nèi)部事件的獨(dú)特獎勵環(huán)境。艾真體的行為取決于它所鏈接的大腦。每個大腦定義一個特定的狀態(tài)和動作空間,并決定每個與之鏈接的艾真體將采取哪些動作。
 
此外,每個ML-Agents環(huán)境都包含一個單一的“學(xué)院”,“學(xué)院”用于定義環(huán)境的范圍,就引擎配置而言(訓(xùn)練和推理模式下的游戲引擎的速度和渲染質(zhì)量),framekip(每個代理商做出新決策的間隙要跳過多少個引擎步驟)以及全局事件長度(情節(jié)將持續(xù)多長時間)。
 
大腦可能得到設(shè)置的其中一種模式可能是外部的,在這里,行動決策是用TensorFlow或另一個合適的機(jī)器學(xué)習(xí)庫制定的————通過開放的套接字與ML-Agent的Python API進(jìn)行溝通。另一種模式是內(nèi)部的,在這里,艾真體的行動決策是通過使用嵌入到項(xiàng)目里(通過嵌入的TensorFlowSharp艾真體)的受過訓(xùn)練的模型來制定的。
Coach 英特爾的Nervana Coach是一款開源的強(qiáng)化學(xué)習(xí)框架,它用來為游戲、機(jī)器人技術(shù)和其它基于代理的智能應(yīng)用程序提供建模、培訓(xùn)并評估智能代理。
 
Coach提供了一個模塊化沙盒、可重用組件和Python API,用于合成新的強(qiáng)化學(xué)習(xí)算法,并在不同的應(yīng)用領(lǐng)域中培訓(xùn)新的智能應(yīng)用程序。該框架使用OpenAI Gym,以此作為與不同強(qiáng)化學(xué)習(xí)環(huán)境交互的主要工具。它還支對Gym提供外部擴(kuò)展,例如Roboschool、gym-extensions、PyBullet和ViZDoom。 Coach的環(huán)境包裝器允許人們添加其它自定義的強(qiáng)化學(xué)習(xí)環(huán)境來解決其它學(xué)習(xí)問題。
 
該框架能夠在臺式計(jì)算機(jī)上高效地對強(qiáng)化學(xué)習(xí)艾真體進(jìn)行訓(xùn)練,并使用多核CPU處理。它為一些強(qiáng)化學(xué)習(xí)算法提供單線程和多線程實(shí)施,包括Asynchronous Advantage Actor-Critic、Deep Deterministic Policy Gradient(深度確定性策略梯度)、Proximal Policy Optimization(近端策略優(yōu)化)、Direct Future Prediction和Normalized Advantage Function(標(biāo)準(zhǔn)化優(yōu)勢函數(shù))。所有算法都是使用英特爾優(yōu)化的TensorFlow實(shí)現(xiàn)的,有些也可以通過英特爾的Neon深度學(xué)習(xí)框架獲得。
 
Coach涉及到很多強(qiáng)化學(xué)習(xí)艾真體類型的實(shí)施,這包括從單線程實(shí)施到多線程實(shí)施的過渡。它支持為單線程或多線程(同步或異步)的強(qiáng)化學(xué)習(xí)實(shí)施開發(fā)新的艾真體。它支持連續(xù)和離散的動作空間,以及僅包含原始度量的視覺觀察空間或觀察空間。

人工智能開發(fā)人員需要的強(qiáng)化學(xué)習(xí)技能
 
展望未來,人工智能開發(fā)人員將需要沉浸在這些框架和其它框架中實(shí)施的各種強(qiáng)化學(xué)習(xí)算法中。你還需要加深對多艾真體強(qiáng)化學(xué)習(xí)架構(gòu)的理解,這其中有很多架構(gòu)大量利用老牌的博弈論研究機(jī)構(gòu)。你還要熟悉深度強(qiáng)化學(xué)習(xí),以此來發(fā)現(xiàn)計(jì)算機(jī)視覺應(yīng)用中與名為“模糊”的攻擊方法相關(guān)的安全漏洞。
 
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號