我的强化学习极简笔记

余生长醉 提交于 2020-02-02 03:27:31

强化学习极简笔记


关键字:

  • 模型

    • 迁移

    • 奖励

    • 策略

  • 值函数

    • 状态值函数
    • 状态-动作值函数
  • Bellman 方程

  • TD 算法

    • Sara算法

    • Q学习

    • 同/异策略

动态规划

强化学习是基于动态规划的。

模型

  • 函数模型

    (S,A,f,π,r,γ)(S, A,f, \pi, r, \gamma)

    • SS:状态集合
    • AA: 动作集合
    • f:S×ASf:S\times A\to S状态转移函数
    • π\pi: 策略
    • r:S×ARr:S\times A\to\R动作奖励
    • γ\gamma: 折扣因子

    f,π,rf,\pi,r为转移概率时,是非确定模型

  • 图论模型(没有动作集)

    (G=(V,E),f:VV,r:ER)(G=(V,E),f:V\to V, r:E\to\mathbb{R})

    • VV: 顶点集合,表示状态
    • EE: 边集合,表示动作;一对状态(s,s)(s,s')表征一个动作,从ss迁移到ss'
    • 策略是边组成的路径

迁移

f(a,s)=s:S×AS f(a,s)=s':S\times A\to S

策略

策略: 动作序列 p=a1a2an:W(A)p=a_1a_2\cdots a_n:W(A) 或者函数
π(s)=a:SA,v(s,a1a2)=r(s,a1)+r(s1,a2)+,s1=f(a,s), \pi(s)=a:S\to A,\\ v(s,a_1a_2\cdots)=r(s,a_1)+r(s_1,a_2)+\cdots, s_1=f(a,s),\cdots
最优策略 v(s):=maxpv(s,p)v(s):=\max_pv(s,p)

状态值函数递归公式 vv
v(s)=maxa{r(s,a)+γv(s)},sasπ(s):=argmaxa{r(s,a)+γv(s)} v(s)=\max_a\{r(s,a)+\gamma v(s')\}, s\overset{a}{\to} s'\\ \pi(s):=\arg\max_a\{r(s,a)+\gamma v(s')\}
或者(策略递归公式)
p(s)=argmaxa{r(s,a)+v(s)}p(s) p(s)=\arg\max_a\{r(s,a)+v(s')\}*p(s')
其中*代表动作序列的衔接。

Bellman 原理

v(s,pq)=maxuv(s,u)v(s,pq)=\max_u v(s,u), 则 v(s,p)=maxuv(s,u,s),v(s,q)=maxuv(s,u)v(s,p)=\max_u v(s,u,s'),v(s,q)=\max_u v(s',u)

值函数

  • 状态-行为值函数
    q(s,a):=r(s,a)+γv(s) q(s,a):= r(s,a) + \gamma v(s)

  • 状态值函数
    v(s):=maxaq(s,a) v(s):=\max_a q(s,a)

Bellman 方程

设状态迁移sa/rsass\overset{a/r}\to s'\overset{a'}{\to}s'':
{v(s)=r(s,a)+γv(s)q(s,a)=r(s,a)+γq(s,a) \begin{cases} v(s)=r(s,a)+\gamma v(s)\\ q(s,a)=r(s,a)+\gamma q(s',a') \end{cases}

Bellman 方程:v,qv,q是(7)的不动点。

图论模型
{v(s)=r(s,s)+γv(s)q(s,s)=r(s,s)+γq(s,s) \begin{cases} v(s)=r(s,s')+\gamma v(s)\\ q(s,s')=r(s,s')+\gamma q(s',s'') \end{cases}

算法

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 决策 — 不确定动态规划

已知动作下,状态转移不确定,奖励不确定。

模型

(Pssa,π,Rt,S,A)(P_{ss'}^a, \pi, R_t, S, A), 折扣因子: $\gamma $

  • 转移函数f:S×AP(S)f:S\times A\to P(S)

    每个动作aa对应一个SSS\to S转移概率f(a)=Paf(a)=P^a,离散转态下正好是矩阵PssaP^a_{ss'}.

  • 奖励函数r:S×AP(R)r:S\times A\to P(\R)

f,rf,r: 转移概率

迁移

Pssa=p(St+1=sAt=a,St=s) P_{ss'}^a=p(S_{t+1}=s'|A_t=a,S_t=s)

策略

π(as)=p(At=aSt=s) \pi(a|s)=p(A_t=a|S_t=s)

奖励

Gt:=kγkRt+k+1 G_t:=\sum_k\gamma^kR_{t+k+1}

状态值函数

vπ(s):=E(GtSt=s)=E(kγkRt+k+1St=s)=aAπ(as)(Rsa+γsPssavπ(s)) v_\pi(s):=E(G_t|S_t=s)=E(\sum_k\gamma^kR_{t+k+1}|S_t=s)\\ = \sum_{a\in A}\pi(a|s)(R^a_s+\gamma\sum_{s'}P_{ss'}^av_\pi(s'))

状态行为值函数

qπ(s,a):=E(GtSt=s,At=a)=E(kγkRt+k+1St=s,At=a) q_\pi(s,a):=E(G_{t}|S_t=s,A_t=a)=E(\sum_k\gamma^kR_{t+k+1}|S_t=s,A_t=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) \begin{cases} v(s)=E(R_{t+1}+\gamma v(S_{t+1})|S_t=s)\\ v(S_t)=E(R_{t+1}+\gamma v(S_{t+1})|S_t)\\ q_\pi(s,a)=E(R_{t+1}+\gamma q(S_{t+1},A_{t+1})|S_t=s,A_t=a)\\ q_\pi(S_{t},A_{t})=E(R_{t+1}+\gamma q(S_{t+1},A_{t+1})|S_t, A_t) \end{cases}

基模型

策略迭代算法

算法迭代保证值函数递增:ππ,qπqπ\pi\mapsto \pi', q_{\pi}\leq q_{\pi'}

  1. 策略评估算法

πv\pi\mapsto v (见状态值函数)

  1. 策略提改善算法.

vπv\mapsto \pi’

强化学习

强化学习是一种模型未知的动态规划。

my mouse

老鼠如果事先拿到地图,那么通过动态规划,就可以计算出那条路线是最好的,回报(奖励)最大的。但是如果事先没有地图,不知道地形,老鼠只能试探几次路线,记录每次回报,绘制出心理地图。

模型:

状态(位置):{1,2,3,4}

动作:左、右、上、下

转移:略

回报:r(1,右)=-1,等

基于值函数 (模型未知)

MC: v(s)1NiGi(s)v(s)\sim \frac{1}{N}\sum_i G_i(s)

算法:

  • 初始化: S,A,Q,π,RS, A, Q,\pi, R (ϵ\epsilon-软 wrt QQ)

  • 迭代:

    • 采样: 用 π\pi 产生 s,as,a 序列
    • 评估:Gi(s)G_i(s), 则 Q(s,a),v(s)Q(s,a),v(s)
    • 改善: π\pi'

同/异-策略

覆盖条件:行动策略μ\mu覆盖目标策略 $ \pi$

思想: 如果模型未知,即Q(s,a)=?,v(s)=?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) V(S_t)=V(S_t)+\alpha\delta_t, \delta_t=R_{t+1}+\gamma V(S_{t+1})-V(S_t)\\ Q(S_t, A_t)=Q(S_t,A_t)+\alpha\delta_t, \delta_t=R_{t+1}+\gamma V(S_{t+1})-Q(S_t,a_t)

Sarsa(λ\lambda)

同策略

QLearning

异策略,Q表

算法

  1. 初始化: Q,sQ,s

  2. 循环:(更新 QQ)

    • aA(st)a\in A(s_t)

    • 迭代:

      • ϵ\epsilon-贪婪策略选择 ata_t
      • 计算$Q(s_t,a_t) :=… $
      • 迁移到 st+1s_{t+1}
    • 直到 ss 是终状态

    直到 QQ 收敛

  3. 输出最终策略 π\pi

α=0.9,γ=0.9\alpha=0.9,\gamma=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×RnR\hat{q}:S\times A\times \R^n\to \R

  • 对每个周期

    • 初始化s,as, a

    • 循环

      • 选择 aa, 得到 r,sr, s'

      • 若 s’ 是终状态:

        θ=θ+α(rq^)q^\theta = \theta+\alpha(r-\hat{q})\nabla \hat{q}, 进入下一个周期

    • 选择 a’ 估计 q^(s,a,θ)\hat{q}(s',a',\theta)

    • θ=θ+α(r+γq^(s,a,θ)q^(s,a,θ))q^\theta = \theta+\alpha(r+\gamma \hat{q}(s',a',\theta)-\hat{q}(s,a,\theta))\nabla \hat{q}

    • s=s,a=as=s', a=a'

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!