参考资料:神经网络与深度学习
深度强化学习
如上篇文章所述,在强化学习中,一般需建模:
策略
π
(
a
∣
s
)
\pi(a \mid s)
π(a∣s)
状态值函数
V
π
(
s
)
=
E
τ
∼
p
(
τ
)
[
∑
t
=
0
T
−
1
γ
t
r
t
+
1
∣
τ
s
0
=
s
]
V^\pi(s)=\mathbb{E}_{\tau \sim p(\tau)}\left[\sum_{t=0}^{T-1} \gamma^t r_{t+1} \mid \tau_{s_0}=s\right]
Vπ(s)=Eτ∼p(τ)[∑t=0T−1γtrt+1∣τs0=s]
状态-动作值函数
Q
π
(
s
,
a
)
=
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
V
π
(
s
′
)
]
Q^\pi(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right]
Qπ(s,a)=Es′∼p(s′∣s,a)[r(s,a,s′)+γVπ(s′)]
深度强化学习是将强化学习和深度学习结合在一起, 用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。 {\color{red}\text{用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。}} 用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。
1.基于值函数的学习方法
值函数是对策略
π
\pi
π的评估。如果策略
π
\pi
π有限(即状态数和动作数都有限),理论上可以穷搜出最优策略
π
∗
\pi^*
π∗:(当动作和状态空间过大时往往难以实现)
∀
s
,
π
∗
=
arg
max
π
V
π
(
s
)
\forall s, \quad \pi^*=\underset{\pi}{\arg \max } V^\pi(s)
∀s,π∗=πargmaxVπ(s)
故一种straightforward的方法是迭代优化策略
π
(
a
∣
s
)
\pi(a \mid s)
π(a∣s)。即设定新的策略
π
′
(
a
∣
s
)
\pi^{\prime}(a \mid s)
π′(a∣s):
π
′
(
a
∣
s
)
=
{
1
if
a
=
arg
max
a
^
Q
π
(
s
,
a
^
)
0
otherwise
\pi^{\prime}(a \mid s)= \begin{cases}1 & \text { if } a=\arg \max _{\hat{a}} Q^\pi(s, \hat{a}) \\ 0 & \text { otherwise }\end{cases}
π′(a∣s)={10 if a=argmaxa^Qπ(s,a^) otherwise
亦即
π
′
(
s
)
=
arg
max
a
Q
π
(
s
,
a
)
\pi^{\prime}(s)=\underset{a}{\arg \max } Q^\pi(s, a)
π′(s)=aargmaxQπ(s,a)
如果执行
π
′
\pi^{\prime}
π′ ,会有
∀
s
,
V
π
′
(
s
)
≥
V
π
(
s
)
\forall s, \quad V^{\pi^{\prime}}(s) \geq V^\pi(s)
∀s,Vπ′(s)≥Vπ(s)
即先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛。
基于值函数的策略学习方法中最关键的是如何计算策略
π
\pi
π 的值函数,一般有动态规划(基于贝尔曼方程)或蒙特卡罗两种计算方式。
1.1.动态规划算法
状态值函数的贝尔曼方程形式为:
V
π
(
s
)
=
(
a
)
E
τ
0
:
T
∼
p
(
τ
)
[
r
1
+
γ
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
0
=
s
]
=
(
b
)
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
E
τ
1
:
T
∼
p
(
τ
)
[
r
(
s
,
a
,
s
′
)
+
γ
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
1
=
s
′
]
=
(
c
)
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
E
τ
1
:
T
∼
p
(
τ
)
[
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
1
=
s
′
]
]
=
(
d
)
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
V
π
(
s
′
)
]
\begin{aligned} & V^\pi(s)\overset{(a)}{=}\mathbb{E}_{\tau_{0: T} \sim p(\tau)}\left[r_1+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_0}=s\right] \\ & \overset{(b)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)} \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[r\left(s, a, s^{\prime}\right)+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_1}=s^{\prime}\right] \\ & \overset{(c)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[\sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_1}=s^{\prime}\right]\right] \\ & \overset{(d)}{=} \mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right] \end{aligned}
Vπ(s)=(a)Eτ0:T∼p(τ)[r1+γt=1∑T−1γt−1rt+1∣τs0=s]=(b)Ea∼π(a∣s)Es′∼p(s′∣s,a)Eτ1:T∼p(τ)[r(s,a,s′)+γt=1∑T−1γt−1rt+1∣τs1=s′]=(c)Ea∼π(a∣s)Es′∼p(s′∣s,a)[r(s,a,s′)+γEτ1:T∼p(τ)[t=1∑T−1γt−1rt+1∣τs1=s′]]=(d)Ea∼π(a∣s)Es′∼p(s′∣s,a)[r(s,a,s′)+γVπ(s′)]
从贝尔曼方程可知,如果知道马尔可夫决策过程的状态转移概率
p
(
s
′
∣
s
,
a
)
p\left(s^{\prime} \mid s, a\right)
p(s′∣s,a)和奖励
r
(
s
,
a
,
s
′
)
r\left(s, a, s^{\prime}\right)
r(s,a,s′) ,可以通过贝尔曼方程来迭代计算其值函数。这种模型已知的强化学习算法也称为基于模型的强化学习(Model-Based Reinforcement Learning)算法,这里的模型就是指马尔可夫决策过程。
在已知模型时,可以通过动态规划的方法来计算。常用的方法主要有策略迭代算法和值迭代算法。
1.1.1.策略迭代算法
策略迭代算法 输入: MDP 五元组: S , A , P , r , γ ; 初始化: ∀ s , ∀ a , π ( a ∣ s ) = 1 ∣ A ∣ ; repeat // 策略评估 repeat 根据贝尔曼方程计算 V π ( s ) = E a ∼ π ( a ∣ s ) E s ′ ∼ p ( s ′ ∣ s , a ) [ r ( s , a , s ′ ) + γ V π ( s ′ ) ] , ∀ s ; until ∀ s , V π ( s ) 收敛; // 策略改进 计算 Q ( s , a ) ; ∀ s , π ( s ) = arg max a Q ( s , a ) ; until ∀ s , π ( s ) 收敛; 输出: 策略 π \begin{aligned} &\text { 策略迭代算法 }\\ &\text { 输入: } \operatorname{MDP} \text { 五元组: } \mathcal{S}, \mathcal{A}, P, r, \gamma ;\\ &\text { 初始化: } \forall s, \forall a, \pi(a \mid s)=\frac{1}{|\mathcal{A}|} \text {; }\\ &\text { repeat }\\ &\text { // 策略评估 }\\ &\text { repeat }\\ &\text { 根据贝尔曼方程计算} V^\pi(s)=\mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^\pi\left(s^{\prime}\right)\right] , \forall s \text {; }\\ &\text { until } \forall s, V^\pi(s) \text { 收敛; }\\ &\text { // 策略改进 }\\ &\text { 计算 } Q(s, a) \text {; }\\ &\forall s, \pi(s)=\arg \max _a Q(s, a) ;\\ &\text { until } \forall s, \pi(s) \text { 收敛; }\\ &\text { 输出: 策略 } \pi \end{aligned} 策略迭代算法 输入: MDP 五元组: S,A,P,r,γ; 初始化: ∀s,∀a,π(a∣s)=∣A∣1; repeat // 策略评估 repeat 根据贝尔曼方程计算Vπ(s)=Ea∼π(a∣s)Es′∼p(s′∣s,a)[r(s,a,s′)+γVπ(s′)],∀s; until ∀s,Vπ(s) 收敛; // 策略改进 计算 Q(s,a); ∀s,π(s)=argamaxQ(s,a); until ∀s,π(s) 收敛; 输出: 策略 π
1.1.2.值迭代算法
将策略评估和策略改进两个过程合并,直接计算出最优策略。最优策略
π
∗
\pi^{*}
π∗对应的值函数对应地称为最优值函数,具体包括最优状态值函数
V
∗
(
s
)
V^*(s)
V∗(s) 和 最优状态-动作值函数
Q
∗
(
s
,
a
)
Q^*(s,a)
Q∗(s,a),根据其关系:
V
π
(
s
)
=
E
a
∼
π
(
a
∣
s
)
[
Q
π
(
s
,
a
)
]
V^\pi(s)=\mathbb{E}_{a \sim \pi(a \mid s)}\left[Q^\pi(s, a)\right]
Vπ(s)=Ea∼π(a∣s)[Qπ(s,a)],它们之间的关系为
V
∗
(
s
)
=
max
a
Q
∗
(
s
,
a
)
.
\begin{equation} V^*(s)=\max _a Q^*(s, a) . \nonumber \end{equation}
V∗(s)=amaxQ∗(s,a).
根据贝尔曼方程,可以通过迭代方式计算
V
∗
(
s
)
V^*(s)
V∗(s)与
Q
∗
(
s
,
a
)
Q^*(s,a)
Q∗(s,a):
V
∗
(
s
)
=
max
a
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
V
∗
(
s
′
)
]
Q
∗
(
s
,
a
)
=
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
max
a
′
Q
∗
(
s
′
,
a
′
)
]
V^*(s)=\max _a \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^*\left(s^{\prime}\right)\right] \\ Q^*(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \max _{a^{\prime}} Q^*\left(s^{\prime}, a^{\prime}\right)\right]
V∗(s)=amaxEs′∼p(s′∣s,a)[r(s,a,s′)+γV∗(s′)]Q∗(s,a)=Es′∼p(s′∣s,a)[r(s,a,s′)+γa′maxQ∗(s′,a′)]
值迭代算法通过直接优化贝尔曼最优方程,迭代计算最优值函数:
1.2.蒙特卡罗方法
事实上,多数场景中,马尔可夫决策过程的状态转移概率 p ( s ′ ∣ s , a ) p(s' \mid s,a) p(s′∣s,a)和奖励函数 r ( s , a , s ′ ) r(s,a,s') r(s,a,s′)是未知的。在这种情况下,我们一般需要智能体和环境进行交互,并收集一些样本,然后再根据这些样本来求解马尔可夫决策过程最优策略。这种模型未知,基于采样的数据样本的学习算法被称为模型无关的强化学习算法。
Q 函数
Q
π
(
s
,
a
)
Q^\pi(s, a)
Qπ(s,a) 是初始状态为
s
s
s ,并执行动作
a
a
a 后所能得到的期望总回报:
Q
π
(
s
,
a
)
=
E
τ
∼
p
(
τ
)
[
G
(
τ
s
0
=
s
,
a
0
=
a
)
]
,
Q^\pi(s, a)=\mathbb{E}_{\tau \sim p(\tau)}\left[G\left(\tau_{s_0=s, a_0=a}\right)\right],
Qπ(s,a)=Eτ∼p(τ)[G(τs0=s,a0=a)],
其中
τ
s
0
=
s
,
a
0
=
a
\tau_{s_0=s, a_0=a}
τs0=s,a0=a 表示轨迹
τ
\tau
τ 的起始状态和动作为
s
,
a
s, a
s,a 。如果模型未知, Q 函数可以通过采样来进行计算,这就是蒙特卡罗方法。
1.3.时序差分学习方法
时序差分学习方法是模拟一段轨迹,每行动一步(或者几步),就利用贝尔曼方程来评估行动前状态的价值,不需探寻完整的轨迹。
Q
^
N
π
(
s
,
a
)
=
1
N
∑
n
=
1
N
G
(
τ
s
0
=
s
,
a
0
=
a
(
n
)
)
=
1
N
(
G
(
τ
s
0
=
s
,
a
0
=
a
(
N
)
)
+
∑
n
=
1
N
−
1
G
(
τ
s
0
=
s
,
a
0
=
a
(
n
)
)
)
=
1
N
(
G
(
τ
s
0
=
s
,
a
0
=
a
(
N
)
)
+
(
N
−
1
)
Q
^
N
−
1
π
(
s
,
a
)
)
=
Q
^
N
−
1
π
(
s
,
a
)
+
1
N
(
G
(
τ
s
0
=
s
,
a
0
=
a
(
N
)
)
−
Q
^
N
−
1
π
(
s
,
a
)
)
,
\begin{aligned} \hat{Q}_N^\pi(s, a) & =\frac{1}{N} \sum_{n=1}^N G\left(\tau_{s_0=s, a_0=a}^{(n)}\right) \\ & =\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)+\sum_{n=1}^{N-1} G\left(\tau_{s_0=s, a_0=a}^{(n)}\right)\right) \\ & =\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)+(N-1) \hat{Q}_{N-1}^\pi(s, a)\right) \\ & =\hat{Q}_{N-1}^\pi(s, a)+\frac{1}{N}\left(G\left(\tau_{s_0=s, a_0=a}^{(N)}\right)-\hat{Q}_{N-1}^\pi(s, a)\right), \end{aligned}
Q^Nπ(s,a)=N1n=1∑NG(τs0=s,a0=a(n))=N1(G(τs0=s,a0=a(N))+n=1∑N−1G(τs0=s,a0=a(n)))=N1(G(τs0=s,a0=a(N))+(N−1)Q^N−1π(s,a))=Q^N−1π(s,a)+N1(G(τs0=s,a0=a(N))−Q^N−1π(s,a)),
从上式能够看出,值函数
Q
^
π
(
s
,
a
)
\hat{Q}^\pi(s, a)
Q^π(s,a) 在第
N
N
N 试验后的平均等于第
N
−
1
N-1
N−1 试验后的平均加上一个增量.更一般性地,将权重系数
1
N
\frac{1}{N}
N1 改为一个比较小的正数
α
\alpha
α .即每次用一个新的轨迹
τ
s
0
=
s
,
a
0
=
a
\tau_{s_0=s, a_0=a}
τs0=s,a0=a 更新
Q
^
π
(
s
,
a
)
\hat{Q}^\pi(s, a)
Q^π(s,a) :
Q
^
π
(
s
,
a
)
←
Q
^
π
(
s
,
a
)
+
α
(
G
(
τ
s
0
=
s
,
a
0
=
a
)
−
Q
^
π
(
s
,
a
)
)
=
(
1
−
α
)
Q
^
π
(
s
,
a
)
+
α
G
(
τ
s
0
=
s
,
a
0
=
a
)
,
{\color{red} \hat{Q}^\pi(s, a) \leftarrow \hat{Q}^\pi(s, a)+\alpha\left(G\left(\tau_{s_0=s, a_0=a}\right)-\hat{Q}^\pi(s, a)\right) = (1-\alpha)\hat{Q}^\pi(s, a) + \alpha G\left(\tau_{s_0=s, a_0=a}\right) },
Q^π(s,a)←Q^π(s,a)+α(G(τs0=s,a0=a)−Q^π(s,a))=(1−α)Q^π(s,a)+αG(τs0=s,a0=a),
其中增量
δ
≜
G
(
τ
s
0
=
s
,
a
0
=
a
)
−
Q
^
π
(
s
,
a
)
\delta \triangleq G\left(\tau_{s_0=s, a_0=a}\right)-\hat{Q}^\pi(s, a)
δ≜G(τs0=s,a0=a)−Q^π(s,a) 为蒙特卡罗误差,即当前轨迹的真实回报
G
(
τ
s
0
=
s
,
a
0
=
a
)
G\left(\tau_{s_0=s, a_0=a}\right)
G(τs0=s,a0=a) 与期望回报
Q
^
π
(
s
,
a
)
\hat{Q}^\pi(s, a)
Q^π(s,a) 间的差距。
对于完整蒙特卡罗回报而言,是指从初始状态-动作
(
s
0
,
a
0
)
(s_0,a_0)
(s0,a0),沿轨迹
τ
\tau
τ采样取得的回报,即:
G
(
τ
s
0
=
s
,
a
0
=
a
)
=
r
0
+
γ
r
1
+
γ
2
r
2
+
⋯
+
γ
T
−
1
r
T
−
1
G\left(\tau_{s_0=s, a_0=a}\right)=r_0+\gamma r_1+\gamma^2 r_2+\cdots+\gamma^{T-1} r_{T-1}
G(τs0=s,a0=a)=r0+γr1+γ2r2+⋯+γT−1rT−1
因为状态-动作值函数满足:
Q
π
(
s
,
a
)
=
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
E
a
′
∼
π
(
a
′
∣
s
′
)
[
Q
π
(
s
′
,
a
′
)
]
]
Q^\pi(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{a^{\prime} \sim \pi\left(a^{\prime} \mid s^{\prime}\right)}\left[Q^\pi\left(s^{\prime}, a^{\prime}\right)\right]\right]
Qπ(s,a)=Es′∼p(s′∣s,a)[r(s,a,s′)+γEa′∼π(a′∣s′)[Qπ(s′,a′)]],故可以利用贝尔曼方程进行近似,避免完整轨迹的计算:
G
(
τ
s
0
=
s
,
a
0
=
a
,
s
1
=
s
′
,
a
1
=
a
′
)
=
r
(
s
,
a
,
s
′
)
+
γ
G
(
τ
s
0
=
s
′
,
a
0
=
a
′
)
G\left(\tau_{s_0=s, a_0=a, s_1=s^{\prime}, a_1=a^{\prime}}\right)=r\left(s, a, s^{\prime}\right)+\gamma G\left(\tau_{s_0=s^{\prime}, a_0=a^{\prime}}\right)
G(τs0=s,a0=a,s1=s′,a1=a′)=r(s,a,s′)+γG(τs0=s′,a0=a′)
但完整计算
G
(
τ
s
0
=
s
′
,
a
0
=
a
′
)
G\left(\tau_{s_0=s^{\prime}, a_0=a^{\prime}}\right)
G(τs0=s′,a0=a′) 仍然昂贵,因此进一步使用当前的 Q 估计
Q
^
π
(
s
′
,
a
′
)
\hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right)
Q^π(s′,a′) 来替代:
G
(
τ
s
0
=
s
,
a
0
=
a
,
s
1
=
s
′
,
a
1
=
a
′
)
≈
r
(
s
,
a
,
s
′
)
+
γ
Q
^
π
(
s
′
,
a
′
)
G\left(\tau_{s_0=s, a_0=a, s_1=s^{\prime}, a_1=a^{\prime}}\right) \approx r\left(s, a, s^{\prime}\right)+\gamma \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right)
G(τs0=s,a0=a,s1=s′,a1=a′)≈r(s,a,s′)+γQ^π(s′,a′)
上式表明。不再依赖完整轨迹,而是仅利用一步的奖励
r
(
s
,
a
,
s
′
)
r\left(s, a, s^{\prime}\right)
r(s,a,s′) 以及下一步状态-动作的估计 Q 值
Q
^
π
(
s
′
,
a
′
)
\hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right)
Q^π(s′,a′) 近似计算
G
G
G 。并带入上述红色式子得到:
Q
^
π
(
s
,
a
)
←
Q
^
π
(
s
,
a
)
+
α
(
r
(
s
,
a
,
s
′
)
+
γ
Q
^
π
(
s
′
,
a
′
)
−
Q
^
π
(
s
,
a
)
)
\hat{Q}^\pi(s, a) \leftarrow \hat{Q}^\pi(s, a)+\alpha\left(r\left(s, a, s^{\prime}\right)+\gamma \hat{Q}^\pi\left(s^{\prime}, a^{\prime}\right)-\hat{Q}^\pi(s, a)\right)
Q^π(s,a)←Q^π(s,a)+α(r(s,a,s′)+γQ^π(s′,a′)−Q^π(s,a))
因此,更新
Q
^
π
(
s
,
a
)
\hat{Q}^\pi(s, a)
Q^π(s,a) 只需要知道当前状态
s
s
s 和动作
a
a
a ,奖励
r
(
s
,
a
,
s
′
)
r\left(s, a, s^{\prime}\right)
r(s,a,s′) ,下一步的状态
s
′
s^{\prime}
s′ 和动作
a
′
a^{\prime}
a′ .这种策略学习方法称为SARSA 算法,其采样和优化的策略都是
π
ϵ
\pi^\epsilon
πϵ ,因此是一种同策略算法。为了提高计算效率,我们不需要对环境中所有的
s
,
a
s, a
s,a 组合进行穷举,并计算值函数.只需要将当前的探索
(
s
,
a
,
r
,
s
′
,
a
′
)
\left(s, a, r, s^{\prime}, a^{\prime}\right)
(s,a,r,s′,a′) 中
s
′
,
a
′
s^{\prime}, a^{\prime}
s′,a′ 作为下一次估计的起始状态和动作。
1.3.1. Q Q Q-学习
Q
Q
Q-学习是一种异策略的时序差分学习算法(采样策略是
π
ϵ
(
s
)
\pi^\epsilon(s)
πϵ(s) ,而优化目标是策略
π
\pi
π)。(采样策略与改进策略相同,都是
π
ϵ
(
s
)
\pi^\epsilon(s)
πϵ(s)被称为同策略算法)
在
Q
Q
Q-学习中,Q函数的估计方法为:
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
α
(
r
+
γ
max
a
′
Q
(
s
′
,
a
′
)
−
Q
(
s
,
a
)
)
,
Q(s, a) \leftarrow Q(s, a)+\alpha\left(r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)-Q(s, a)\right),
Q(s,a)←Q(s,a)+α(r+γa′maxQ(s′,a′)−Q(s,a)),
相当于让
Q
(
s
,
a
)
Q(s, a)
Q(s,a) 直接去估计最优状态值函数
Q
∗
(
s
,
a
)
Q^*(s, a)
Q∗(s,a) ,与 SARSA 算法不同, Q 学习算法不通过
π
ϵ
\pi^\epsilon
πϵ 来选下一步的动作
a
′
a^{\prime}
a′ ,而是直接选最优的 Q 函数,因此更新后的 Q 函数是关于策略
π
\pi
π 的,而不是策略
π
ϵ
\pi^\epsilon
πϵ 的。