Reinforcement Learning 強化學習

撰文:郭雪

突破技術

強化學習(Reinforcement Learning,RL)是一種人工智能方法,能使計算機在沒有明確指導的情況下像人一樣自主學習。

重要意義

假如機器不能自主通過環境經驗磨煉技能,自動駕駛汽車以及其他自動化領域的進展速度將受到極大的限制。

技術成熟期

1~2年

主要研究者

-Deep Mind -科大訊飛

-Mobileye -阿里巴巴

-Open AI -微軟亞洲研究院

-Google -中科院

-Uber-百度

2016年3月9日,韓國首爾的一場棋賽反響空前。從棋迷到學者,再到普通百姓,那幾日的工作之餘不知有多少人的計算機屏幕上都留了小窗,關注著這場比賽的動態。此戰可謂現象級,它不僅吸引了全球記者的長槍短炮,也順勢成了那段時間人們茶餘飯後的首要談資。

這不是一場普通的圍棋賽事,而是被貼上了「世紀大戰」標籤的人機智慧對決。對弈的雙方,一方是人類頂級棋手李世石,另一方則是誕生於英國的人工智能程序——Alpha Go。五盤大戰最終以執黑的李世石投子認負結束,在19路圍棋盤上,Alpha Go以4比1的比分攻破了人類又一座引以為傲的智慧堡壘。此役過後,人們記住了這個被愛稱為「阿爾法狗」的人工智能,記住了它背後的谷歌子公司Deep Mind,也記住了兩個「新」技術——深度學習(Deep Learning)和強化學習(Reinforcement Learning)。

深度學習曾登上《麻省理工科技評論》2013年「10大全球突破性技術」榜單[1],而強化學習也入選了《麻省理工科技評論》2017年「10大全球突破性技術」[2]。本文將淺談強化學習技術的發展史、基本原理以及實際應用。

這還要從圍棋和國際象棋這兩種棋說起。20年前(即1997年),雖然國際象棋程序已能逼平甚至戰勝人類冠軍,但當時圍棋程序的水平卻尚不及業餘棋手的水平。這是因為,對於計算機來說,後者的複雜程度遠高於前者。國際象棋的棋盤為8行8列,正式比賽的圍棋盤的縱橫則各有

Alpha Go的出現,讓人不由得聯想起當年的「深藍」(Deep Blue)——早在1997年,這台IBM超級計算機就曾擊敗人類國際象棋冠軍加裡·卡斯帕羅夫(Garry Kasparov)。那麼,為什麼時至今日人工智能界還會為一場棋賽的勝利而大肆狂歡?

人工智能Alpha Go——強化學習的空前成功

19路——361個可供落子的交叉點。也就是說從狀態空間的複雜度(state-spacecomplexity)來看,國際象棋約為1047,而圍棋則高達10170。

複雜度的天壤之別,也意味著「深藍」的制勝套路無法複製到圍棋賽場。實際上,當年就曾有人質疑過「深藍」所謂的「智能」,認為「深藍」的勝利不過是依靠每秒可運算2億步的「蠻力」,窮舉出棋盤的可能性。像卡斯帕羅夫這樣的國際象棋大師可以預測當前走棋對未來10步局面的影響,而「深藍」卻能夠預估12步,從而也就握有更高的勝算(即便這樣,「深藍」也僅是以3.5:2.5險勝)。然而,即便將「深藍」所採用的全部優化算法放到如今最高性能的計算設備上,人們也無法將圍棋比賽中機器的決策用時修剪到合理的時間內。由於圍棋沒有能夠明確計算當前棋局狀況的機制,因此也難以測算某些走棋的優劣。

那麼,Alpha Go究竟是靠什麼贏得比賽的呢?

2016年1月,《自然》(Nature)雜誌刊發的谷歌Deep Mind的論文,詳細解析了會下圍棋的Alpha Go背後的技術[3]——蒙特卡洛樹搜索(Monte Carlo Tree Search)及深度強化學習。

Deep Mind將蒙特卡洛樹搜索與兩個深度神經網絡——價值網絡(value network)及策略網絡(policy network)結合,並通過人類職業棋手的比賽數據對網絡進行監督學習(supervised learning)訓練。通俗地說,就是先讓Alpha Go學會評價棋路的優劣,然後再通過不斷與自己對弈進行強化學習,來提升棋藝。

讓人工智能程序學會下圍棋,需要解決3個問題:1下棋規則;2如何評價棋步的優劣;3如何改善棋路。第1個問題,通過為程序錄入規則就可以解決(一些簡單的if-then語句),主要的挑戰在於後面的兩個問題。對於普通人和一般棋手而言,通過增加對弈次數、學習大師的棋路,棋藝就能實現一般意義上的提升;而對於專業的圍棋選手甚至圍棋大師而言,下棋除了掌握一般棋路,更離不開天賦般的「靈光一現」,或者叫「直覺」。對弈李世石這樣的頂尖高手,Alpha Go需要具備獲得「靈感」的能力(因為「暴力枚舉」在圍棋這樣量級的比賽中幾乎無法實現)。

Alpha Go通過在有監督的情況下學習職業棋手的數百萬盤對弈過程,建立了對棋局走勢及棋步價值的評估體系。當棋藝提升後,Deep Mind又讓它和稍早期版本的自己對弈,從而在不借助外力的情況下完成幾百萬甚至幾千萬次模擬,借助強化學習讓Alpha Go「參悟」下棋的感覺,在與自己的對抗中不斷成長。而在實際的比賽現場,Alpha Go則根據積累的經驗,借助蒙特卡洛樹搜索去動態尋找最優方法,如此才締造了Alpha Go最終的「壓倒性」勝利。

Mel Bochner泡泡(Babble),2011年

計算機和人工智能系統難以理解語言的其中一個原因在於,詞語的意思往往與語境甚至字母形態有關係。上圖中,幾位藝術家展示了如何通過不同的視覺線索來傳達文字背後的意義

強化學習的發展史

雖然名字讓人多少有些陌生(目前國內的翻譯版本有「增強學習」「加強學習」等),但是強化學習實際上並不是新鮮產物。不過,近年來隨著設備計算速度的提升,以及深度學習架構的興起,強化學習才得到了真正意義上的成長。它的興起讓人們猛然覺得人工智能的未來已經指日可待。

聽起來工業味十足的人工智能,與心理學等其他社會學科、科學學科都頗有淵源。雖然看起來這些學科與人工智能的關係不大,但既然名稱中帶有「智能」二字,就免不了要去探究「什麼是人類智能」「如何判斷是否具備人類智能」以及「如何通過現有的技術手段實現或模擬人類智能」。

如果說人工智能的研究發展史是全球一眾學者孜孜不倦、辛勤攻克幾個問題的馬拉松,那麼強化學習就是其中一部分學者構想出的、希望實現人工智能的一個技術手段。

