Reinforcement Learning 強化學習

原文地址:https://adeshpande3.github.io/adeshpande3.github.io/Deep-Learning-Research-Review-Week-2-Reinforcement-Learning
這裏寫圖片描述
每週都會分享一些關於深度學習的知識,這周主要分享的就是強化學習。

強化學習介紹

機器學習的三個分類

在深入瞭解這篇文章之前,我們先討論一下什麼是強化學習。機器學習領域大致可以分爲三個主要的分類。
1、監督學習
2、無監督學習
3、強化學習
這裏寫圖片描述
第一個分類,監督學習,肯定是你最熟悉的一個。他主要依賴於基於一些包含訓練數據和標籤的訓練樣本構建一個函數或者模型。卷積神經網絡就是一個例子,輸入的是圖片,輸出的是圖片的分類信息(狗,貓等)。

無監督學習試圖去找到數據的內在結構並進行分類。一個比較衆所周知的機器學習聚類算法,K-means,是無監督學習的一個例子。

強化學習的任務就是去學習在給定的環境environment做什麼行爲action,以使得獎勵值最大。強化學習和監督學習最大的區別就是,強化學習不會告訴你怎麼做,只能告訴你你做這個行爲的好壞。也不能告訴你所做的哪個行爲是最好的。和卷積神經網絡也不一樣,卷積神經網絡主要是給圖片一個定義。另外一個獨特的成分就是Agent的行爲將會影響他接下來接受到的數據。舉個例子:Agent的行爲向左移動而不是向右移意味着Agent會接收到不同的環境輸入在接下來的時間裏。我們以一個例子開始。

強化學習問題

首先,我們考慮一個強化學習的問題。我們想象一下在一個小的房間裏面有一個小的機器人。我們沒有對這個機器人進行任何的編程讓他去做任何的行爲。這個機器人就站在那裏不動。這個機器人就是我們的Agent。這裏寫圖片描述
就像我們上面所說的那樣,強化學習就是試着去理解做決定的最優路徑使得我們的獎勵函數R最大。這個獎勵就是一個回饋信號,表示這我們的Agent在這個時間點做的時間的好壞的判斷。一個Agent做了一個行爲A在每一個時間就是一個關於獎勵(信號表明Agent做了這個行爲的好壞)和狀態S的函數,描述了Agent所在的環境。從環境狀態到行爲的映射叫做策略P。這個策略定義了Agent在一個確定時間點的路,給定一個確定的狀態。現在,我們有一個價值函數V,用來評價每一個位置的好壞。這個和獎勵函數的不同之處在於獎勵函數只是表明了在接下來一個場景的好壞,價值函數時表明在接下來長時間內這個行爲的好壞。最後我們有一個模型M,就是Agent的環境代表。下面就是這個Agent的模型他去怎麼考慮這個環境去做什麼事情。
這裏寫圖片描述

馬爾科夫決策

現在,我們再回過頭來考慮在小房間中的機器人。獎勵函數就是決定我們希望Agent去完成的。或者那樣說,我們想讓他移動到房間的一個角落,當他到達角落的時候,他會得到一個獎勵。這個機器人會得到一個+25當他到達我們制定的點,同時,在其他地點的每一步都會得到一個-1。我們就是想讓這個機器人儘可能快的到達這個角落。Agent能做的行爲就包括往東西南北四個方向移動。Agent的策略就是很簡單的一個,就是使得所做的行爲在到達目的地的時候所得到的價值函數最大。往右移動?價值函數高的位置=這個位置是可以到達的(關於長期獎勵)
現在,整個強化學習環境能夠被描述使用馬爾科夫決策過程。對於那些以前沒有聽過這個名詞的同學,MDP就是一個框架幫助Agent做決定。他包含一個有限的狀態集(還有狀態的價值函數),一個有限的行爲集,策略,和獎勵函數。我們的價值函數能夠被分解爲兩個部分。
1、狀態值函數V:在給定的狀態S和策略π的條件下得到的返回值。返回值通過着眼於未來每一步的獎勵得到(伽馬是一個固定的因子,表示在第十步的獎勵權重比着第一步的小)
這裏寫圖片描述
2.行爲價值函數Q:在給定的狀態S和策略π的條件下,執行行爲a的時候所給出的返回值。(等式和上面的一樣除了有一個額外的條件At = a)
現在,我們有了所有的成分,我們怎麼是使用MDP去做呢?我們想要接解出他,當然。通過解出MDP,你能夠發現一個最優的策略是的Agent從環境中得到的獎勵值最大。

解MDP

我們能夠解MDP並且得到最優的策略通過動態規劃和特別地使用策略迭代(另一種叫法叫做價值迭代,但是我們現在不深入去講)。這個想法就是我們使用初始策略 π1並且計算當前策略下的狀態值函數。我們做這個通過Bellman 期望等式。
這裏寫圖片描述
這個等式基本的說明了我們的值函數,在給定狀態π是,能夠被分解爲當前獎勵Rt+1的期望和和成功狀態St+1的價值函數。如果你想分開考慮這兩個,這就等價於我們在前面章節定義的價值函數。使用這個等式是我們策略評價的一個成分。爲了得到一個更好的策略,我們使用貪心策略算法提升。換句話說就是做得行爲使得價值最大。
這裏寫圖片描述
現在,爲了得到最優的策略,我們重複這兩步,一步接一步,知道達到我們的最優策略π*。

