1. 程式人生 > >深度強化學習cs294 Lecture3&Lecture4: Introduction to Reinforcement Learning

深度強化學習cs294 Lecture3&Lecture4: Introduction to Reinforcement Learning

深度強化學習cs294 Lecture3&Lecture4: Introduction toReinforcement Learning


今天的課程內容是關於強化學習。強化學習問題是一個優化問題,但首先需要定義需要優化的是什麼,也就是強化學習的定義。所以今天的課程目標就是講解強化學習,讓大家理解強化學習的優化目標。大致總結一下不同種類的強化學習演算法以及給一些例子。當然這些演算法在後面的章節都會詳細講解。

1. Definition of a Markov decision process

在之前的模仿學習裡面我們已經知道了序列決策的問題。也就是不斷地根據當前時間的觀察 o

t o_{t} 來作出決策 a t a_{t} ,求出對於給定觀察得到動作的分佈的那個策略函式 π
( a t o t ) \pi_(a_{t}|o_{t})

在這裡插入圖片描述
大致上講,強化學習演算法就是通過學習引數來得到一個策略函式 π \pi 的過程。策略可以是依賴於當前的觀察 o t o_{t} 也可以是根據完全的狀態 s t s_{t} 。在這個基礎上我們講過狀態的轉移具有馬爾可夫性,也就是 s 3 s_{3} 只與 s 2 s_{2} 有關而與 s 1 s_{1} 沒有關係。

拋開模仿學習,假設我們目前沒有那些人類專家的經驗資料,那麼我們將如何來得到最終想要的策略呢。我們要做的是定義一個reward函式,這個reward函式用來說明對應的動作是好是壞。不過最重要的事情是我們想要得到的目標不是選擇一個動作來最大化當前能夠得到的reward,而是計劃能夠選擇出一個動作使得我們以後得到的reward期望最大。
在這裡插入圖片描述
比如對於開車這件事情而言,開的比較快那麼當前的reward就比較大,而如果發生車禍那麼reward就比較小。有時候有一些自身的reward不小但是最終會導致發生車禍這種較小reward的事情發生。所以可能寧願選擇降低開車的速度來避免以後發生車禍而不是提高速度得到當前的高reward。目前我們所說的所有的狀態 s t s_{t} ,動作 a t a_{t} ,reward函式 r ( s t , a t ) r(s_{t},a_{t}) 和狀態之間的轉移概率 p ( s t + 1 s t ) p(s_{t+1}|s_{t}) 構成了我們所要說的馬爾科夫決策過程。

在講馬爾科夫決策過程之前先說一下馬爾科夫鏈。馬爾科夫鏈有兩個部分組成,一個是狀態空間,另一個是狀態轉移的操作符號。為什麼會表示成一個 操作符號呢?因為這樣可以把狀態轉移表示成一個矩陣的形式,當做是一種對映過程。如果把狀態也寫成一個向量,那麼就能夠直接與其進行矩陣乘法的運算。馬爾科夫鏈的性質就是我們之前所說的,後一個狀態只與當前狀態有關係,而與當前狀態之前的所有狀態都沒有關聯。
在這裡插入圖片描述
下面說道馬爾科夫決策過程。與馬爾科夫鏈相比,原來的狀態空間與轉移函式還在。但是新添了兩個部分,分別是動作空間與reward函式。而且原先是一個二維矩陣形式的狀態轉移操作符現在變為張量的形式。它們幾個變數之間的關係如圖所示:
在這裡插入圖片描述
下一個狀態不僅與當前的狀態有關,還取決於當前時刻採取的動作 a t a_{t} 。而reward函式是定義在狀態空間與動作空間的聯合之上的,加入了reward函式之後就是一個完整的馬爾科夫決策過程。
在這裡插入圖片描述
除此之外還有一個過程叫做部分可見馬爾科夫決策過程(POMDP)。馬爾科夫決策過程是建立在當前狀態能夠完全可見的假設之上的,但有時候並不是這樣,策略只能建立在當前觀察資訊的基礎上。與馬爾科夫決策過程相比POMDP又增加了兩個部分,一個是觀察空間,另一個是狀態到觀察的對映概率分佈。
在這裡插入圖片描述

