作者|Nathan Lambert
編譯|VK
來源|Towards Data Science
線性代數的基本原理如何用于深度強化學習?答案是解決了馬爾可夫決策程序時的迭代更新,
強化學習(RL)是一系列用于迭代性學習任務的智能方法,由于計算機科學是一個計算領域,這種學習發生在狀態向量、動作等以及轉移矩陣上,狀態和向量可以采用不同的形式,當我們考慮通過某個線性系統傳遞一個向量變數,并得到一個類似的輸出時,應該想到特征值,


本文將幫助你理解在RL環境中解決任務的迭代方法(收斂到最優策略),這個基礎將反映一個系統的特征向量和特征值,

回顧馬爾科夫決策程序
馬爾可夫決策程序(MDPs)是支持強化學習(RL)的隨機模型,如果你熟悉,你可以跳過這一部分,
定義
- 狀態集$s\in S,狀態是代理程式所有可能的位置,
- 一組動作\(a\in A\),動作是代理可以采取的所有可能動作的集合,
- 轉移函式T(s,a,s'),T(s,a,s')保持MDP的不確定性,給定當前位置和給定動作,T決定下一個狀態出現的頻率,

- 獎勵函式R(s,a,s'),最大化報酬總額是任何代理的目標,此函式說明每個步驟可獲得多少獎勵,通常,為鼓勵快速解決方案,每個步驟都會有少量的負獎勵(成本),而在最終狀態下會有較大的正面(成功的任務)或負面(失敗的任務)獎勵,
- 開始狀態s0,也許是結束狀態,

重要的屬性
MDP有兩個重要的屬性,狀態的值和隨機節點的q值,
-
狀態值:狀態值是從狀態開始的獎勵的最優遞回和,如果機器人在火坑里,在寶石旁邊,或者在沙發上,狀態值會有很大的不同,
-
狀態-動作對(state- action pair)的q值:q值是與狀態-動作對相關的折扣獎勵的最優和,一個狀態的q值是由一個動作決定的,所以如果方向指向火坑的內部或外部,q值會有很大的變化!
這兩個值通過通過相互遞回和Bellman更新相關聯,
Bellman 更新
Richard E. Bellman是一位數學家,奠定了現代控制和優化理論的基礎,通過recursive one-step方程、Bellman更新方程,可以有效地求解大型優化問題,通過遞回Bellman更新,可以用動態規劃建立優化或控制問題,這是一個創建更小、更易于計算處理的問題的程序,這個程序遞回地從終點開始,

-
Bellman方程:用動態規劃公式化,
-
動態規劃:通過將優化問題分解成最優子結構來簡化優化問題的程序,
在強化學習中,我們使用Bellman更新程序來求解狀態-動作空間的最優值和q值,這是從一個從給定的位置最終形成的預期未來獎勵總和,
在這里,我們可以看到的所有公式,符號(*)表示最優的,公式有最佳動作決定的狀態值,和一個q狀態,求和平衡了訪問T(s,a,s')中的任何狀態轉移的概率和任何轉移R(s,a,s')的獎勵,從而為狀態操作空間的值創建一個全域映射,

這里的關鍵點是我們用矩陣(R, T)乘以向量(V,U)來迭代地求出,這些值將從任何初始狀態收斂,因為一個狀態的值是由它們的近鄰s決定的(馬爾科夫),
與強化學習的關系
以上這都是強化學習的內容,我斷言理解演算法所基于的假設和模型將比僅僅復制OpenAI中的python教程為你提供更好的基礎,我指導過很多學生在RL作業,那些做得更多的人總是那些知道正在發生什么,然后知道如何應用它的人,
也就是說,這離在線q-learning只有一步之遙,在在線q-learning中,我們用T和R的樣本來進行Bellman更新,而不是顯式地在方程中使用它們,Q-learning是在2015年解決Atari游戲等問題的著名演算法,
線性代數
特征值
回想一下,系統A的一個特征值-特征向量對(λ,u)是一個標量和向量,公式如下

特征值和特征向量的好處在于,每個向量都可以寫成其他特征向量的組合,然后,在離散系統中特征向量控制從無論什么初始狀態的演化,因為任何初始向量可以組合成特征向量的線性組合,
隨機矩陣和馬爾可夫鏈
MDPs與馬爾科夫鏈非常接近,但在結構上與馬爾科夫鏈并不相同,馬爾可夫鏈是由轉移矩陣P決定的,概率矩陣的作用類似于對動作求和的轉移矩陣T(s,a,s'),在馬爾可夫鏈中,下一個狀態由:

這個矩陣P有一些特殊的值,你可以看到,這是一個特征值等于1的特征值方程,為了得到一個特征值等于1的矩陣,所有的列之和必須等于1,
我們現在在RL中尋找的是,我們的解的演化如何與概率分布的收斂相關?我們通過為V和Q制定線性算子(矩陣)的迭代運算子B,我們使用的值和q值的向量而不是特征向量,他們會收斂于特征向量,所以可以看出特征向量實際控制了整個系統,

B,像一個線性變換的特征向量,特征值λ= 1,



任何初值分布都收斂于特征空間的形狀,這個例子并沒有顯示Bellman更新的確切特征值,但是當這些值遞回更新時,圖片顯示了空間的形狀是如何演變的,一開始,這些值是完全未知的,但是隨著學習的出現,這些已知的值會逐漸收斂,以與系統完全匹配,
Bellman更新
到目前為止,我們知道如果我們可以用更簡單的形式表示Bellman更新,那么將會出現一個方便的結構,我們如何將Q的更新表示為一個簡單的更新方程?我們從一個q迭代方程開始,

MDP的Q-迭代.
要實作這種轉變,需要幾個小步驟,

這樣就將我們的系統移向一個線性算子(矩陣)
i)讓我們把一些術語重新表述為一般形式
更新的前半部分,R和T的總和,是一個明確的獎勵數字;我們稱之為R(s),接下來,我們將轉換的總和轉換為一個概率矩陣(和一個馬爾可夫矩陣匹配,非常方便),此外,這將導致下一步,U的生成,

ii)讓我們把它變成一個向量方程,
我們最感興趣的是MDP的U是如何繼續演進的,U隱含著值或q值,我們可以簡單地把Q改寫成U,而不需要做太多改變,但這意味著我們假設的策略是固定的,