實際上,從遺傳算法到人工神經網絡,很多人工智能方法都打上了心理學和神經科學的烙印。作為機器學習的一大分支,強化學習勢必無法免俗。其實,從現代強化學習的教父級人物理查德 · 薩頓(Richard Sutton)的履歷上,我們就可以窺見這一學科的發展脈落。現任加拿大阿爾伯塔大學計算機科學教授的薩頓,他的學術生涯伊始的選擇讓人有些「出乎意料」——斯坦福大學的心理系。雖然這兩個學科在圈外人看來跨度極大,但是在接受人工智能媒體《機器之心》的專訪時,薩頓卻坦然表示,他所感興趣的是學習的機制,是探求人類學習過程的奧秘。雖然最終的研究陣地是計算機,但心理學就像是個秘密武器,讓他從中汲取了無數的靈感。

學界關於強化學習的歷史有很多個版本,本文則借鑒了薩頓的著作《強化學習導論》(Reinforcement Learning:An Introduction)中的介紹。薩頓為強化學習的發展史梳理出了3條主流脈絡[4]。

按照流行程度排序,第一條發展線是源自心理學動物實驗的「試錯」(trial-and-error)流派,偏重學習。簡單來講,就是通過不斷嘗試、犯錯、學習經驗,再嘗試,「偶然」完成目標,然後加強「成功」經驗、再重複試錯的過程,並不斷靠近解決方案。具體的案例可以參考下文介紹的桑代克的「貓迷箱」實驗。

強化學習的第二條發展線主要採用「最優控制」理論(optimalcontrol)及「動態規劃」(dynamic programming),偏重「最大控制」理論。這裡舉一個例子來說明「最優控制」的應用——以更短的時間,開車翻越山丘。當司機駕駛汽車行駛在翻山越嶺的公路上時,在什麼時機踩下油門加速、加速多久,都會對最終到達目的地的時長帶來影響。在這一過程中,又可能存在諸多限制條件,比如汽車有限的汽油量,無法一直加速;再如公路路況不允許超速行駛等。簡而言之,「最優控制」要做的,就是在限定條件下尋求最優結果。結合「動態規劃」可以降低尋找最優方案的成本——將每一次決策過程中所遇到的難題分解成子問題,並對解決方案進行存儲;當下一次遇到相同的子問題時,進行檢索查詢而非重新計算。

第三條發展線則是時序差分法(temporal-diference method)。時序差分與過往的經驗和狀態有關。這一方法結合了蒙特卡洛方法和動態規劃的理念[1]。之所以說時序差分法與蒙特卡洛方法類似,是因為它根據一些策略(policy)對環境進行隨機取樣學習。時序差分法又汲取了動態規劃的精髓,在過去習得的估測結果的基礎上,對未來狀態進行盡可能的「擬合」[5]。

在20世紀80年代末,這3條分支逐漸彙集一處,形成了現代的強化學習。

行為心理學線:從桑代克的「貓迷箱」到明斯基的「鼠迷宮」

早在100多年前,美國行為主義心理學家愛德華 · 桑代克(Edward Torndike)就曾描述了由動物實驗觀察到的「強化學習」過程。在著名的「迷箱實驗」(Torndike』s Puzzle Box)中,桑代克將作為被試的貓關進一個名為「迷箱」的實驗裝置中。正是在這些暗藏機關的箱子裡,一隻隻小貓幫助他驗證了生物學習過程中的「規律性」——學習是一個漸進的過程,而非頓悟[6]。

在實驗過程中,被試貓會被放入迷箱。箱子本身設有機關,只有通過觸碰一個槓桿,貓才能從內部打開箱子,吃到擺在箱外的魚。迷箱中的小貓們第一次從箱子中逃離並吃到魚的過程,通常都需要進行很多次嘗試。貓成功逃離迷箱後,又會被再一次放回箱內。這時候桑代克所要做的,則是記錄貓每次逃離迷箱所用的時間。在多次嘗試後,貓就「學會」了通過按壓槓桿來獲得最有益於它們的結果——吃到箱外的魚。它們會接受這種行為,並在之後的實驗中更迅速地按下槓桿。

桑代克將這種行為命名為「效果律」(Law of Efect),即能夠帶來好結果的行為會得到重複,而結果不好的行為可能會被停止,這意同「趨利避害」,與強化學習的方法論如出一轍。

不過這種學習機制在機器上的模擬,卻晚了近半個世紀。1943年,美國學者沃倫 ·麥卡洛克(Warren S.Mc Culloch)和沃爾特·皮茨(Walter Pitts)在《數學生物物理學公告》上發表論文《神經活動內在思想的邏輯演算》(A Logical Calculusofthe Ideas Immanentin Nervous Activity),討論簡化人工神經元網絡及其實現邏輯功能的機制。

這篇文章不僅推動了人工網絡的研究,也給了當年還是哈佛大學學生的馬文·明斯基(Marvin Minsky)很大的啟發。根據1981年12月《紐約客》雜誌上的長文《人工智能》(A.I.)[7]的記錄,1950年前後,馬文 · 明斯基決定和他的同學迪恩 · 埃德蒙茲(Dean Edmonds)合作進行人工神經網絡的研發。他們借助電子管、小電機等器件打造了一台模擬人腦的機器,並將它命名為SNARC(Stochastic Neural Analog Reinforcement Calculator),意為「隨機神經模擬強化計算器」[8]。

SNARC擁有40個人造神經元,不同的神經元之間引入了大量的連接,以此模擬生物神經元在信息傳輸過程中的容錯機制。明斯基和埃德蒙茲用SNARC進行了「老鼠走迷宮」實驗,模擬老鼠在迷宮中可能發生的行為。在多次隨機嘗試後,這些老鼠可能會在偶然情況下走出迷宮。這個成功的反饋,會「促使」老鼠們對行為產生的結果進行「思考」,繼而在後續的逃離迷宮嘗試中更傾向於選擇會帶來這些良性結果的嘗試。也就是說每當模擬老鼠成功逃出虛擬迷宮時,這些突觸的連接強度就會增加,老鼠也就更傾向於選擇與這次成功脫逃相關的行動。

後來,人們將SNARC視為全球首台神經元計算機,明斯基也被奉為人工智能之父。2016年1月26日,採用深度強化學習技術的Alpha Go以5 :0的戰績橫掃歐洲圍棋冠軍樊麾,將人工智能推向了前所未有的高度。但令人扼腕痛惜的是,明斯基在2016年1月24日因腦溢血去世,未能親眼看到他堅持了幾十年的夢想終於接近現實的一天。

控制論線:最優控制及動態規劃

與剛才介紹的心理學線一樣,這條最優控制線同樣也興起於18、19世紀,代表人物是德國數學家卡爾 · 雅可比(Carl Gustav Jacob Jacobi)和愛爾蘭數學家、物理學家及天文學家威廉·哈密頓(William Rowan Hamilton)。最優控制常應用於配置控制器,從而減少對動態系統的測控。

20世紀50年代,這一方法的另一重量級人物、美國應用數學家理查德·貝爾曼(Richard E.Bellman)提出了著名的貝爾曼方程,以及通過求解這一方程來實現最優控制的動態規劃方法。1957年,他又在自己的論文[8]中首次引入了馬爾可夫決策過程[2](Markov Decision Process,後簡稱MDP)的概念。1960年,羅納德·霍華德(Ronald Howard)為MDP設計了策略迭代算法,再次推動了這一領域的發展。後來,這些概念也成為現代強化學習理論及算法的基本元素。