2. Definition of reinforcement learning problem

所以強化學習就是在馬爾科夫決策過程的基礎上,有當前狀態 s s ,通過一個策略函式 π θ ( a s ) \pi_{\theta}(a|s) 來做出一個動作 a a ,環境知道了當前的動作與狀態之後會給出一個反應,得到一個新的狀態 s s' ,同時返回一個當前的reward。然後不斷迴圈這個過程。這樣一個過程存在一個整個序列的概率值,利用馬爾科夫決策過程的性質能夠寫出這個序列發生概率的表示式:
在這裡插入圖片描述
而強化學習的目標是找到一個引數 θ \theta ,是它能夠得到一個在軌跡 τ \tau 的分佈上得到最大的整個軌跡reward之和的期望。雖然有時候我們在強化學習裡無法完美的得到這個目標值的求解,但是後面會講到一些對於這個目標的估計方法。
在這裡插入圖片描述
其中如果把 π θ ( a t s t ) p ( s t + 1 s t , a t ) \pi_{\theta}(a_{t}|s_{t})p(s_{t+1}|s_{t},a_{t}) 看做一體,那麼就可以當成是狀態 s s 到狀態 s s' 之間的狀態轉移概率,也就是讓這個過程相當於是一個在(s,a)基礎上的馬爾科夫鏈。

正是因為能夠把它看做是一個馬爾科夫鏈,所以我們才能夠使用分析馬爾科夫鏈的方法來分析馬爾科夫決策過程。首先來看有限步驟下的馬爾爾科夫決策過程:
在這裡插入圖片描述
可以看到對於目標函式的寫法做出了一些改變。首先把一條軌跡的reward和在軌跡分佈上的期望寫為了在當前 ( s t , a t ) (s_{t},a_{t}) 的邊緣概率分佈下期望的和。這麼寫是因為馬爾科夫決策過程可以看作是在 ( s , a ) (s,a) 上的馬爾科夫鏈,而轉移函式如圖所示,且利用了期望和的線性性質。因此如果我們能夠得到這樣的狀態轉移概率分佈,那麼就能夠直接得到整個目標函式的結果。但是顯然我們沒法知道這個邊緣概率。不過寫為當前狀態動作的reward的期望和的形式顯然已經簡單了很多。

下面看無限步的情形。無限步裡面可能不太好計算無限個當前狀態動作反饋的期望和。但是這確實是可以計算的。因為在馬爾科夫鏈中,如果我們最終進行了無數次的轉移,最終能夠得到一個關於狀態的穩定分佈。而MDP是可以看做 ( s t , a t ) (s_{t},a_{t}) 的馬爾科夫鏈的。如果 s t , a t ) s_{t},a_{t}) 也存在這麼一個穩定分佈,就意味著狀態轉移之後得到的概率分佈是相同的,即 μ = T μ \mu = \Tau \mu 。這是說狀態的分佈是固定的,不是說轉以後的狀態不變。我們發現這樣的 μ \mu 是存在的,就是對應著 T \Tau 矩陣特徵值為1時候的特徵向量,而這個特徵向量在某些情形下是一定存在的。這也就意味著在無限步的情形下存在著一個關於 ( s , a ) (s,a) 的穩定分佈,這個性質叫做ergocicity(雖然真實世界的例子中這個性質可能不存在)。有了這麼一個分佈存在,那麼我們就能夠計算無限步的reward期望的和,不過要加個平均。最終等價於是每一步對應的reward期望。這個穩定狀態的收斂速度可以用reward的設計來使其加速達到。
在這裡插入圖片描述
無論是有限步還是無限步下,目標函式都是一個期望,而我們想要得到的是一個目標函式最大時的引數向量。這個引數向量能夠影響這個期望所在的分佈。在強化學習問題裡,優化這個reward函式的期望是很自然的,因為很多時候reward本身是一個離散形式,而加上了期望就能夠使其平滑或者可微。比如,如果還是開車,在路上正常形式reward是+1,如果是衝出路邊就是-1。這樣的reward沒法優化,但是求了期望之後就很自然的加入了引數 θ \theta 從而是個平滑可優化的函式。
在這裡插入圖片描述

