2019/5/12 由機器學習引入強化學習

任何強化學習方法的理論基礎都分三部分,拿DQN舉例。第一部分馬爾科決策模型,無後效性,DQN做決策時可以只考慮當下不必回顧之前的選擇。第二部分貝爾曼最優方程,證明了(特殊的值函數)步步最優全局最優,DQN每一步選擇都可以纔有貪婪策略。第三部分用獎勵更新策略,基於模型的方法,值函數方法,策略搜索方法,DQN採用估計Q值與目標Q值的二次代價函數梯度下降更新網絡。

一、機器學習

監督學習經典算法:支持向量機、線性判別、決策樹、樸素貝葉斯,隨機森林,深度學習中的CNN模型,LSTM模型;

無監督學習經典算法:k-聚類、主成分分析PCA等;

       無監督學習常常被用於數據挖掘,用於在大量無標籤數據中發現些什麼。機器會主動學習數據的特徵,並將它們分爲若干類別,相當於形成「未知的標籤」

半監督學習經典算法:SVMs半監督支持向量機,S3VM、S4VM、CS4VM、TSVM;

 參考鏈接:監督學習,非監督學習,半監督學習三者的區別是什麼,舉出一個最有代表性的算法?

 https://www.zhihu.com/question/27138263?from=profile_question_card

 學習資料:周志華機器學習 西瓜書(PDF) 斯坦福大學機器/深度學習視頻 機器學習基石+技法 NLP

https://blog.csdn.net/ykallan/article/details/89076154

二、基於jym構建強化學習環境

1、物理引擎和環境引擎

仿真環境(仿真器)需要物理引擎和圖像引擎。物理引擎模擬環境中物體運動規律,圖像引擎顯示環境中物體圖像。

render()圖像引擎        step()物理引擎2

2、強化學習定義

       定義:強化學習解決序貫決策問題,該問題可以用馬氏決策的數學工具建模。該數學問題的解法包括動態規劃,蒙特卡洛,時序差分,值函數逼近和直接策略搜索。

       目的:找到最優策略(決策序列)\pi*使累計回報R(t)的期望最大:s\rightarrowu*(s 狀態 u 決策 )

       問題:監督學習,無監督學習解決的是單步分類迴歸問題。強化學習解決的是終極回報的問題,或者說一個多步過程,每步分類結合起來使結果最優。這樣理解是否正確?

*注:R(t)是隨機變量無法進行優化,無法作爲目標函數,採用累計回報期望\int R\left (\tau \right )p\left_{\pi }\left ( \tau \right )d\tau

                                                    

       RL agent 的一些基本元素:

     (1)策略:agent的動作函數(概率、分佈)

     (2)值函數:描述任一狀態和動作有多好,是對未來獎勵的預測。(空戰遊戲中,過錯母艦和擊中母艦都會使值函數下降,不管獎勵是獲得了還是未獲得)

(G從Rt+1開始累加,這是一種個人習慣/理解,認爲是動作後環境發生改變是另一個時間step,環境改變後的任何東西(提供獎勵和狀態轉移)認爲在下一個時間step的。)

     (3)模型:agent對環境的認識/表達,agent眼中的環境。agent用模型來預測環境的變化,包括轉移模型P(預測下一狀態)和獎勵模型R(預測下一獎勵) 

RL據agent元素的分類:

value based:agent只包含值函數,策略使不明確的。

policy based:明確表示出策略,如箭頭般的數據結構。

model based:創建一個動態特性模型,來表徵飛機該怎麼飛。

model free:不會嘗試去理解環境。通過值函數和策略,來獲得最高獎勵。

3、強化學習理論基礎:馬爾科夫決策過程和貝爾曼方程

把強化學習問題用馬爾科夫決策的的框架表達並解決

馬爾科夫性:當前狀態s_{t}蘊含所有歷史狀態,無後效性:系統下一個狀態僅與當前狀態有關。

馬爾科夫過程:隨機過程(隨機狀態序列)的每個狀態都是馬爾科夫的,表示爲二元組(S,P)

                         S有效狀態集合、P狀態轉移概率(不包含動作)