除了上文提到的貢獻,動態規劃之父貝爾曼還指出了「維數災難」(Curse of Dimensionality)——在優化問題中,當用來描述的空間維度增加時,分析過程也會遇到各種問題。這意味著在計算機應用中,隨著價值方程中狀態變量的數量增加,解出貝爾曼方程的耗時也會呈指數級增加。這一維數的「詛咒」,至今仍然制約著強化學習的發展和應用。

雖然這兩條發展線乍看起來,心理學線偏重「學習」,優化控制線似乎更關注「強化」,不過仍然是殊途同歸——很多動態規划算法都是增量、迭代、循序漸進,通過逐次「近似」得出正確的答案,這一過程與「學習」並無二致。

強化學習的原理淺談

機器學習是人工智能的重要分支,這一領域通常會利用概率論、統計學、計算機科學等知識,從訓練數據中識別特徵模式、學習規律,以此對未來數據進行分類、預測。強化學習便屬於機器學習的範疇。

機器學習可以分成三大類:監督學習、無監督學習(unsupervisedlearning)以及強化學習。

監督學習,是目前研究及應用最多的學習方式。顧名思義,這種方法是需要通過「監督者」預先填好標籤(label)的訓練數據進行學習的方式。監督學習的任務,根據目的的不同又可分為回歸分析(regression)和分類(classifcation)。簡單來說,回歸分析任務的輸出是連續的,而分類任務的輸出則是離散的。各大高校的機器學習課程中,大多採用兩個簡單的例子來區分這兩類任務:「回歸分析」的典型代表是房價預測——在這個問題中,輸入數據是房子的屬性值(如房子的大小、臥室數量、洗手間個數),輸出數據則是房價(連續的);「分類」的代表是癌症診斷,這時輸入的數據是腫瘤屬性(如大小、位置),輸出的數據則是良性或惡性(離散的)。

無監督學習,則無須事先為數據貼好標籤。這種方式更像是聚類(clustering)的過程,即根據數據的特徵,發現實例之間的相似性[10]。前任百度首席科學家、人工智能專家吳恩達(Andrew Ng),曾在斯坦福大學的機器學習課程中用「雞尾酒會問題」對無監督學習的應用場景作出了解釋。「雞尾酒會問題」的實質,是從音頻數據中分離出不同聲音源發出的聲響。假設在酒會會場中的兩個不同位置各放一個麥克風,輸入數據就是這些設備採集到的音頻數據,這一聲音分離任務之所以為「無監督」,是因為我們事先無法給每個聲音打上標籤。這一方法最成功的案例,可能要算谷歌腦(Google Brain)在無監督的情況下通過觀看You Tube視頻截圖形成「貓」的概念。

強化學習也屬於機器學習,不過它與其他兩種方式有著顯著的區別。強化學習需要通過與「環境」的交互,逐步進行學習。然而在與環境交互的學習過程中,很難從整體上去判斷過程中的每一步究竟誰對誰錯。這就好比在與李世石棋賽的第二盤,Alpha Go第37手肩沖的一招棋,是讓棋聖聶衛平也不禁「脫帽致敬」的好棋。然而縱觀整場比賽,帶領黑棋走向最終勝利的,究竟是這個神來之筆,還是之前的伏筆,抑或是之後看似不經意的某一步,幾乎讓人無法做出評斷。也就是說,在這種情況下,我們這些「監督者」無法真正地對每一步、每一個情形都貼上對或錯的標籤。強化學習的方式,則是在每次對弈後,根據勝平負的情況給予機器代理(agent)不同程度的獎勵,而機器代理要做的就是努力讓自己每盤棋累積的獎勵最大化。

強化學習的基礎概念

雖然強化學習的訓練數據並沒有對應的標籤,但因為機制不同,它並不能算作無監督學習的子集。無監督學習的目標是挖掘數據的潛在結構,強化學習則是通過與環境交互獲得最優解的過程,這與上文提到的動態規劃非常相似。

通俗來講,在強化學習問題中,機器代理(agent)會與環境進行交互,根據當前的環境狀態權衡「即時獎勵」(immediate reward)以及「延遲獎勵」(delayed reward),然後採取行動……依此不斷地往復、試錯,尋找能夠最大化累積獎勵信號的策略(policy)[11]。在這一過程中,機器代理的行動也會對環境造成影響。而最終,獲得較高的獎勵後,得到這一獎勵的過程中的所有行動均會得到加強。以桑代克迷箱實驗為例,貓的目標是將自己的累積獎勵(快速逃離箱子獲得魚)最大化,每次成功地快速逃出而獲得獎勵的過程中,貓執行的所有動作都會得到強化(不僅僅是按下正確槓桿的那一步)。

強化學習可以分為基於模型(Model-Based)和無模型(Model-Free)兩大類[11]。基於模型的學習認為環境有確切的模型,因此需要大量的計算進行建模,並根據模型選擇最合適的策略;而無模型學習中並沒有環境的顯式模型,因此需要大量的經驗,通過反覆試驗、不斷試錯的過程來評價行動的優劣。

基於模型的強化學習方法,通常都發展於動態規劃理念。此類方法需要一個可以被規範為馬爾可夫決策過程[9]的環境模型。動態規劃方法通常會通過策略迭代(policy iteration)來求解最優策略,這一迭代過程可以被拆分成兩大環節:策略評估(policy evaluation)和策略提升(policyimprovement)。

無模型的強化學習方法,主要包括蒙特卡洛方法和時序差分學習方法(Temporal-Diference Learning,TDLearning)。

蒙特卡洛方法借鑒動態規劃的概念,適用於有限MDP的策略評估過程。蒙特卡洛方法得名於摩納哥的著名賭城,是以隨機數和概率為基礎的統計模擬方法。在強化學習中,蒙特卡洛

這些圖像來自Mobileye的強化學習汽車的視覺系統

方法會隨機分配機器代理的初始位置,然後按照某一個策略執行動作,並在完成所有動作後記錄每一對狀態—行動對的值,週而復始。這樣一來,只要給定足夠多的時間,它也就能通過計算狀態—行動對的平均值,估算出行動—價值方程,完成策略評估的過程。

上述兩種方式都有一定的限制——動態規划算法需要環境模型,蒙特卡洛方法只適用於規模較小的有限MDP。如果想結合動態規劃與蒙特卡洛方法的優勢並規避二者的缺陷(即無需環境模型又可用於較大MDP任務的算法),這時就需要用到時序差分學習方法。蒙特卡洛方法需要等到所有的動作完成後再進行策略評估,而時序差分學習方法則只需要考慮後一步的時序誤差值,就可以進行逐步迭代。時序差分學習方法根據策略更新方式的不同,又可以分為在策略(on-policy)和離策略(of-policy),代表算法分別為Sarsa-Learning以及Q-Learning。

探索未來與利用過去的權衡

