打算看英文版Sutton的《强化学习》,从第二章开始记录下对每一章的理解,对每一块的内容大致介绍,留个纪念。
这一章围绕着多臂赌博机问题,介绍了基本的强化学习算法(value based),并探讨了利用(exploit)和探索(explore)问题。
2.1 A k-armed Bandit Problem
有k个赌博机,每次的操作就是拉下其中一个控制杆,随后你会得到一个奖励。通过多次的选择,你要使得总收益最大化。其中每个赌博机的收益服从一个分布。k个动作的每一个被选择时都有一个期望奖励,称为这个动作的价值。在时刻的动作为,对应的奖励为。任一动作对应的价值,记为。如果知道每个动作的价值,那么每次选择价值最高的动作就行。假设不知道动作的价值,我们就要进行估计。我们对动作在时刻的价值的估计记为,我们期望它接近。
2.2 Action-value Methods
这是一个估计动作价值的方法,用这些动作价值的估计来选择。一种简单的方法就是通过计算实际收益的平均值来作为动作价值的估计。
其中,当为真时值为1,反之为0。当分母为0时,我们将定义为一个默认值,比如0。
最简单的的方案是选择具有最高估计值的动作,及贪心(greedy)。如果有多个贪心动作,则选择任意一个,即,其中,是使得最大的动。这种方案总是利用当前的知识最大化眼前的收益,只有利用(exploit)没有探索(explore)。一个简单的代替是,以的概率从所有动作中随机选一个动作,的概率用贪心策略,这样每一个动作就有可能被采样到。
2.3 The 10-armed Testbed
评估算法和的性能,这部分比较好理解。
2.4 Incremental Implementation
我们用观测到的奖励的样本均值来估计action-value,这里介绍了一种高效的方法来计算样本均值。表示某一动作第次被选中获得的奖励,表示该动作被选择n-1次后它的估计的action-value。
可以换一种方式来计算这个式子
一个使用以增量式计算的样本均值和动作选择的多臂赌博机算法如下
2.5 Tracking a Nonstationary Problem
前面讨论的问题前提是每个赌博机的奖励概率分布是固定的(stationary),如果奖励概率是不固定的(随着时间变化,unstationary),那么取平均的方法就不适用。这时比较流行的方法是去固定步长,即,其中
2.6 Optimistic Initial Values
目前我们讨论的方法都在一定程度上依赖于初始动作的值,这些方法是有偏的(biased)。但实际中,这通常并不是一个问题。
初始动作的价值同时也提供了一种简单的探索(explore)方式,如果初始值设置的比较大,那么刚开始算法会倾向于探索每一个动作,会进行大量的探索(explore),我们把这种初始值的设定称为乐观初始价值。它适用于固定奖励概率分布问题,而不适用与非固定的情况,因为它探索的动因是暂时的。
2.7 Upper-Confidence-Bound Action Selection
这里提出了一种根据动作的潜力来选择可能事实上是最优的动作,这要考虑它们的估计有多接近最大值,以及这些估计的不确定性。按如下公式选择动作
表示在时刻之前动作被选中的次数,如果他为0,那么被认为是最好的动作。这方法叫置信度上限(UCB,Upper-Confidence-Bound)),平方根项是对动作值估计的不确定性或方差的度量。最大值的大小是动作的可能真实值的上限,是置信水平。下图是UCB算法与的比较
2.8 Gradient Bandit Algorithms
本节中,针对每个动作,考虑一个数值化的偏好函数。偏好函数越大,动作就越频繁地被选择。
和表示在时刻选择动作的概率。
基于梯度上升,提出一中自然的学习方法。每个步骤中,在选择动作并获得后,偏好函数会更新
其中,是一个大于0的树,表示步长,是在时刻内所有收益的平均值。作为一个基准,收益高于它,那么未来选择动作的概率会增加,反之减少。基准项的作用可以用下图来表示
实际上梯度赌博机算法可以理解为梯度上升的随机近似,证明过程如下
至此证明了该算法的期望更新与期望奖励的梯度是相等的,因此该算法是随机梯度上升算法的一种。这保证了算法的收敛性。
对于基准项,只要要求它与所选的动作无关即可。可以为一个固定的数0或1000,该算法仍是梯度上升算法的特例。基准项不影响算法的更新,但它会影响更新值的方查,从而影响收敛速度。采用奖励的平均可能不是最好的,但是它简单,在实践中很有效。
2.9 Associative Search (Contextual Bandits)
以上所考虑的问题都是非关联的,没有必要将不同的动作与不同的情境联系起来。在一般的强化学习问题中,往往有不止一种情境,他们的目标是学习一种策略:一个从特定情境到最优动作的映射。
关于这个问题不是本章的重点,就不介绍了。
2.10 Summary
在这一章介绍了几种平衡exploit和explore的方法,比较了几种算法的性能,并在最后提及了更复杂的平衡exploit和explore的方法(贝叶斯方法)。