和经典的强化学习 Reinforcement Learning 最大的区别是,它将直接处理像素级的超高维度raw image state input, 而非事先人为的抽象将状态抽象为低维度state。更加贴近现实的状况。
赶紧趁着课程项目的机会,试试这个想法。
回去一做文献查阅,一看发现,唉?已经有很成熟的一个领域叫做 Deep Reinforcement Learning 在用非常类似且完备的方法去这么做了,而且创始还是由Deepmind公司的人开始做的。Deepmind最出名的就是Alpha Go了,在这之前他们用Deep Q Learning 来玩 Atari 2600游戏,玩的比人还要好,非常有意思。 看来‘创新’失败,不过花了一学期利用课程项目的机会好好学了学这个领域也是非常有收货。趁着圣诞假期记录下来,分享心得给大家,也给自己一个回顾。
Deep Reinforcement Learning 最初始的成功算法莫属 Deep Q Learning. 这个算法可以通过直接观察 Atari 2600的游戏画面和得分信息,自主的学会玩游戏,并且一个算法对几乎所有的游戏通用,非常强大,论文发表在了Nature上。- Q Learning
在了解 Deep Q Learning 之前,先来了解下他的鼻祖 Q Learning。这也是一个在强化学习领域非常经典的算法。
(推荐阅读David Silver的强化学习课程 UCL Course on RL)
在这儿我们以赛车游戏为例子来说理论上如何应用Q Learning解决玩赛车游戏的。
先解释一些符号表示的意义,接下来会在整篇中用到:
- State s: 在每一个时间节点,agent(车) 所处的环境的表示即为State,例如整个游戏画面,或者已经抽象为位置,方向,障碍物位置等的信息。
- Action a: 在每一个 state 中,agent 可以采取的动作即为Action. 例如前,后,左,右,刹车,油门。每采取一个 action, agent 将相应会到下一个 state (可以理解为车往前开了,环境就相应变化了)。
- Reward r: 每到一个state,agent 就有可能会收到一个 reward 反馈,例如撞了墙就会收到一个负的反馈,而如果顺利到达终点就会收到一个正的反馈。
Policy P:如何选择动作的策略,我们希望能够学习到一个策略可以让 agent 得到最大的累积反馈。
一轮游戏可以被定义为一个马尔可夫决策过程 (MDPs), 反复在 state, action reward, state ... 之间转换直到游戏结束
我们的目标是学会一个好的策略,我们在这儿使用discounted future reward R,discount rate为。在一个 state 例如中,总计反馈可以这样计算: