1. 程式人生 > >從零開始-Machine Learning學習筆記(32)-強化學習

從零開始-Machine Learning學習筆記(32)-強化學習

文章目錄


  下圖是強化學習的一個簡單的示意圖。強化學習任務通常用馬爾可夫決策過程(Markov Decision Process, MDP)來描述:機器處於環境E中,狀態空間為X,其中每個狀態 x X x ∈ X 是機器感知到的環境的描述;機器能採取的動作構成了動作空間A,若某個動作 a
A a ∈ A
作用在當前狀態x上,則潛在的轉移函式P將使得環境從當前狀態按某種概率轉移到另個狀態,在轉移的同時,環境會根據潛在的“獎賞”函式R反饋給機器一個獎賞。所以強化學習任務對應了四元組:
E = <
X , A , P , R > E = <X, A, P, R>

X:狀態空間
A:動作空間
P:轉移概率
R:獎賞函式

在上面的這個圖中,狀態空間一共有四種情況X={缺水,健康,溢水,凋亡},當處於“缺水”的狀態的時候;如果執行動作“澆水”,則有p=0.5的概率狀態會轉移到“缺水”,還有p=0.5的概率狀態會轉移到“健康”;當狀態從“缺水”轉移到“缺水”的時候,給出的獎賞是-1,當狀態從“缺水”轉移到“健康”的時候,給出的獎賞為1。同理,如果執行的動作是“不澆水”,則有p=0.4的概率狀態會轉移到“缺水”,還有p=0.6的概率狀態會轉移到“凋亡”;當狀態從“缺水”轉移到“缺水”的時候,給出的獎賞是-1,當狀態從“缺水”轉移到“凋亡”的時候,給出的獎賞-100。

  機器要做的是通過在環境中不斷地嘗試而學得一個"策略"(policy) π \pi ,根據這個策略,在狀態z 下就能得知要執行的動作 a = π ( x ) a = \pi (x) ,例如看到瓜苗狀態是缺水時,能返回動作"澆水"。於是使用 π ( x , a ) \pi(x,a) 表示狀態為x下選擇動作為a的概率,這裡有 a π ( x , a ) = 1 \sum_{a}\pi(x,a)=1

策略的優劣取決於長期執行這一策略後得到的累積獎賞;所以強化學習就是要學習出一種策略,使得最後的累計獎賞最高。

1. K-搖臂賭博機

  強化學習任務的最終獎賞是在多步動作之後才能觀察到,這裡我們不妨先考慮比較簡單的情形:最大化單步獎賞,即僅考慮一步操作。最大化單步獎賞需要考慮兩個方面:(1)每個動作的獎賞;(2)要執行獎賞最大的動作。
  如果每個動作的獎賞是一個確定的值,那麼遍歷所有的獎賞就能找到最大的動作;但是更多的時候,一個動作的獎賞值往往來自於一個概率分佈,所以,一次嘗試並不能確切地獲得平均獎賞值。

1.1 探索與利用

  單步強化學習任務就對應了一個理論模型-“K-搖臂賭博機”。所謂的K-搖臂賭博機是有k個搖臂,投入一個硬幣後可以按下一個搖臂,每個搖臂以一定的概率吐出硬幣,但是這個概率是多少並不知道。於是賭徒需要通過一定的策略使得自己獲得最多的硬幣,即最大化獎賞!於是就有以下的兩種策略:
僅探索(exploration-only):將所有機會平均分配給每個搖臂,最後用每個搖臂各自的平均吐幣概率作為作為其獎賞期望的近似估計;
僅利用(exploitation-only):選擇到目前為止平均獎賞最大的搖臂,若有幾個搖臂的平均獎賞一樣的大,則隨機選擇一個。

  僅探索可以很好的估計每個搖臂的獎賞,但是卻失去了很多選擇最大獎賞的機會;僅利用則沒有估計每個搖臂的獎賞,很可能選不到獎賞最大的搖臂。這兩種情況的感覺就好像是:
僅探索說我知道那個給的獎賞多,但我沒有多少選擇的機會了,我大部分的機會都是用於試出獎賞最大的搖臂;而僅利用說我不知道哪個搖臂給的獎賞最多,我就一直選我當前所知道的給的獎賞最多的那個搖臂,要是我提前知道那個最多,我就一直選擇那個最大,這樣我的獎賞就是最大的!

所以這兩種情況是矛盾的,欲使累積的獎賞最大,就需要在“僅探索”和“僅利用”之間達到一個平衡!

1.2 ϵ \epsilon -貪心

   ϵ \epsilon 貪心法是用一個概率來將探索和利用進行了一個折中。每次嘗試時,以 ϵ \epsilon 的概率進行探索,即以均勻概率隨機選取一個搖臂;以 1 ϵ 1 - \epsilon 的概率進行利用,即選擇當前平均獎賞最高的搖臂(若有多個,則隨機選取一個)。
  令Q(k)來記錄搖臂k的平均獎賞,假設搖臂k被嘗試了n次,每次的獎賞為 v i v_i ,於是有:
