1. 程式人生 > >深度強化學習及其在自動駕駛中的應用: DRL&ADS系列之(2): 深度強化學習DQN原理

深度強化學習及其在自動駕駛中的應用: DRL&ADS系列之(2): 深度強化學習DQN原理

專欄系列文章規劃

上一篇文章《DRL&ADS系列之(1): 強化學習概述》已經講解了利用神經網路近似值函式的方法,即:

(1)V^(s,w)Vπ(s)q^(s,a,w)qπ(s,a)
理論近似方法已經描述了,那麼具體的工作過程是怎樣實現的? 以及如何從端到端的過程,本文將講解Deep Q Network(DQN, 而這正是由DeepMind於2013年和2015年分別提出的兩篇論文《Playing Atari with Deep Reinforcement Learning》《Human-level Control through Deep Reinforcement Learning:Nature雜誌》

其中DeepMind在第一篇中第一次提出Deep Reinforcement Learning(DRL)這個名稱,並且提出DQN演算法,實現從視訊純影象輸入,完全通過Agent學習來玩Atari遊戲的成果。之後DeepMind在Nature上發表了改進版的DQN文章(Human-level …..), 這將深度學習與RL結合起來實現從Perception感知到Action動作的端到端的一種全新的學習演算法。簡單理解就是和人類一樣,輸入感知資訊比如眼睛看到的東西,然後通過大腦(深度神經網路),直接做出對應的行為(輸出動作)的學習過程。而後DeepMind提出了AlphaZero(完美的運用了DRL+Monte Calo Tree Search)取得了超過人類的水平!下文將詳細介紹DQN:

一、DQN演算法

DQN演算法是一種將Q_learning通過神經網路近似值函式的一種方法,在Atari 2600 遊戲中取得了超越人類水平玩家的成績,下文通過將逐步深入講解:

1.1、 Q_Learning演算法

Q_Learning 是Watkins於1989年提出的一種無模型的強化學習技術。它能夠比較可用操作的預期效用(對於給定狀態),而不需要環境模型。同時它可以處理隨機過渡和獎勵問題,而無需進行調整。目前已經被證明,對於任何有限的MDP,Q學習最終會找到一個最優策略,即從當前狀態開始,所有連續步驟的總回報回報的期望值是最大值可以實現的。 學習開始之前,Q被初始化為一個可能的任意固定值(由程式設計師選擇)。然後在每個時間t, Agent選擇一個動作

at,得到一個獎勵Rt,進入一個新的狀態St+1和Q值更新。其核心是值函式迭代過程,即:

(2)Q(st,at)Q(st,at)+α[rt+γmaxπQ(st+1,at)Q(st,at)]
其中 α是學習率,γ為折扣因子,具體的實現過程見下圖虛擬碼:

這裡寫圖片描述

首先初始化值函式矩陣,開始episode,然後選擇一個狀態state,同時智慧體根據自身貪婪策略,選擇action, 經過智慧體將動作運用後得到一個獎勵RS,計算值函式,繼續迭代下一個流程。

1.1.1、Q_Learning執行過程中有兩個特點:異策略時間差分
  • 異策略:就是指行動策略和評估策略不是同一個策略,行動策略採用了貪心的ϵ-greedy策略(第5行),而評估策略採用了maxπQ(s,a)貪心策略(第7行)!
  • 時間差分:從值函式迭代公式(2)可以看出時間差分, 其中TDtarget=rt+maxπ(st+1,at

為了在學習過程中得到最優策略Policy,通常估算每一個狀態下每一種選擇的價值Value有多大。且每一個時間片的Q(st,at)和當前得到的Reward以及下一個時間片的Q(st+1,at+1)有關。Q_Learning通過不斷的學習,最終形成一張矩陣來儲存狀態(state)和動作(action),表示為:
這裡寫圖片描述

具體過程根據虛擬碼:首先初始化矩陣(所有都為0),第一次隨機並採用貪婪策略選擇action,假如選擇action2後選擇到了狀態2,(α=0,γ=0),此時得到獎勵1,則