重要的是要記住,即使對于一個多維的物理系統——如果我們將所有測量到的狀態疊加成一個長陣列,狀態的U也是一個向量,一個固定的策略不會改變收斂性,它只是意味著我們必須重新訪問它來學習如何迭代地獲得一個策略,
iii)假設策略是固定的
如果你假設一個固定的策略,那么a的最大值就消失了,最大化算符明顯是非線性的,但是在線性代數中有一些形式是特征向量加上一個額外的向量(廣義特征向量),

上面的這個等式是關于U的Bellman更新的一般形式,我們想要一個線性算子B,然后我們可以看到這是一個特征值演化方程,它看起來有點不同,但這是我們最終想要的形式,減去幾個線性代數斷言,所以我們有了Bellman更新,

在計算上,我們可以得到我們想要的特征向量,因為在這個程序中所做的假設,所以在分析上這樣做是有挑戰性的,

結尾
線性算子向你展示了某些離散的線性系統是如何推導的——而我們在強化學習中使用的環境就是遵循這種結構,
我們收集的資料的特征值和特征向量可以表示一個RL問題的潛在值空間,
變數替換、線性變換、在線q-learning(而不是這里的q-iteration)中的擬合,以及更多的細節將在以后的文章中討論,
原文鏈接:https://towardsdatascience.com/the-hidden-linear-algebra-of-reinforcement-learning-406efdf066a
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3928.html
標籤:其他
上一篇:回歸分析中R方和調整R方的區別
