<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # (3) 增強學習簡介 > 作者:[謝天](https://www.zhihu.com/people/xie-tian-55-77) > > 來源:[POST 館](https://zhuanlan.zhihu.com/c_150977189) ## Markov 決策過程與增強學習 在上一篇中,我們已經熟悉了狀態![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg)、觀測![](https://img.kancloud.cn/43/c6/43c665d984fa96ced4f70fa1e398f02d_15x11.jpg)、行動![](https://img.kancloud.cn/83/44/834474ce919482e0232071b1ae5607d8_15x11.jpg)、策略![](https://img.kancloud.cn/0d/ed/0dedffb02246e773016f98a4ecff6331_67x19.jpg)或者是![](https://img.kancloud.cn/31/36/31362ed68b5916b9f2147c5c87dce3ea_64x19.jpg)的概念,也知道了從包含認知世界所需要的所有信息的狀態![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg)得到觀測![](https://img.kancloud.cn/43/c6/43c665d984fa96ced4f70fa1e398f02d_15x11.jpg),然后使用策略![](https://img.kancloud.cn/0d/ed/0dedffb02246e773016f98a4ecff6331_67x19.jpg)做出行動![](https://img.kancloud.cn/83/44/834474ce919482e0232071b1ae5607d8_15x11.jpg),最后由狀態![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg)和行動![](https://img.kancloud.cn/83/44/834474ce919482e0232071b1ae5607d8_15x11.jpg)經過系統固有的轉移概率分布函數 (dynamics) ![](https://img.kancloud.cn/e2/77/e2777a2e36311626e3682430c9a73882_95x19.jpg)得到下一期的狀態![](https://img.kancloud.cn/c3/89/c38924b21817d4267b9832500da80649_29x13.jpg)這樣周而復始的過程,同樣我們也明白了給定狀態![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg),假設之后的狀態![](https://img.kancloud.cn/c3/89/c38924b21817d4267b9832500da80649_29x13.jpg)和之前的狀態![](https://img.kancloud.cn/7b/a0/7ba0b27343d3ae9759049a20d8e0e2e0_29x12.jpg)等無關的 Markov 性。 我們同樣給出了如果我們有充分的數據,一定程度上可以做監督學習(模仿學習)。但是如果我們沒有數據的話,需要用一些方式來定義這個任務。在上一篇的結尾也提到,一個核心是要去設置一個收益函數![](https://img.kancloud.cn/92/96/9296aefc475ab23d151ba45a5db7a89c_48x18.jpg),它定義了什么樣的 (狀態, 行為) 二元組是好的,以及什么樣的是不好的。譬如在自動駕駛問題中,如果汽車開得很順利速度很快,收益函數應該很高;而如果和其他車輛撞上了,那么收益函數應該很低。收益函數的目的不是直接告訴你現在應該做什么,只是告訴你哪些結果會被認為是比較好的。而增強學習問題的一大目標就是,弄清楚現在應該做什么,使得未來的結果會更好。這也被稱為延遲收益 (delayed reward) 問題,現在的行為可能不立即產生什么獎懲,而會對將來的結果產生嚴重的影響。 狀態![](https://img.kancloud.cn/64/cb/64cb6c12af33e812d8c18d8492e5fdab_8x8.jpg)、行動![](https://img.kancloud.cn/47/d8/47d8a736c44fb8a90e7c5ef4ef497af2_10x8.jpg)、收益函數![](https://img.kancloud.cn/92/96/9296aefc475ab23d151ba45a5db7a89c_48x18.jpg)和轉移概率![](https://img.kancloud.cn/2f/1d/2f1d9bf08b7c1aaf05c529174354ecb7_67x19.jpg)共同定義了**Markov 決策過程** (Markov Decision Process, MDP)。 為了描述這一過程,我們先來回顧一下俄羅斯數學家 Andrey Markov 提出的 Markov 鏈。Markov 鏈本身并不是直接與增強學習相關。Markov 鏈![](https://img.kancloud.cn/58/b2/58b296a1c98f99371005b81d82d055f1_98x19.jpg)由狀態空間 (state space) ![](https://img.kancloud.cn/2d/d3/2dd3705e8f553f342fdcef1e9dcb1531_12x13.jpg)和轉移算子 (transition operator) ![](https://img.kancloud.cn/32/7f/327f8bd1266af11dc4aa0e1bb3d62432_16x14.jpg)共同構成。每一個狀態![](https://img.kancloud.cn/2b/75/2b755e0a2d51a20409554da9553ac111_43x14.jpg)可以是離散的分類變量,也可以是連續的數值之類;轉移算子確定了概率![](https://img.kancloud.cn/99/15/9915ab57c4af7ed1f7508f07ef20f8e3_72x19.jpg),是給定當前狀態轉移到下一個某狀態的轉移概率。該算子其實是一個線性算子。如果狀態是離散的,令![](https://img.kancloud.cn/49/b5/49b513ed6ad599768305868667104ba5_114x20.jpg)為在![](https://img.kancloud.cn/64/9c/649cbb0dc497a73d3cb2a543eaaf7933_6x12.gif)時刻處于狀態![](https://img.kancloud.cn/ce/2f/ce2f0b65d997f22465d44c6f3c70f0df_6x13.gif)的概率,從而![](https://img.kancloud.cn/18/e9/18e9ecd087bdeb9b69763c1b3172625f_16x12.jpg)是一個加和為 1 的概率分布向量,表示了在![](https://img.kancloud.cn/64/9c/649cbb0dc497a73d3cb2a543eaaf7933_6x12.gif)時刻的概率分布;令轉移概率![](https://img.kancloud.cn/28/b5/28b5420b9327f2ced7f83ad96f5eec69_183x20.jpg),則這些概率組成一個轉移概率矩陣![](https://img.kancloud.cn/32/7f/327f8bd1266af11dc4aa0e1bb3d62432_16x14.jpg),且有![](https://img.kancloud.cn/90/a6/90a63fca29ab75b00572f654d02f65b0_88x18.jpg)的關系。如果狀態是連續的,則無非狀態變成了無數個,轉移概率矩陣無窮大,但還是線性的。Markov 性體現在轉移概率的定義上,當我們知道狀態![](https://img.kancloud.cn/47/9a/479a2ff68b18f35cf381aa7b7e44e815_13x11.jpg)了,下一個狀態就不依賴于其他的信息了,分布為![](https://img.kancloud.cn/99/15/9915ab57c4af7ed1f7508f07ef20f8e3_72x19.jpg)。 Markov 決策過程 (MDP) 是將 Markov 鏈放在一個決策環境的擴展產物,在 1950 年代由 Richard Bellman 等人提出。Markov 決策過程![](https://img.kancloud.cn/7c/9b/7c9b2d87d9b49775798e88423e44e50c_138x19.jpg)相比之前多了一些組件。其中狀態空間![](https://img.kancloud.cn/2d/d3/2dd3705e8f553f342fdcef1e9dcb1531_12x13.jpg)保持不變,多了一個行動空間 (action space) ![](https://img.kancloud.cn/44/aa/44aa123929d3bc0ade47bd586e788f96_15x14.jpg),行動![](https://img.kancloud.cn/7d/d5/7dd5c4fa53198b36957f066c084869c4_47x14.jpg)同樣可以是離散的也可以是連續的。在這里,轉移概率不僅受到狀態影響,還受到行動影響,因此轉移算子![](https://img.kancloud.cn/32/7f/327f8bd1266af11dc4aa0e1bb3d62432_16x14.jpg)在這里變成了一個張量,每個元素![](https://img.kancloud.cn/1e/bf/1ebf8834fa0c26f41faf6b9bd7e64fd0_249x20.jpg)。如果令![](https://img.kancloud.cn/30/a4/30a41e492595b0833d047b8879021981_118x20.jpg),![](https://img.kancloud.cn/4f/7f/4f7f1e98d03244c52f253fe3d9acd3fc_119x20.jpg)的話,同樣存在一個線性關系: ![](https://img.kancloud.cn/13/f6/13f696a38bc97e03504e333d34ef057e_179x42.jpg)。因此下一期的狀態只與當期狀態和當期行動有關系。最后一部分![](https://img.kancloud.cn/5e/2b/5e2b69b8877119e29cf30c4fc3ed5ca8_47x18.jpg)是收益函數,是一個![](https://img.kancloud.cn/63/88/6388126f29ba79fc40cb352dc652895d_91x14.jpg)的映射。 一個更加廣義的問題被稱為**部分可觀察的 Markov 決策過程** (Partially Observed Markov Decision Process, POMDP)。該過程![](https://img.kancloud.cn/a8/44/a8443eb238854a9efe3afca3b3b0dccf_180x19.jpg)新增了兩個組件:觀察空間![](https://img.kancloud.cn/4a/ac/4aac266aa0804465081afa921ee1e26c_14x13.jpg) (observation space),同樣是可以離散可以連續的;![](https://img.kancloud.cn/71/e0/71e0d6365f0a05ed9f8be829899c4b19_11x13.jpg)為排放概率 (emission probability),決定了給定由![](https://img.kancloud.cn/47/9a/479a2ff68b18f35cf381aa7b7e44e815_13x11.jpg)后,![](https://img.kancloud.cn/50/dd/50dd650e375035428b2ac869fe0c751b_14x11.jpg)的概率分布為![](https://img.kancloud.cn/16/35/16351637ff0c341d4707776ee8f5ffa3_56x19.jpg)。 現在我們來說明增強學習的目標是什么。在這里我們假設的策略函數是清楚的,![](https://img.kancloud.cn/cd/cb/cdcb05294b000178204d45fc9850b833_53x19.jpg)可以由一個參數為![](https://img.kancloud.cn/d7/4e/d74edaaf2305d2d981f9c13219e34f36_9x12.gif)的深度神經網絡確定(這里先假設完全可觀察)。我們將狀態![](https://img.kancloud.cn/64/cb/64cb6c12af33e812d8c18d8492e5fdab_8x8.jpg)輸入到深度神經網絡之中,得到行動![](https://img.kancloud.cn/47/d8/47d8a736c44fb8a90e7c5ef4ef497af2_10x8.jpg),共同輸入給環境。環境通過某些轉移概率函數![](https://img.kancloud.cn/2f/1d/2f1d9bf08b7c1aaf05c529174354ecb7_67x19.jpg)(一般我們假設這個是不知道的),得到新的狀態![](https://img.kancloud.cn/c5/bb/c5bbb12c97a20586fea19f5589959be7_12x14.jpg),形成一個循環。 ![](https://img.kancloud.cn/4e/37/4e3726ec65aea9c2f38050176e353d46_720x212.jpg) 我們考慮一個有限長度的(狀態, 行動)軌跡 (trajectory),![](https://img.kancloud.cn/1b/5e/1b5e5371ba913539eb5759841bc121c9_178x19.jpg)。對于這樣的軌跡,發生的概率為![](https://img.kancloud.cn/de/a3/dea356d3c044d135e3b34a7ef62ce90d_292x54.jpg)。我們通常不能控制初始狀態![](https://img.kancloud.cn/7d/c0/7dc001f4ead5b1767e77565f91a9f92d_14x12.jpg),而后面每一期的行動都由當前狀態和策略函數決定,轉移概率具有 Markov 性,故可以表現為這樣乘積的形式。而我們想做的是,選出一組最優的神經網絡參數![](https://img.kancloud.cn/a7/22/a7223030d9a433ad42117cfd720820c4_15x13.jpg),使得![](https://img.kancloud.cn/6b/17/6b17278317e44b3d2881f593e45b38dc_285x55.jpg),即最大化總收益函數的關于軌跡期望。收益可以非常稀疏,如打一場籃球賽,如果最后時點贏了那么得到收益為 1,此外其他時間的收益都是 0;如果想減少自動駕駛中車禍的數量,也可以設置成一旦發生車禍就給予-1 的收益;總體來說,如何使用收益函數是非常靈活的。 值得一提的是,這個發生概率其實本質上是一個關于增廣的空間![](https://img.kancloud.cn/6d/46/6d466bc75e0064ecc088f082d91e0f57_38x18.jpg)的 Markov 鏈。具體來說,可以表示為![](https://img.kancloud.cn/00/c3/00c356eee5e56647778a9e24776e2e81_380x19.jpg)。 對于有限長度的軌跡問題,事實上![](https://img.kancloud.cn/e0/be/e0be965eda80d05816fa680ccf10d8d1_314x54.jpg),只需要關注這個 Markov 鏈在一個時間點上的邊際分布就可以了。對于![](https://img.kancloud.cn/46/1c/461c756db6849eb7119a47f1f9eeb480_55x13.jpg)的無限長度的問題,由于我們之前已經把![](https://img.kancloud.cn/6d/46/6d466bc75e0064ecc088f082d91e0f57_38x18.jpg)的 Markov 鏈化,因此有![](https://img.kancloud.cn/07/39/073939a00c8fc3577b97e5e362b4a9ba_151x45.jpg),進一步![](https://img.kancloud.cn/65/a9/65a9120364a862f3e7abfc1c106738bc_9x13.gif)步轉移算子![](https://img.kancloud.cn/58/19/5819381de622556d248a3a61084676d7_159x45.jpg)。我們考慮![](https://img.kancloud.cn/e1/cc/e1cc6c6ef74c45851e88c38d933d8909_67x18.jpg)是否逐漸收斂到一個平穩分布 (stationary distribution):之所以說平穩分布,是因為經過一次狀態轉移后,分布不發生變化,這樣的分布也就是![](https://img.kancloud.cn/60/a3/60a3dbd5291963bf59b489e85e85a37e_61x17.jpg),也就是![](https://img.kancloud.cn/f4/cb/f4cb7d17014c4bb782f70664b4d2850f_101x18.jpg),或者說以矩陣特征向量的角度考慮,![](https://img.kancloud.cn/da/ae/daae94eb5dc924acf8a8609e74df9f3a_11x12.jpg)是![](https://img.kancloud.cn/32/7f/327f8bd1266af11dc4aa0e1bb3d62432_16x14.jpg)特征值為 1 的特征向量。由于![](https://img.kancloud.cn/32/7f/327f8bd1266af11dc4aa0e1bb3d62432_16x14.jpg)是一個隨機矩陣,給定一些正則條件,這樣的向量總是存在的,此時![](https://img.kancloud.cn/5e/f4/5ef4542c033c5077479a90eed092aad0_90x18.jpg)是其平穩分布。對于無限長度的問題,我們也可以對目標函數進行平均,![](https://img.kancloud.cn/06/e9/06e9ff22f1979717bbbda85d7fb04d9a_526x54.jpg),它將完全由平穩分布下的情形所控制。 在增強學習中,我們幾乎只關心期望,而不是個別的值,這是因為這給予了我們很好的數學性質。譬如說在盤山公路上開一輛車,如果正在運行那么收益函數為+1,如果掉下山崖則收益函數為-1。此時,我們的收益函數是不光滑的。假如說我們從非常復雜的系統中提取出了一個概率![](https://img.kancloud.cn/e5/66/e5667c7e3fc1b8c14ae35b6a7df81152_12x16.jpg),作為掉下的概率,此時如果我們關注期望的話,平穩分布下的收益函數的期望,![](https://img.kancloud.cn/90/16/90168aa147510ae7c1ede60a3ee4ffbb_151x21.jpg)則是關于![](https://img.kancloud.cn/e5/66/e5667c7e3fc1b8c14ae35b6a7df81152_12x16.jpg)光滑的!這一點非常重要,允許我們使用諸如基于梯度的算法來優化非光滑的目標(可能是非光滑的轉移,或者非光滑的收益函數等等導致)。 ## 增強學習算法的一般步驟 ![](https://img.kancloud.cn/25/85/258524f828b8d83a061b446e5ea1cc8f_720x481.jpg) 幾乎所有的增強學習算法都會由以上三部分組成,即便可能特定算法會退化掉其中的一部分。 1. 生成樣本。我們在現實世界(或者模擬器)中運行我們的策略,來收集軌跡樣本。有的時候,這個軌跡可以只是一個轉移,這樣就是一個很短的軌跡;也可以是完整的有始有終的一條。 2. 擬合模型/估計收益。對于策略學習算法,則這個部分就是策略評估 (policy evaluation);對于基于模型 (model-based) 的增強學習算法,那么就是模型擬合,等等。這個步驟中并不改變我們的行為,但我們想通過研究我們在第一步中得到的樣本來看發生了什么,當前的策略有多好,或者嘗試去分析物理環境等等。 3. 改進策略 (policy improvement)。根據之前的研究結果,改進策略,再投入到第一步的運行中去。 不同算法在不同步驟要做的事情也差異很大。在綠色方塊的第二步,策略梯度法只需要計算一個求和來得到收益,諸如![](https://img.kancloud.cn/2f/9a/2f9a2e9e3e8c5d9b85ef2bb0c896af06_118x54.jpg); 基于值函數的方法諸如演員-評論家算法和 Q 學習算法則需要去擬合一個用深度神經網絡代表的函數![](https://img.kancloud.cn/98/e0/98e060894277558387de0871cb46ce33_62x20.jpg);基于模型的方法則需要去估計轉移概率![](https://img.kancloud.cn/2f/1d/2f1d9bf08b7c1aaf05c529174354ecb7_67x19.jpg)。在藍色方塊的第三步,策略梯度法需要對神經網絡的參數進行一個梯度步的調整,諸如![](https://img.kancloud.cn/ed/ce/edceec99965961b0dcf7785bcc39b7f2_158x18.jpg);Q 學習法則需要找到一個使得 Q 函數最大的行動![](https://img.kancloud.cn/ca/20/ca2003e82e193c01485e06ccd660e65c_197x20.jpg);基于模型的方法則需要用諸如反向傳播梯度的方法去優化策略函數![](https://img.kancloud.cn/cd/cb/cdcb05294b000178204d45fc9850b833_53x19.jpg)。 哪些步驟昂貴,哪些步驟廉價,實際上取決于選取的算法和要處理的實際問題。就生成樣本而言,如果我們運行諸如汽車、機器人等,需要用到真實物理系統的話,我們只能以 1 倍速度實時收集數據(除非有了時間穿梭手段);當然如果我們有多個物理系統我們可能可以進行并行的數據收集。而如果我們使用諸如 MuJoCo 之類的模擬器,那么我們可以期待有 10000 倍速度的加速。因此取決于我們的具體問題,生成樣本的難度可能會是效果的主要限制因素,當然也可能微不足道。同樣,綠色方塊第二步策略梯度法計算求和很容易,而 Q 學習方法的擬合神經網絡則代價較高而且很難并行。但是,在藍色方塊第三步中,Q 學習方法對應的找到使得 Q 函數最大的行動卻非常容易,而基于模型的方法的反向傳播優化策略則相對很困難。 ![](https://img.kancloud.cn/3f/9d/3f9d6f772e0b1406c2b5d851e885454b_720x136.jpg) 讓我們來考慮如上的有點像基于模型的增強學習中,用反向傳播來訓練增強學習模型的玩具例子。假設環境![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif)是確定性的(非隨機),策略![](https://img.kancloud.cn/51/fc/51fc5d9fb45ddeede09c1d1d021ad75e_16x11.jpg)用一個神經網絡表示,給定狀態,輸出一個行動。整體形式類似于一個 RNN,優化策略的方法是反向傳播收益函數的梯度。要做這件事情,我們要收集數據(第一步橙色方塊),也要更新模型![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif),保證模型和實際發生狀態轉移情況一致(第二步綠色方塊)。前向傳播用于計算收益函數,也屬于第二步綠色方塊之中。唯一屬于第三步藍色方塊的是計算梯度并將其反向傳播。當然這個過程也是非常不足的,譬如只處理確定性的環境和策略,只處理連續的狀態和行動,且優化問題也是非常難以求解的。 ## Q 函數與值函數 那么如何處理隨機系統呢?因為我們考慮的目標主要還是關于期望,因此條件期望成為一個非常有力的工具。我們想描述一個期望![](https://img.kancloud.cn/e1/4b/e14b5a03bded06d30419a3e0291ed6f6_208x54.jpg),而這個期望則可以由一系列嵌套的條件期望所描述: ![](https://img.kancloud.cn/3b/91/3b910922163db32078c548762ffadfa1_592x42.jpg) 其中第一個狀態是服從于初始分布,在第一個期望內,我們要對第一個行動取期望,是服從于我們的策略的。第二個狀態是以第一個狀態和第一個行動為條件的,依次類推。而我們想做的事情,首先是找到一個非常好的**第一個行動**![](https://img.kancloud.cn/9a/71/9a715bb2906369f4ae0e6a432d8357ea_16x12.jpg)。我們把中間的遞歸部分抽離出來,令![](https://img.kancloud.cn/a1/5e/a15ef75a2b735969af34714b497a03b0_565x20.jpg) ,如果我們知道這樣一個函數,那么原來的問題就可以被簡寫為 ![](https://img.kancloud.cn/b7/bc/b7bc930182c9ecbcfcb9233028bd0709_278x20.jpg) ,我們對![](https://img.kancloud.cn/9a/71/9a715bb2906369f4ae0e6a432d8357ea_16x12.jpg)的選擇的事實上就不依賴于其他的東西了。我們把這樣的函數稱為**Q 函數** (Q-function),表現為在狀態![](https://img.kancloud.cn/7d/c0/7dc001f4ead5b1767e77565f91a9f92d_14x12.jpg)下,選擇行動![](https://img.kancloud.cn/9a/71/9a715bb2906369f4ae0e6a432d8357ea_16x12.jpg)所能帶來的收益函數的條件期望。如果 Q 函數已知,那么改進策略將非常容易:我們只需要挑選一個![](https://img.kancloud.cn/9a/71/9a715bb2906369f4ae0e6a432d8357ea_16x12.jpg),使得 Q 函數最大化就行了,即![](https://img.kancloud.cn/f4/72/f4727c115194eca505d9b8e1636aa17b_286x28.jpg)。同樣也可以在其他步驟類似這樣做法。 那么我們給幾個重要的概念下定義。 > Q 函數:![](https://img.kancloud.cn/71/d8/71d8fd7ddfdb1870225813cab2f90e38_273x54.jpg),從![](https://img.kancloud.cn/64/9c/649cbb0dc497a73d3cb2a543eaaf7933_6x12.gif)時刻狀態為![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg)起,執行行動![](https://img.kancloud.cn/83/44/834474ce919482e0232071b1ae5607d8_15x11.jpg),之后根據給定策略決策,未來總收益的條件期望。 > 值函數 (value function):![](https://img.kancloud.cn/ae/03/ae03d6757346e09c73ff05304be7d9c3_226x54.jpg),從![](https://img.kancloud.cn/64/9c/649cbb0dc497a73d3cb2a543eaaf7933_6x12.gif)時刻狀態為![](https://img.kancloud.cn/e6/ff/e6ff47409e99fe4837deac4e204cfd59_13x11.jpg)起,根據給定策略決策,未來總收益的條件期望。 由于 Q 函數和值函數的特別關系,值函數也可以表示為![](https://img.kancloud.cn/84/e4/84e4f4aeb79018baec60777151666804_238x20.jpg)。需要注意的是,這樣定義的函數的右上角都有個![](https://img.kancloud.cn/6d/fd/6dfd85ec70d7f0f9a5e214f7e3e76e3f_11x8.gif),指的是它都是關于某個特定的策略函數![](https://img.kancloud.cn/6d/fd/6dfd85ec70d7f0f9a5e214f7e3e76e3f_11x8.gif)的。注意,經過這樣的標記后,![](https://img.kancloud.cn/cd/de/cdde3c80cf28b240987d80c96e474882_136x20.jpg)正好是增強學習的目標函數。 這兩類函數之所以有價值,是因為如果我們已知這兩類函數,那么能夠很方便地做很多事情。譬如: * 如果我們現在有一個策略![](https://img.kancloud.cn/6d/fd/6dfd85ec70d7f0f9a5e214f7e3e76e3f_11x8.gif),且我們知道![](https://img.kancloud.cn/bf/b6/bfb6993e10f221503e9423566c382a5b_62x18.jpg),那么我們可以構造一個新的策略![](https://img.kancloud.cn/1e/e2/1ee2a6b78a7ad140d836219b07d2f489_260x25.jpg),這個策略至少和![](https://img.kancloud.cn/6d/fd/6dfd85ec70d7f0f9a5e214f7e3e76e3f_11x8.gif)一樣好(且可能更好),是因為這一個策略最大化未來的收益。這一點與當前的![](https://img.kancloud.cn/6d/fd/6dfd85ec70d7f0f9a5e214f7e3e76e3f_11x8.gif)是什么沒有關系。 * 我們可以增加“好的行動”發生的概率。注意到,![](https://img.kancloud.cn/57/64/57648d45f48f7bfa968d030052764996_154x19.jpg)代表了在策略![](https://img.kancloud.cn/96/98/9698e56446ea3a102cc88c53f05cf2ac_47x19.jpg)下的行動平均水平,所以如果![](https://img.kancloud.cn/15/f1/15f1bf41a522e52c6325bcddd5b410dd_131x18.jpg),就能說明![](https://img.kancloud.cn/47/d8/47d8a736c44fb8a90e7c5ef4ef497af2_10x8.jpg)是高于平均水平的行動。那么我們便可以改動策略,使得這樣的行動發生的概率上升。 ## 增強學習算法的權衡 回顧我們的目標,![](https://img.kancloud.cn/73/18/73189b1bd3b8e845d29afdd645be52fb_217x55.jpg)。在增強學習中,有以下幾類基本算法: * **策略梯度法**:這類算法直接對目標函數關于參數求梯度。本質是一階最優化算法,求解無約束優化問題的通用方法。 * **值函數方法**:這類方法嘗試去近似估計**最優策略下的**值函數或 Q 函數,而并不揣測策略函數是什么。注意此時策略并需要不顯式表達出來,只需要選擇使得 Q 函數最大的行動即可(或者值函數類似于動態規劃中的手段)。 * **演員-評論家 (actor-critic) 方法**:這類方法嘗試去近似估計**當前策略下的**值函數或 Q 函數,并用這個信息求一個策略的梯度,改進當前的策略。所以也可以看作是策略梯度法和值函數方法的一個混合體。 * **基于模型 (model-based) 的增強學習方法**與上面的幾類都不同。它需要去**估計轉移概率**來作為模型,描述物理現象或者其他的系統動態。有了模型以后,可以做很多事情。譬如可以做行動的安排(不需要顯式的策略),可以去計算梯度改進策略,也可以結合一些模擬或使用動態規劃來進行無模型訓練。 我們來看基于模型的方法如何分解成三個方塊的步驟。在第二步綠色方塊中,顯然它需要去學習轉移概率![](https://img.kancloud.cn/e2/77/e2777a2e36311626e3682430c9a73882_95x19.jpg)。在第三步藍色方塊中,改進策略可能有很多不同的選項。 1. 有了模型,我們可以拋開策略,直接使用模型去模擬安排。對于連續問題,可以用一些軌跡優化和最優控制的方法;對于離散問題,可以使用譬如蒙特卡洛樹搜索 (Monte Carlo Tree Search, MCTS) 的方法來對離散的行動空間進行計劃。 2. 我們可以將梯度反向傳播回策略之中,這通常需要一些技巧來使得它能真正起效。 3. 也可以使用模型來學習值函數和 Q 函數。如果運氣好,在一個空間足夠小的離散環境下可以使用動態規劃,一個更流行的方法是用這個模型生成綜合的“經驗”,然后進行無模型訓練(如 Dyna 算法)。 值函數類算法在綠色方塊中做的是去擬合一個值函數或者 Q 函數,而藍色方塊的策略改進部分則沒有顯式的過程,策略僅僅是去選一個行動使得 Q 函數最大。直接的策略梯度法的綠色方塊做的是計算收益![](https://img.kancloud.cn/14/ad/14ad20a4875ce73cb084d4283a4731b2_134x38.jpg),藍色方塊做的是計算一個梯度![](https://img.kancloud.cn/06/2b/062b1a343310dfd60a1c32fbf324a995_207x38.jpg),這一點做起來是非常神奇的。演員-評論家算法是兩者的混合,因此這兩個它都做一點:綠色方塊它擬合值函數或者 Q 函數,并用這些函數去評估收益,藍色方塊還是跟策略梯度法做的一樣,走一個梯度步。 為什么我們需要那么多中不同的強化學習算法?在強化學習中,沒有一個單純的算法在所有情形下都表現得很好,因此算法之間需要有很多**權衡點**:首先是**樣本效率** (sample efficiency),就是要有一個不錯的策略效果需要橙色方塊收集多少數據;其次是**穩定性**和**易用性**,主要體現在選擇超參數和學習率等調參的難度,在不同的算法中這個難度可以差別很大。不同的算法也有不同的前提假設:有些算法假設系統動態和策略是隨機的,有些是確定性的;有些連續有些離散;有些有限期 (episodic) 有些無限期。還有一個很現實的問題是,在不同的問題下,要去表示一個東西的難度是不一樣的,譬如有些問題去表示一個策略是比較容易的,而有些問題去擬合模型更容易:因此方法的選擇對于特定問題很有關系。 在橙色方塊中,我們主要關心樣本效率。樣本效率意味著我們要得到一個好的策略,需要收集的樣本數量:這決定了我們需要在模擬器或者真實世界運行我們的策略多久才能讓它到一個穩定狀態。最重要的一點是,我們的算法是否是**離線** (off-policy) 的。離線的意義是我們可以在不用現在的策略去生成新樣本的情況下,就能改進我們的策略。其實就是能夠使用其他策略生成過的歷史遺留數據來使得現在的策略更優。**在線** (on-policy) 算法指的是每次策略被更改,即便只改動了一點點,我們也需要去生成新的樣本。在線算法用于梯度法通常會有一些問題,因為梯度算法經常會走梯度步,些許調整策略就得生成大量樣本。 ![](https://img.kancloud.cn/a0/95/a095ef285864bc18b1f9875a4549b516_720x162.jpg) 上圖是一個算法間的樣本效率比較圖(是非常粗糙的,具體效果如何其實非常依賴于特定的問題)。以豎線為分界點,離線算法有較高的樣本效率,在線算法則較低。如最右側的進化算法,甚至都不使用梯度信息,只是把參數當成一些黑盒子,使用一些不可微函數的方法來作用在參數上:它們需要最多的樣本,因為它們沒有利用梯度信息。在線的策略梯度法也是在線算法,每次策略更改后需要重新收集數據,但它利用了梯度信息所以會高效一些。演員-評論家算法在兩側都可以有。離線的 Q 學習法,通常學習 Q 函數可以是完全離線的,樣本效率較高。基于模型的深度增強學習方法更有效,更極端的基于模型的淺度增強學習方法不去擬合神經網絡,使用一些更加高效的貝葉斯方法,但通常會引入一些很強的假設來作用于一些特定的問題。 然而樣本效率低并不代表這個方法是“壞”的。為什么我們會用一個樣本效率較低的算法?答案有很多,其中一個答案是現實時間并不與樣本效率相同。如果你有一個很快的模擬器,可能你根本不關心收集樣本所需要的時間;我們關心的是真實發生的時間消耗,優化我們的策略需要花多少時間,其中包含模擬時間和優化神經網絡的時間。有一些時候,將進化算法進行并行是最快的;在線的策略梯度法有時候也很容易做并行,也相當快,如果模擬是相當廉價的。相對的,基于模型的增強學習,即便它們充分利用數據,真實時間也相當慢,因為可能去擬合了很多個不同的神經網絡模型(轉移概率、策略),需要反向傳播很長的序列,有可能更昂貴。 關于穩定性和易用性,我們需要問一系列問題。首先是這樣的算法收斂么?如果收斂的話,收斂到什么地方?它在所有情況都收斂么?至于這為什么會成為問題,我們在監督學習中訓練巨大的模型,在現在技術下通常收斂得不錯。這是因為,在監督學習中,我們采用的基本上都是某種意義上的梯度下降法,而這樣的算法分析起來是相對簡單的,大家對它比較了解,也有很好的讓它收斂的辦法。而增強學習通常不使用梯度下降法,譬如 Q 學習法本質上是一個不動點迭代的過程,在一定條件下收斂;基于模型的增強學習,當我們在優化轉移模型時,它并不優化期望收益函數;策略梯度法是梯度方法,比較好用,但它的樣本效率比前兩者都要低。這些都是權衡,更聰明的算法可能更難用。 很多方法都有缺點,如值函數擬合方法,一般來說我們優化的是它對期望收益函數擬合得多好,但是把這個函數擬合得好并不意味著有一個很好的策略,減少預測誤差不見得最大化期望收益;在更壞的情況下,它什么都不優化,事實上,很多流行的值函數擬合方法在非線性的問題中并不能保證收斂性。基于模型的增強學習方法,立足于減少模型預測誤差,這是一個監督學習問題,一般會收斂;但這不意味著一個更好的模型能得到一個更好的策略。策略梯度法是僅有的關于目標函數使用梯度上升方法的,但也有一些缺點。 不同的方法由不同的假設。**完全的可見性**常常被值函數擬合類方法所假設,可以通過加入 RNN 的方法來緩解;**有限期**被純策略梯度法和一些基于模型的增強學習算法假設,這些方法不用去訓練值函數,對于有些機器人問題中確實是如此的(機器人拼樂高的例子);**連續性和光滑性**也是一些連續的值函數學習法和一些基于模型的增強學習算法(如淺層學習)所假設的,如果知道連續性,那么可以有一些技巧可做。要看問題具體滿足什么樣的假設,然后選取合適的算法。 值函數擬合方法有 Q 學習(深度 Q 網絡 DQN)、時間差分學習、擬合值迭代等,策略梯度法有 REINFORCE、自然策略梯度 (Natural Policy Gradient)、信賴域策略優化 (Trust Region Policy Optimization, TRPO)等,演員-評論家算法如 A3C、基于模型的增強學習算法如 Dyna 和引導策略搜索 (Guided Policy Search)等。 基于值函數方法的一個最經典的例子是使用 DQN 來打 Atari 游戲 (Mnih et al., 2013),使用卷積神經網絡來估計 Q 函數,學習的不是策略而是 Q 函數來預測未來的收益,并由此得到策略。Levine et al. (2016) 使用引導策略搜索 (GPS) 這樣的基于模型的增強學習方法來做基于像素圖像的機器人控制,擬合局部模型。Schulman et al. (2016) 使用加入值函數近似的策略梯度法 (TRPO) 來訓練小人模擬行走,走的時間逐漸變長。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看