3. Anatomy of a RL algorithm

強化學習演算法能夠分解為三個部分,如下圖所示:
在這裡插入圖片描述
舉一個簡單的例子。比如有個通過trial和error來進行學習的演算法。先產生了一些rollout,得到軌跡資料。對應橘色方框。然後會使用評估函式來對這些產生的軌跡資料進行評估,會得到對應rollout是否是一個好的情況或是壞的情況。比如計算整個軌跡的reward和,這對應著綠色方框。目標肯定是讓比較好的情況發生概率更大,讓壞的情況發生概率更小。於是可能會使用梯度下降法來更新引數,這樣就會對應著藍色的方框。
在這裡插入圖片描述
還有另一個複雜一點的例子。如果想要做的不僅僅是通過trial和error來進行學習,而是通過學習一個模擬的模型來預測下一個狀態。這樣的方法叫做model-based方法。對應綠色方框裡,有一個評估模型,通過一個BP網路來進行學習。依然是先產生資料,然後通過模型進行評估,然後在藍色方框的部分會進行後向傳播來改進模型以及策略。
在這裡插入圖片描述
這個例子裡的模型和策略都是確定性的,不會學習到符合隨機情形的策略。不過對於確定性的過程依然可用。重要的是這樣一個演算法依然符合之前所分析的三個部分,只不過可能每個部分稍微有一些不同。

那麼這三個部分哪一個部分是比較費力的呢?對於實際的機器人或是自動駕駛等等,第一步產生資料的部分就非常困難。但是如果使用的是模擬環境比如MuJoCo,那麼產生資料就相對簡單很多。而對於第二部分評估例子,如果是簡單的對獎勵值進行疊加,那麼就很簡單。但是如果是需要使用model-based的方法來預測下一個狀態從而進行評估,那這一步就很費力。最後一步如果是簡單的梯度下降就也很簡單,如果是後向傳播就相對複雜一些。所以究竟哪一步更費力依賴於演算法本身。
在這裡插入圖片描述
不過之前講的那個例子為什麼是不夠用的呢?因為本身的一些設定決定了它只能處理某些簡單情形而不能更廣泛地使用。
在這裡插入圖片描述

對於隨機的動態過程而言如何來找到解決方案呢?首先可以來計算一下目標函式,我們發現目標函式能夠在條件期望下寫為巢狀遞推的形式。而基於不同的條件能夠分別得到兩個不同的值函式。第一個依賴於 ( s t , a t ) (s_{t},a_{t}) 的值函式叫做Q函式,而如果知道了Q函式,那麼我們就能夠非常簡單地去改進對應時間步時候的策略從而得到更大的Q值。
在這裡插入圖片描述
類似的如果基於 s t s_{t} 作為條件,也能得到一個類似的獎勵值期望函式V。它們都是策略 π \pi 的函式,而且 E s 1 p ( s 1 ) [ V ( s 1 ) ] E_{ s_{1} \sim p(s_{1}) } [ V(s_{1}) ] 就是整個強化學習問題的目標函式。
在這裡插入圖片描述

相關推薦

深度強化學習cs294 Lecture3&Lecture4: Introduction to Reinforcement Learning

深度強化學習cs294 Lecture3&Lecture4: Introduction toReinforcement Learning 1. Definition of a Markov decision process 2. Definit

深度強化學習cs294 Lecture5: Policy Gradients Introduction

深度強化學習cs294 Lecture5: Policy Gradients Introduction 1. The policy gradient algorithm 2. What does the policy gradient do?

