强化学习极简笔记
关键字:
强化学习是基于动态规划的。
模型
-
函数模型
(S,A,f,π,r,γ)
- S:状态集合
- A: 动作集合
- f:S×A→S状态转移函数
- π: 策略
- r:S×A→R动作奖励
- γ: 折扣因子
当f,π,r为转移概率时,是非确定模型
-
图论模型(没有动作集)
(G=(V,E),f:V→V,r:E→R)
- V: 顶点集合,表示状态
- E: 边集合,表示动作;一对状态(s,s′)表征一个动作,从s迁移到s′
- 策略是边组成的路径
迁移
f(a,s)=s′:S×A→S
策略
策略: 动作序列 p=a1a2⋯an:W(A) 或者函数
π(s)=a:S→A,v(s,a1a2⋯)=r(s,a1)+r(s1,a2)+⋯,s1=f(a,s),⋯
最优策略 v(s):=maxpv(s,p)
状态值函数递归公式 v
v(s)=amax{r(s,a)+γv(s′)},s→as′π(s):=argamax{r(s,a)+γv(s′)}
或者(策略递归公式)
p(s)=argamax{r(s,a)+v(s′)}∗p(s′)
其中∗代表动作序列的衔接。
Bellman 原理
若 v(s,pq)=maxuv(s,u), 则 v(s,p)=maxuv(s,u,s′),v(s,q)=maxuv(s′,u)
值函数
-
状态-行为值函数
q(s,a):=r(s,a)+γv(s)
-
状态值函数
v(s):=amaxq(s,a)
Bellman 方程
设状态迁移s→a/rs′→a′s′′:
{v(s)=r(s,a)+γv(s)q(s,a)=r(s,a)+γq(s′,a′)
Bellman 方程:v,q是(7)的不动点。
图论模型中
{v(s)=r(s,s′)+γv(s)q(s,s′)=r(s,s′)+γq(s′,s′′)
算法
function v(s)
v=-M
for a in actions(s)
s' <- f(s, a)
w q <- v(s') # recursion
r <- reword(s,a)
v0 = w + r
if v0>v
v = v0
p=aq
return v, p
Markov 决策 — 不确定动态规划
已知动作下,状态转移不确定,奖励不确定。
模型
(Pss′a,π,Rt,S,A), 折扣因子: $\gamma $
-
转移函数f:S×A→P(S)
每个动作a对应一个S→S转移概率f(a)=Pa,离散转态下正好是矩阵Pss′a.
-
奖励函数r:S×A→P(R)
f,r: 转移概率
迁移
Pss′a=p(St+1=s′∣At=a,St=s)
策略
π(a∣s)=p(At=a∣St=s)
奖励
Gt:=k∑γkRt+k+1
状态值函数
vπ(s):=E(Gt∣St=s)=E(k∑γkRt+k+1∣St=s)=a∈A∑π(a∣s)(Rsa+γs′∑Pss′avπ(s′))
状态行为值函数
qπ(s,a):=E(Gt∣St=s,At=a)=E(k∑γkRt+k+1∣St=s,At=a)
Bellman 方程
⎩⎪⎪⎪⎨⎪⎪⎪⎧v(s)=E(Rt+1+γv(St+1)∣St=s)v(St)=E(Rt+1+γv(St+1)∣St)qπ(s,a)=E(Rt+1+γq(St+1,At+1)∣St=s,At=a)qπ(St,At)=E(Rt+1+γq(St+1,At+1)∣St,At)
基模型
策略迭代算法
算法迭代保证值函数递增:π↦π′,qπ≤qπ′
- 策略评估算法
π↦v (见状态值函数)
- 策略提改善算法.
v↦π’
强化学习
强化学习是一种模型未知的动态规划。
老鼠如果事先拿到地图,那么通过动态规划,就可以计算出那条路线是最好的,回报(奖励)最大的。但是如果事先没有地图,不知道地形,老鼠只能试探几次路线,记录每次回报,绘制出心理地图。
模型:
状态(位置):{1,2,3,4}
动作:左、右、上、下
转移:略
回报:r(1,右)=-1,等
基于值函数 (模型未知)
MC: v(s)∼N1∑iGi(s)
算法:
-
初始化: S,A,Q,π,R (ϵ-软 wrt Q)
-
迭代:
- 采样: 用 π 产生 s,a 序列
- 评估:Gi(s), 则 Q(s,a),v(s)
- 改善: π′
同/异-策略
覆盖条件:行动策略μ覆盖目标策略 $ \pi$
思想: 如果模型未知,即Q(s,a)=?,v(s)=?, 那么利用MC采样估计。💭
时间差分TD
TD-公式
V(St)=V(St)+αδt,δt=Rt+1+γV(St+1)−V(St)Q(St,At)=Q(St,At)+αδt,δt=Rt+1+γV(St+1)−Q(St,at)
Sarsa(λ)
同策略
QLearning
异策略,Q表
算法
-
初始化: Q,s
-
循环:(更新 Q)
直到 Q 收敛
-
输出最终策略 π
例
α=0.9,γ=0.9
老鼠找迷宫Q表迭代
位置/动作 |
1/右 |
1/下 |
2/左 |
2/下 |
… |
位置 |
---|
0 |
0 |
0 |
0 |
0 |
… |
1 |
1右 |
-0.9 |
0 |
0 |
0 |
… |
2 |
2下 |
-0.9 |
0 |
0 |
1.8 |
… |
4(第一回终止) |
… |
|
|
|
|
|
|
值函数逼近
Sarsa 算法
q^:S×A×Rn→R
-
对每个周期
-
初始化s,a
-
循环
-
选择 a’ 估计 q^(s′,a′,θ)
-
θ=θ+α(r+γq^(s′,a′,θ)−q^(s,a,θ))∇q^
-
s=s′,a=a′