強化學習中的線性代數知識

做者|Nathan Lambert
編譯|VK
來源|Towards Data Sciencepython

線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。算法

強化學習(RL)是一系列用於迭代性學習任務的智能方法。因爲計算機科學是一個計算領域,這種學習發生在狀態向量、動做等以及轉移矩陣上。狀態和向量能夠採用不一樣的形式。當咱們考慮經過某個線性系統傳遞一個向量變量,並獲得一個相似的輸出時,應該想到特徵值。數組

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

回顧馬爾科夫決策過程

馬爾可夫決策過程(MDPs)是支持強化學習(RL)的隨機模型。若是你熟悉,你能夠跳過這一部分。函數

定義

  • 狀態集$sin 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更新,能夠用動態規劃創建優化或控制問題,這是一個建立更小、更易於計算處理的問題的過程。這個過程遞歸地從終點開始。spa

  1. Bellman方程:用動態規劃公式化。
  2. 動態規劃:經過將優化問題分解成最優子結構來簡化優化問題的過程。

在強化學習中,咱們使用Bellman更新過程來求解狀態-動做空間的最優值和q值。這是從一個從給定的位置最終造成的預期將來獎勵總和。.net

在這裏,咱們能夠看到的全部公式。符號(*)表示最優的。公式有最佳動做決定的狀態值,和一個q狀態。求和平衡了訪問T(s,a,s')中的任何狀態轉移的機率和任何轉移R(s,a,s')的獎勵,從而爲狀態操做空間的值建立一個全局映射。3d

這裏的關鍵點是咱們用矩陣(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.co...

歡迎關注磐創AI博客站:
http://panchuang.net/

sklearn機器學習中文官方文檔:
http://sklearn123.com/

歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/

相關文章
相關標籤/搜索