基础
我在 series hub 中介绍过最基本的强化学习的内容。在强化学习里有四个基本的概念会经常出现在相关的文章中,策略、奖励、价值函数以及环境模型。我会跳过模型这个部分,因为我们现在讨论的是不基于模型的学习理论。
策略:是强化学习机的核心,代表着决策进行的方式。它可能是一个表格,一个函数或者一个复杂的深度神经网络。
奖励信号:一个数值,代表着强化学习机采取行动后的即时奖励。最大化所得奖励是强化学习机的最终目标,为了完成这个目标,我们不断地调整策略。这就像是训练狗狗一样。
价值函数:一个函数,用于描述给定状态下的可能获得的远期奖励。这样看来,一个较小的但恒定的常数有可能会优于浮动范围很大的结果。当然,也可能是相反的情况。
探索与利用
Exploration(探索)会放弃一些已知的奖励信息,而去尝试一些新的选择——即在某种状态下,算法也许已经学习到选择什么行动让奖励比较大,但是并不能每次都做出同样的选择,也许另外一个没有尝试过的选择会让奖励更大,即Exploration希望能够探索更多潜在的信息。
Exploitation(利用)指根据已知的信息最大化奖励。
其区别也可以简单地理解成,Exploration 算法在搜索全局最优解,是不基于已有经验的;Exploitation 在搜索局部最优解,且最大程度地利用已有经验信息。
强化学习机就像是个小宠物。它们能够发现第二个碗中包含的东西比第一个碗里的更好,但是当它们开始进食后,就难以发现藏在角落里的大牛排。贪婪的学习机行为也差不多。它会死抓住第一桶金,为自己“谋利”。它总是采取最大化奖励的行动,但是从不会考虑采取其他行为能否在几步之后获得更大的奖励。这就是为什么我们需要探索,因为很有可能一些偶然因素导致我们的学习系统采取了一些随机的行为。
然而,这里有个问题。我们不能只是盲目地探索最大奖励,因为一个学习机会浪费太多的时间来寻找答案,却没有利用它所学习的经验。一个解决办法就是以高探索率开始,然后在系统积累一定经验后逐渐降低探索率。这种权衡也是很著名的数学问题,没有最合理的答案。
多臂老虎机
你肯定知道著名的单臂老虎机,如果你没有达到目标,你不会得到任何奖励。不管怎样,你都是要拉一下杠杆,然后我们假设能随机地获得金钱奖励。由于结果是完全随机的,所以我们训练强化学习机只拉这一个杠杆也无济于事。但是假设一台老虎机有K个杠杆,并且每个杠杆都有随机的奖励,只不过有细微的金额差距。这样的话,一些杠杆和其他杠杆会有些许不同。我们就可以训练一个学习机来帮助我们,而且此处我们还想测试贪婪算法和探索算法的好坏。
数据
假设我们考虑的老虎机有十个杠杆,我假定了两个效用函数来生成数据。数据基本都是基于正态分布来获得的,这样以来一些策