强化学习概念
与传统的有监督学习和无监督学习不同,强化学习重点研究在交互中学习的计算性方法。学习者不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪些动作会产生最丰厚的收益。同时,动作往往会影响的不仅仅是即时收益,也会影响下一个情景,从而影响随后的收益。试错和延迟收益是强化学习两个最重要最显著的特征。
强化学习要素
1. 策略 - policy
策略是智能体在特定时间的行为方式,是环境状态到动作的映射。策略可能是一个简单的函数或查询表,或者可能涉及大量的计算,如搜索过程。一般来说,策略可能是环境所在状态和智能体所采取的动作的随机函数。
2. 收益信号
强化学习的最终目标是最大化长期总收益。在每一步中,环境向强化学习智能体发送一个标量数值。因此收益信号是改变策略的主要基础。如果策略选择的动作导致了低收益,那么可能会改变策略。一般来说,收益信号可能是环境状态和在此基础上所采取的动作的随机函数。
3. 价值函数
收益信号表明在短时间内什么是好的,而价值函数表示了从长远的角度看什么是好的。
一个状态的价值是一个智能体从这个状态开始,对将来累积的总收益的期望。(Bellman Expectation Function)
因此,我们在制定和评估策略时最重要的是价值,收益是环境直接给予的,但是价值必须综合评估,并根据智能体在整个过程中观察到的收益序列重新估计。
4. 环境模型(可选)
对环境建立的模型是对环境反应模式的模拟。给定一个状态和动作,模型就可以预测外部环境的下一个状态和下一个收益。model-based方法是指使用环境模型和规划解决问题,规划是指在真正经历之前,先考虑未来可能发生的各种情景,从而预先决定采取何种动作。model-free方法无需建立环境模型,而是直接地试错。
多臂赌博机问题
问题定义
你要重复地在k个选项和动作中进行选择,每次做出选择之后,你都会得到一定数值的收益,收益由你选择的动作决定的平稳概率分布产生,目标是在某一段时间内最大化总收益的期望。通过多次的重复动作选择,你要学会将动作集中到最好的控制杆上,从而最大化你的奖金。
开发与试探
如果你持续对动作的价值进行估计,那么在任一时刻都会至少有一个动作的估计是最高的,我们将这些对应最高估计价值的动作称为贪心动作。当你从这些动作中选择时,我们称此为“开发”当前你所知道的关于动作的价值的知识。如果不是选择贪心的动作,我们称此为“试探”。“开发”对于最大化当前这一时刻的期望收益是正确的做法,但是“试探”从长远看可以带来总体收益的最大化。试探与开发的选择依赖于我们得到的函数估计、不确定性以及剩余时刻的精确数值。
动作 - 价值方法1 —— 采样平均方法
动作价值的真实值是选择这个动作时的期望收益,一种估计动作价值的方式就是计算实际收益的平均值,这种方法被称为采样平均方法。公式中表示随机变量,当predicate为真时其值为1,反之为0。当分母为0时,
被定义成默认值,比如0。
贪心是最简单的动作选择规则,即选择具有最高估计值的动作,记作
- 贪心算法是一种解决开发与试探平衡问题的算法,大部分时间都表现得很贪心,但以一个很小的
概率从所有的动作中等概率随机地做出选择。这种方法的优点是如果时刻可以无限长,则每个动作都会被无限次采样,根据大数定律,确保所有的
收敛到
,也意味着最优动作的概率会收敛到大于 1 -
。
增量式实现均值计算
计算动作价值的公式可以通过维护所有收益信号的记录来实现,但随着收益越来越多,内存和计算量会随着时间增长,每增加一次收益就需要更多内存存储和计算资源对分子求和。这其实不是必须的,我们可以设计增量式公式以小而恒定的计算来更新平均值。
新估计值
旧估计值 + 步长 * [目标 - 旧估计值]