Q n ( k ) = 1 n i = 1 n v i = 1 n ( v 1 + v 2 + . . . + v n 1 + v n ) = 1 n [ ( n 1 ) 1 n 1 ( v 1 + v 2 + . . . + v n 1 ) + v n ] = 1 n [ ( n 1 ) Q n 1 ( k ) + v n ] Q_n(k) = \frac{1}{n} \sum_{i=1}^{n}v_i \\ =\frac{1}{n} (v_1+v_2+...+v_{n-1}+v_n) \\ =\frac{1}{n}[ (n-1)\frac{1}{n-1}(v_1+v_2+...+v_{n-1})+v_n] \\ =\frac{1}{n}[ (n-1)Q_{n-1}(k)+v_n]
於是每次只需要記錄已嘗試的次數n和最近的平均獎賞 Q n 1 ( k ) Q_{n-1}(k) 即可計算當前的平均獎賞,其演算法描述如下所示:

1.3 Softmax

  Softmax演算法基於當前已知的搖臂平均獎賞來對探索和利用進行折中。若各搖臂的平均獎賞相當,則選取各搖臂的概率也相當;若某些搖臂的平均獎賞
明顯高於其他搖臂,則它們被選取的概率也明顯更高。所以區別於 ϵ \epsilon -貪心,Softmax通過控制搖臂k被選中的概率,來對探索和利用進行折中,Softmax使用了一個Boltzmann分佈:
P ( k ) = e Q ( k ) τ i = 1 k e Q ( k ) τ P(k) = \frac{e^{\frac{Q(k)}{\tau}}}{\sum_{i=1}^{k}e^{\frac{Q(k)}{\tau}}}
  其中 τ > 0 \tau > 0 稱為溫度,其值越小,則平均累計獎賞高的搖臂被選取的概率越高。 τ \tau 趨近於0,Softmax則趨近於僅利用,因為每次取出的都是當前平均累計獎賞最高的樣本; τ \tau 趨近與無窮大,Softmax趨近於僅探索,因為P(k)接近於1/K,是一個均勻分佈,選擇哪一個搖臂的概率都一樣。

2. 有模型學習

  上一小節的K-搖臂賭博機是一種單步強化學習任務。如果我們要考慮多步強化學習任務,暫且先假定任務對應的馬爾可夫決策過程四元組 E = ( X A P R ) E= (X, A , P, R) 均為己知,這樣的情形稱為"模型己知",即機器已對環境進行了建模,能在機器內部模擬出與環境相同或近似的狀況。在己知模型的環境中學習稱為"有模型學習"(model-based learning)。

2.1 策略評估

  在模型己知時,對任意策略 π \pi 能估計出該策略帶來的期望累積獎賞。下面做幾個約定:
V π ( x ) V^{\pi}(x) :表示從狀態x出發,使用策略 π \pi 所帶來的累計獎賞;
Q π ( x , a ) Q^{\pi}(x,a) :表示從狀態x出發,執行動作a後再使用策略所帶來的累計獎賞;
V ( ) V(·) :被稱為狀態值函式(state value function),表示在指定狀態上的累積獎賞; Q ( ) Q(·) :被稱為狀態-動作值函式(state-action value function),表示指定在狀態-動作上的累積獎賞。根據累計函式的定義,我們可以寫出狀態值函式和狀態動作值函式:

