我们收益函数的实现(2):
最后是我们的训练循环。我们反复地玩多次游戏,每次都记分,然后调整参数——用阿尔法乘以所获得收益得出学习速度。
运行上一单元,我们看到训练起作用了!下面例子通过将TRAINNING设为FALSE跟踪play_game()方法。这展示了一种智能步骤选择过程。
这里前五行是游戏盘编码——每一步都用(11)来填充网络。第二至最后一行是所选择的系列网络选择。最后一行是命中日志。请注意前两步很好地抽样了游戏盘不同地区。此后,所记录命中为 66。该算法然后智能地选择 77和 88,它能推断它们一定是战舰的最后位置。
下图进一步地描述了学习过程的特征。它将游戏平均长度(完全轰炸战舰所需步骤)与训练时间进行对照。该程序非常迅速地学到基础知识并随着时间推进而持续进步。
小结
在本贴中,我们讲到RL的一种——即策略梯度、深度RL方案。该方法一般是当前最知名战略 ,偶尔也从其他方法中取样,最终实现策略的迭加改进。其两个主要成份是策略网络和收益函数。尽管网络结构设计通常是督导学习考虑得最多的地方,但在RL的情况下最费神的是收益函数。为了方便训练(依靠长远预测会放慢学习过程),好的选择应该是时间上尽可能地靠近。然而,收益函数常常也会损害到这一过程的最终目标(“赢”这场游戏——鼓励侧向追求,而一些侧向追求是不必要的,但如果不加注意会时常出现)。要在这两种互相竞争的要求间进行权衡并不容易。所以收益函数设计在某种程度上说是一种艺术。
我们这个简短的介绍只想说明RL实际上是如何实行的。更多细节,我们推荐两个来源:Sutton 和Barto的文本书[3]和最近John Schulman的谈话[4]。