James Kobielus Charles
人工智能即將成為主流的革命性技術(shù),而開發(fā)人員現(xiàn)在已擁有了可以開始使用這種技術(shù)的工具。
2018年人工智能領(lǐng)域最值得關(guān)注的趨勢(shì)之一,就是強(qiáng)化學(xué)習(xí)的逐漸成熟,已成為構(gòu)建和訓(xùn)練統(tǒng)計(jì)模型以投入實(shí)際使用的主流方法。
正如我在2018年年初時(shí)所談到的,強(qiáng)化學(xué)習(xí)在企業(yè)人工智能項(xiàng)目中扮演著越來(lái)越重要的角色。該技術(shù)已經(jīng)突破了傳統(tǒng)的機(jī)器人、游戲和仿真應(yīng)用領(lǐng)域,在IT運(yùn)營(yíng)管理、能源、醫(yī)療保健、商業(yè)、運(yùn)輸和金融等領(lǐng)域的前沿人工智能應(yīng)用中也大展身手。它甚至成為社交媒體、自然語(yǔ)言處理、機(jī)器翻譯、計(jì)算機(jī)視覺、數(shù)字助理等新一代人工智能解決方案不可或缺的組成部分。
為了加強(qiáng)強(qiáng)化學(xué)習(xí)算法在企業(yè)人工智能中的應(yīng)用,開發(fā)人員需要用到在這些項(xiàng)目上進(jìn)行協(xié)作以及將得到的模型部署到生產(chǎn)環(huán)境中的工具。在這方面,業(yè)界最近出現(xiàn)了一些重要的應(yīng)用案例說(shuō)明,提供給強(qiáng)化學(xué)習(xí)人工智能計(jì)劃的開源工作臺(tái)、庫(kù)和Devops流水線已經(jīng)成熟。
迭代強(qiáng)化學(xué)習(xí)開發(fā)工作臺(tái)
不斷發(fā)展的強(qiáng)化學(xué)習(xí)正悄悄地滲透到我們的生活中——通過(guò)我們認(rèn)為理所當(dāng)然的主流應(yīng)用(比如多人在線游戲),或者通過(guò)非常前衛(wèi)的應(yīng)用(比如機(jī)器人),以至于我們甚至意識(shí)不到該技術(shù)正在悄悄地滲透到主流中。強(qiáng)化學(xué)習(xí)代理已經(jīng)達(dá)到了能夠像超人那樣玩游戲,例如開放人工智能五子棋比賽。
開發(fā)人員可以利用越來(lái)越多的開源強(qiáng)化學(xué)習(xí)框架來(lái)進(jìn)行游戲和機(jī)器人開發(fā),這包括OpenAI的Roboschool、Unity技術(shù)公司的機(jī)器學(xué)習(xí)代理,以及英特爾的Nervana教練。還可以使用能夠應(yīng)對(duì)各種挑戰(zhàn)的開源強(qiáng)化學(xué)習(xí)框架。例如,谷歌的TensorFlow代理支持高效的分批強(qiáng)化學(xué)習(xí)工作流,UC Berkeley的Ray RLLib提供了一個(gè)靈活的基于任務(wù)的編程模型,用于在TensorFlow和PyTorch中開發(fā)基于代理的強(qiáng)化學(xué)習(xí)應(yīng)用程序。
很多人工智能開發(fā)人員的建模工具包所缺少的是一個(gè)快速的迭代強(qiáng)化學(xué)習(xí)工作臺(tái),它集成了現(xiàn)有的人工智能框架,并且能解決很多建模和訓(xùn)練難題。對(duì)此,谷歌最近發(fā)布了Dopamine,這是一個(gè)基于TensorFlow的框架和代碼庫(kù),用于在Python 2.7中快速迭代強(qiáng)化學(xué)習(xí)算法原型。Dopamine在GitHub的“最酷開源項(xiàng)目”內(nèi)部排名中名列前茅,它支持以下核心功能:
● 根據(jù)新的研究思路來(lái)開發(fā)強(qiáng)化學(xué)習(xí)實(shí)驗(yàn):Dopamine包括緊湊的、詳細(xì)說(shuō)明的Python代碼,其重點(diǎn)放在Arcade學(xué)習(xí)環(huán)境(一種成熟而且容易理解的基準(zhǔn)方法)上,以及在單個(gè)GPU環(huán)境中執(zhí)行的四個(gè)基于價(jià)值的代理:Deep Q-Networks(DQN)、C51、一個(gè)精心設(shè)計(jì)的Rainbow代理的簡(jiǎn)化版本,以及Implicit Quantile網(wǎng)絡(luò)代理。
● 從強(qiáng)化學(xué)習(xí)實(shí)驗(yàn)中獲得可再現(xiàn)的結(jié)果:Dopamine包括完整的測(cè)試套件,并且為利用Arcade學(xué)習(xí)環(huán)境實(shí)現(xiàn)了標(biāo)準(zhǔn)的經(jīng)驗(yàn)框架。
● 根據(jù)已建立的訓(xùn)練方法對(duì)強(qiáng)化學(xué)習(xí)結(jié)果進(jìn)行基準(zhǔn)測(cè)試:Dopamine包括由Arcade學(xué)習(xí)環(huán)境支持的、在60個(gè)游戲中所提供的4個(gè)代理的所有訓(xùn)練數(shù)據(jù),可作為使用我們的框架所訓(xùn)練的代理的Python文件,也可以作為JSON數(shù)據(jù)文件,以便與其他框架下訓(xùn)練過(guò)的代理進(jìn)行比較,還包括一個(gè)網(wǎng)站,用于為所有提供的代理在所有60個(gè)游戲中進(jìn)行可視化訓(xùn)練。
● 為強(qiáng)化學(xué)習(xí)開發(fā)團(tuán)隊(duì)使用框架時(shí)提供加速器:Dopamine包括一組colabs,闡明怎樣在框架中創(chuàng)建和訓(xùn)練強(qiáng)化學(xué)習(xí)代理,以及怎樣進(jìn)行基準(zhǔn)測(cè)試。它還包括可下載的訓(xùn)練深度網(wǎng)絡(luò)、原始統(tǒng)計(jì)日志和用于Tensorboard繪圖的Tensorflow事件文件。
模塊化強(qiáng)化學(xué)習(xí)代理開發(fā)庫(kù)
強(qiáng)化學(xué)習(xí)的進(jìn)展依賴于構(gòu)建能夠在各種真實(shí)場(chǎng)景中自主采取最佳行動(dòng)的智能代理。
人工智能研究人員正在不斷推動(dòng)智能和分布式代理(由訓(xùn)練過(guò)的強(qiáng)化學(xué)習(xí)模型提供支持)的發(fā)展。例如,UC Berkeley最近發(fā)表了關(guān)于分布式代理環(huán)境中加速循環(huán)迭代強(qiáng)化學(xué)習(xí)的研究結(jié)果。這涉及到一次訓(xùn)練一個(gè)代理模塊,而其他代理模塊遵循簡(jiǎn)單的腳本行為,然后環(huán)境“用神經(jīng)網(wǎng)絡(luò)策略替換另一個(gè)模塊的腳本組件,在先前訓(xùn)練過(guò)的模塊保持不變的情況下繼續(xù)訓(xùn)練?!?/p>
為了加速?gòu)?qiáng)化學(xué)習(xí)優(yōu)化智能人工智能機(jī)器人的開發(fā),谷歌的DeepMind小組最近開源了TRFL,它是用于在TensorFlow中開發(fā)強(qiáng)化學(xué)習(xí)代理的一個(gè)新構(gòu)件庫(kù)。它包括算法、損失函數(shù)和其他強(qiáng)化學(xué)習(xí)操作,DeepMind的研究工程團(tuán)隊(duì)已經(jīng)在內(nèi)部成功地將其應(yīng)用于強(qiáng)化學(xué)習(xí)代理(例如,DQN、深層確定性策略梯度(DDPG)和重要性加權(quán)參與者學(xué)習(xí)器體系結(jié)構(gòu))。使用一致的API,這些構(gòu)建模塊可以用來(lái)構(gòu)建新的強(qiáng)化學(xué)習(xí)代理。
DeepMind還開源了完整的強(qiáng)化學(xué)習(xí)代理實(shí)現(xiàn),包括表示價(jià)值和策略的深度網(wǎng)絡(luò)計(jì)算圖等組件,以及環(huán)境的學(xué)習(xí)模型、偽獎(jiǎng)勵(lì)函數(shù)和重放系統(tǒng)等。這樣做是為了幫助強(qiáng)化學(xué)習(xí)社區(qū)更快地識(shí)別和修復(fù)這些代理中的漏洞,同時(shí)提高使用這些代理的強(qiáng)化學(xué)習(xí)項(xiàng)目在社區(qū)中的結(jié)果可再現(xiàn)性。DeepMind將繼續(xù)維護(hù)、添加新功能,并接收社區(qū)對(duì)TRFL庫(kù)的貢獻(xiàn)。
端到端強(qiáng)化學(xué)習(xí)Devops流水線工具
強(qiáng)化學(xué)習(xí)建模通常是脫離生產(chǎn)應(yīng)用完成的,只有經(jīng)過(guò)訓(xùn)練的模型在模擬器中經(jīng)過(guò)驗(yàn)證后才被提供給操作環(huán)境。
隨著強(qiáng)化學(xué)習(xí)成為更多人工智能應(yīng)用的基礎(chǔ),建模框架應(yīng)不斷發(fā)展才能處理更多的實(shí)時(shí)在線應(yīng)用的內(nèi)嵌訓(xùn)練。與其他人工智能方法一樣,越來(lái)越多的強(qiáng)化學(xué)習(xí)項(xiàng)目集成到了驅(qū)動(dòng)數(shù)據(jù)準(zhǔn)備、建模、訓(xùn)練和其他流水線工作負(fù)載的Devops流水線中。
考慮到這一點(diǎn),臉書最近開源編輯了強(qiáng)化學(xué)習(xí)工具包Horizon,它被設(shè)計(jì)為部署到人工智能Devops流水線中??梢酝ㄟ^(guò)GitHub下載開源Horizon代碼。Horizon結(jié)合了強(qiáng)化學(xué)習(xí)技術(shù),臉書一直在運(yùn)營(yíng)中使用該技術(shù)開發(fā)可擴(kuò)展的生產(chǎn)應(yīng)用程序。例如,這一社交媒體巨頭將強(qiáng)化學(xué)習(xí)用于生產(chǎn)人工智能應(yīng)用程序,預(yù)測(cè)用戶最可能對(duì)哪些通知作出響應(yīng),個(gè)性化臉書的虛擬消息助理的建議,以及根據(jù)用戶的位置或者他們的無(wú)線信號(hào)強(qiáng)度來(lái)決定要傳輸給用戶的視頻質(zhì)量等級(jí)。
Horizon是一個(gè)端到端的流水線,用于以強(qiáng)化學(xué)習(xí)為中心的人工智能項(xiàng)目,這些項(xiàng)目的數(shù)據(jù)集非常龐大,來(lái)自目標(biāo)應(yīng)用程序的反饋循環(huán)很慢,并且由于涉及到生產(chǎn)應(yīng)用程序,因此強(qiáng)化學(xué)習(xí)實(shí)驗(yàn)失敗的商業(yè)風(fēng)險(xiǎn)很高。它支持在高維離散和連續(xù)動(dòng)作空間中的強(qiáng)化學(xué)習(xí)建模。它包括離散動(dòng)作空間具有競(jìng)爭(zhēng)結(jié)構(gòu)的DQN的實(shí)現(xiàn),以及連續(xù)動(dòng)作空間DDPG的實(shí)現(xiàn)。它包含自動(dòng)化工作流程,用于在多GPU分布式環(huán)境中訓(xùn)練流行的深度強(qiáng)化學(xué)習(xí)算法,以及用于在單機(jī)上進(jìn)行CPU、GPU和多GPU訓(xùn)練。它包括用于數(shù)據(jù)預(yù)處理、特征規(guī)范化、分布式訓(xùn)練和優(yōu)化服務(wù)的實(shí)用工具。
為滿足臉書的規(guī)模要求,Horizon被設(shè)計(jì)成支持強(qiáng)化學(xué)習(xí)建模和應(yīng)用程序訓(xùn)練,其數(shù)據(jù)集可能具有數(shù)百甚至數(shù)千種特征類型,每一特征類型都具有獨(dú)特的統(tǒng)計(jì)分布。它使用Spark進(jìn)行數(shù)據(jù)準(zhǔn)備和降維,使用PyTorch框架進(jìn)行強(qiáng)化學(xué)習(xí)建模和訓(xùn)練,使用Caffe2人工智能框架和開放神經(jīng)網(wǎng)絡(luò)交換(Open Neural Network Exchange)進(jìn)行強(qiáng)化學(xué)習(xí)建模,以便應(yīng)用于數(shù)千種生產(chǎn)環(huán)境中。
為了減少將次優(yōu)強(qiáng)化學(xué)習(xí)模型部署到生產(chǎn)應(yīng)用程序中的風(fēng)險(xiǎn),Horizon采用了一種稱為“反事實(shí)策略評(píng)估”的功能,該功能支持?jǐn)?shù)據(jù)科學(xué)家在部署經(jīng)過(guò)訓(xùn)練的模型之前離線評(píng)估強(qiáng)化學(xué)習(xí)算法的性能。如果沒(méi)有這種自動(dòng)化功能,開發(fā)人員需要進(jìn)行昂貴而且耗時(shí)的A/B測(cè)試,才能在無(wú)數(shù)的選擇中搜索出最優(yōu)強(qiáng)化學(xué)習(xí)模型和超參數(shù)。在強(qiáng)化學(xué)習(xí)訓(xùn)練工作流程中,Horizon使用逐步重要抽樣估計(jì)器、逐步直接抽樣估計(jì)器、逐步雙穩(wěn)健估計(jì)器和順序雙穩(wěn)健估計(jì)器等反事實(shí)策略評(píng)估方法對(duì)訓(xùn)練過(guò)的模型進(jìn)行評(píng)分。
為了支持對(duì)強(qiáng)化學(xué)習(xí)算法的性能進(jìn)行測(cè)試,臉書已經(jīng)將Horizon與流行的基準(zhǔn)測(cè)試庫(kù)OpenAI Gym的Cartpole和Pendulum環(huán)境以及定制的Gridworld環(huán)境集成在一起。Horizon包括用于對(duì)數(shù)據(jù)預(yù)處理、特征規(guī)范化和其他Horizon強(qiáng)化學(xué)習(xí)建模、訓(xùn)練和服務(wù)特性進(jìn)行單元、集成和性能測(cè)試的工具。它評(píng)估具有不同配置的離散動(dòng)作DQN、參數(shù)動(dòng)作DQN和DDPG模型——例如使用Q學(xué)習(xí)與SARSA進(jìn)行對(duì)比,有或者沒(méi)有雙重Q學(xué)習(xí)等,以確保強(qiáng)化學(xué)習(xí)模型的魯棒性和正確性。它對(duì)目標(biāo)平臺(tái)的預(yù)構(gòu)建Docker鏡像執(zhí)行集成測(cè)試。
可以采用這些工具來(lái)開始實(shí)際操作學(xué)習(xí)
如果你是人工智能開發(fā)人員,可能對(duì)這里列出的很多算法還不太熟悉。然而,你可能已經(jīng)開始將強(qiáng)化學(xué)習(xí)引入到了開發(fā)項(xiàng)目中,至少嘗試使用了開源工具。
2019年,我們將看到,人工智能行業(yè)會(huì)把應(yīng)用最廣泛的強(qiáng)化學(xué)習(xí)框架整合到工作臺(tái)中。隨著卷積和循環(huán)神經(jīng)網(wǎng)絡(luò)在有監(jiān)督學(xué)習(xí)環(huán)境下的應(yīng)用,主流開發(fā)人員將更加熟悉這些技術(shù)。
不久之后,大多數(shù)人工智能開發(fā)工作流程將無(wú)縫地把強(qiáng)化學(xué)習(xí)與有監(jiān)督和無(wú)監(jiān)督學(xué)習(xí)結(jié)合在一起,為生產(chǎn)企業(yè)應(yīng)用中更復(fù)雜的嵌入式智能提供支持。
James Kobielus是SiliconAngle Wikibon的人工智能、數(shù)據(jù)科學(xué)以及應(yīng)用程序開發(fā)首席分析師。