强化学习 2.多臂赌博机

1. 问题描述

重复在k个选项或动做中进行选择,每次作出选择后,你都会获得一个收益,收益由你选择的动做决定的平稳几率分布产生【action->P(val)】,你的目标是在某段时间内最大化总收益的指望算法

1.1 基本符号定义

$A_t$:t时刻选择的动做 $R_t:A_t$对应的收益 $q_* (a)$:任一动做a对应的价值,即给定动做a时,收益的指望 $$q_* (a)=E[R_t | A_t=a]$$ $Q_t(a)$:对$q_* (a)$的估计函数

1.2 如何选择动做

1.2.1 贪心

每次选$Q_t(a)$最高的学习

1.2.2 试探

选择非贪心的动做优化

2.动做-价值方法

使用价值的估计来进行动做的选择【估计价值->选择动做】spa

2.1 价值估计

一种天然的方式是经过实际收益的平均值来估计动做的价值,即动做a的总收益/a的次数 $$ Q_t(a)=\frac{\sum_{i=1}^{t-1} R_i* 1_{A_i=a}}{\sum_{i=1}^{t-1} 1_{A_i=a}} $$ 分母为0时,咱们假定$Q_t(a)=0$,当分母趋向于无穷大时,根据大数定律,$Q_t(a)->q_* (a)$。 因为每一次估计都是对相关利益样本的平均,所以咱们称其为采样平均方法,这是一种价值评估的方法,并非最好的方法,咱们暂时经过该评估方法来讨论如何使用评估值来选择动做。io

2.2 动做选择

2.2.1 贪心

$$ A_t=\mathop{\arg\max}_ {a} Q_t(a) $$ 利用当前知识最大化眼前的利益,因为不去试探,可能每次只是选择了次优的动做,所以$Q_t(a)->q_* (a)$可能不成立搜索

2.2.2 近乎贪心

$\epsilon$-贪心,以$\epsilon$的几率不使用贪心规则,而从全部动做中等几率作出选择,这样一来,若是时刻无限长,全部动做都会被无限次采样,从而确保$Q_t(a)->q_* (a)$,即选择最优动做的几率收敛于$1-\epsilon$技巧

2.2.3 如何选择规则

$\epsilon$的选择更依赖于任务,好比赌博机每一个臂收益的方差为0,那么每次选择都是$q_* (a)$,贪心方法在尝试一次后就知道每一个动做的真实价值,这种状况下,贪心方法可能表现最好。方法

非平稳性im

动做的真实价值会随着时间而变化,这种状况下,即便是肯定性的状况下,试探也是须要的

2.2.4 增量学习【优化计算】

以高效的方式计算样本均值进行估计 $$ Q_{n+1}=\frac{Q_n*(n-1)+R_n}{n}=Q_n+\frac{R_n-Q_n}{n} $$ 新估计值 <- 旧估计值 + 步长 x [ 目标 - 旧估计值 ]

2.3 非平稳问题

给近期的收益赋予一个比过去好久的收益更高的权值是一种合理的处理方式,最流行的一种方法是使用固定步长即$\frac{1}{n}->\alpha\in(0,1]$,这个方法也被称为指数近因加权平均 $$ Q_{n+1}=Q_n+\alpha (R_n-Q_n)=\alpha R_n+(1-\alpha)Q_n=...=(1-\alpha)^nQ_1+\sum_{i=1}^n\alpha(1-\alpha)^{n-i}R_i $$ 有时候随时刻一步步改变步长参数,即设$\alpha_n(a)$为处理第n次选择动做a后收益的步长参数。当$\alpha_n(a)=\frac{1}{n}$将会获得采样平均法 可见,估计是受到初值$Q_1$ 影响的,而$Q_1$ 只能由咱们的经验设定,所以实际上估计是有偏的(可是渐进无偏)。合理选择初值,有助于算法找到更好的解。对于采样均值(sample-average)方法,这种误差会随着每一个动做被选择而消失。对于常数步长方法来讲,这种误差则消失得慢不少。

2.3.0 无偏恒定步长技巧【练习2.7】

用以下步长处理某个特定动做的第n个收益 $$ \beta_n=\frac{\alpha}{\bar{o_n}},\bar{o_n}=\bar{o_{n-1}}+\alpha(1-\bar{o_{n-1}}) $$ 证实:

$$ \begin{aligned} Q_{n+1} =& Q_n+\beta_n(R_n-Q_n)\ &=\beta_nR_n+(1-\beta_n)Q_n\ &=\beta_nR_n+(1-\beta_n)\beta_{n-1}R_{n-1}+(1-\beta_n)(1-\beta_{n-1})Q_{n-1}\ &=...\ &=\sum_{i=1}^n (\beta_iR_i \prod_{j=i+1}^{n}(1-\beta_j))+\prod_{i=1}^{n}(1-\beta_i)Q_1\ \beta_1&=\frac{\alpha}{\bar{o_1}}=\frac{\alpha}{0+\alpha}=1\ \Rightarrow\ Q_{n+1} =& \sum_{i=1}^n (\beta_iR_i \prod_{j=i+1}^{n}(1-\beta_j))\ \end{aligned} $$

2.4 乐观初始化

初始化时对估计价值进行乐观的选择,这样会让学习器开始的时候对获得的收益感到失望,即下次会选择另外一个动做进行修正,这样,全部动做在估计值收敛前都被尝试好几回,即便按照贪心法选择动做,也相似于进行了大量的试探。 这个方法不适用与非平稳问题,由于它试探的驱动力是暂时的,开始时刻只出现一次。

