周博磊 第3章 无模型的价值估计和控制
Model Free
- 价值迭代和策略迭代都需已知Dynamic 和 reward [reward 是R(s,a), 是期望奖励]
- Model free 无需知道Dynamic 和 reward
- Trajectory/Epsisode: {s1, a1, r1, s2, a2, r2 …}
Model Free Prediction
在未知MDP的情况下估计价值函数
- Monte Carlo Policy Evaluation
- Temporal Difference learning
Monte Carlo 蒙特卡洛方法
- Return定义:依据策略 π \pi π, G t = R t + 1 + γ R t + 2 + γ R t + 3 + . . . G_{t} = R_{t+1} + \gamma R_{t+2} + \gamma R_{t+3} + ... Gt=Rt+1+γRt+2+γRt+3+...
- v π ( s ) = E τ ∼ π [ G t ∣ s t = s ] v^{\pi}(s) = \mathbb{E}_{\tau\sim\pi}[G_{t}|s_{t}= s] vπ(s)=Eτ∼π[Gt∣st=s] 轨迹 τ \tau τ 由策略 π \pi π产生
- MC:通过大量的采样得到轨迹 τ \tau τ,计算实际的return来估算价值函数
Monte-Carlo 策略估计
主要通过大数定律来计算
- 记录 episode 每个步骤中的s
- N(s) ← \gets ← N(s) + 1
- S(s) ← \gets ← S(s) + G t G_{t} Gt
- v(s) = S(s) / N(s)
Incremental Mean
通过叠加计算的方式很重要,后续的推导经常采用
μ
t
=
1
t
∑
j
=
1
t
x
j
=
1
t
(
x
t
+
∑
j
=
1
t
−
1
x
j
)
=
1
t
(
x
t
+
(
t
−
1
)
μ
t
−
1
)
=
μ
t
−
1
+
1
t
(
x
t
−
μ
t
−
1
)
\mu_{t} = \frac{1}{t}\sum_{j=1}^{t}x_{j} \\ = \frac{{1}}{t}(x_{t} + \sum_{j=1}^{t-1}x_{j}) \\ = \frac{1}{t}(x_{t} + (t-1)\mu_{t-1}) \\ = \mu_{t-1} + \frac{1}{t}(x_{t} - \mu_{t-1})
μt=t1j=1∑txj=t1(xt+j=1∑t−1xj)=t1(xt+(t−1)μt−1)=μt−1+t1(xt−μt−1)
Incremental MC updates
- 获取轨迹( S 1 , A 1 , R 1 . . . , S t S_{1}, A_{1}, R_{1} ... , S_{t} S1,A1,R1...,St)
-
N
(
S
)
N(S)
N(S)
←
\gets
←
N
(
S
t
)
N(S_{t})
N(St) + 1
V ( S t ) ← V ( S t ) + 1 N ( S t ) ( G t − V ( S t ) ) V(S_{t}) \gets V(S_{t}) + \frac{1}{N(S_{t})}(G_{t} - V(S_{t})) V(St)←V(St)+N(St)1(Gt−V(St))
or. 下面试用在non-stationary问题
V ( S t ) ← v ( S t ) + α ( G t − v ( S t ) ) ) V(S_{t}) \gets v(S_{t}) + \alpha(G_{t}-v(S_{t}))) V(St)←v(St)+α(Gt−v(St)))
DP与MC的区别
- MC是无模型的,并不已知MDP
- MC通过大量采样获得。即使已经MDP,如果动作及状态空间巨大,MC优于DP。DP 要考虑所有的动作和子状态。
DP:
MC:
TD
- TD无需知道MDP
- 可以从非完整序列中,通过bootstraping 方式学习
算法:
v ( S t ) ← v ( S t ) + α ( R t + 1 + γ v ( S t + 1 ) − V ( S t ) ) v(S_{t})\gets v(S_{t}) + \alpha(R_{t+1} + \gamma v(S_{t+1}) - V(S_{t})) v(St)←v(St)+α(Rt+1+γv(St+1)−V(St))
δ = R t + 1 + γ v ( S t + 1 ) − V ( S t ) ) \delta = R_{t+1} + \gamma v(S_{t+1}) - V(S_{t})) δ=Rt+1+γv(St+1)−V(St)) TD误差 - 与MC相比
V ( S t ) ← v ( S t ) + α ( G t − v ( S t ) ) ) V(S_{t}) \gets v(S_{t}) + \alpha(G_{t}-v(S_{t}))) V(St)←v(St)+α(Gt−v(St)))
n步TD方法
介于TD与MC之间,考虑了多个step
DP MC 及 TD对比
DP:
MC:
TD:
Monte Carlo with ϵ \epsilon ϵ-Greedy Exploration
为了平衡exploration 和 expliot
- exploration:探索 如何去探索这个环境,通过尝试不同的行为得到一个最佳的策略
- expoitation:利用 不去尝试新的东西,采取已知得到很大奖励的行为
π ( a ∣ s ) = { ϵ / ∣ A ∣ + 1 − ϵ , i f a = a r g m a x a ∈ A q ∗ ( s , a ) ϵ / ∣ A ∣ , o t h e r w i s e \pi(a|s) = \left\{ \begin{array}{lc} \epsilon / |A| + 1 - \epsilon, & if a = arg max_{a \in A}q^{*}(s, a) \\ \epsilon / |A|, & otherwise\\ \end{array} \right. π(a∣s)={ϵ/∣A∣+1−ϵ,ϵ/∣A∣,ifa=argmaxa∈Aq∗(s,a)otherwise
说明:
收敛性证明:基于
ϵ
\epsilon
ϵ 贪心策略的方式可以收敛
算法流程:
MC vs TD Prediction 与 Control
TD 优势:
- 低方差
- 在线更新
- 无需完整的epsidode
Sarsa 算法
step action reward step
n-step Sarsa
考虑了N步
On policy vs Off Policy
on policy
从 π \pi π中采集数据并且学习,即目标策略和行动策略同样都是 π \pi π
off policy
- 目标策略 π \pi π:目标学习要优化的策略
- 行动策略
μ
\mu
μ:采样策略
优势:
- 从exploratory policy学习最优策略
- 可以加入人类或者其他agent采用的样本
- 可以重复利用旧策略采用的数据 【强化学习对旧样本利用重要,样本的搜集非常消耗cpu等资源,能高效的利用旧样本是强化学习的重点之一】
Off Policy Q-learning
目标策略
π
\pi
π:
π
(
S
t
+
1
)
=
arg max
a
′
Q
(
S
t
+
1
,
a
′
)
\pi(S_{t+1}) = \argmax_{a^{'}}Q(S_{t+1}, a^{'})
π(St+1)=argmaxa′Q(St+1,a′)
行为策略
μ
\mu
μ:基于
ϵ
\epsilon
ϵ贪心策略的Q(s, a)
Sarsa vs Q-learning
Sarsa: on-policy
更新目标策略真的实际采样,目标策略和行为策略一致
Q-learning: off-policy
更新目标策略未进行真实采样,Imagine最大的
Q
max
a
(
s
,
a
)
Q_{\max a}(s, a)
Qmaxa(s,a)
DP vs TD
DP: 已知MDP,根据动态转移矩阵考虑后续所有状态,计算的状态的期望
TD:未知MDP,通过采样的方式进行。考虑当前状态及下一个状态
代码
https:
//github.com/cuhkrlcourse/RLexample/tree/master/modelfree