强化学习导论(一)
第一章 介紹
當我們思考學習的本質時,第一個來到我們腦海中的想法便是通過與環境互動來學習。
[例] 當嬰兒玩耍、舞動雙臂或四處張望時,盡管不存在明確的“導師”,但確是與環境產生了直接的感觀聯結(譯者注:人的行動與環境存在關聯)。
通過這種聯結不斷實踐(譯者注:人的行動以及環境的反饋,根據反饋調整行動,即人與環境互動的過程)會產生大量的因果信息、行動及其產生的效果信息以及能夠用來指導我們如何行動以達成特定目標的信息(譯者注:獲取信息,達到學習的目的)。在生活中,這種互動無疑是我們了解自身與自身所處環境的主要來源。
[例] 無論是學習如何駕駛一輛汽車還是與他人保持談話,我們都敏銳的關注著環境對我們的行為作出了怎樣的反應(譯者注:環境的反饋,例如汽車對我們的操作如何反應或他人對我們所說的話如何反應),并且嘗試通過行為來影響未來可能發生的事(譯者注:如何根據反饋調整行動以達成特定目標,例如踩剎車減速避免汽車駛出道路或說贊美他人的話使之心情愉悅)。從互動中學習是幾乎所有學習理論和智能理論的基礎理念。
在本書中,我們探索一種從互動中學習知識的計算方法。其并非直接將人或動物如何學習的過程簡單地理論化,而是主要探索理想化的學習情景和評估不同學習方法的效果。即,我們是從人工智能研發者和工程師的角度出發的。我們探索在科學或商業領域行之有效的機器設計,并通過數學分析或算例實驗來評估這些設計。我們將這一正在探索中的學科稱為強化學習,與其他機器學習方法相比,它更加關注基于互動的目標導向學習。
1.1 強化學習
強化學習問題與方法
試錯搜索(trial-and-error search)和延遲獎勵(delayed reward)是強化學習最重要的兩個特點。(1)試錯搜索 強化學習的目的是去學習怎樣行動——怎樣建立從特定情境到特定行動的映射——來獲取最大利益。學習者不會被事先告知采取怎樣的行動會產生最大利益,而是必須通過嘗試去發現。(2)延遲獎勵 在多數有趣且富有挑戰的案例中,行動可能不僅會影響即時獲得的獎勵,同時也會影響下一個情景,或通過這樣的過程波及所有后續獎勵。
強化學習包括三個概念,既是一個問題,又是一類在某些特定問題上行之有效的解決方法,還是一個研究該問題和其解決方法的特殊領域(同其他以“ing”結尾的標題如機器學習(machine learning)和登山運動(mountaineering)類似)。盡管為了便利用一個名稱來同時代表這三個概念,但從理念上理解它們之間的區別是必要的。特別是問題與其解決方法的區別,不理解它們會在學習中產生很多的困惑。
我們采用動態系統理論(dynamical systems theory)的觀點來正式定義強化學習問題,特別地,將其視為一個不完全信息馬爾可夫決策過程的最優控制問題。定義的全部細節只有等到第三章才能完全展開,但其基本理論是一個不斷學習的智能體通過與環境的持續互動來實現其特定的目標。一個學習中的智能體必須能在一定程度上感知環境的狀態,且能采取可以影響環境狀態的行動,智能體必須有一個或多個與環境狀態相關的目標。馬爾可夫決策過程包括三個方面——感知,行動,目標——以它們最簡單的可能形式且不忽略其中任何一個。任何適用于解決此類問題的方法都可以被歸為強化學習方法。
強化學習與有監督/無監督的區別
這是一種重要的”學習“方法,但無法獨自地來通過互動學習知識。此外,在互動問題中,同時獲取到具有代表性的情境和其正確行動的樣本是不現實的。在某些未知領域,我們期望能通過學習來獲取最大利益,因此智能體必須具有從自身經驗中學習的能力。
有監督學習和無監督學習這樣的用語似乎已經將機器學習的研究范疇分割完畢,但它們并沒有。盡管有人可能會認為強化學習是一種無監督學習,因為它不依賴正確的行為樣本,但強化學習嘗試最大化利益而不是嘗試尋找隱藏結構。了解智能體經驗數據的結構自然有利于強化學習,但它同樣無法單獨地解決以最大化利益為目標的強化學習問題。(譯者注:它關注的是代理如何在一個環境中采取行動以便最大化某種累積的回報。一句話:給定數據,學習如何選擇一系列行動,以最大化長期收益。)因此,我們認為強化學習是機器學習的第三個范疇,與有監督學習、無監督學習或其他可能存在的范疇并列。
強化學習一些獨特的研究范疇
探索-利用困境在于單獨地進行探索或利用均會導致任務失敗,智能體必須大量嘗試并逐步偏向那些表現最佳的行動。在隨機任務中,每個行動都必須被嘗試多次才能獲得一個關于其期望值的可靠估計。這已被數學家們集中研究了數十年,但仍未被解決。目前,我們認為完全的探索與利用的平衡問題并未出現在監督學習與無監督學習中,至少在它們最純粹的形式中沒有。
注:強化學習會根據環境的反饋,實時決策,而有監督無法根據即時情況改變計劃)。盡管這些方法已經產生了許多有用的結果,但它們聚焦于孤立的子問題是很大的限制。
強化學習完全從相反的路線出發,起始于一個完整的,互動的,目標導向的智能體。所有智能體有明確目標,能夠感知環境的各個方面,并且能選擇行動來改變環境。此外,除了面對高度不確定的環境時,通常設定智能體從一開始就必須采取行動。當涉及到計劃(規劃)時,強化學習方法必須解決計劃與實時的行動選擇之間的協調,以及環境模型如何被獲取與改進的問題。當強化學習涉及到有監督學習時,通常用它來確定哪些能力是關鍵的而哪些能力不是。為使學習研究繼續下去,重要的子問題必須被剝離出來單獨研究,但它們應在完整的,互動的,目標導向的智能體中扮演清晰的角色,即使智能體的所有細節還未可盡知。
我們并不總是認為一個完整的,互動的,目標導向的智能體意味著一個完全的有機體或機器人。在許多案例中,智能體只是大型行為系統的一部分。在這種情況下,智能體直接同大系統的其余部分互動并間接同大系統的周圍環境互動。一個簡單的例子是智能體監控機器人的剩余電量并向機器人的控制結構傳達指令。其環境是除它以外的機器人結構與機器人外部的環境。理解智能體及其外部環境的區別才能領會強化學習框架的廣義性。
強化學習學科的重要意義
例如,一些強化學習方法具有通過參數近似來學習的能力,解決了運籌學和控制論中經典的“維數災難”問題。更加獨特的是,強化學習同心理學和神經科學亦有大量的交融之處,并產生了許多可喜的成果。在機器學習所有范疇中,強化學習是一種最接近人和動物學習方式的方法,其許多核心觀點都受到了生物學習系統的啟發。強化學習同樣通過一些與經驗數據匹配度更高的學習心理模型和富有影響力的關于大腦部分激勵系統的模型對心理學和神經科學有所回報。本書主體部分闡述強化學習屬于工程學與人工智能范疇的觀點,同心理學與神經科學相關的部分總結在第14章和第15章。
在我們看來,這個觀點似乎來得為時過早:還未有多少精力被投入對通用性規則的研究,又怎能輕易下其不存在的結論?現代強化學習包含了大量尋找學習、搜索和決策等通用性規則的研究,同時包容并蓄地嘗試容納大量的領域知識。盡管鐘錘回擺的程度還不確定,但強化學習研究確是人工智能回歸更簡潔、更通用規則的確定回擺。
1.2 示例
思考一些具有引導性的示例與應用是理解強化學習的好方法。
這些示例都具有某些過于基本以致于極易被忽視的特征。
例如,菲爾必須盯著他正倒入盛著谷物的碗中的牛奶以免其溢出。所有示例涉及的目標在某種程度上是清晰的,因此智能體能夠基于直接的感知來判斷目標達成的進展。國際象棋玩家了解他是否獲得了勝利,精煉廠了解目前產出了多少石油,瞪羚知道它摔倒了,機器人會記錄自身的剩余電量,菲爾也清楚他是否享受自己制作的早餐。
1.3 強化學習的組成要素
除了智能體與環境,可以確定強化學習系統的四個主要要素:策略,獎勵信號,價值函數以及(可選的)環境模型。
從某種意義上說,獎勵是主要的,而價值作為獎勵的預測是次要的。沒有獎勵即沒有價值,而且估計價值的目的在于獲取更多的獎勵。盡管如此,當我們在決策或評估決策時,價值是我們最關心的。行動選擇基于價值判斷。我們總是尋求那些能夠帶來最高價值而不是最高獎勵的行動,因為最高價值的行動可以從長遠角度為我們帶來最高的獎勵。不幸的是,確定價值遠比確定獎勵困難。獎勵基本可以由環境直接給定,但是價值必須根據一個智能體在其整個生命周期中所做的一系列觀察來反復評估。實際上,我們認為對于所有強化學習算法而言,最重要的部分是一個能有效地估計價值的方法。價值估計的核心作用可以說是過去60年來我們在強化學習中所學到的最重要的東西。
1.4 限制和適用范圍
強化學習嚴重依賴狀態的概念——作為策略與價值函數的輸入和模型的輸入與輸出。非正式地,我們可以將狀態視為一個傳遞給智能體的信號,該信號包含了在特定時間“環境是怎樣的”的信息。我們所使用的關于狀態的正式定義在第三章由馬爾科夫決策過程框架給出。然而更一般地,我們鼓勵讀者了解非正式的定義并將狀態視為智能體可獲得的任何關于環境的信息。實際上,我們假設狀態信號是由某種名義上是環境一部分的預處理系統給定的。我們在本書中不討論如何構建、改變和學習狀態信號(但在第17.3章節有簡短的介紹)。我們這樣做并非是因為我們認為狀態表示不重要,而是為了將內容聚焦在決策問題上。換言之,我們的主要精力并沒有放在設計狀態信號上,而是在狀態信號已知時決定采取何種行動。
本書中介紹的大部分強化學習方法都圍繞著估計價值函數來建立,但這并不是解決強化學習問題的唯一方法。例如,一些諸如遺傳算法,模擬退火和其他優化算法的解決方法不需要估計價值函數。此類算法同時在一段相當長的計算時間內(譯者注:例如規定算法最大迭代次數,在實驗中數值可以隨意設置)考慮多個獨立且完整的策略(譯者注:例如遺傳算法中的種群,種群內每一個染色體相當于一個獨立的完整策略)同一個環境的實例進行交互。獲得帶有隨機波動的最高獎勵的策略被傳入下一代策略集合,以此往復。我們將此類算法稱為進化方法,因為它們的運作類似于生物熟練地進化繁衍出其他生物體的方式,即使在其生命周期內沒有學習如何去進化和繁衍。假如策略空間足夠小或者是好策略很容易被設計出來的理想情況,又或者有大量的時間可以用來搜索,那么進化算法是有效地。此外,進化算法在那些智能體無法完全感知環境狀態的問題中具有優勢。
我們主要聚焦于通過與環境互動來學習的強化學習方法,而進化算法則不具備此特點。在許多案例中,能夠利用個體行為互動細節的方法比進化方法更加有效。進化方法忽略了許多強化學習問題中有用的結構:它們沒有考慮到其搜尋的策略是一個從狀態到行動的映射;也未考慮到一個個體在其生命周期內經歷了哪些狀態或選擇了哪些行動。盡管在某些情況下這些信息可能會產生誤導(例如,狀態信息被誤判時),但在大多情況下,它們使得搜索更加高效。雖然進化和學習有許多共同的特點,并且可以自然地協同工作,但我們不認為進化方法本身特別適合于強化學習問題,因此,我們不在本書中討論它們。
1.5 一個拓展示例:井字棋
為了例證強化學習的一般觀點并將其與其他方法比較,我們更加詳細的考慮一個示例。
回想一下我們所熟悉的兒童游戲——井字棋。兩個玩家輪流在3 × 3的棋盤上落子, 一個玩家使用X型棋子而另一個玩家使用O型棋子,直到某位玩家有三枚棋子在水平、垂直或對角線方向(如下圖所示)連成一行,則判定其獲勝。如果在此之前棋盤已被棋子占滿,則判定為平局。
因為一名經驗豐富的玩家可以使自己永遠不會輸,所以讓我們假設在同一名技術并不完美的對手對弈,因而他可能會下錯使我們獲勝。讓我們暫時假定平局與輸棋一樣糟糕。我們應當怎樣構建一個下棋程序來找到對手的缺陷并最大化自身獲勝的概率呢?
若干求解方法
然后我們與對手對弈了數局,為了選擇走子的位置,我們需要檢查所有走子之后可能到達的狀態(考慮當前棋盤上每一個空白的位置)并在數值表格中查詢它們目前的價值。大多數時間我們采用貪婪式走子,即選擇能夠在走子之后到達具有最高價值(獲勝概率最大)的狀態的位置。偶爾我們也隨機的選擇下一步走子的位置,我們將其稱之為探索式走子,它們能讓我們探索過去從未經歷過的狀態。游戲中一系列的考慮與行動可以表示為圖1.1。
圖 1.1: 一個井字棋走子序列。實線表示游戲中實際走子;虛線表示我們 (我們的強化學習程序)考慮但沒有采用的走子。我們下的第二步棋是探索式走子,這意味著盡管另一個同代節點 e?的估計值更高,但我們仍然隨機選取了節點e。探索式走子本身不能產生新的知識學習;但其他的步數可以,這形成了如圖中紅色曲線箭頭所示的更新,估計值從樹的子輩結點流向父輩結點,關于這一過程的細節在下文中敘述。
當我們在下棋時, 我們需要更改經歷過的狀態的價值來實現對勝率更為準確的估計。為了做到這一點,我們將貪婪式走子后到達狀態的價值“回傳”給走子之前的狀態,如圖 1.1 所示。更確切地說,早先狀態的當前價值更新后向后續狀態的價值靠攏。這可以通過將后續狀態的價值的一部分賦予早先狀態的價值來實現。 令S表示貪婪式走子前的狀態,用 S’ 表示貪婪式走子后的狀態, 那么對S的價值估計——記作 V (S)——的更新可以寫作:
V (S) = V (S) + α [ V (S’) - V (S) ]
其中 α 是一個很小的正分數,被稱為步長參數,能影響學習的速率(譯者注:同經典的梯度下降算法中的步長參數功能類似)。上述更新規則是時序差分學習方法的一個示例,其之所以被命名為時序差分是因為更新基于 [ V (S’) - V (S) ] 這兩個不同時刻的連續狀態的估計價值之差。
上述方法在這個問題上有良好的表現。例如,如果步長參數能隨時間以合適的速率衰減,那么對于任何給定的對手, 任意狀態的估計值都能收斂到從該狀態出發使用最優策略而最終獲勝的真實概率。更進一步說,收斂后所下的每一步 (除去探索式走子) 事實上都是針對這一 (非完美) 對手的最優下法。換言之, 此方法最終收斂為針對這一對手的最優策略。如果步長參數不隨時間衰減至 0,下棋程序也能很好地應對緩慢地改變策略的對手(譯者注,始終在一定的程度上持續地學習,學習的速度取決于步長參數衰減后最終的值)。
進化方法與值函數方法的比較
這個示例闡明了進化方法與使用值函數的方法之間的區別。為了評估一個策略, 進化方法將該策略固定,多次同對手對弈或使用對手的模型模擬對弈,獲勝的頻率給出了使用該策略獲勝概率的無偏估計,然后被用來指導下一步的策略選擇。但是,策略改進必須要經過數局游戲,并且只有每局游戲的最終結果被利用了——發生在游戲過程中的一切都被忽略。例如,如果程序獲勝了,那么這局游戲中的所有行為都會被賦予一定的積分,而沒有考慮某些行為對獲勝而言有多么重要。積分甚至會被給予從未出現過的走子行為。而使用價值函數的方法則與之相反,它允許對各個狀態進行單獨評估。從結果上而言,進化方法與值函數方法都是在策略空間中進行搜索,但學習一個價值函數可以利用游戲過程中的所有信息。
這個簡單的示例說明了強化學習方法的一些關鍵特征。首先,強調從與環境的互動中學習,在本例中是通過同對手對弈來學習。其次,有明確的目標,且正確的動作選擇要求制定長遠的計劃,即將行動選擇的延遲效果考慮在內。例如,簡單的強化學習程序可能會學會使用多步陷阱來針對目光短淺的對手。這是強化學習方法的一個顯著特征:不需要一個模擬對手行動的模型,也不需要對未來可能的動作、狀態序列進行顯式搜索,就可以達到計劃與預見的目的。
強化學習更廣泛的應用
雖然在此例證了強化學習的一些基本特征,但它實在太簡單以致于可能會給人留下強化學習的應用十分有限的印象。除了井字棋這樣的雙人游戲外,強化學習同樣適用于沒有外部敵人的情形,即 “與自然斗爭的游戲”。強化學習同樣不局限于那些可將行為分解為獨立片段的問題,例如獎勵只能在每個片段(棋局)結束之后結算的井字棋游戲。其亦可應用于行為無限持續且在任意時間節點都會收到不同獎勵信號的問題。與在井字棋游戲中的運用不同,強化學習甚至可以用于無法劃分為離散步驟的問題。強化學習的通用規則同樣適用于連續時間問題,但涉及理論更加復雜,因此不在本書中討論。
井字棋游戲具有相對較小的有限的狀態集,而強化學習可以用于解決狀態集極大甚至無窮大的問題。例如,Gerry Tesauro (1992,1995)將上述算法與一個人工神經網絡結合來求解西洋雙陸棋問題,其大概有1020個狀態。因為狀態太多我們甚至無法在一定時間內經歷其中的一小部分。Tesauro的西洋雙陸棋學習程序的表現遠超之前的其他程序,現在已經達到了世界頂尖人類棋手的水平(見第16章)。神經網絡為程序提供了從經驗中泛化的能力,因此在到達一個從未經歷的新狀態時,神經網絡會參考曾經遇到相似狀態時儲存的決策信息來選擇行動。強化學習系統在具有如此大的狀態集的問題上的表現同它是否能夠很好地根據過去經驗進行泛化有緊密的聯系。在這個問題中,我們非常需要監督學習和強化學習的結合。但神經網絡和深度學習卻并非唯一與最佳的處理方式(見第9.7小節)。
井字棋游戲中,在學習開始時沒有除游戲規則外的任何先驗知識,但強化學習并不一定要從空白開始。恰恰相反,先驗知識可以以多種方式集成到強化學習中,且有時這對高效的學習而言是有重要意義的。此外,在井字棋游戲中我們可以獲取到真實的狀態信息,但強化學習也可以應用于部分狀態被隱藏的情形,或者對學習器而言不同的狀態看上去相同的情形。
最后, 井字棋程序能夠預見未來并了解其所有可能的走子所導致的狀態。為了做到這一點,強化學習程序需要一個游戲的模型,其能預見環境對程序尚未走的那一步的可能反應。許多問題都與此類似, 但在有些問題中甚至連在短期內預測動作結果的模型也無法得到。強化學習在這兩種情況下都適用。模型并不是必須的,但如果有現成的模型或模型可以學得,那么這些模型可以被相應的強化學習方法輕而易舉地使用(第8章)。
另一方面,這里也存在不需要任何環境模型的強化學習方法。免模型系統甚至不用預測環境對單個動作的反應。井字棋程序從某種意義上說是免模型的:因其沒有任何關于對手的模型。因為模型必須要足夠準確才能派上用場,所以在面對瓶頸在于難以構建足夠準確的環境模型的問題時, 免模型方法比其他更復雜的方法有優勢。免模型方法也可以被整合進有模型方法作為其中的一部分。本書中,我們先用數章討論免模型方法, 然后再討論其怎樣作為組件嵌入到更復雜的有模型方法中。
強化學習方法既可以用于系統頂層, 也可以用于系統底層。雖然在井字棋程序僅學會了游戲的基本下法, 但這不妨礙將強化學習用于更高的層次,其中可能每一個“行動” 本身就是一個復雜的問題解決方法。在分層學習系統中,強化學習可以同時服務于多個層級。
總結
強化學習是一種具備理解能力的和自動化的目標導向學習與決策的計算方法。因為其強調在不依賴“外部導師”或完整的環境模型條件下通過與周圍環境直接交互來學習,強化學習同其他計算方法有明顯區別。在我們看來,強化學習是第一個真正解決通過與環境交互中學習以達成長期目標時出現的計算問題的科學領域。
強化學習使用正式的馬爾科夫決策過程框架中的三個要素——狀態,行動和獎勵來定義智能體與其周圍環境的互動。該框架通過一種簡單的方式表達了人工智能問題中有代表性的關鍵特征。這些特征包括因與果,不確定性和明確目標的存在。
價值與價值函數是本書中大多數強化學習方法的核心概念。我們認為價值函數對于策略空間中的高效搜索非常重要。價值函數的運用將強化學習方法與進化方法區別開來,后者根據對完整的策略的評估來引導在策略空間中的直接搜索。
總結
- 上一篇: 8. An Introduction t
- 下一篇: 8.1 A Bayesian Metho