從馬爾科夫決策過程到強化學習(From Markov Decision Process to Reinforcement Learning

從馬爾科夫決策過程到強化學習(From Markov Decision Process to Reinforcement Learning) 作者:Bluemapleman([email protected]) Github:https://github.com/blu

深度強化學習cs294 Lecture1: Introduction and Course Overview

cs294 Lecture1: Introduction and Course Overview 強化學習介紹 為什麼現在學習深度強化學習 序列決策需要解決的其他問題 reward從哪裡來 其他型別的監督學習

深度強化學習cs294 Lecture8: Deep RL with Q-Function

深度強化學習cs294 Lecture8: Deep RL with Q-Function 1. How we can make Q-learning work with deep networks 2. A generalized view of Q

深度強化學習cs294 Lecture7: Value Function Methods

深度強化學習cs294 Lecture7: Value Function Methods Value-based Methods Q-Learning Value Function Learning Theory 回憶

深度強化學習cs294 Lecture6: Actor-Critic Algorithms

深度強化學習cs294 Lecture6: Actor-Critic Algorithms 1. Improving the policy gradient with a critic 2. The policy evaluation problem

深度強化學習cs294 HW1: Imitation Learning

終於把第一次作業完成了,不過實現效果貌似很差,調不好了就這樣吧。 Section 1 第一部分先裝環境。沒啥好說的。我用的anaconda直接pip install 對應的作業1資料夾裡的requirement.txt。其中MuJoCo需要啟用個key,可以去官網使用學生郵箱申請一個

深度強化學習cs294 Lecture2: Supervised Learning of behaviors

cs294 Lecture2: Supervised Learning of behaviors Definition of sequential decision problems Terminology & notation

Andrew NG機器學習課程筆記系列之——Introduction to Machine Learning

引言 本系列文章是本人對Andrew NG的機器學習課程的一些筆記,如有錯誤,請讀者以課程為準。 在現實生活中,我們每天都可能在不知不覺中使用了各種各樣的機器學習演算法。 例如,當你每一次使用 Google 時,它之所以可以執行良好,其中一個重要原因便是由 Google 實

A brief introduction to reinforcement learning

In this article, we'll discuss: Let's start the explanation with an example -- say there is a small baby who starts learning how to walk. Let's divide thi

Introduction to Reinforcement Learning – Towards Data Science

Table of ContentsCartpole ProblemCartpole - known also as an Inverted Pendulum is a pendulum with a center of gravity above its pivot point. It’s unstable,

CS294-112 深度強化學習 秋季學期(伯克利)NO.5 Actor-critic introduction

line batch cto online fit tro function 技術分享 rap in most AC algorithms, we actually just fit valu

CS294-112 深度強化學習 秋季學期(伯克利)NO.6 Value functions introduction NO.7 Advanced Q learning

ted 分享圖片 enc cti solution function part related ons -------------------------------------------------------------------------------

深度強化學習(一): Deep Q Network(DQN)

原文:https://blog.csdn.net/LagrangeSK/article/details/80321265 一、背景 DeepMind2013年的論文《Playing Atari with Deep Reinforcement Learning》指

深度強化學習綜述(上)

人工智慧中的很多應用問題需要演算法在每個時刻做出決策並執行動作。對於圍棋,每一步需要決定在棋盤的哪個位置放置棋子,以最大可能的戰勝對手;對於自動駕駛演算法,需要根據路況來確定當前的行駛策略以保證安全的行駛到目的地;對於機械手,要驅動手臂運動以抓取到設定的目標物體。這類問題有一個共同的特點:要根據當前

深度強化學習演算法 A3C (Actor-Critic Algorithm)

對於 A3C 演算法感覺自己總是一知半解,現將其梳理一下,記錄在此,也給想學習的小夥伴一個參考。   想要認識清楚這個演算法,需要對 DRL 的演算法有比較深刻的瞭解,推薦大家先了解下 Deep Q-learning 和 Policy Gradient 演