在上一篇博客中,我们详细的对Q-learning的算法流程进行了介绍。同时我们使用了\(\epsilon-贪婪法\)防止陷入局部最优。
那么我们可以想一下,最后我们得到的结果是什么样的呢?因为我们考虑到了所有的(\(\epsilon-贪婪法\)导致的)情况,因此最终我们将会得到一张如下的Q-Table表。
| Q-Table | \(a_1\) | \(a_2\) |
|---|---|---|
| \(s_1\) | \(q(s_1,a_1)\) | \(q(s_1,a_2)\) |
| \(s_2\) | \(q(s_2,a_1)\) | \(q(s_2,a_2)\) |
| \(s_3\) | \(q(s_3,a_1)\) | \(q(s_3,a_2)\) |
当agent运行到某一个场景\(s\)时,会去查询已经训练好的Q-Table,然后从中选择一个最大的\(q\)对应的action。
训练内容
这一次,我们将对Flappy-bird游戏进行训练。这个游戏的介绍我就不多说了,可以看一下维基百科的介绍。
游戏就是控制一只