强化学习基础 (1):多臂赌博机
引言
我属于半路出家强化学习,上来就是策略梯度PPO的那种人。最近深感自己的理论基础不够扎实,因此想着全面补充一下强化学习的技术栈。本身我的工作方向也是在LLM应用、搜推系统,这两个方向都是常用到强化学习的,花一点时间打好理论基础总是有益无害的。
这里主要参考的是Richard S. Sutton的 “Reinforcement Learning: An Introduction” 一书,感觉这一本书在传统强化学习方面讲的很不错。如果有任何的错误,请各位大佬指正。
这章主要讲述了多臂赌博机问题。
一、k臂赌博机问题
区分强化学习和其他机器学习方法的一个重要特征在于:强化学习通过监督信号来【评估】当前采取行动的质量,而不是通过给予正确的行动来【指导】模型。这两种反馈是完全不同的:
- 评估性反馈完全取决于当前采取的行动,它表明当前采取的行动【有多好】,但不表明它是不是【最好】的行动
- 指导性反馈与当前的行动完全无关,它表明【最好】的行动是什么。
当强化学习问题的状态空间和动作空间足够小时,我们可以用一张表格表达所有的值函数。在这种情况下,我们通常能够找到问题的最优解,即最优的策略。赌博机问题是最简单的一个强化学习问题,它只有一个状态,因此非常适合作为入门问题来求解。
k臂赌博机的问题设定如下:你需要多次在
在上面的问题设定中,每个动作
当我们已经知道所有动作的价值之后,最优策略就是每次选择具有最高价值的动作。但一般情况下,我们都无法精确求出
这里注意到,我们的价值估计引入了新的变量,即时间
- 如果你在每一个时刻都选择
最大的动作,则你正在【利用】(exploit) 你对当前动作价值的了解。这种策略也称为贪婪策略,因为你总是贪婪地选择当前的最优解。 - 如果你选择了一个次优解,则你正在【探索】(explore) 当前动作的价值,因为你期望当前的次优解可以导向全局的最优解,以此更新你对当前动作价值的判断。
在强化学习算法中,平衡【探索】和【利用】是一个非常重要的问题,我们的k臂赌博机问题可以很好地展示这一点。
二、动作价值方法
估算在时间
由大数定律,当分母趋于无穷大时,
这种方法称为【样本平均】方法,这是最简单的一种估算动作价值的方式,但并不一定是最佳方法。
在得到动作价值估计后,我们可以定义贪婪策略为:在任意时刻选择价值估计最高的动作,即
2.1. -greedy动作选择策略
贪婪策略总是最大程度地利用当前的知识来最大化瞬时收益,并没有尝试采取目前看起来次优的行动来探索。
一种简单的改进方法被称为
2.2. 置信上界动作选择策略
如果有一种方法,能够在非贪婪的动作之中按照其称为最优解的潜力 (potential) 来选择,那么能够更加有效地进行探索。
一种有效的方法是按照下面的策略进行动作选择:
其中,
这个动作选择策略被称为【置信上界策略】(Upper Confidence Bound, UCB),平方根里的项实际上是对估计
- 每次选择动作
时, 变大,不确定性降低 - 每次选择其他动作时,
变大,不确定性增加
2.3. 增量实现
这里我们介绍,在实际情况中如何动态维护和更新
为了简化符号,我们只考虑某一个动作
因此,
公式
2.4. 收敛性条件
公式
Theorem 1 (Robbins-Monro) 考虑递推关系
其中,
若
; ; 在 附近连续且满足某种稳定性条件(如局部Lipschitz性或单调性)
则
在公式
这正是Robbins-Monro定理中的形式。这里的
因此,只要步长满足
:保证迭代不会过早停止,能够持续修正估计偏差。 :控制噪声项 的影响,保证算法稳定收敛(鞅收敛定理)
则迭代能够保证收敛。
三、非稳定奖励问题
在上面的讨论中,我们都假设k臂赌博机问题的奖励只与选择的动作
然而在实际情况中,不同时间下选择同一动作带来的奖励应该是不一样的。在这种情况下,最近的动作带来的收益应该更加重要。一个最常用的方式就是【指数加权平均】,这种方法将更新步长固定为一个常数
注意到权重系数之和
此外由于
四、赌博机问题的梯度算法
在上面介绍的动作价值方法中,我们通过估计每个动作的价值
这种方法并非唯一解法。我们在这里介绍一种基于梯度的方法,主要思想是为每个动作学习一个偏好值
我们可以使用梯度上升法,来求解最优的策略
这里
公式
附录
公式(12)的证明
梯度上升法的更新公式为:
其中,梯度项可以做下面的等价变化:
这里引入了一个基线项
继续推导,我们有:
我们选择基线
下面我们来推导
代入公式
公式