馬氏決策:將動作和回報考慮在內的馬爾科夫過程,表示爲五元組(S,A,P,R,y)

                  決策動作a可以看做對環境的一種控制量。但是強化學習相比最優化,假設不同,這裏環境未知,原理不能直接                   觀測, 所以不管有沒有用到最優控制的思路,得到的解往往是次優的、或者近似最優的。

                  狀態集,動作集,轉移概率(包含動作),回報函數,回報累計折扣因子

貝爾曼方程告訴我們值函數如何跟其自身聯繫起來,它的基本思想是對值函數進行遞歸分解。分解爲兩部分:立即獎勵和後繼狀態的折扣值函數。MDP描述了RL的問題/環境。貝爾曼方程描述了值函數求解,通過平均將MDP還原爲MRP,通過一個線性方程逆解值函數,提供強化學習問題一種解法。 

貝爾曼最優方程,描述如何真正解決MDP等式,如何把最優值函數聯繫起來。每次只看一步,選擇q*行爲即可,即每一個狀態上盡力爭取最大值,不是立即回報的最大值,是當前最優決策和之後最優決策最優動態的最大值。一步一步,結束的時候就完成了最優策略。

具體的,我們不關心基於均勻策略可以獲得多少獎勵,我們要找到一個最優策略。MDP中,最優策略=最優值函數=最大的值函數,但是知道了最優值函數並不能告訴你最優策略,這時候就用到了貝爾曼最優方程。它證明了通過解出q*,每次選擇q*就是最優策略。計算中有兩個關鍵點,一個是求最大值,一個是求平均值。求最大值是選擇最優的動作,求平均值是考慮狀態轉移帶來的影響。(畢竟狀態轉移像扔色子一樣,你不知道你會去哪裏。) 

注意!這裏的max是對R和V綜合考慮的,並不一定選當前最大的即時獎勵~選最優的動作q*,和不一定選最大的R不衝突。

貝爾曼方程求解:matlab矩陣求逆

貝爾曼最優方程求解: 由於非線性,無法用上述方法求解。這個方程的求解不存在一個顯式的公式。通過迭代解法:值迭代和策略迭代的動態規劃方法,和value based方法。由此引出,多種多樣的強化學習方法。

4、強化學習樹

                                              

5、強化學習解決兩個問題:

(1)預測:給定策略π, 求解該策略的狀態價值函數v(π)。

(2)控制:求最優狀態價值函數和策略。

6、對深度學習及強化學習的理解:

神經網絡可以用來擬合函數,強化學習用交互數據來學習規則,深度學習用標定數據來學習規則。

二、一些概念性思考

1、強化學習爲什麼要基於馬氏過程?

       我們知道,馬爾科夫決策過程是強化學習的數學描述。它以數學的形式將強化學習問題描述清楚,可以用來解決大部分的強化學習問題。那這種數學描述的優勢是什麼?

       強化學習是基於歷史信息和獎勵解決序貫決策問題的方法。但如果每一次決策都要考慮歷史,那數據量和計算空間太大,難以用來解決實際問題,方法失去研究價值。馬氏特徵決定了可以用狀態代替歷史,狀態是對信息的總結,是關於歷史的函數。狀態以每一個時間步長t爲單位構建,節省了數據空間。

2、強化學習可以學習到環境特徵(環境規律、規則)嗎?

       我認爲是無法準確學習到的,action使environment基於其內部規律發生改變,agent通過observation得到agent state。但是無法觀測到到environment state,所以環境的特徵和機理應該是無法準確學習到的。那要如何完成準確的控制?agent會對定義的狀態和動作空間有一個把握,學習到如何應對輸入,得到一個控制的次優解或者近似最優解。所謂的特徵理解,可能是基於機械的,大數據計算上的理解。

3、序貫決策的兩類問題:強化學習與規劃

強化學習:環境未知,通過交互建模,策略提升。強化學習建立環境模型之後,可以用規劃方法來解。

規劃:完美環境已知,agent不需要與外界環境交互,根據模型進行內部運算。

三、推薦參考資料

       郭憲《深入淺出強化學習》不建議作爲主線學習材料,對一些概念的理解,不止於來龍去脈,缺乏描述。看過之後,往往會有很多問題,難以從中找到答案。可以從David的公開課入手,基礎相對會更紮實一點。本篇筆記主要依據David課程前兩節。

優質的系列參考文獻:https://www.cnblogs.com/jinxulin/p/3560737.html   增強學習(四) ----- 蒙特卡羅方法(Monte Carlo Methods)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章