需要注意的是,上式中的 P x x a P_{x→x'}^a

相關推薦

開始-Machine Learning學習筆記(32)-強化學習

文章目錄 1. K-搖臂賭博機 1.1 探索與利用 1.2 $\epsilon$ -貪心 1.3 Softmax 2. 有模型學習 2.1 策略評估

開始-Machine Learning學習筆記(25)-整合學習

文章目錄 1. Boosting - AdaBoosting 2. Bagging與隨機森林 2.1 Bagging - 並行式整合學習 2.2 隨機森林 3. 結合策略

開始-Machine Learning學習筆記(24)-貝葉斯分類器

  首先還是先取出周志華先生在《機器學習》貝葉斯分類器一章中對於貝葉斯決策論的定義: 貝葉斯決策論是概率框架下實施決策的基本方法。在分類任務中,在所有相關概率都已知的情況下,貝葉斯決策論考慮的是如何基於這些概率和誤判損失來選擇最優的標記。   基於最小化條件風險,我

開始-Machine Learning學習筆記(26)-聚類

文章目錄 0. 前言 1. 聚類的效能度量和距離計算 1.1 效能度量 1.2 距離計算 2. 原型聚類 2.1 K-means 2.2 學

開始-Machine Learning學習筆記(31)-規則學習

文章目錄 1. 基本概念 2. 序貫覆蓋 3. 剪枝優化 3.1 預剪枝-CN2演算法 3.2 後剪枝-RIPPER演算法 4. 一階規則學習 5. 歸納邏

開始-Machine Learning學習筆記(30)-概率圖模型

文章目錄 1. 隱馬爾可夫模型(Hidden Markov Model,HMM) 2. 馬爾科夫隨機場(Markov Random Field, MRF) 3. 條件隨機場(Conditional Random Field,

開始-Machine Learning學習筆記(29)-半監督學習

文章目錄 1. 生成式方法 2. 半監督SVM(Semi-Supervised Support Vector Machine, S3VM) 3. 圖半監督學習 3.1 針對於二分類問題的標記傳播

開始-Machine Learning學習筆記(27)-降維與度量學習

文章目錄 1. k近鄰學習 - (k-Nearest Neighbor, KNN) 2. 低維嵌入 3. 主成分分析(Principal Component Analysis, PCA) 4. 核化線性降維 - K

開始-Machine Learning學習筆記(19)-One-hot與啞變數的區別與聯絡

One-hot與啞變數的區別與聯絡 1. One-hot編碼   獨熱編碼直觀來說就是有多少個狀態就有多少個bit,且只有一個bit是1,其餘全是0的一種編碼方式。舉個例子就是一個氣球有四種顏色紅色R,紫色P,藍色B和黃色Y,我們使用One-hot進行編碼就可以

開始-Machine Learning學習筆記(23)

0. 前言   最近的計劃是先將周志華先生的《機器學習》整體先過一遍,對於其中的經典演算法中的一些公式進行推導和理解,並整理成筆記。關於課後習題部分先暫時放一放,留待下個月研究《Machine Learning in Action》的時候,在完成課後習題中關於

開始-Machine Learning學習筆記(1)-機器學習概述

​ 機器學習,顧名思義就是機器像人一樣進行“學習”,是近兩年來最為人津津樂道的名詞之一,這一名稱的由來卻鮮為人所提起。在最近閱讀周志華先生的《機器學習》一書之中,在其第一章的小故事中得到這一名詞的由來。 ​ 1952年,阿瑟·薩繆爾在IBM公司研製了一

開始-Machine Learning學習筆記(28)-特徵選擇與稀疏學習

  特徵選擇的目的主要有兩個:首先,我們在現實任務中經常會遇到維數災難問題,這是由於屬性過多而造成的,若能從中選擇出重要的特徵,使得後續學習過程僅需在-部分特徵上構建模型,則維數災難問題會大為減輕。這與降維的目的類似。第一個原因是,去除不相關特徵往往會降低學習任

開始-Machine Learning學習筆記(8)-指數平滑及python實現

1. 指數平滑的定義及應用場景 ​ 指數平滑由布朗提出、他認為時間序列的態勢具有穩定性或規則性,所以時間序列可被合理地順勢推延;他認為最近的過去態勢,在某種程度上會持續的未來,所以將較大的權數放在最近的資料。指數平滑法是移動平均法中的一種,其特點在於給過去

netty04(重點來了、指定某個客戶端發信息或者群發)小聲嘀咕~~我也是開始學得、、、想學習netty的又不知道怎麼下手的童鞋們~~

   還是和上幾篇一樣,先給出前面筆記的連線,有沒看的可以去看看再來!    netty01   、 netty02  、netty03   看到這裡、你基本上可以使用netty接受資訊和根據對應的資訊返回資訊了 &nb

開始寫javaweb框架筆記9-細節完善與程式碼優化-完善控制器層

    在這一小節中,我們開始寫jsp頁面  開啟/WEB-INF/view/customer.jsp檔案,完成如下程式碼: <%-- Created by IntelliJ IDEA. User: jack Date: 2015/12/5 Time:

開始Tensorflow == 資深小白配置深度學習環境的血淚史

2018.2.6 再更 在另一臺電腦上裝了一遍TF1.5.0,其實並不複雜,下載速度快的話1個小時就可以搞定,而且從頭到尾也並沒有之前出現過的任何問題,所以啊,歸根結底,還是版本的問題 吃一塹長一智。下次謹記,不要網上亂翻教程,因為隨著版本更新都是有時限性的,最靠譜的還是官

開始學架構》筆記——第一部分:概念和基礎

第一章 架構基礎 模組與元件 模組:從邏輯角度拆分,主要目的是職責分離 元件:從物理角度拆分,主要目的是單元複用 框架與架構 框架:元件規範(開發規範),提供基礎功能的產品。 架構:對軟體系統結構的描述 架構設計的目的是什麼? 軟體架構的歷史 第一次軟體危機——結構化程式設計登場 2000名程式設計師歷時

強化學習學習筆記——介紹強化學習(reinforcement learning)

眾所周知,當AlphaGO戰勝了世界圍棋冠軍李世石之後,整個工業界都為之振奮,越來越多的學者意識到強化學習在人工智慧領域是一個非常令人exciting的。在此我就分享一下本人的強化學習學習筆記。 強化學習基本概念 機器學習可以分為三類,分別是 super

學習筆記強化學習之A3C程式碼詳解

寫在前面:我是根據莫煩的視訊學習的Reinforce learning,具體程式碼實現包括Q-learning,SARSA,DQN,Policy-Gradient,Actor-Critic以及A3C。(莫凡老師的網站:https://morvanzhou.git

開始學Swift》學習筆記(Day67)——Cocoa Touch設計模式及應用之MVC模式

table control sdn rate term targe rac uitabbar bsp 原創文章,歡迎轉載。轉載請註明:關東升的博客 MVC(Model-View-Controller,模型-視圖-控制器)模式是相當古老的設計模式之中的一個,它最早出如今