[机器学习]强化学习

本文档记录了《机器学习》第 16 章强化学习相关内容

任务与奖赏

形式化表示

  • 环境 E=X,A,P,R
  • 状态 xX
  • 动作 aA
  • 状态转移概率 P:X×A×X
  • 奖赏 R:X×A×X

    一些应用中奖赏函数可能仅与状态转移有关: R:X×X

“机器”与“环境”的界限

在环境中状态的转移、奖赏的返回是不受机器控制的,机器只能通过选择要执行的动作来影响环境,也只能通过观察转移后的状态和返回的奖赏来感知环境。

策略(Policy)

  • 确定性策略: π:XA
  • 随机性策略: π:X×A ,有 aπ(x,a)=1

奖赏

  • T 步累计奖赏:?[1TTt=1rt]
  • γ 折扣累计奖赏: ?[+t=0γtrt+1]

K -摇臂赌博机

离散状态空间、离散动作空间

最大化单步奖赏

  • 需要知道每个动作带来的奖赏
  • 执行最大奖赏的动作

获知每个摇臂的期望奖赏

  • 仅探索

    将所有尝试机会平均分配给每个摇臂,以每个摇臂各自的平均吐币概率为奖赏期望的近似估计。

    可以很好地估计每个摇臂的奖赏,但由于探索的存在常常会失去选择最优摇臂的机会。

  • 仅利用

    选取目前最优(平均奖赏最大)的摇臂。很难对摇臂的期望奖赏有一个较好的估计,从而选不到最优摇臂。

ϵ-贪心

基于 ϵ 的概率对探索和利用进行折中

k 个摇臂第 n 次尝试之后平均奖赏:

Q0(k)=0

Qn(k)=1n((n1)×Qn1(k)+vn)

Qn(k)=Qn1(k)+1n(vnQn1(k))

如何确定 ϵ

  • 摇臂奖赏不确定性较大,则选用较大的 ϵ
  • 摇臂奖赏不确定性较小,则选用较小的 ϵ

Softmax

基于当前已知的摇臂平均奖赏对探索和利用进行折中

摇臂概率的分配

基于 Boltzmann 分布

P(k)=eQ(k)τΣKi=1Q(i)τ

有模型学习

假定任务对应的马尔科夫决策过程四元组 E=X,A,P,R 均已知,即机器已对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况,从状态 x 执行动作 a 转移到状态 x 的状态转移概率 Paxx 以及奖赏 Raxx 均已知。

策略评估

  • 状态值函数 V() :指定状态上的累积奖赏

    • T 步累积奖赏

      VπT(x)=?π[1Tt=1Trt|x0=x]

      VπT(x)=aAπ(x,a)xXPaxx(1TRaxx+T1TVπT1(x))

    • γ 折扣积累奖赏

      Vπγ(x)=?π[t=0+γtrt+1|x0=x]

      Vπγ(x)=aAπ(x,a)xXPaxx(Raxx+γVπT1(x))

  • 状态-动作值函数 Q() :指定状态-动作上的累积奖赏

    • T 步累积奖赏

      QπT(x,a)=xXPaxx(1TRaxx+T1TVπT1(x))

    • γ 折扣积累奖赏

      Qπγ(x)=xXPaxx(Raxx+γVπT1(x))

策略改进

一个强化学习可能会有多个最优策略,最优策略对应的的值函数 V 称为最优值函数:

xX:V(x)=Vπ(x)

其中, π=argmaxπxXVπ(x)

最优值函数

  • T 步累积奖赏

    VT(x)=maxaAxXPaxx(1TRaxx+T1TVT1(x))

  • γ 折扣积累奖赏

    Vγ(x)=maxaAxXPaxx(1TRaxx+T1TVγ(x))

最优状态-动作值函数

最优值函数 V(x)=maxaAQπ(x,a)

  • T 步累积奖赏

    QT(x,a)=xXPaxx(1TRaxx+T1TmaxaAQ(x,a))

  • γ 折扣积累奖赏

    Qγ(x)=xXPaxx(Raxx+γmaxaAQ(x,a))

策略迭代与值迭代

策略迭代(采用 sum)

从一个初始策略出发,先进行策略评估,再进行策略改进,不断迭代直到策略收敛。

值迭代(采用 max)

策略迭代每次改进完都要进行评估,较为耗时,可将策略改进视为值函数的改进。

免模型学习

相比有模型学习,实际任务中环境的转移概率、奖赏函数、状态数很难得知,无法依赖环境建模。

蒙特卡洛(Monte-Carlo)强化学习

策略评估替代方法

  • 多次采样,然后取平均累积奖赏作为期望累积奖赏的近似
  • 策略估计由状态值函数 V 改为 状态-动作值函数 Q 的原因:策略是通过 Q 获得的,当模型未知时很难通过 V 得到 Q

