《强化学习》-读书笔记-第二章 多臂赌博机

更新中。。。。。。

  • 二. 多臂赌博机
    • 2.1 一个k臂赌博机问题
    • 2.2 动作-价值方法
    • 2.3 10臂测试平台
    • 2.4 增量式实现
      • 跟踪一个非平稳问题
      • 乐观初始值
      • 基于置信度上界(UCB)的动作选择
      • 梯度赌博机算法

二. 多臂赌博机

在只有一个状态的简化情况下讨论强化学习中评估反馈的诸多性质。

2.1 一个k臂赌博机问题

重复的在K个动作中进行选择,每一次选择后都会得到一定数值的收益,目标是在一段时间内最大化总收益的期望(隐含背景:每个动作的平均收益不同)。

K个动作中每一个被选择时有一个期望收益或平均收益,称为该动作的“价值”。

  • 如果知道每个动作的价值,每次选择直接选价值最高的动作;
  • 如果不知道每个动作的价值,就对每个动作的价值进行估计;

时刻 t t t的动作记作 A t A_t At,对应的收益记作 R t R_t Rt,某一动作的价值记作 q ∗ ( a ) q_*(a) q(a),对该价值的估计记作 Q t ( a ) Q_t(a) Qt(a)

每次选择估计价值最高的动作,称为贪心的动作。

  • 每次选择贪心的的动作,称为开发
  • 如果有一定概率选择非贪心动作,称为试探 ϵ \epsilon ϵ-贪心);
  • 试探在短期内收益较低,但长远来看收益更高,因为在发现更好的动作后,可以多次利用它;
  • 开发和试探的平衡是强化学习中的一个问题

2.2 动作-价值方法

利用对动作价值的估计来进行动作的选择,这一类方法统称为“动作-价值方法”

一种对动作价值进行估计的方法是:计算实际收益的平均值

  • 该方法称为采样平均法,这只是估计动作价值的一种方法,不一定是最好的方法

贪心动作选择方法 A t = ˙ a r g m a x a Q t ( a ) A_t\dot=argmax_aQ_t(a) At=˙argmaxaQt(a)

ϵ \epsilon ϵ-贪心动作选择方法:以 ϵ \epsilon ϵ 的概率从所有的动作中等概率随机做出选择

2.3 10臂测试平台

  • 一共有10个动作,k=10
  • 每个动作 q ∗ ( a ) , a = 1 , 2 , . . . , 10 q_*(a), a=1,2,...,10 q(a),a=1,2,...,10 的真实价值服从均值为0,方差为1的标准正态分布
  • 在一次试验中,首先随机确定每个动作的价值,而实际收益 R t R_t Rt 则由均值为该动作价值,方差为的正态分布决定
  • 一次试验进行1000步,在交互中积累经验
  • 试验共进行2000次
    《强化学习》-读书笔记-第二章 多臂赌博机_第1张图片
    比较贪心算法和 ϵ − \epsilon- ϵ 贪心算法的平均收益,如下所示:
    《强化学习》-读书笔记-第二章 多臂赌博机_第2张图片
  • ϵ − \epsilon - ϵ贪心算法平均收益更高,发现最优动作的概率更高
  • 如果收益的噪声更多,或者收益是一个非平稳的过程,则试探是很有必要的

PS: 书中描述 ϵ = 0.01 \epsilon=0.01 ϵ=0.01 ϵ = 0.1 \epsilon=0.1 ϵ=0.1表现更好,我认为该观点是错误的;从图中来看, ϵ = 0.1 \epsilon=0.1 ϵ=0.1明显平均收益更高,更大概率发现最优动作,表现更好。

2.4 增量式实现

假设 Q n Q_n Qn为被选择 n − 1 n-1 n1次后,某个动作的价值的估计,则有:
Q n + 1 = Q n + 1 n [ R n − Q n ] Q_{n+1}=Q_n+\frac{1}{n}[R_n-Q_n] Qn+1=Qn+n1[RnQn]
一般形式为:
新 估 计 值 = 旧 估 计 值 + 步 长 ∗ [ 目 标 − 旧 估 计 值 ] 新估计值 = 旧估计值 + 步长 * [目标 - 旧估计值] =+[]

跟踪一个非平稳问题

取平均值方法对于动作价值平稳的情况适用,但对于收益的概率分布随时间变化的问题不再适用。解决办法是相比于过去很久的收益,给近期收益更高的权重,比如固定步长
Q n + 1 = Q n + α [ R n − Q n ] = ( 1 − α ) n Q 1 + ∑ i = 1 n α ( 1 − α ) n − i R i Q_{n+1}=Q_n+\alpha [R_n-Q_n]\\ =(1-\alpha)^nQ_1+\sum_{i=1}^n\alpha(1-\alpha)^{n-i}R_i Qn+1=Qn+α[RnQn]=(1α)nQ1+i=1nα(1α)niRi
其中, α ∈ ( 0 , 1 ] \alpha\in(0,1] α(0,1]

乐观初始值

初始动作价值提供了一种简单的试探方式,比如将初始动作价值设置较高,实际动作价值较低,就会对每一个动作进行尝试,进行大量试探。但是该方法只对平稳问题有效,不太适合非平稳问题。

基于置信度上界(UCB)的动作选择

A t = arg max ⁡ a [ Q t ( a ) + c ln ⁡ t N t ( a ) ] A_t=\argmax_a[Q_t(a)+c\sqrt{\frac{\ln t}{N_t(a)}}] At=aargmax[Qt(a)+cNt(a)lnt ]
其中, ln ⁡ t \ln t lnt表示 t t t的自然对数, N t ( a ) N_t(a) Nt(a)表示时刻 t t t之前动作 a a a被选择的次数, c c c是大于0的数。
随着时间的流逝,具有较低价值估计的动作或者已经被选择了更多次的动作被选择的频率较低。

  • 处理非平稳问题,需要更复杂的方法;
  • 另一个难题是处理大的状态空间,尤其是函数近似问题;

梯度赌博机算法

针对每个动作学习一个偏好函数 H t ( a ) H_t(a) Ht(a),偏好函数越大,动作就越频繁地被选择。
H t + 1 ( a T ) = H t ( A t ) + α ( R t − R ˉ t ) ( 1 − π t ( A t ) ) , H t + 1 ( a ) = H t ( a ) − α ( R t − R ˉ t ) π t ( a ) , 所 有 a ≠ A t H_{t+1}(a_T)=H_t(A_t)+\alpha(R_t-\bar R_t)(1-\pi_t(A_t)),\\ H_{t+1}(a)=H_t(a)-\alpha(R_t-\bar R_t)\pi_t(a), 所有 a\ne A_t Ht+1(aT)=Ht(At)+α(RtRˉt)(1πt(At)),Ht+1(a)=Ht(a)α(RtRˉt)πt(a),a=At
R ˉ t \bar R_t Rˉt作为比较收益的基准项,如果收益高于它,那么未来选择动作 A t A_t At的概率就会增加,反之概率就会降低,未选择的动作被选择的概率上升。

你可能感兴趣的:(强化学习,算法,强化学习)