强化学习(Reinforcement Learning)

强化学习的本质可以说为是对贝尔曼方程( Bellman equation )求最优近似解,强化学习的任务通常称为马尔可夫决策过程( Markov Decision Process, MDP )。
应用场景就不说了…


MDP( Markov Decision Process )

  • 马尔可夫决策过程 M=(S, A, ,Psa, γ, R) :

    • S :目标的状态集合
    • A :目标可以做的所有动作集合
      s0a0s1a1s2a3
    • Psa :状态转移概率,某动作 aA 作用于当前状态 sS 上,则其转移到其他状态 sS 的概率
    • γ[0,1) :Discount factor,博弈论中称为’贴现因子’,可通俗的解释为10年后的一块钱在今天值多少。
    • R : SA 奖赏( Reward )函数(若 (s, a) 对应的下一个状态 s 是唯一的则 R: s )。目标以后的状态是我们想要的,就给一个比较大的奖赏值,反之就会得到较小的奖赏值。

    至此MDP可表示为:

    R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+γ3R(s3,a3)+

MDP求解

定义:

  • 策略 π: sa ,即在当前状态 s 下如何选择动作a
  • 状态价值函数:
    vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+γ3R(s3)+|S0=s]=aAp(a|s)(Ras+γsSpπ(s)ss(s)vπ(s))

    其中,
    pπ(s)ss(s)=psπ(s)(s)=p(St+1=s|St=s,π(s)=a)

    得贝尔曼方程( Bellman equation ):
    Vπ(s)=R(s)+γsSPsπ(s)(s)Vπ(s)
  • 同理得动作价值函数:
    qπ(s,a)=E[R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+γ3R(s3,a3)+|S0=s,A0=a]

强化学习(Reinforcement Learning)_第1张图片

(注:当前状态 s (白色圆)可能会有多个动作a(蓝色圆)供选择,动作 a 所对应的下一个状态s可能不唯一)

求最优

求最优即寻找可以得到最大奖赏值的解,也就是最大化价值函数:

v(s)=maxπvπ(s)

q(s,a)=maxπqπ(s,a)

强化学习(Reinforcement Learning)_第2张图片

图:状态价值函数与动作价值函数之间的关系

即求贝尔曼最优方程:

V(s)=maxaq(s,a)=maxa(RaS+γsSPsπ(s)V(s))

q(s,a)=Ras+γsSPassv(s)=Ras+γsSPsπ(s)maxaq(s,a)

π(s)=argmaxaAsSPsa(S)V(s)

而想通过贝尔曼方程求最优策略的话至少需要满足:
- 模型为动态模型
- 模型满足Markov特性(即当前状态由上一状态及动作得到的)
- 另外需要大量计算空间及时间

求解贝尔曼方程近似最优解的方法如下:
- Value Iteration
- Policy Iteration
- 时序差分(Q-learning、Sarsa)
- ……

本文只讲 Value Iteration,Policy Iteration

Value Iteration

  1. 初始化 V(s)=0
  2. 重复至V(s)收敛 {
    更新 V(s)=R(s)+maxaAγsPsa(s)V(s).
    }

有两种更新方式:

  • synchronous 同步更新:计算每个状态s的V(s)新值,立即更新
  • asynchronous 异步更新:遍历所有状态s,按照某种顺序每次更新一个值

Policy Iteration

  1. 随机初始化策略 π
  2. 重复至收敛{
    V:=Vπ
    对于每个状态 s , π(s)=argmaxaAsPsa(s)V(s).
    }

内部循环重复计算当前策略的值函数,然后使用当前值函数更新策略。最终 V 会收敛到V π 收敛到 π

你可能感兴趣的:(强化学习,强化学习,机器学习)