強化學習的過程需要解決的一大難題,是在對未知的「探索」(exploration)和對已知的「利用」(exploitation)之間進行抉擇[12]。對這個選擇困境,現任Deep Mind研究員的大衛 ·席爾瓦(David Silver)曾在英國UCL(University College London,倫敦大學學院)的強化學習課程上舉了一個簡單易懂的例子:如果你的任務是去你最喜歡的餐廳就餐,那麼挑選曾經去過的飯店中你最愛的一個,顯然是個穩妥又簡便的選擇。不過如果總貪戀過去,你又如何知道那些沒有去過的餐廳中有沒有自己更喜歡的呢?

強化學習任務中,機器代理在每個環境狀態下都必須採取行動,因此選擇行動的方式也就尤為重要。這些方法中最簡單的是貪婪選擇(greedy selection),即每次都選擇最高的行動—狀態值(這是一種純粹「利用」的方法)。當然,為了尋求探索與利用的平衡,學者們還開發了更複雜的選擇機制,如Є-貪婪選擇算法——與傳統的貪婪方法一樣傾向於選擇最高的行動—狀態值,不同之處在於機器代理有較小的概率Є去選擇未探索過的行動;玻爾茲曼選擇(Boltzmann Selection)則是另一種平衡方法,此種算法不僅吸納了概率的概念,在選擇時還會考慮狀態—動作的相對值,即與其他可能性比較之後,如果差值極高則傾向於選擇高的那一個,如果兩個行動值差距不大,那麼選擇的概率也就近似[13]。

強化學習的應用

雖然國際象棋、圍棋等腦力運動代表著人類智慧的堡壘,不過人們更在乎的還是強化學習技術該如何落地,在現實生活中找到用武之地。其實,如今的強化學習技術已經邁出了遊戲競技的小賽場,在我們的生活中找到了更多「接地氣」的應用場景。它能改進自動駕駛汽車的表現,能讓機器人學會抓起以前從未見過的物體,可以幫助品牌投放廣告,也可以用於資源管理、降低能耗。

「實踐出真知」的機器人

提到機器人,首先映入腦海的可能是電影《星球大戰》中外形呆萌的R2-D2、BB-8,或是波士頓動力(Boston Dynamics)那些善於奔跑、跨越障礙的四足機械巨獸,也可能是DARPA挑戰賽上那些邁著步子在賽場上執行模擬救援任務的人形機器人。我們幾乎都會自然而然地忽略掉機器人圈中兩個非常重要的成員——自動駕駛汽車和工業機器人。對前者,雖然媒體的報道從未間斷,但是四輪的車型讓人難以將它與「人」聯繫起來;而後者,不僅報道更少,它們單一古板的機械手臂造型似乎也達不到我們對機器人的期許。

不過實際上,相比那些外形惹眼的擬生機器人,貌不驚人的自動駕駛汽車和工業機械手臂卻與我們的生活有著更緊密的聯繫,它們也正是強化學習技術的主戰場。

自動駕駛汽車:學會應對複雜的路況

僅僅是通過實驗、實踐,計算機便可以自己學習到程序員們從未教導過的事情。

2016年年末,在巴塞羅那的一次人工智能會議上,播放了一段令人熱血沸騰的駕駛模擬視頻。在實時計算機模擬的畫面上,幾輛自動駕駛汽車在一條四車道虛擬高速公路上展開了一場看起來瘋狂至極的演習。這幾輛車一半在嘗試從右側車道移向中間,而另一半則希望從左側向中間並線。即便對於人類的老司機來說,遇上這樣的情況有時也會亂了陣腳,不過這些自動駕駛汽車卻仍然能夠在這種混亂的情況中做到精確的控制,成功地完成了這個棘手的任務。

在如此複雜的路況下進行自動駕駛,這本身已令人驚訝。不過更讓人意外的是,這些自動駕駛汽車的行為並非通過常規的軟件編程方式完成的。它們是通過反反覆覆的練習,自己學會了如何流暢、安全地並線。在平時的訓練過程中,根據車輛在行駛中的表現,控制軟件會自動進行操作,嘗試對指令進行微調。當然,這一過程絕非一蹴而就,大多數時候,由於並線動作過慢,車輛之間會相互干擾,引發混亂。不過每一次並線成功後,系統都會加強對這些動作的偏好。沒錯,這裡所應用的技術便是強化學習。

自動駕駛汽車雖然發展迅速,但是一些讓人始料不及的複雜路況,對它們來說仍然是不小的挑戰。比如涉及與人類司機互動的情況,或是行駛到環島、十字路口時。如果我們不想承擔不必要的車禍風險,也不願因為機器人過分猶豫而造成道路堵塞,那麼我們就需要讓它們獲得更細緻的駕駛技能,比如如何超車。

巴塞羅那人工智能大會上的高速並線模擬,來自Mobileye。這家以色列的人工智能公司,為包括特斯拉在內的十幾個汽車品牌提供車輛安全系統。在播放了這些並線視頻後,Mobileye技術副總裁沙伊·沙萊夫-施瓦茨(Shai Shalev-Shwartz)又向觀眾們展示了自動駕駛汽車面臨的其他挑戰,比如耶路撒冷一個繁忙的交通環島、巴黎鬧市區某個瘋狂的路口,以及印度某條極其混亂的街道。「如果自動駕駛汽車總是循規蹈矩地遵守交通法規,那麼在上下班高峰的時候,自動駕駛汽車可能會因為等待並線而白白浪費一個小時的時間。」沙伊說。

Mobileye計劃在2017年的晚些時候,與寶馬和英特爾合作測試這一軟件。谷歌、優步等科技公司也會有研究團隊應用強化學習的方法訓練自動駕駛汽車。

在斯坦福大學人工智能專家艾瑪 · 布倫斯基爾(Emma Brunskill)看來,強化學習正在越來越多的領域中得到應用。不過她認為,這一方法尤其適合自動駕駛汽車,這是因為駕駛的過程是一種「良好的決策序列」。如果程序員們需要事先試想行駛過程中所有可能會發生的情況,然後再逐一對它們進行編碼加以應對,那麼這一領域的進展將會緩慢許多。

智能工業機器人:機械臂被裝上了「大腦」

20世紀50年代,美國人喬治 · 戴沃爾(George Devol)提出了工業機器人的概念並申請專利。後來這些機械手臂得到了長足進步。它們的出現大幅提升了工廠的自動化程度,並降低了人力成本,代替人類工人在高溫高壓等極端環境或污染、放射性場地中完成指定的工作。目前包括富士康、飛利浦在內的全球頂級製造廠商,都大量採用機械手臂進行加工、組裝,甚至逐步打造出全自動化的「滅燈」(lightout)工廠。

工廠中的工業機器人需要快速、精準地完成任務。不過在生產線上那些熟練的機械手臂的背後,即便是抓起物品這樣看似簡單的小動作,往往也需要程序員投入大量的時間,反覆修改、實驗。當工廠的生產任務發生改變時,修改、調整機械手臂的預設程序的成本也同樣不容小覷。

