一、含义
强化学习就是通过让机器和环境不断交互,并获得反馈来调整模型的方法。
二、示例
- 例1:Alpha GO 围棋机器人
机器(actor)和人依次落子,每次机器落子,都会给它一个反馈(reward)——如果它下赢了,就+1,如果它下输了,就-1。通过下几百万盘棋,那么机器可能会学会如何落子才能赢。但是,人工成本巨大,因此可以同时让2个机器对下。 - 举例:对话机器人
机器和人不断对话,双方都根据对方的回答而继续说话,如果人觉得机器回答得好,就+1,否则就-1。通过几百万轮对话,那么机器可能学会如何说话。一样地,可以让2个机器相互训练。这个任务的难点在于,不同于下围棋有明确的输赢判定,让算法直接给出reward,对话任务总是需要人工对这几百万轮的对话结果给出得分。一种解决方案是,设计一系列判定规则,通过规则来给对话结果打分,虽然不那么精准,但是成本较小。也通过GAN思想来训练对话机器人:对抗者来识别是机器的回复还是人的回复,模型来尽量骗过对抗者的识别,对抗者的判定结果就是reward。
三、强化学习的难点
- Reward通常都有延迟。例如,中间的一步棋可能就不会赢也不会输,是意义不大的落子,事实上大多数落子都是这种情况。例如,拳击机器人虽然在最后出拳才能击败对方,但是前期的闪躲动作也是非常重要的,而闪躲步骤本身不会得分。
- 机器采取的行动会影响环境进而影响它的下一步输入。也就是说同一个actor也会因为state不同而有不同的reward,这就是环境的随机性。
四、方法论
目前主流的强化学习方法有3大类:一是policy-based,二是value-based,三是二者的结合,著名的即A3C算法。
Reinforcement Learning.png