一、Q-Learning :異策略時(shí)序差分控制
從決策方式來看,強(qiáng)化學(xué)習(xí)可以分為基于策略的方法(policy-based)和基于價(jià)值的方法(value-based)?;诓呗缘姆椒ㄖ苯訉Σ呗赃M(jìn)行優(yōu)化,使制定的的策略能夠獲得最大的獎(jiǎng)勵(lì)?;趦r(jià)值的強(qiáng)化學(xué)習(xí)方法中,智能體不需要制定顯式的策略,它維護(hù)一個(gè)價(jià)值表格或價(jià)值函數(shù),通過這個(gè)價(jià)值表格或價(jià)值函數(shù)來選取價(jià)值最大的動(dòng)作。
Q-Learning 算法就是一種value-based的強(qiáng)化學(xué)習(xí)算法。
二、算法思想:
Q(s,a)是狀態(tài)價(jià)值函數(shù),表示在某一具體初始狀態(tài)s和動(dòng)作a的情況下,對未來收益的期望值。
Q-Learning算法維護(hù)一個(gè)Q-table,Q-table記錄了不同狀態(tài)下s(s∈S),采取不同動(dòng)作a(a∈A)的所獲得的Q值。
Q-table | a1 | a2 | a3 | … |
---|---|---|---|---|
s1 | Q(s1,a1) | Q(s1,a2) | Q(s1,a3) | |
s2 | Q(s2,a1) | Q(s2,a2) | Q(s2,a3) | |
s3 | Q(s3,a1) | Q(s3,a2) | Q(s3,a3) | |
… |
探索環(huán)境之前,初始化Q-table,當(dāng)agent與環(huán)境交互的過程中,算法利用貝爾曼方程(ballman equation)來迭代更新Q(s,a),每一輪結(jié)束后就生成了一個(gè)新的Q-table。agent不斷與環(huán)境進(jìn)行交互,不斷更新這個(gè)表格,使其最終能收斂。最終,agent就能通過表格判斷在某個(gè)轉(zhuǎn)態(tài)s下采取什么動(dòng)作,才能獲得最大的Q值。
三、更新過程
更新方法:
Q
(
s
t
,
a
t
)
←
Q
(
s
t
,
a
t
)
+
α
[
r
t
+
1
+
γ
max
?
a
Q
(
s
t
+
1
,
a
)
?
Q
(
s
t
,
a
t
)
]
Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_{t+1}+ \gamma \max_aQ(s_{t+1},a) - Q(s_t,a_t) ]
Q(st?,at?)←Q(st?,at?)+α[rt+1?+γamax?Q(st+1?,a)?Q(st?,at?)]
Q ( s t , a t ) {\color{Red} Q(s_t,a_t)} Q(st?,at?) 是在狀態(tài) s t s_t st?下采取動(dòng)作 a t a_t at?的長期回報(bào),是一個(gè)估計(jì)Q值
r t + 1 {\color{Red} r_{t+1}} rt+1? 是在狀態(tài) s t s_t st?下執(zhí)行動(dòng)作 a t a_t at?得到的回報(bào)reward
max ? a Q ( s t + 1 , a ) {\color{Red} \max_aQ(s_{t+1},a)} maxa?Q(st+1?,a) 指的是在狀態(tài) s t + 1 s_{t+1} st+1?下所獲得的最大Q值,直接看Q-table,取它的最大化的值。 γ \gamma γ是折扣因子,含義是看重近期收益,弱化遠(yuǎn)期收益,同時(shí)也保證Q函數(shù)收斂。
( r t + 1 + γ max ? a Q ( s t + 1 , a ) {\color{Red} (r_{t+1}+ \gamma \max_aQ(s_{t+1},a)} (rt+1?+γmaxa?Q(st+1?,a) 即為目標(biāo)值,就是時(shí)序差分目標(biāo),是 Q ( s t , a t ) Q(s_t,a_t) Q(st?,at?) 想要逼近的目標(biāo)。 α \alpha α是學(xué)習(xí)率,衡量更新的幅度。
當(dāng)目標(biāo)值和估計(jì)值的差值趨于0的時(shí)候,Q(s,a)就不再繼續(xù)變化,Q 表趨于穩(wěn)定,說明得到了一個(gè)收斂的結(jié)果。這就是算法想要達(dá)到的效果。
注意:
max
?
a
Q
(
s
t
+
1
,
a
)
{\color{Red} \max_aQ(s_{t+1},a)}
maxa?Q(st+1?,a)所對應(yīng)的動(dòng)作不一定是下一步會(huì)執(zhí)行的實(shí)際動(dòng)作!
這里引出
ε
?
g
r
e
e
d
y
{\color{Red} \varepsilon-greedy}
ε?greedy,即
ε
?
\varepsilon-
ε?貪心算法。
在智能體探索過程中,執(zhí)行的動(dòng)作采用
ε
?
g
r
e
e
d
y
{\color{Red} \varepsilon-greedy}
ε?greedy策略,是權(quán)衡exploitation-exploration(利用和探索)的超參數(shù)。
- exploration:探索環(huán)境,通過嘗試不同的動(dòng)作來得到最佳策略(帶來最大獎(jiǎng)勵(lì)的策略)
- exploitation:不去嘗試新的動(dòng)作,利用已知的可以帶來很大獎(jiǎng)勵(lì)的動(dòng)作。Q-Learning算法中,就是根據(jù)Q-table選擇當(dāng)前狀態(tài)下能使Q值最大的動(dòng)作。
在剛開始的時(shí)候,智能體不知道采取某個(gè)動(dòng)作后會(huì)發(fā)生什么,所以只能通過試錯(cuò)去探索。利用是指直接采取已知的可以帶來很好獎(jiǎng)勵(lì)的動(dòng)作。這里面臨一個(gè)權(quán)衡問題,即怎么通過犧牲一些短期的獎(jiǎng)勵(lì)來理解動(dòng)作,從而學(xué)習(xí)到更好的策略。因此,提出 ε ? g r e e d y \varepsilon-greedy ε?greedy, ε \varepsilon ε就是權(quán)衡這兩方面的超參數(shù)。
這篇博客https://blog.csdn.net/zhm2229/article/details/99351831對這部分的理解講的很好,在此引用一下:
做exploitation和exploration的目的是獲得一種長期收益最高的策略,這個(gè)過程可能對short-term reward有損失。如果exploitation太多,那么模型比較容易陷入局部最優(yōu),但是exploration太多,模型收斂速度太慢。這就是exploitation-exploration權(quán)衡。
比如我們設(shè) ε \varepsilon ε=0.9,隨機(jī)化一個(gè)[0,1]的值,如果它小于 ε \varepsilon ε,則進(jìn)行exploration,隨機(jī)選擇動(dòng)作;如果它大于 ε \varepsilon ε,則進(jìn)行exploitation,選擇Q value最大的動(dòng)作。
在訓(xùn)練過程中, ε \varepsilon ε在剛開始的時(shí)候會(huì)被設(shè)得比較大,讓agent充分探索,然后 ε \varepsilon ε逐步減少,agent會(huì)開始慢慢選擇Q value最大的動(dòng)作
三、偽代碼
圖源于:百度飛槳AlStudio文章來源:http://www.zghlxwxcb.cn/news/detail-817954.html
參考:
[1] 王琦.強(qiáng)化學(xué)習(xí)教程[M]
[2] https://blog.csdn.net/zhm2229/article/details/99351831文章來源地址http://www.zghlxwxcb.cn/news/detail-817954.html
到了這里,關(guān)于強(qiáng)化學(xué)習(xí)——Q-Learning算法原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!