不過隨著強化學習技術的到來,這些隱藏在「無人」工廠背後的程序員的工作負荷也可以被大幅降低。

2015年年底的東京國際機器人展覽會上,日本發那科(Fanuc)展示了該公司與日本機器學習公司Preferred Networks合作開發的新型智能機械臂。只需給這些工業機器人佈置簡單的小任務(如從盒中挑揀物品等),然後等上一晚的時間,第二天清晨它就基本可以「摸索」出一套自己的解決方案。令人驚奇的是,它的背後並沒有強大的專家系統,也沒有一群加班熬夜、精通機械的程序員。「大概用上8小時左右的時間,它的揀拾準確率就能達到90%以上,這和專家預先編碼好的效果幾乎沒有差別。」Preferred Networks研究人員描述道[14]。

這些新型工業機器人正是通過深度強化學習技術訓練自己學會執行新的任務。揀拾物品的過程,需要機器人做到手「眼」(攝像頭)協調。這些機械手臂會在任務過程中錄製視頻,每次揀拾完成,根據效果它們會得到不同的獎勵值,而無論每次任務是否成功完成,這些機器人都會記住這些物體的樣子。這些知識不斷積累,從而細化了那些控制機械臂動作的深度學習模型(或大型神經網絡)[15]。2016年8月,谷歌研究團隊也發表了論文[16],介紹了通過大型卷積神經網絡、強化學習等技術,幫助機器人依靠單目圖像學習抓握物體過程中手「眼」協調的方法。有趣的是,在經過大量數據的學習以及反覆試錯後,谷歌的機械手臂不僅能夠完成抓握,還會自動對軟物體和硬物體採用不同的動作策略。

訓練的過程中,深度神經網絡可以控制並調整機械手臂的動作,通過反覆實踐,強化那些更接近最終目標的動作(如拾起物品),從而讓工業機器人在不斷試錯的過程中對自己重新編碼。在深度強化學習的幫助下,這些在工廠中全年無休的工業機器人們,擁有了屬於自己的「大腦」。

互聯網營銷及推廣

網絡營銷與推廣,是強化學習的另一個舞台。搜索引擎廣告常採用競價排名機制,廣告主需要購置關鍵字並根據點擊等進行付費。由於廣告客戶預算有限,因此無法支持長期地將大量資金用於廣告投放而不顧及回報。良好的出價策略(bidding)應該使廣告業務實現可持續增長(即收入高於成本)。但大多數廣告主希望獲得可持續的增長,這間接導致了廣告界的競爭。按照不同的粒度劃分,比如每個小時、每天、每週,整個廣告環境的競爭狀況會構成一個複雜網絡。基於整個網絡的狀態和不同狀態之間的關係,選擇最優出價或出價組合,是廣告主的主要目標。

強化學習技術正好可以滿足廣告競價的需求。為了實現最終目標——ROI(投資回報率)>1或其他KPI(關鍵績效指標),具體的應用方法是根據當前的各種環境狀態,來訓練對應的神經網絡,在這個神經網絡的基礎上進行強化學習的訓練,利用該模型對未來出現的不同行為、變量、狀態進行反饋,以求最優的結果[17]。

換言之,在廣告投放過程或整個活動的生命週期中,通過訓練承載有不同階段狀態的模型,根據獎勵結果(收入或KPI)的反饋,模型就能調整廣告投標價格,以優化該模型下的廣告投放的效果。所有狀態都可以被反映到神經網絡,由權重和偏差來反映不同狀態之間的關係。這種關係是動態變化的,也正因為如此,借助強化學習所建立的模型,能夠根據實時數據、狀態做出對應的預測和調整。這一點與自動駕駛汽車有異曲同工之妙。

優化資源配置,降低能耗

從計算機集群的作業調度,到雲計算中的虛擬機部署,再到數據中心的冷卻控制,資源管理的問題幾乎無處不在。對資源進行合理的優化調節,一直以來都是學者和業界關注的重要問題。解決這一問題的傳統方法,是為簡化的資源分配問題、建造啟發性模型,然後在實驗過程中反覆測試、調整,直到得到更好的表現[18]。

不過,由於設備、操作與環境三者之間存在非線性的複雜聯繫,僅依靠傳統的優化算法以及人類工作人員的經驗,很難將這一問題解決得更好——系統無法快速適應內外部的變化,而操作員也不可能給每一個可能的情況加以編碼。除此之外,由於每個數據中心都有自己獨特的架構和環境,因此在某個中心表現出色的預設優化方案,在其他地方的表現可能並不會令人滿意。

這樣一來,我們就需要一個智能的框架來理解環境和過往經驗,並依此採取行動——這又走到了深度強化學習的地盤。在2016年的年度總結[19]中,Deep Mind 宣佈利用機器學習幫助谷歌數據中心冷卻賬單下降40%。谷歌數據中心支持著該公司旗下You Tube、Gmail、搜索引擎等服務,對於這樣的資源能耗大戶來說 ,這樣的數字意味著極大的成本節約。

其他的科技巨頭也展開了依靠經驗自動調整優化資源配置的研究。2017年1月,微軟團隊發表論文,介紹了利用強化學習完成資源管理的解決方案——Deep RM。實際上,資源調配問題本身非常適合採用強化學習的方法實現:第一,這些系統作出的決定通常是高度重複的,為強化學習提供了豐富的訓練數據;第二,強化學習能夠為複雜系統和決策策略建模;第三,這一系統能夠為缺乏精確模型的環境提供獎勵信號(比如資源節約會得到正向獎勵);第四,通過不斷的學習,強化學習能夠在不同的條件下,針對特定的工作負載進行優化[18]。

強化學習的發展阻力——逃不出的「維數詛咒」

強化學習雖然已經有了一些成功的案例,比如工業機器人、自動駕駛汽車,但是這一方法也遇到了一定的阻力。

這些阻力中,最嚴重的一個當屬60多年前動態規劃之父貝爾曼提出的「維數災難」。在現實世界中,走出了實驗室的機器人需要面對更多的未知情況,因此在進行強化學習的過程中就要將幾十甚至上百個變量納入考慮,這會導致問題的困難程度呈指數級增長。另外一個問題則是機器人製造及維修的成本。強化學習的本質是不斷試錯的過程,因此在機器人進行實踐的過程中,很有可能在沒有得到好的策略前就已經導致設備損傷甚至報廢。而即便設備還能繼續使用,也有可能因為損傷而影響之前訓練出的策略的準確性[20]。人工智能專家吳恩達也曾發出警告,指出強化學習方法需要消耗大量的數據,而目前的成功多是在機器可以反覆模擬的案例中,比如Alpha Go的自我對弈。

現在,強化學習的研究人員們仍然在努力探索、找尋那些能夠讓強化學習應用於複雜場景的方法。在人工智能大會上大放異彩的Mobileye,也不得不對自動駕駛汽車的協議進行調整,以避免它們的車在躲避事故的同時引發新的事故。在巴塞羅那的會場上,當人們看著那個神奇的並線視頻演示時,會感覺強化學習已經幫我們推開了人工智能的大門。不過,也許在2017年的晚些時候,在你身邊的某一條高速公路上,強化學習會經歷誕生以來最戲劇性也是最重要的測試。

