Q-learning是基于价值迭代的强化学习算法。
在Q-learning中要定义策略的动作价值函数
Q
Q
Q,以表示不同状态下不同动作的价值。记策略
π
\pi
π的动作价值函数为
Q
π
(
s
t
,
a
t
)
Q^{\pi}(s_t,a_t)
Qπ(st?,at?),表示在状态
s
t
s_t
st?下,执行动作
a
t
a_t
at?带来的累积奖励
G
t
G_t
Gt?的期望值。计算流程如下:
Q
π
(
s
t
,
a
t
)
Q^{\pi}(s_t,a_t)
Qπ(st?,at?) =
E
[
G
T
∣
s
t
,
a
t
]
E[G_T|s_t,a_t]
E[GT?∣st?,at?] =
E
[
r
t
+
γ
r
t
+
1
+
γ
2
r
t
+
2
+
.
.
.
∣
s
t
,
a
t
]
E[r_t+\gamma r_{t+1}+\gamma ^2r_{t+2}+...|s_t,a_t]
E[rt?+γrt+1?+γ2rt+2?+...∣st?,at?] =
E
[
r
t
+
γ
Q
π
(
s
t
+
1
,
a
t
+
1
)
∣
s
t
,
a
t
]
E[r_t+\gamma Q^{\pi}(s_{t+1},a_{t+1})|s_t,a_t]
E[rt?+γQπ(st+1?,at+1?)∣st?,at?](公式1)
公式1是马尔科夫决策过程中Bellman方程的基本形式,累积奖励
G
t
G_t
Gt?的计算,不仅考虑当下时刻
t
t
t的动作
a
t
a_t
at?的奖励
r
t
r_t
rt?,还会累积计算对之后决策带来的影响,公式1中的
γ
\gamma
γ是后续奖励的衰减因子。从公式上看,当前状态的动作价值
Q
π
(
s
t
,
a
t
)
Q^{\pi}(s_{t},a_{t})
Qπ(st?,at?),与当前时刻的动作的奖励
r
t
r_t
rt?以及下一状态的动作价值
Q
π
(
s
t
+
1
,
a
t
+
1
)
Q^{\pi}(s_{t+1},a_{t+1})
Qπ(st+1?,at+1?)有关,因此,动作价值函数的计算通过动态规划算法实现,但在状态转移未知或大规模问题时不能使用。
Q-learning使用浅层的时序分差采样学习,在计算累积奖励时,基于当前的策略
π
\pi
π预测接下来发生的
n
n
n步操作并计算其奖励值。具体来说,假设在状态
s
t
s_t
st?下选择了动作
a
t
a_t
at?并得到了奖励
r
t
r_t
rt?,此时的状态转移到
s
t
+
1
s_{t+1}
st+1?,如果此时的状态策略选择了动作
a
t
+
1
a_{t+1}
at+1?,则
Q
π
(
s
t
,
a
t
)
Q^{\pi}(s_t,a_t)
Qπ(st?,at?)可以表示为:
Q
π
(
s
t
,
a
t
)
Q^{\pi}(s_t,a_t)
Qπ(st?,at?)=
E
s
t
+
1
,
a
t
+
1
[
r
1
+
γ
A
π
(
s
t
+
1
,
a
t
+
1
)
∣
s
t
,
a
t
]
E_{s_{t+1},a_{t+1}}[r_1+\gamma A^{\pi}(s_{t+1},a_{t+1})|s_t,a_t]
Est+1?,at+1??[r1?+γAπ(st+1?,at+1?)∣st?,at?]
由于强化学习的目标是求最大的奖励值,因此最优策略
π
?
\pi^*
π?对应的动作价值函数
Q
?
(
s
t
,
a
t
)
Q^{*}(s_t,a_t)
Q?(st?,at?)满足:
Q
?
(
s
t
,
a
t
)
Q^{*}(s_t,a_t)
Q?(st?,at?)=
m
a
x
π
Q
π
(
s
t
,
a
t
)
max_{\pi}Q^{\pi}(s_t,a_t)
maxπ?Qπ(st?,at?)=
E
s
t
+
1
[
r
1
+
γ
m
a
x
a
t
+
1
Q
(
s
t
+
1
,
a
t
+
1
)
∣
s
t
,
a
t
]
E_{s_{t+1}}[r_1+\gamma max_{a_{t+1}}Q(s_{t+1},a_{t+1})|s_t,a_t]
Est+1??[r1?+γmaxat+1??Q(st+1?,at+1?)∣st?,at?]
在更新的时候使用梯度下降方法,并至最终收敛。
|