強化學習是機器學習裡面非常重要的乙個派別。智慧型體 (agent) 會不斷執行一些操作,通過結果來學習,在不同的環境中分別應該採取怎樣的行動。
以上幾點,在進入強化學習的複雜世界之前,可能還是有必要了解一下。
這是個友好的引子
強化學習的中心思想,就是讓智慧型體在環境裡學習。每個行動會對應各自的獎勵,智慧型體通過分析資料來學習,怎樣的情況下應該做怎樣的事情。
其實,這樣的學習過程和我們自然的經歷非常相似。想象自己是個小孩子,第一次看到了火,然後走到了火邊。
你感受到了溫暖。火是個好東西 (+1) 。
然後就試著去摸。臥槽,這麼燙 (-1) 。
結論是,在稍遠的地方火是好的,靠得太近就不好。
這就是人類學習的方式,與環境互動。強化學習也是一樣的道理,只是主角換成了計算機。
比如,智慧型體要學著玩超級馬里奧。強化學習過程可以用乙個迴圈 (loop) 來表示:
而智慧型體的目標就是讓預期累積獎勵最大化。
問題來了,目標為什麼是預期累積獎勵最大化?
因為,強化學習原本就是建立在獎勵假說的基礎之上。想表現好,就要多拿獎勵。
每乙個時間步 (time step) 的累積獎勵都可以表示為: gt
=∑k=
0trt
+k+1
g t=
∑k=0
trt+
k+1不過,我們沒有辦法把獎勵直接相加。因為遊戲裡,越接近遊戲開始處的獎勵,就越容易獲得;而隨著遊戲的進行,後面的獎勵就沒有那麼容易拿到了。
把智慧型體想成乙隻小老鼠,對手是只貓。它的目標就是在被貓吃掉之前,吃到最多的乳酪。
就像圖中,離老鼠最近的乳酪很容易吃,而從貓眼皮底下順乳酪就難了。離貓越近,就越危險。
結果就是,從貓身旁獲取的獎勵會打折扣,吃到的可能性小,就算乳酪放得很密集也沒用。
那麼,這個折扣要怎麼算呢?
我們用γ表示折扣率,在0和1之間。
這樣,累積獎勵表示出來就是:
簡單來說,離貓近一步,就乘上乙個γ,表示獎勵越難獲得。
強化學習裡的任務分兩種。
片段性任務 (episodic tasks)
這類任務,有個起點,有個終點。兩者之間有一堆狀態,一堆行動,一堆獎勵,和一堆新的狀態,它們共同構成了一「集」。
當一集結束,也就是到達終止狀態的時候,智慧型體會看一下獎勵累積了多少,以此評估自己的表現。
然後,它就帶著之前的經驗開始一局新遊戲。這一次,智慧型體做決定的依據會充分一些。
以貓鼠迷宮為例的一集:
集數越多,智慧型體的表現會越好。
小老鼠可以吃到無窮多塊分散的乳酪 (每塊+1) 。但在迷宮上方,有許多堆在起的乳酪(+1000) ,或者看成巨型乳酪。
如果我們只關心吃了多少,小老鼠就永遠不會去找那些**酪。它只會在安全的地方一塊一塊地吃,這樣獎勵累積比較慢,但它不在乎。
如果它跑去遠的地方,也許就會發現大獎的存在,但也有可能發生危險。
程式猿需要設定一種規則,讓智慧型體能夠把握二者之間的平衡。
價值函式會告訴我們,智慧型體在每個狀態裡得出的未來獎勵最大預期 (maximum expected future reward) 。
乙個狀態下的函式值,是智慧型體可以預期的未來獎勵積累總值,從當前狀態開始算。
策略就是評判智慧型體在特定時間點的表現。
把每乙個狀態和它所對應的最佳行動建立聯絡。
策略分為兩種,
· 確定性策略:某乙個特定狀態下的策略,永遠都會給出同樣的行動。
· 隨機性策略:策略給出的是多種行動的可能性分布。
強化學習入門(一)
在強化學習中,環境狀態的轉移和環境反饋給agent的獎賞是不受agent個體控制的,agent只能通過選擇要執行的動作來影響環境,並通過觀察轉移後的狀態和環境反饋的獎賞值來感知環境,agent的強化學習過程即是通過不斷嘗試各種動作 狀態策略,並通過環境反饋的獎賞不斷調整策略,從而達到在某一環境狀態中...
強化學習初入門
在網上搜尋了關於強化學習的一些部落格 與有監督學習 無監督學習類似的機器學習演算法 有監督學習是對有標籤的資料進行訓練從而對未知資料做 而強化學習是通過不斷在學習中實踐,在實踐中學習的計算決策過程。通過不斷地與環境互動,經過短期 長期的收益進行優化決策,獲取最大收益的過程。發現強化學習是乙個狀態不斷...
強化學習基礎入門 1
強化學習是一種機器學習方法。不依賴於先驗資料,而是通過智慧型體與環境的不斷互動,試錯,達到理想的效果。這個專欄,我會記錄強化學習的學習過程。部落格中肯定會有疏漏和錯誤之處,慢慢改正。首先,強化學習演算法可以大致分成兩類 基於策略的 policy based 和基於價值的 value based 根據...