專家點評

皮埃羅·斯加魯菲(Piero Scaruff)

硅谷精神「布道師」,先後在哈佛大學、斯坦福大學等研習人工智能(語義學、認知科學、神經網絡等)30多年。還曾在加州大學伯克利分校等兼職講授認知論、心理學、藝術史等課程。已出版《硅谷百年史》(與他人合著)、《智能的本質》等多部重量級作品。

在2013年的一天,全世界被一條計算機可以在對Atari遊戲毫不瞭解的情況下自己學會如何玩這個遊戲的新聞而震驚。隨後,計算機開始不斷地擊敗世界各地的圍棋大師(Deep Mind的Alpha Go是最有名的一個,卻不是第一個)。現在,計算機甚至達到了和專業賭徒一樣的水平,可以玩撲克牌了。

因為以上的這些案例,媒體們已經開始稱讚深度學習(Deep Learning)的神奇,不過在這些計算機程序的背後,真正的引擎則是一項至少有60年歷史的人工智能技術「強化學習」(Reinforcement Leraning)。

事實上,在第一次人工智能大會(Conference on Artifcial Intelligence)召開的兩年前,即1954年, Marvin Minsky就發表了一篇關於「強化學習」的論文。2013年,Deep Mind團隊發表的標題為《使用深度強化學習來玩Atari》(Playing Atari with Deep Reinforcement Learning)的論文中,也對這篇古老的論文進行了引用。Deep Mind團隊的這篇論文中所提及的深度Q學習[3](DQN)被視為強化學習的復興,但是其中的算法其實也是一種古老的算法——Q學習法,這種算法在大約20年前,即1998年Richard Sutton和Andrew Barto聯合出版的《強化學習簡介》(Reinforcement Learning - An Introduction)一書中,便已經被全面地介紹過。強化學習是根據一種獎懲機制而工作的技術。獎勵和懲罰機制在這裡與你教導一個小孩所採用的試錯法(Trial-and-Error)一樣。「價值函數」(value funciton)對系統的不同狀態進行獎勵和懲罰,「策略函數」(policy function)則用來決定系統下一步進行哪種移動(next move)能得到最大的獎勵。當結合使用價值函數和策略函數的時候,就會得到「Q 函數」(Q-function)。「深度Q學習」(Deep Q learning)使用了一種卷積神經網絡(Convolutional Neural Network,是由Fukushima 在1990 年提出的一個觀點,得益於現代計算機計算能力的迅猛提升,這個觀點也變得可行了)來改進策略函數(policy function)。

為什麼在Sutton的書中已經包括了主要的公式的情況下,強化學習用了20年才走進人們的視野?這是因為,在20年前計算機的計算能力還沒有現在這麼強。摩爾定律(Moore』s Law)是當前人工智能技術的核心秘密。雖然在算法和觀點上,我們近來有所創新,不過人工智能科學家更多的工作,則是耐心地將複雜架構的神經網絡(Neural Network)合併在一起,這需要計算機強大的計算能力。雖然觀點是非常重要的,不過耐心和計算機的計算能力才是重中之重。你可以在網上練習你的強化學習(Rreinforcement Learning)技術,不過我想你很快就會發現,人工智能這件事真的需要很多耐心和計算機的計算能力。而且大多數情況下,這兩點我們都不擁有。

在上文中,我提到了近些年我們在算法和觀點上的創新,不過我發現,很難找出一個和過去的算法和觀點完全不同的新方向。比如,Alpha Go採用蒙特卡洛樹搜索(Monte Carlo Tree Search)改進了Atari程序,但這也是基於一個至少可以追溯到20世紀80年代採用「搜索算法」(search algorithm)來改進對複雜問題解法的老觀點(也在25年前第一次應用在圍棋遊戲中)。

第二篇關於Atari的論文《通過深度強化學習算法達到人類級別控制》(Human-levelcontrolthroughdeep reinforcementlearning)有19個作者,並且在參考資料中提及了《動物智力》(Animal Intelligence)這本書。《動物智力》是一本由心理學家愛德華·桑代克(Edward Torndike)於1911年發表的著作。

當然,每年都會有人調整強化學習的核心算法,以提高計算速度和降低計算強度。比如,2014年由Volodymyr Mnih、Nicolas Heess、 Alex Graves和Koray Kavukcuoglu發表的論文《視覺注意的復發模型》(Recurrent Models of Visual Attention),就被認為是強化學習的一個主要的擴展。不過這篇論文難道不只是對Ronald Williams於1992年所發表的論文《連接強化學習的簡單統計梯度跟隨算法》(Simple Statistical Gradient-Folowing Algorithmsfor Connectionist Reinforcement Learning)的改進而已嗎?

從哲學的觀點出發,這種進步的模式真的令人震驚。強化學習、檢索方法以及其他人工智能技術的發展趨勢,事實上都是非常簡單的數學。你可以用簡單的幾行就可以寫出一個公式(這些公式在非數學家們看來可能非常複雜,不過事實上並沒有那麼難,比如愛因斯坦的引力方程)。

當你上百萬次地在一個巨大的數據集上運行這個簡單的幾行公式時(如Atari遊戲),這些算法開始表現得像玩這個遊戲的專家一樣,雖然這些算法其實根本不知道這個遊戲的規則。Atari程序通過觀察計算機屏幕的像素點來「學習」如何玩這個遊戲。這個程序對這個遊戲的規則一無所知,甚至根本不知道這是一個遊戲,它只是在成千上萬個例子的基礎上不斷地重複運行一個數學公式而已。

你現在有充分的理由質疑,所謂的「智能」到底在哪裡?哲學家們為此分為了兩派。其中一派認為智能需要真正理解它正在幹什麼,並且最終我們的「理解」只是對簡單的神經算法進行大規模的迭代而已。這一派的哲學家們也希望,在未來的某一天我們可以發現一個並不能被大規模的簡單算法重複計算而攻克的遊戲。不過目前看來,我們已經被僅僅重複計算簡單算法的機器輕易地打敗了。而且機器(在不知道遊戲規則的前提下)已經「學會了」難度不斷增加的遊戲,並且超越了我們人類的能力。

但是,還是不要高估機器奇跡般的能力。機器算法雖然可以學會如何玩一個遊戲,並且擊敗了人類大師,但是這一切都構建在人類設計的正確機器算法的基礎上。機器事實上還只是一個和它的環境相交互、可以成功地解決問題的「學習代理」而已。深度學習的基礎步驟便是捕捉問題的關鍵特徵,並且適時地優化學習代理的行為,這些工作都是由人類專家完成的。這些專家現在主要採用「馬爾可夫決策過程」(Markov Decision Process)來解決這些問題。機器可以作為學習代理,但是目前它還不能作為學習代理的設計者。

