1. 程式人生 > >Python機器學習筆記——強化學習

Python機器學習筆記——強化學習

【啊啊啊強化學習真的啥都不懂……Orz

sS:有限狀態state集合,s表示某個特定狀態

aA:有限動作action集合,a表示某個特定動作

馬爾可夫決策過程(MarkovDecision Process

智慧體(agent)根據當前對環境的觀察採取動作獲得環境的反饋,並使環境發生改變的迴圈過程。

蒙特卡洛強化學習

蒙特卡洛強化學習是一種不依賴於環境建模的學習演算法,此類演算法稱為免模型學習。蒙特卡洛強化學習使用多次取樣,然後求取平均累計獎賞作為期望累計獎賞的近似。

直接對狀態動作值函式Q(s,a)進行估計,每取樣一條軌跡,就根據軌跡中的所有“狀態-動作”利用下面的公式對來對值函式進行更新。

Q-learning

蒙特卡洛強化學習演算法需要取樣一個完整的軌跡來更新值函式,效率較低,此外該演算法沒有充分利用強化學習任務的序貫決策結構。Q-learning演算法結合了動態規劃與蒙特卡洛方法的思想,使得學習更加高效。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

深度強化學習將深度學習和強化學習結合在一起,通過深度神經網路直接學習環境(或觀察)與狀態動作值函式Q(s,a)之間的對映關係,簡化問題的求解。

Deep Q NetworkDQN

將神經網路(neuralnetwork)和Qlearning結合,利用神經網路近似模擬函式Q(s,a),輸入是問題的狀態(e.g.圖形),輸出是每個動作a對應的Q值,然後依據Q值大小選擇對應狀態執行的動作,以完成控制。

卷積神經網路(CNN)

卷積神經網路:把Image矩陣中的每個元素當做一個神經元,那麼卷積核就相當於輸入神經元和輸出神經元之間的連結權重,由此構建而成的網路被稱作卷積神經網路。

下圖展示卷積操作

  • 卷積核:這裡的卷積核指的就是移動中3*3大小的矩陣。
  • 卷積操作:使用卷積核與資料進行對應位置的乘積並加和,不斷移動卷積核生成卷積後的特徵。
  • 池化操作:對卷積的結果進行操作。最常用的是最大池化操作,即從卷積結果中挑出最大值,如選擇一個2*2大小的池化視窗(操作如圖示) 。