2.5 基于置信度上界的动做选择【UCB算法】

非贪心动做中,根据他们的潜力来选择可能事实上最优的动做,这须要考虑他们的估计有多接近最大值,以及这些估计的不肯定性。 一个有效的方式按以下公式选择动做 $$ A_t=\mathop{\arg\max}_ {a} [Q_t(a)+c\sqrt{\frac{In\ t}{N_t(a)}} $$ $N_t(a)$是t时刻前a被选择的次数,显然若是没被选择过,则认为是知足最大化条件的动做。c是大于0的一个数,用于控制试探的程度

2.5.1 缺点

和$\epsilon-$贪心相比,更难推广到其余研究的更通常的问题中,一个困难是处理非平稳问题时,须要更复杂的方法,另外一个困难是要处理大的状态空间,即更复杂的问题时,目前尚未已知使用的方法利用UCB动做选择的思想

2.6 梯度赌博机算法【另外一种评估动做价值的算法】

使用估计值来选择动做一般是个好方法,但不是惟一可以使用的方法

2.6.1 介绍

针对每一个动做a考虑学习一个数值化的偏好函数$H_t(a)$,偏好函数越大,动做就越频繁的被选择,其概念并非从收益意义上出发的,只有一个动做对另外一个动做的相对偏好才是重要的,即若是咱们队每一个动做偏好函数都加上1000,则对于下列分布肯定的动做几率是没有任何影响的 $$ \pi_t(a)=P(A_t=a)=\frac{e^{H_t(a)}}{\sum_{b=1}^{k} e^{H_t(b)}} $$ 其中,$\pi_t(a)$用来表示动做a在t时刻被选中的几率。

2.6.2 算法描述

初始化:$H_1(a)=0,\forall a$,即每一个动做被选择的几率是相同的 基于随机梯度上升的思想的一种更新方式: 每一个步骤中,在选择动做$A_t$并得到利益$R_t$以后,偏好函数按以下方式更新 $$ \begin{aligned} 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\neq A_t\ \end{aligned} $$ 其中$\alpha$是一个大于0的数,表示步长,$\bar{R_t}$是时刻t内全部收益的平均值,其做为一个基准项,若收益高于它,那么将来选择$A_t$的几率会增长,反之几率会下降。 证实:

$$ \begin{aligned} H_{t+1}(a) &=H_t(a)+\alpha \frac{\partial E[R_t]}{\partial H_t(a)}\ \frac{\partial E[R_t]}{\partial H_t(a)} &=\frac{\partial}{\partial H_t(a)} [\sum_x\pi_t(x)q_* (x)]\ &=\sum_x(q_* (x))\frac{\partial \pi_t(x)}{\partial H_t(a)}\ &=\sum_x(q_* (x)-B_t)\frac{\partial \pi_t(x)}{\partial H_t(a)} ,because \sum_x\pi_t(x)=1\ &=\sum_x \pi_t(x)(q_* (x)-B_t)\frac{\partial \pi_t(x)}{\partial H_t(a)}/\pi_t(x)\ &=E_{A_t\sim \pi_t(x)}[(q_* (x)-B_t)\frac{\partial \pi_t(x)}{\partial H_t(a)}/\pi_t(x)]\ &=E_{A_t\sim \pi_t(x)}[(R_t-\bar{R_t})\frac{\partial \pi_t(x)}{\partial H_t(a)}/\pi_t(x)]\ \frac{\partial \pi_t(x)}{\partial H_t(a)}&=\frac{\partial}{\partial H_t(a)}[\frac{e^{}H_t(x)}{\sum_{y=1}^{k}e^{H_t(y)}}]\ &=\frac{1_{a=x}e^{H_t(x)}\sum_{y=1}^{k}e^{H_t(y)}-e^{H_t(x)}e^{H_t(a)}}{(\sum_{y=1}^{k}e^{H_t(y)})^2}\ &=1_{a=x}\pi_t(x)-\pi_t(x)\pi_t(a)\ &=\pi_t(x)(1_{a=x}-\pi_t(a))\ \frac{\partial E[R_t]}{\partial H_t(a)} &=E_{A_t\sim \pi_t(x)}[(R_t-\bar{R_t})\pi_t(x)(1_{a=x}-\pi_t(a))/\pi_t(x)]\ &=E_{A_t\sim \pi_t(x)}[(R_t-\bar{R_t})(1_{a=x}-\pi_t(a))]\ We\ assum\ &E_{A_t\sim \pi_t(x)}[(R_t-\bar{R_t})(1_{a=x}-\pi_t(a))]=(R_t-\bar{R_t})(1_{a=x}-\pi_t(a))\ H_{t+1}(a) &=H_t(a)+\alpha(R_t-\bar{R_t})(1_{a=x}-\pi_t(a))\ \end{aligned} $$

2.7 关联搜索【上下文相关的赌博机】

既采用试错学习去搜索最有动做,又将这些动做与他们表现最优时的情境关联起来。

一系列不一样的k臂赌博机,每一步先随机选择其中的一个。所以须要学习一些任务相关的策略,即把每一个任务和该任务下的最有动做关联起来。好比,若是选择的赌博机是绿色的,那么选择2号臂,若是是红色的,选1号臂。

关联搜索处于k臂赌博机问题和完整强化学习问题之间 与赌博机的类似点:每一个动做只影响吉时利益 与完整强化学习类似点:须要学习一种策略

若是容许动做能够影响下一时刻的情境和收益,那么就是完整的强化学习问题了。

相关文章
相关标签/搜索