不過,學習代理本身也有顯著的差異。我們人類自身的學習其實並不是簡單的懲罰獎勵機制。人類和機器其實是採用了兩種不同的方法進行學習的。人類的學習中有很多常識和直覺的因素(畢竟遊戲也是由與我們分享相同世界的人類所發明的)。人類學習的方法,最開始是被「指導」的,有人告訴我們如何去玩這個遊戲,隨後我們在很短的時間內就通過我們的猜測探知到這個遊戲是怎麼玩的。但是強化學習根本不需要知道這個遊戲是在幹什麼,它只需要知道玩這個遊戲的目標是什麼,以及可以進行的行動有什麼,隨後,機器的任務就是在這些可以進行的行動中選擇最好的,以達到最終的目標。由於機器的學習方法是這樣「選擇」的,人類玩家可以在幾分鐘之內學會玩這個遊戲,但是如果讓一個強化學習算法最終可以把一個遊戲玩得非常好,可能需要幾小時、幾天或者幾個月的計算(這取決於計算機的計算能力)。不過你在學習騎自行車的時候則是結合了這兩種學習方法:一開始你的爸媽告訴你(指導你)自行車是怎麼工作的,然後你不斷練習,在每次的嘗試中調整你的動作以免跌倒,提升你自己的穩定性(獎懲機制),直到你可以駕馭它。

心理學家們一直對強化學習極其著迷,因為強化學習只有在學習代理對環境有了整體認知的情況下才有效。Atari電子遊戲的一個操作或者圍棋的一個移動都構成了一個簡單的環境。人類也可以將強化學習應用在更為複雜的環境中。使用強化學習的機器人,現在仍只能處理非常簡單的案例。事實上預計機器在未來可能會有什麼快速的發展很容易,不過我認為思考一下這些算法怎樣增強我們人類對自身的瞭解則更有意思。

另一個讓強化學習如此吸引人的原因,可能就正如Tambet Matiisen所說的「看他們解出一個新的遊戲,就跟在野外觀察一個動物一樣」。

專家點評

姚頌

深鑒科技創始人兼CEO,致力於構建更便捷、更高效的深度學習專用平台。畢業於清華大學電子工程系,斯坦福大學訪問學者,曾獲2016年度「新銳CEO」稱號。

相比於深度學習這樣的監督學習,強化學習其實更類似於人類學習的機制:強化學習對於處理的任務,觀察當前狀態(State),通過一個回報函數(Q-Function)計算不同操作的回報(Q-Value),即結果好還是不好,學習到在不同狀態下怎麼操作能夠得到最大的回報。如果說深度學習是從訓練數據中學到一個非線性函數,將未知數據與標籤對應,那麼強化學習則是學習一個狀態機制,在各種情況下每次都選擇回報最大的方式。

強化學習,Reinforcement Learning,又被簡稱為「Q Learning」,已經是機器學習界一個很古老的問題了。近年來,結合深度學習而出現的Deep Reinforcement Learning(以下簡稱為Deep Q Learning)給強化學習領域帶來了大的突破,使其與GAN、遷移學習等topic一樣,成為當前機器學習最火熱的話題之一。

當強化學習真正大規模地應用時,卻又遇到狀態過多的問題——傳統的強化學習用一張表來存下不同狀態的Q值,而對於一幅640×480的RGB格式的圖像,有(2Λ24)Λ(640×480)個狀態,無論如何也不可能存下這樣大的表格。這時Deep Reinforcement Learning橫空出世,直接用深度神經網絡來計算任意狀態的Q值,而不是用一個表格存下來,這樣非線性的表達能力正是深度神經網絡擅長的!

將強化學習帶入大眾視野的,也是關於深度強化學習的開創性論文,是2013年Deep Mind發表的Playing Atariwith Deep Reinforcement Learning。在這篇論文裡,Deep Mind的研究人員為了證明方法的通用性,對「打磚塊」等7款遊戲,通過設置遊戲的得分作為Reward,讓算法直接使用圖像作為輸入,判斷遊戲的操作,獲得最高的遊戲得分。甚至在其中的3款遊戲上,算法的得分超過了人類高手的得分。

強化學習還可以用來玩更多的遊戲,比如Flappy Bird,甚至Alpha Go也可以算作圍棋遊戲。Alpha Go還有一個趣事:由於算法追求的是贏棋的概率,結果只以最終是否贏棋反饋,而觀察不到贏了多少目,因此如果Alpha Go遇到可以以70%贏10目與80%贏1目這兩種情況時,會選擇後者——這也是為何有時Alpha Go會犯傻。最近,強化學習在德州撲克Doom遊戲上的表現也吸引了非常多的關注,Deep Mind與暴雪還共同開發了《星際2》的強化學習算法。

雖然強化學習在打各種遊戲方面吸引了眾多目光,但它最大的實際應用行業還是工業控制——這個方向的引領者依舊是Deep Mind,2015年它們在Nature上發表了Human-Level Controlthrough Deep Reinforcement Learning,成為開山鼻祖。強化學習用於工業控制也非常直觀,如一個機械手需要夾起流水線上的一個零件,拼到整體產品上,可以通

專家點評

田豐

過當前機械手上的攝像頭拍攝,直接學習到機器手接下來應該怎樣操作,而不是用精密的編程操作。前百度首席科學家、斯坦福大學Andrew Ng教授的小組,也曾經使用強化學習進行直升機的控制。在Google最近的Learning Hand-Eye Coordinationfor Robotic Graspingwith Deep Learningand Large-Scale Data Collection中披露,利用深度強化學習,對複雜物體使用機械手的抓取,已經能夠達到非常高的成功率了。

儘管離真正的大規模使用還有一定的距離,但我相信強化學習的未來是非常光明的——因為強化學習十分類似人類從環境中得到反饋、不斷學習與改進的過程,是一種更本質與持續的學習方式。比如,自動駕駛分為感知、決策、控制三大部分,目前深度學習還只能比較好地解決感知部分的問題,對於不同場景駕駛的決策與控制,強化學習將來是不是會帶來革命性的突破呢?

阿里雲研究中心主任,專注於雲計算、物聯網/工業互聯網、大數據、VR/AR科技戰略的研究。工信部人才交流中心工業和信息化特邀專家,中國互聯網協會核心專家。

強化學習技術的應用場景廣泛,市場空間巨大,從遊戲人工智能、圍棋博弈、自動駕駛汽車、機器人控制,到電商推薦、工業智能製造、新能源發電、調度管理,能夠讓機器算法像人一樣學習、思考、決策。互聯網上,「大應用」帶來「大用戶」,「大用戶」產生「大數據」,「大數據」訓練「大智能」(算法),機器學習的指數級成長速度,與人類學習的線性成長速度是天壤之別,機器在大規模、高複雜度、實時性要求高的諸多領域的應用效果已經遠超人類水平。

機器學習算法分為非監督學習、監督學習和強化學習3種類型。強化學習是多學科、多領域交叉的技術產物,其本質是解決「決策」問題的算法,即幫助智能計算體(含軟硬件)學會自動進行決策。該技術具有普適性,涉及博弈論、控制論、運籌學、信息論、模擬優化方法、多主體系統學習、群體智能、統計學以及遺傳算法。

