知识五:强化学习-无模型控制
5.1 介绍
5.1.1 无模型强化学习
- 无模型控制
- 优化一个未知的 MDP(有上下状态关系) 的价值函数
5.1.2 无模型控制的应用
- 一些可以建模为MDP的例子
- 电梯,侧方位停车,船舶操舵,生物反应器,直升机,航空物流
- 机器人足球世界杯,地震,证券投资管理,机器人行走,围棋
- 对于大多数这些问题,会有下列之一的情况:
- MDP 模型是未知的,但可以采样得到经验
- MDP 模型是已知的,但过于复杂,过于繁琐
- 无模型控制可以解决这些问题
- 在轨(On-policy)学习
- 在工作中学
- 从 π \pi π中得到的经验学习策略 π \pi π
- 离轨(Off-policy)学习
- 站在巨人的肩膀上
- 从 μ \mu μ中得到的经验学习策略 π \pi π
5.2 在轨蒙特卡罗控制
5.2.1 策略迭代算法
- 因为是无模型的,不知道状态转移矩阵,所以策略改进的时候,不能用有模型的MDP 状态价值更行公式进行更新了。
- 所以可以直接对动作价值进行更新
π ′ ( s ) = argmax a ∈ A Q ( s , a ) \pi'(s)=\underset{a\in\mathcal{A}}{\operatorname*{argmax}}Q(s,a) π′(s)=a∈AargmaxQ(s,a)
5.2.2 MC的动作价值评估
- 采样策略 π \pi π的第k轮。
- 对于episode中的每个状态和动作。
N ( S t , A t ) ← N ( S t , A t ) + 1 Q ( S t , A t ) ← Q ( S t , A t ) + 1 N ( S t , A t ) ( G t − Q ( S t , A t ) ) \begin{aligned}&N(S_{t},A_{t})\leftarrow N(S_{t},A_{t})+1\\&Q(S_{t},A_{t})\leftarrow Q(S_{t},A_{t})+\frac{1}{N(S_{t},A_{t})}(G_{t}-Q(S_{t},A_{t}))\end{aligned} N(St,At)←N(St,At)+1Q(St,At)←Q(St,At)+N(St,At)1(Gt−Q(St,At))
- 策略评估 蒙特卡罗策略评估, Q = q π \begin{matrix}{\mathrm{Q}}&{=\mathrm{q}_{\pi}}\\\end{matrix} Q=qπ
- 策略优化 贪婪策略优化?是否好呢? π ′ ( s ) = argmax a ∈ A Q ( s , a ) \pi'(s)=\underset{a\in\mathcal{A}}{\operatorname*{argmax}} Q(s,a) π′(s)=a∈AargmaxQ(s,a)
- 很显然,贪婪方法未必是最优解,所以需要对策略进行修改。贪婪策略只有利用没有探索。所以现在加点探索的作用。
5.2.3 ε \mathbf{\varepsilon} ε-Greedy探索
- 确保持续探索的最简单想法
- 所有 m m m个动作都以非零概率进行尝试。
- 以 1 − ε 1-ε 1−ε的概率选择贪婪动作
- 以 ε ε ε的概率随机选择动作
π ( a ∣ s ) = { ϵ / m + 1 − ϵ if a ∗ = argmax ϵ / m otherwise Q ( s , a ) \left.\pi(a|s)=\left\{\begin{array}{ll}\epsilon/m+1-\epsilon&\text{if}a^*=\text{argmax}\\\epsilon/m&\text{otherwise}\end{array}\right.Q(s,a)\right. π(a∣s)={ϵ/m+1−ϵϵ/mifa∗=argmaxotherwiseQ(s,a)
-
大概率的回去利用,但是有一些小概率能探索,这就保证了系统有了探索和利用的能力,不光全是利用。
-
从理论的角度也证明了, ε \mathbf{\varepsilon} ε-Greedy优于Greedy策略。
q π ( s , π ′ ( s ) ) = ∑ a ∈ A π ′ ( a ∣ s ) q π ( s , a ) = ϵ / m ∑ a ∈ A q π ( s , a ) + ( 1 − ϵ ) max a ∈ A q π ( s , a ) ≥ ϵ / m ∑ a ∈ A q π ( s , a ) + ( 1 − ϵ ) ∑ a ∈ A π ( a ∣ s ) − ϵ / m 1 − ϵ q π ( s , a ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) = v π ( s ) \begin{aligned} q_\pi(s,\pi^{\prime}(s))& =\sum_{a\in\mathcal{A}}\pi^{\prime}(a|s)q_{\pi}(s,a) \\ &=\epsilon/m\sum_{a\in\mathcal{A}}q_{\pi}(s,a)+(1-\epsilon)\max_{a\in\mathcal{A}}q_{\pi}(s,a) \\ &\geq\epsilon/m\sum_{a\in\mathcal{A}}q_{\pi}(s,a)+(1-\epsilon)\sum_{a\in\mathcal{A}}\frac{\pi(a|s)-\epsilon/m}{1-\epsilon}q_{\pi}(s,a) \\ &=\sum_{a\in\mathcal{A}}\pi(a|s)q_\pi(s,a)=v_\pi(s) \end{aligned} qπ(s,π′(s))=a∈A∑π′(a∣s)qπ(s,a)=ϵ/ma∈A∑qπ(s,a)+(1−ϵ)a∈Amaxqπ(s,a)≥ϵ/ma∈A∑qπ(s,a)+(1−ϵ)a∈A∑1−ϵπ(a∣s)−ϵ/mqπ(s,a)=a∈A∑π(a∣s)qπ(s,a)=vπ(s)
5.2.4 MC策略迭代
- 策略评估 MC策略评估,$\mathcal{Q}=\mathfrak{q}_\pi $
- 策略优化 ε \mathbf{\varepsilon} ε-Greedy策略优化
- 每轮episode
- 策略评估 MC策略评估,$\mathcal{Q}\approx\mathfrak{q}_\pi $
- 策略优化 ε \mathbf{\varepsilon} ε-Greedy策略优化
- 和上面的区别就是不用每轮 Q Q Q都要达到收敛,也可以得到最优策略。
5.2.5 GILE(greedy in the Limit with Infinite Exploration)
-
满足GILE条件才能一定收敛
-
有限的时间里进行无限可能的探索(GILE)
- 所有的状态-动作(组合)都被探索了无数次
lim k → ∞ N k ( s , a ) = ∞ \lim_{k\to\infty}N_k(s,a)=\infty k→∞limNk(s,a)=∞
- 策略趋同于贪婪的策略
lim k → ∞ π k ( a ∣ s ) = 1 ( a = arg max a ′ ∈ A Q k ( s , a ′ ) ) \lim_{k\to\infty}\pi_k(a|s)=\mathbf{1}(a=\underset{a^{\prime}\in\mathcal{A}}{\operatorname*{\arg\max}}Q_k(s,a^{\prime})) k→∞limπk(a∣s)=1(a=a′∈AargmaxQk(s,a′))
- 例如,如果 ε k = 1 k \varepsilon_{k}=\frac{1}{k} εk=k1( k k k为探索的episode数目),则 ε \mathbf{\varepsilon} ε-Greedy为GLIE
π ( a ∣ s ) = { ϵ / m + 1 − ϵ if a ∗ = a r g m a x a ∈ A Q ( s , a ) ϵ / m otherwise \pi(a|s)=\left\{\begin{array}{ll}\epsilon/m+1-\epsilon&\text{if}a^*=\mathop{\mathrm{argmax}}_{a\in\mathcal{A}}Q(s,a)\\\epsilon/m&\text{otherwise}\end{array}\right. π(a∣s)={ϵ/m+1−ϵϵ/mifa∗=argmaxa∈AQ(s,a)otherwise
5.2.6 GILE蒙特卡罗控制
- 采样策略 π π π的第 k k k轮episode:${S_{1},A_{1},R_{2},\ldots,S_{T}}{\sim}\pi $
- 对于episode中的每个状态 S t S_t St和动作 A t A_t At
N ( S t , A t ) ← N ( S t , A t ) + 1 Q ( S t , A t ) ← Q ( S t , A t ) + 1 N ( S t , A t ) ( G t − Q ( S t , A t ) ) \begin{aligned}&N(S_{t},A_{t})\leftarrow N(S_{t},A_{t})+1\\&Q(S_{t},A_{t})\leftarrow Q(S_{t},A_{t})+\frac{1}{N(S_{t},A_{t})}(G_{t}-Q(S_{t},A_{t}))\end{aligned} N(St,At)←N(St,At)+1Q(St,At)←Q(St,At)+N(St,At)1(Gt−Q(St,At))
- 基于新的动作价值函数优化策略
ϵ ← 1 / k π ← ϵ -greedy ( Q ) \begin{array}{c}\epsilon\leftarrow1/k\\\pi\leftarrow\epsilon\text{-greedy}(Q)\end{array} ϵ←1/kπ←ϵ-greedy(Q)
- 以上就保证了,一定能收敛到最优的。
- MC最大的问题是,游戏必须是回合制的,不能是结束不了的。
5.3 在轨时序差分学习
5.3.1 MC vs TD 控制
- 与蒙特卡罗(MC)相比,时序差分(TD)学习有几个优点。
- 更低的方差
- 在线
- 不完整的序列
- 自然的想法是: 在我们的控制循环中使用TD而不是MC
- 将TD应用于 Q ( S , A ) Q(S,A) Q(S,A)
- 使用 ε \mathbf{\varepsilon} ε-Greedy策略改进
- 更新每一步时间步
5.3.2 TD方法的实现(使用 Sarsa 更新动作价值函数)
Q
(
S
,
A
)
←
Q
(
S
,
A
)
+
α
(
R
+
γ
Q
(
S
′
,
A
′
)
−
Q
(
S
,
A
)
)
Q(S,A)\leftarrow Q(S,A)+\alpha\left(R+\gamma Q(S^{\prime},A^{\prime})-Q(S,A)\right)
Q(S,A)←Q(S,A)+α(R+γQ(S′,A′)−Q(S,A))
- 每个时间步:
- 策略评估 Sarsa,$Q ≈ $ q π q_\pi qπ
- 策略优化 ε ε ε-Greedy 策略优化
5.3.3 Sarsa的收敛性
- Sarsa收敛于最优动作价值函数,
Q
(
s
,
a
)
→
q
(
s
,
a
)
Q(s,a)→q(s,a)
Q(s,a)→q(s,a),满足以下条件:
- 任何时候的策略 π ( a ∣ s ) π(a|s) π(a∣s)符合GLIE特性
- 步长系数 $a_t $满足:
∑ t = 1 ∞ α t = ∞ ∑ t = 1 ∞ α t 2 < ∞ \sum_{t=1}^\infty\alpha_t=\infty\\\sum_{t=1}^\infty\alpha_t^2<\infty t=1∑∞αt=∞t=1∑∞αt2<∞
- 满足上面的条件就能收敛
5.4 离轨学习之Q学习
5.4.1 离轨学习
- 目标策略:用来学习的策略(就是我的)
- 行为策略:生成行动样本的策略(就是玩的那个)
- 评估目标策略 π ( a ∣ s ) \pi(a|s) π(a∣s)以计算 V π ( s ) V_{\pi}(s) Vπ(s)或 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)
- 同时遵循行为策略 μ ( a ∣ s ) \mu(a|s) μ(a∣s)
{ S 1 , A 1 , R 2 , . . . , S T } ∼ μ \{S_1,A_1,R_2,...,S_T\}\sim\mu {S1,A1,R2,...,ST}∼μ
- 通过观察人类或其他智能体来学习
- 重用从旧策略 π 1 , π 2 , … , π t − 1 \pi_{1},\pi_{2},\ldots,\pi_{t-1} π1,π2,…,πt−1来生成的经验
- 在遵循探索性策略的同时学习最优策略
- 例如用 DQN 打游戏,deep mind最早做的这个离轨的这种是比较震撼的。
5.4.2 Q-学习
- 现在考虑基于动作价值 Q ( s , a ) Q(s,a) Q(s,a)的离轨学习
- 使用行为策略 A t A_t At~μ(·| S t S_t St)选择下一个动作,产生 R t + 1 . R_{t+1} . Rt+1.与 S t + 1 . S_{t+1} . St+1.
- 考虑基于替代策略 π π π的后续动作 A ′ ∼ π ( ⋅ ∣ S t ) A^{\prime}\sim\pi(\cdot|S_{t}) A′∼π(⋅∣St)
- 并将 Q ( S t , A t ) Q(S_{t},A_{t}) Q(St,At)更新为替代策略动作的价值
Q ( S t , A t ) ← Q ( S t , A t ) + α ( R t + 1 + γ Q ( S t + 1 , A ′ ) − Q ( S t , A t ) ) Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\left(R_{t+1}+\gamma Q(S_{t+1},A^{\prime})-Q(S_t,A_t)\right) Q(St,At)←Q(St,At)+α(Rt+1+γQ(St+1,A′)−Q(St,At))
5.4.3 使用Q-学习离轨控制
- 现在允许行为和目标策略都得到优化(共享了 Q Q Q函数)
- 目标策略 π \pi π是贪婪的,$w.r.t $ Q ( s , a ) Q(s,a) Q(s,a)
π ( S t + 1 ) = argmax a ′ Q ( S t + 1 , a ′ ) \pi(S_{t+1})=\underset{a^{\prime}}{\operatorname*{argmax}}Q(S_{t+1},a^{\prime}) π(St+1)=a′argmaxQ(St+1,a′)
- 行为策略 μ μ μ是 ε \mathbf{\varepsilon} ε-Greedy的$w.r.t $ Q ( s , a ) Q(s,a) Q(s,a)
- 然后,Q-Learning目标简化为
R t + 1 + γ Q ( S t + 1 , A ′ ) = R t + 1 + γ Q ( S t + 1 , a r g m a x Q ( S t + 1 , a ′ ) ) = R t + 1 + max a ′ γ Q ( S t + 1 , a ′ ) \begin{aligned}&R_{t+1}+\gamma Q(S_{t+1},A^{\prime})\\&=R_{t+1}+\gamma Q(S_{t+1},\mathrm{argmax} Q(S_{t+1},a^{\prime}))\\&=R_{t+1}+\max_{a^{\prime}}\gamma Q(S_{t+1},a^{\prime})\end{aligned} Rt+1+γQ(St+1,A′)=Rt+1+γQ(St+1,argmaxQ(St+1,a′))=Rt+1+a′maxγQ(St+1,a′)
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'}Q(S',a')-Q(S,A)\right) Q(S,A)←Q(S,A)+α(R+γa′maxQ(S′,a′)−Q(S,A))
- Q-Learning 一定会收敛到最优动作价值函数
^{\prime}}\gamma Q(S_{t+1},a^{\prime})\end{aligned}
$$
[外链图片转存中…(img-oIzPm2DF-1728619418577)]
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'}Q(S',a')-Q(S,A)\right)
Q(S,A)←Q(S,A)+α(R+γa′maxQ(S′,a′)−Q(S,A))
- Q-Learning 一定会收敛到最优动作价值函数
- Q-learning 就是利用行为人的环境信息,来找到自己的动作,但是自己动作不给行为人用。(环境是公共的,策略是独有的)