同策略

评估与改进的策略相同,采用 ϵ-贪心代替原始确定性策略。

  1. 随机采样 s 条轨迹,每条轨迹长为 T,每个时刻为一个三元组 (xt,at,rt+1) ,最后一个时刻只有状态
  2. 对每个时刻 t[0,T1] 计算当前累积奖赏 R=1TtTi=t+1ri ,利用 R 更新平均奖赏 Q(xt,at)
  3. 更新策略 π(x,a)
    • 1ϵ 的概率取当前平均奖赏最大的动作 π(x,a)=argmaxaQ(x,a)
    • ϵ 的概率随机选取动作

异策略

引入 ϵ -贪心是为了便于策略评估,但最终希望改进的是原始确定性策略。

  1. 随机采样 s 条轨迹,每条轨迹长为 T,每个时刻为一个三元组 (xt,at,rt+1) ,最后一个时刻只有状态
  2. 计算选取每个动作 ai 的概率 pi
    • ai=π(xi):1ϵ+ϵ/|A|
    • aiπ(xi):ϵ/|A|
  3. 对每个时刻 t[0,T1] 计算当前累积奖赏 R=1TtTi=t+1riT1t=t+1?(ai=π(xi))pi ,利用 R 更新平均奖赏 Q(xt,at)
  4. 更新策略 π(x,a) :取当前平均奖赏最大的动作 π(x,a)=argmaxaQ(x,a)

时序差分(Temporal Difference)学习

蒙特卡洛强化学习算法效率较低,并且没有充分利用强化学习任务的 MDP 结构,TD 学习则结合了动态规划与蒙特卡洛方法的思想,将蒙特卡洛批处理式更新状态-动作值函数更改为增量式进行。

对值函数的估计

设基于 t 个采样估计出的值函数 Qπt(x,a)=1tti=1ri,则得到第 t+1 个采样 rt+1 时,有:

Qπt+1(x,a)=Qπt(x,a)+1t+1(rt+1Qπt(x,a))

其中 rt+1Qπt(x,a) 称为 MC 误差。

原始状态-动作值函数

Qπγ(x)=xXPaxx(Raxx+γVπ(x))

Qπγ(x)=xXPaxx(Raxx+γaAπ(x,a)Qπ(x,a))

增量求和

Qπt+1(x,a)=Qπt(x,a)+α(Raxx+γQπt(x,a)Qπt(x,a))

  • x 表示前一次在状态 x 执行动作 a 后转移到的状态
  • a 是策略 π 在状态 x 上选择的动作
  • Qπt(x,a) 是老的估计的回报
  • Qπt(x,a) 是新的回报

同策略 Sarsa

  1. x=x0,a=π(x)
  2. 对每个时刻在环境 E 中执行动作 a,得到奖赏 r 和转移状态 x
  3. 根据当前转移状态 x ϵ -贪心策略获得下一动作 a ,即 a=πϵ(x)
  4. 更新状态-动作值函数: Q(x,a)=Q(x,a)+α(r+γQ(x,a)Q(x,a))
  5. 更新策略: π(x)=argmaxaQ(x,a)
  6. x=x,a=a ,循环 2-5

异策略 Q-Learning

  1. x=x0,a=π(x)
  2. 对每个时刻在环境 E 中执行动作 a,得到奖赏 r 和转移状态 x
  3. 根据当前转移状态 x 和 原始策略获得下一动作 a ,即 a=π(x)
  4. 更新状态-动作值函数: Q(x,a)=Q(x,a)+α(r+γQ(x,a)Q(x,a))
  5. 更新策略: π(x)=argmaxaQ(x,a)
  6. x=x,a=a ,循环 2-5

值函数近似

值函数能表示为一个数组,最简单情况下能表达为状态的线性函数:

Vθ(x)=θx

以异策略为例,可以得到如下强化学习算法:

  1. x=x0,a=π(x)=argmaxaθ(x;a)
  2. 对每个时刻在环境 E 中执行动作 a,得到奖赏 r 和转移状态 x
  3. 根据当前转移状态 x ϵ -贪心策略获得下一动作 a ,即 a=πϵ(x)
  4. 更新值函数: θ=θ+α(r+γθ(x;a)θ(x;a))(x;a)
  5. 更新策略: π(x)=argmaxaθ(x;a)
  6. x=x,a=a ,循环 2-5

模仿学习

借鉴专家的决策过程范例,如迭代式强化学习算法:

  1. 从范例轨迹中计算得到状态的加权和均值向量 x¯
  2. 初始化随机策略 π
  3. t 次从策略中采样,通过轨迹计算状态的加权和均值向量 x¯t
  4. 计算最小化向量: w=argmaxwminti=1w(x¯x¯t) ,保证 w1
  5. 根据环境 X,A,R(x)=wx 更新策略 π
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值