做者|Nathan Lambert
編譯|VK
來源|Towards Data Sciencepython
線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。算法
強化學習(RL)是一系列用於迭代性學習任務的智能方法。因爲計算機科學是一個計算領域,這種學習發生在狀態向量、動做等以及轉移矩陣上。狀態和向量能夠採用不一樣的形式。當咱們考慮經過某個線性系統傳遞一個向量變量,並獲得一個相似的輸出時,應該想到特徵值。數組
本文將幫助你理解在RL環境中解決任務的迭代方法(收斂到最優策略)。這個基礎將反映一個系統的特徵向量和特徵值。機器學習
馬爾可夫決策過程(MDPs)是支持強化學習(RL)的隨機模型。若是你熟悉,你能夠跳過這一部分。函數
MDP有兩個重要的屬性,狀態的值和隨機節點的q值。學習
這兩個值經過經過相互遞歸和Bellman更新相關聯。優化
Richard E. Bellman是一位數學家,奠基了現代控制和優化理論的基礎。經過recursive one-step方程、Bellman更新方程,能夠有效地求解大型優化問題。經過遞歸Bellman更新,能夠用動態規劃創建優化或控制問題,這是一個建立更小、更易於計算處理的問題的過程。這個過程遞歸地從終點開始。spa
在強化學習中,咱們使用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更新,那麼將會出現一個方便的結構。咱們如何將Q的更新表示爲一個簡單的更新方程?咱們從一個q迭代方程開始。
MDP的Q-迭代.
要實現這種轉變,須要幾個小步驟。
這樣就將咱們的系統移向一個線性算子(矩陣)
更新的前半部分,R和T的總和,是一個明確的獎勵數字;咱們稱之爲R(s),接下來,咱們將轉換的總和轉換爲一個機率矩陣(和一個馬爾可夫矩陣匹配,很是方便)。此外,這將致使下一步,U的生成。
咱們最感興趣的是MDP的U是如何繼續演進的。U隱含着值或q值。咱們能夠簡單地把Q改寫成U,而不須要作太多改變,但這意味着咱們假設的策略是固定的。
重要的是要記住,即便對於一個多維的物理系統——若是咱們將全部測量到的狀態疊加成一個長數組,狀態的U也是一個向量。一個固定的策略不會改變收斂性,它只是意味着咱們必須從新訪問它來學習如何迭代地得到一個策略。
若是你假設一個固定的策略,那麼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/