强化学习举例

假设你正在用机器学习来教直升机复杂的飞行动作。下面是一张延时照片,照片上是一台电脑控制器的直升机正在引擎关闭的情况下执行着陆。

强化学习举例 - 图1

这被称为“自旋”策略,即使引擎意外故障了,它也允许直升机着陆。这也是人类飞行员经常进行的训练。而你的目标是使用一种学习算法,让直升机通过一个轨迹

强化学习举例 - 图2 安全地着陆。

要应用强化学习策略,你必须设计一个 “奖励函数”

强化学习举例 - 图3,它给出一个分数来衡量每一个可能轨迹强化学习举例 - 图4 的好坏。例如,如果强化学习举例 - 图5 导致直升机坠毁,那么奖励也许是强化学习举例 - 图6 ,这是一个巨大的负反馈;而一个导致安全着陆的轨迹强化学习举例 - 图7 可能会产生一个正的强化学习举例 - 图8 值,它的精确值取决于着陆过程的平稳程度。奖励函数强化学习举例 - 图9 通常是人为选择的,以量化不同轨迹强化学习举例 - 图10 的理想程度。它必须权衡考虑着陆的颠簸程度,直升机是否降落在理想的位置,乘客的降落体验等因素。设计一个好的奖励函数并非易事。

给定一个奖励函数

强化学习举例 - 图11 ,强化学习算法的工作是控制直升机,使其达到强化学习举例 - 图12 . 然而,强化学习算法原理内部有许多近似操作,可能无法成功实现这种最大化需求。

假设你已经选择了某些奖励函数

强化学习举例 - 图13 作为反馈,并运行了学习算法。然而它的表现似乎比人类飞行员要糟糕得多——它更加颠簸,而且似乎不那么安全。你如何判断错误是否由强化学习算法造成——它试图找到一个轨迹强化学习举例 - 图14 ,满足强化学习举例 - 图15 ——或者错误来自于你的奖励函数——它尝试衡量并且指定一种在颠簸程度和着陆精度之间权衡的理想结果。

为了应用优化验证测试,让

强化学习举例 - 图16 表示人类飞行员所选择的轨迹,并让强化学习举例 - 图17 代表算法所选择的轨迹。根据我们上面的描述,强化学习举例 - 图18 是优于强化学习举例 - 图19 的发展轨迹。因此,关键的测试点在于:不等式强化学习举例 - 图20 是否成立?

情况1:如果不等式成立,奖励函数

强化学习举例 - 图21 正确地使强化学习举例 - 图22 优于强化学习举例 - 图23 ,但这表明我们的强化学习算法找到的强化学习举例 - 图24 仍不够好,花时间去改进算法是很值得的。

情况2:如果上面不等式不成立,而是

强化学习举例 - 图25 . 这表明强化学习举例 - 图26 的设计使得理应是更优策略的强化学习举例 - 图27 得到了一个更糟的评分。你应当致力于改进强化学习举例 - 图28 ,以更好地获得与良好着陆情况相对应的权衡。

许多机器学习应用程序使用这种优化某个近似的 “模式” 来确定得分函数

强化学习举例 - 图29 . 有时没有特定的输入强化学习举例 - 图30 ,形式简化为强化学习举例 - 图31 。在上面的例子中,得分函数即是奖励函数,强化学习举例 - 图32,而采用的优化算法是强化学习算法,目的是找到好的轨迹强化学习举例 - 图33 .

这和前面的例子有一个区别,那就是,与其比较 “最优” 输出,不如将其与人类水平的表现进行比较。我们认为,即使

强化学习举例 - 图34 不是最优的,它也是相当不错的。一般而言,只要有一个比当前学习算法性能更好的输出强化学习举例 - 图35 (在这个例子中即是指强化学习举例 - 图36 ),即使它不是 “最优” 的,优化验证测试也能够反映改进学习算法与改进得分函数之间哪一个更具前途。