你该掌握的AI技能:强化学习01
题图由人工智能设计师完成
最近在看一些强化学习的书籍,学习的过程就是要不断的输入,查找资料,理解各种资料,然后输出,总结学习心得,再次输入,输出。不断的重复输入输出这一过程,直至灵活运用学来的知识,转化为技能,这个过程很像强化学习的过程。
今天开始更新一个新系列:
《你该掌握的AI技能》
先看一个游戏:Flappy Bird。
操作简单,通过点击手机屏幕使Bird上升,穿过柱状障碍物之后得分,碰到则游戏结束。由于障碍物高低不等,控制Bird上升和下降需要反应快并且灵活,要得到较高的分数并不容易。
这款游戏,大家应该都玩过吧,不知最高记录是多少?
有没有想过AI(人工智能)玩游戏能玩到多少分呢?
本文暂时不介绍详细的实现过程,有兴趣可以点击阅读原文查看原文。
历史渊源,是起于2013年DeepMind 在NIPS上发表Playing Atari with Deep Reinforcement Learning 一文,提出了DQN(Deep Q Network)算法,实现端到端学习玩Atari游戏,即只有像素输入,看着屏幕玩游戏。后来Deep Mind凭借这个应用以6亿美元被Google收购。
近期DeepMind又有新作,AlphaGo Zero,摆脱了对人类标注样本(人类历史棋局)的依赖,实现无师自通,没有再利用人类历史棋局,训练过程从完全随机开始。采用类似DQN的一个DNN网络实现决策过程,并利用这个DNN得到两种输出policy和value,然后利用一个蒙特卡罗搜索树完成当前步骤选择。
其中,核心技术就采用了
强化学习reinforcement learning。
本文作为强化学习的开篇,重点介绍:
原理及基本概念
一个完整的强化学习过程,是让一台什么都不懂的计算机完成某一项任务,通过不断地尝试,从错误中学习,最后找到完成这项任务的规律,学会了完成任务的方法。
比如小孩子学走路的过程,家里的宠物狗学习各种动作的过程,还有著名的 Alpha GO如何习得下围棋技能的过程。
强化学习是从动物学习、参数扰动自适应控制等理论发展而来。有些人认为,强化学习是实现强人工智能的真正希望。
上图是强化学习的基本理念及原理图。
由以下概念构成:
Environment
Agent
Actions
Observation
Reward
State:状态
来描述Environment及Agent。
State:Environment--Agent
Policy:策略
规定了在每个可能的状态State下,Agent 应该采取的Actions集合。
强化学习就是要找到一个Policy,以使得Reward最大。
Policy:Reward--State--Actions
用一个例子——打砖块游戏,来解释下强化学习:
Environment 处于一个特定的状态(State)(如打砖块游戏中挡板的位置、各个砖块的状态等),Agent 通过执行特定的动作( Actions )(如向左、向右移动挡板)来改变 Environment 的状态, Environment 状态改变之后会返回一个观察(Observation)给Agent,同时还会得到一个奖励(Reward)(正代表奖励,可以为负,就是惩罚),这样 Agent 根据返回的信息采取新的动作,如此不断重复。
直至找寻到一个策略(Policy),告诉Agent 如何选择动作( Actions ),来最大化Reward。
强化学习的目的,就是在这个不断重复的过程中,学习到某一种最优的policy。
另一个现实中的例子来理解强化学习:
“小孩子走路问题”,其中孩子是一个试图通过采取Actions(走路)来操纵Environment(在地上走路)的Agent ,她试图从一个State(即,她走的每一步)转移到另一个State。当她完成任务的一个子模块(即,孩子走了几步)时,孩子会获得奖励Reward(比如,一些糖果),但是当她不会走路时,她不会收到任何糖果(相当于惩罚)。Agent不断地练习,直至学会走路的方法Policy为止。
以上为强化学习的入门需掌握的基本原理及概念,跟着我们一步步掌握这一技能吧!