Skip to Content

5-强化学习

2019-09-10·Artificial Intelligence

强化学习

  • 交互学习:通过交互学习一个目标,Trial and Error
    • 状态/奖励的分布式是策略依赖的
  • model-base: VV 根据已知数据计算,如动态规划
  • model-free: 取样试验得到
  • 在线学习:如 Sarsa
  • 离线学习:如 Q Learning

Markov Decision Process

  • SS: 状态集合
  • AA: 动作集合
  • R:S×A→RR:S\times A\rightarrow\mathbb{R}: 即时奖励函数
  • δ:S×A×S→R\delta:S\times A\times S\rightarrow \mathbb{R}: 状态转移概率
  • 轨迹:经验/情节(episode)
  • 策略
    • π:S→A\pi:S\rightarrow A
    • π:S×A→R\pi:S\times A\rightarrow\mathbb{R}
  • 单状态学习,π∗(s)=arg min⁡πR(s,π(s))\pi^*(s)=\argmin_\pi R(s,\pi(s))
  • 多状态学习:π∗(s)=arg min⁡πVπ(s)\pi^*(s)=\argmin_\pi V^\pi(s)
    • 有限状态:Rt=∑1≤i≤NR(si,ai)R_t=\sum_{1\leq i\leq N}R(s_i,a_i)
    • 无限状态
      • 有折扣:∑i=0∞γiR(si,ai)\sum_{i=0}^\infty\gamma^iR(s_i,a_i)
      • 无折扣:lim⁡N→∞1N∑i=0N−1R(si,ai)\lim_{N\rightarrow\infty}\frac{1}{N}\sum_{i=0}^{N-1}R(s_i,a_i)
  • 值函数
    • Vπ(s)=Eπ[Rt∣st=s]V^\pi(s)=\mathbb{E}_\pi[R_t|s_t=s]
    • Qπ(s,a)=Eπ[Rt∣st=s,at=a]Q^\pi(s,a)=\mathbb{E}_\pi[R_t|s_t=s,a_t=a]
  • π\pi 为最优策略   ⟺  ∀s,V∗(s)=Vπ∗(s)=max⁡πVπ(s)=max⁡aQπ(s,a)\iff\forall s,V^*(s)=V^{\pi^*}(s)=\max_\pi V^{\pi}(s)=\max_a Q^{\pi}(s,a)
  • Bellman 等式:Vπ(s)=Eπ[Rt+γVπ(st+1)∣st=s]V^{\pi}(s)=\mathbb{E}_\pi[R_t+\gamma V^\pi(s_{t+1})|s_t=s]
    • Vπ(s)=∑a∈Aπ(a∣s)[R(s,a)+γ∑s′δ(s,π(s),s′)Vπ(s′)]V^\pi(s)=\sum_{a\in A}\pi(a|s)[R(s,a)+\gamma\sum_{s'}\delta(s,\pi(s),s')V^{\pi}(s')]
    • Qπ(s,a)=R(s,a)+γ∑s′δ(s,a,s′)Vπ(s′)Q^\pi(s,a)=R(s,a)+\gamma\sum_{s'}\delta(s,a,s')V^\pi(s')

动态规划方法

  • 策略评估(Policy Evaluation):MDP 已知,给定一个策略 π\pi,评估返回值
    • 有限状态:求解方程组
    • 策略迭代:初始 Vπ(s)V^\pi(s) 后根据 Bellman 等式更新迭代
  • 最优控制(Optiomal Control):MDP 已知,寻找一个最优策略 π∗\pi^*
    • 策略迭代算法
      • 值迭代:Vi+1(s)←max⁡aQπ(s,a)V^{i+1}(s)\leftarrow\max_a Q^\pi(s,a)
      • 策略迭代
        贪心策略:π(s)=arg⁡max⁡aQπ(s,a)\pi(s)=\arg\max_a Q^{\pi}(s,a)
        ϵ\epsilon-贪心策略:以 ϵ\epsilon 概率选择其它

Morte Carlo Method

  • 使用条件
    • 环境可模拟
    • 有限步骤
  • 策略评估迭代
    • 探索:选择一个状态 ss
    • 模拟:使用 π\pi 进行若干次模拟,从当前状态到结束,产生一段轨迹
    • 抽样:获得轨迹上的 R(s,a)R(s,a), 获得集合 TT
    • 估值: Learned value Rt=avg(T)R_t=\text{avg}(T)
  • 策略优化:V(st)←V(st)+α(Rt−V(st))V(s_t)\leftarrow V(s_t)+\alpha(R_t-V(s_t)), 优化 π(s)\pi(s)
    • Exploring Starts 假设:有探索起点的环境
    • first-visit:只计算一个状态第一次的值
    • every-visit: 计算每次访问的值

时差方法 (Temporal Difference)

  • 单步时差方法:V(st)←V(st)+α(rt+γV(st+1)−V(st))V(s_t)\leftarrow V(s_t)+\alpha(r_t+\gamma V(s_{t+1})-V(s_t))
    • TD(0) 误差:Rt(2)=rt+γV(st+1)R_t^{(2)}=r_t+\gamma V(s_{t+1})
  • NN 步时差方法: Rt(n)=∑i=0n−1γirt+i+γnV(st+n)R_t^{(n)}=\sum_{i=0}^{n-1}\gamma^ir_{t+i}+\gamma^nV(s_{t+n})
  • NN 步回退方法:Rt=12Rt(2)+12Rt(4)R_t=\frac{1}{2}R_t^{(2)}+\frac{1}{2}R_t^{(4)}
  • λ\lambda 返回方法:Rt(λ)=(1−λ)∑n=1∞λt−1Rt(n)R^{(\lambda)}_t=(1-\lambda)\sum_{n=1}^\infty\lambda^{t-1}R_t^{(n)}
  • 蒙特卡洛的方法可看做是最大步数的时序差分学习

Sarsa Algorithm

  • Q(st,at)←Q(st,at)+α[Rt+1+γQ(st+1,at+1)−Q(st,at)]Q(s_t,a_t)\leftarrow Q(s_t,a_t)+\alpha[R_{t+1}+\gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t)]
    • choose ata_t: ϵ\epsilon-Greedy
    • choose at+1a_{t+1}: ϵ\epsilon-Greedy
  • on-policy: 评估和优化的策略和模拟的策略是同一个

Q Algorithm

  • Q(st,at)←Q(st,at)+α[Rt+1+γmax⁡aQ(st+1,a)−Q(st,at)]Q(s_t,a_t)\leftarrow Q(s_t,a_t)+\alpha[R_{t+1}+\gamma \max_aQ(s_{t+1},a)-Q(s_t,a_t)]
    • choose ata_t: ϵ\epsilon-Greedy
    • choose at+1a_{t+1}: Greedy
  • off-policy: 评估和优化的策略和模拟的策略是不同的两个
  • 储存 QQ 值:ss-aa 矩阵
  • 维度灾难
    • Atari Game: 210*150 像素,每个像素 256,可能状态有 256210×160256^{210\times 160}

Deep Q Network

  • 价值函数近似:Q(s,a)=f(s,a)Q(s,a)=f(s,a)
    • Q(s,a)≈f(s,a,w)Q(s,a)\approx f(s,a,w)
    • Q(s)=[Q(s,a1),Q(s,a2),⋯ ]≈f(s,w)Q(s)=[Q(s,a_1),Q(s,a_2),\cdots]\approx f(s,w)
  • Q 网络训练目标损失:L(w)=E[(r+γmax⁡a′Q(s′,a′,w)−Q(s,a,w))2]L(w)=\mathbb{E}[(r+\gamma\max_{a'}Q(s',a',w)-Q(s,a,w))^2]
    • 以 RtR_t 为目标值

学习分类系统(LCS)

利用遗传算法实现强化学习

  • 历史发展
    • 1971 Holland 首次提出分类系统
    • 1978 Holland 正式提出 Learning Classifer System
    • 1988 Holland 定义 LCS 标准框架,过于复杂
    • 1994 Wilson ZCS
    • 1999 Wilson XCS
  • Rule Representation:Use ternary alphabet {0,1,♯}\{0,1,\sharp\} to represent rule conditions
  • Credit assignment
  • Rule discovery