當你沒有被給定一個MDP

決策迭代是好的也是全部的,但是他只是在給定MDP的時候起作用。MDP告訴你這個環境怎麼起作用,但是在真是的場景當中並不會給出。當沒有給定MDP的時候,我們使用函數和決策。當沒有給定MDP的時候,我們將會繼續做同樣的步驟以便於策略的評價和策略的提升。
我們這樣做替代提升我們的決策通過優化我們的行爲價值函數Q而不是狀態值函數。還記得我們是怎麼拆分我們的狀態值函數爲瞬時獎勵和未來成功獎勵的值函數的和嗎?好的,我們可以對Q用同樣的方法。
這裏寫圖片描述
現在,我們繼續通過同樣的步驟對策略評價和策略提升,除了我們是使用行爲值函數Q替換掉狀態值函數V。現在,我們將會跳過怎麼改變提升的細節部分。爲了理解MDP評價和提升的方法,像蒙特卡羅學習,時間差分學習和 SARSA 等這些,需要一整片的博客去講解這些(如果你對這些感興趣,你可以去聽一下David Silver的課程4和課程5)。現在,然而,我們直接跳到值函數估計和在Alphago和Atari Papers中討論的方法,同時期望能夠嚐到現在強化學習技術的滋味。主要的點是我們都想要找到最優的策略π*能夠最大化我們的行爲值函數Q。

值函數預測

因此,如果你考慮我們提到過的每一件事情到現在,我們對待我們的問題以最簡單的方式。現在看看上面的Q評價。我們使用特定的狀態S和行爲A,同時,計算一個數值告訴我們我們期望得到的是什麼。現在,我們想象一下我們的Agent向右移動了1毫米。這就意味着我們有一個全新的狀態S’,現在我們要去計算一個Q值。在真實世界的RL問題中,有數以萬計的狀態因此他是重要的我們的值函數能夠理解一般化的不需要我們去保存每一個值函數對於每一個可能的狀態。解決辦法就是使用一個Q值函數估計能夠一般化不知道的狀態。
因此,我們需要的是一些函數,我們叫他爲Q,能夠給出Q值的預測在給定狀態S和一些行爲A之後。
這裏寫圖片描述
這個函數繼續在S,A,同時一個好的舊的價值權重向量W(一旦你看到W,你就應該明白我們使用了梯度下降)。之後計算x和W的點積(x是特徵向量,代表S和A)。這個方法我們想要提升這個函數就是通過計算真正的Q值和函數的輸出之間的差值。
這裏寫圖片描述
在我們計算出loss之後,我們使用梯度下降找到最小值,就是哪一個點我們找到最優的W向量。當看到之後的論文之後這個價值函數預測的想法就是我們強化學習的核心內容。

再多講一點

在讀這篇論文之前,在接觸最後一個東西。一個有意思的討論關於強化學習的話題就是探索對探索。探索就是Agent 的過程對所知道的事物的探索,之後能夠做出行爲知道產生最大的獎勵。這聽起來很好,對嗎?Agent總會做出最好的行爲基於他現在的知識。然而,有一個核心短語在那個狀態。當前知識。如果Agent並沒有足夠探索狀態空間,他就不能夠知道是否做出的是最好的行爲。這個做出決策的行爲就是探索。
這個想法可以和真實世界樣例聯繫起來。現在你有一個選擇,今晚去哪個餐廳吃飯。你(作爲Agent)知道你喜歡Mexican的食物,因此,在強化學習中,去一個Mexican餐廳吃飯肯定是最好的行爲能夠最大化你的獎勵值,或者在這種情況你感覺到最舒適。然而,還有一個選擇是Italian食物,你以前沒有吃過的。有一個可能性就是他會比着Mexican食物好吃,或者更差。這個權衡在是否去探索Agent過去的知識和新的渴望探索一個更好的獎勵是一個主要的挑戰在強化學習當中。(在我們日常生活當中)

其他強化學習的資源

雖然大多數的信息都是沒有意義的但是也是一個完整的回顧對整個領域。如果你想要一個更深層次的回顧對於強化學習,我會繼續收集這些資源。
David Silver (from Deepmind) Reinforcement Learning Video Lectures
Sutton and Barto’s Reinforcement Learning Textbook (This is really the holy grail if you are determined to learn the ins and outs of this subfield)
Andrej Karpathy’s Blog Post on RL (Start with this one if you want to ease into RL and want to see a really well done practical example)
UC Berkeley CS 188 Lectures 8-11
Open AI Gym: When you feel comfortable with RL, try creating your own agents with this reinforcement learning toolkit that Open AI created

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