強化學習的原理是序列決策問題處理,需要連續選擇一些行為,從這些行為完成後得到的最大收益作為最好結果。與監督學習不同,強化學習在沒有任何「標籤」告訴算法應該怎麼做的情況下,先嘗試做出一系列「行為」,然後得到一個結果,通過判斷這個結果是對還是錯來對之前的行為進行反饋,由這個反饋來調整之前的行為,通過不斷地調整算法能夠學習到在什麼樣的情況下選擇什麼樣的行為可以得到最好的結果。這與人類利用現有知識解決未知領域的問題的學習過程相通,即人為什麼能夠做出最優決策。

2016年1月,谷歌Deep Mind團隊研發的Alpha Go以4 : 1戰勝人類職業棋手李世石,同年12月,谷歌Alphpa Go的升級版本Master在圍棋網站上以60 :0的壓倒性優勢連續打敗各國30位頂級水平棋手。在圍棋(古代稱為「弈」)誕生4000多年後,2016年7月,人類的圍棋歷史被改寫,世界職業圍棋排行榜上第一名——柯潔的位置被谷歌Deep Mind人工智能系統取代,至今無人打破。這背後是智能計算硬件與算法的升級,從勝樊麾時的單機版Alpha Go(48個CPU+8個GPU),升級到完勝人

專家點評

鄭文

類高手群體的分佈式Alpha Go(1202個CPU+176個GPU),從下一步棋用時1分鐘,進化到下一步棋用時8秒反而棋力大增,不僅是計算集群堆疊,還靠增強學習訓練算法模型升級起到了決定性作用。未來,純人類棋手對弈將會被人工智能算法對弈或人機智能混合(「人+人工智能」半人馬組合)對弈所取代,人類老師將讓位於「算法為師」。

在產業領域,強化學習的應用場景也有很多。比如,在2016年「雙11」淘寶天貓1207億元成交額的背後,阿里巴巴利用強化學習技術,對電商搜索引擎的排序策略進行實時調控,在異常複雜的在線推薦場景中,優化算法對上億商品實現毫秒級處理響應,收到很好的效果。如果把淘寶搜索引擎看作智能體,把用戶看作環境,那麼商品的搜索問題就可以被視為典型的順序決策問題。商品推薦算法每一次排序策略的選擇可以看成一次試錯,把電商用戶的反饋、點擊成交等作為從環境獲得的獎賞。在這種反覆不斷地試錯的過程中,商品推薦算法將逐步學習到最優的排序策略,最大化累計算法「獎賞」。這種與環境交互的過程中不斷地試錯學習,正是電商強化學習的根本思想。

快手前沿技術研究部YLab負責人,斯坦福大學計算機系博士,曾在硅谷多家著名企業、創業公司擔任資深研究員,研究領域涉及計算機視覺、深度學習、計算機圖形學與物理模擬等。

雖然強化學習在2017年被評為「10大突破性技術」,但它已經有幾十年的歷史了。它的基本思想是,學習在不同環境和狀態下哪種行為能把預期利益最大化。然而,這種方法一直無法推廣到現實世界中的複雜問題上,其中最主要的原因是,現實中可能遇到的情況錯綜複雜,無法進行一一枚舉。在深度學習出現後,事情發生了巨大變化:深度學習在解決複雜模式識別問題上有了突破性的進步。當深度學習與強化學習結合後,對現實情況的枚舉,就換成了首先對現實情況做模式識別,然後再對有限的模式進行枚舉,大大減少了計算量和存儲代價。這種學習方式也更接近人類思維的模糊判斷的特點。

Google的Deep Mind以圍棋高手Alpha Go一戰成名,它也是最早將深度學習與強化學習進行結合的公司之一。當時,主要的深度學習方法是監督式學習,也就是必須對訓練數據進行標注。這項工作通常需要人力完成,而深度學習所需的數據量又十分巨大,所以標注數據的獲得經常成為深度學習方法的一大瓶頸。而強化學習在一定程度上避免了這個問題,因為它的學習過程不依賴於標注,而是由一個獎勵函數來主導。這和人類在大多數情況下的學習方式是一致的,因為多數時候人類的學習過程並沒有監督和標注,而是根據產生的結果好壞來調整,如嬰兒學習走路的過程。因此,學術界有不少人認為,強化學習以及同樣不需要標注數據的無監督學習是未來深度學習的發展方向。

但是,在目前的情況下,強化學習要實現比肩人類在現實世界中的學習過程,仍然比較困難。強化學習需要大量的數據進行訓練才能學習到有意義的模式,這在現實世界中比較困難。比如,在藥物研發的應用中,訓練數據的獲得往往涉及從大批人群中進行組織採樣,費用高、耗時長,進行一次算法訓練的代價是巨大的,而研發過程中還需要不斷地迭代訓練。

強化學習最早綻放出光彩是在模擬環境當中。Deep Mind早期的工作是訓練計算機通過直接看屏幕的輸出學習如何玩遊戲。由於訓練數據可以直接從計算機中獲得,而且遊戲的運行速度也可以人為加快,所以強化學習的過程可以很快完成。同樣,戰勝了人類頂級圍棋高手李世石的Alpha Go也是在模擬環境中訓練的。特別是Alpha Go可以通過自己與自己對弈來學習,每次的對弈都在計算機內完成,訓練速度大大加快。

在未來,如何將強化學習高效地應用於現實世界,訓練數據將會是研究者需要解決的重要問題。一種思路是降低算法本身對數據量的需求,使算法能夠從較少的數據中學習出有意義的結果,比如與生成式模型的結合。另一種思路是通過模擬的方式快速地生成數據,比如在訓練自動駕駛汽車時,先在計算機裡模擬路況等信息進行訓練。強化學習方法已經開始應用於醫藥開發、自動生產機器人、自動駕駛汽車等領域。我們可以預期,隨著技術的不斷進步,能自動做家務的機器人也將有一日走入普通百姓的家庭。

[1].很多強化學習算法都利用了動態規劃理念。傳統的動態規划算法常用於優化任務,就像是一種「聰明的蠻力法」,它會將問題拆分成多個子問題,每一個被解決過的子問題都會被記錄下來,當已經解決的子問題再次出現的時候,只需直接查找結果而不需重新計算,並以此尋找最佳的解決方案。

[2].馬爾可夫過程(Markow Process)是指符合馬爾可夫性質的隨機過程,即條件概率僅與系統當前狀態(state)相關、與歷史或未來狀態相獨立的過程。與傳統的馬爾可夫過程不同的是,從MDP將行動(action)也納入考慮,即環境的下一個狀態不僅與當前的狀態有關,也與當前要採取的行動有關。

[3].「深度Q學習」(Deep Q Learning)雖然是現在最流行的強化學習(Reinforcement Learning)技術,但是其並不是唯一一個採用強化學習的技術(卡耐基梅隆大學就對強化學習進行了很好的調查)。並且請注意,Richarrd Bellman可以追溯到1957年,用於實現最佳控制(optimal control)的動態規劃(dynamic programming)的技術也採用了一個類似的概念。

《科技之巔2》