强化学习通俗入门简介(一)
2019-04-18 本文已影响0人
小小何先生
什么是强化学习(Reinforcement Learning)?他和监督学习有什么区别?这里我将从监督学习切入,来用几篇文章解释清楚强化学习算法的原理,从0到AlphaGoZero。这里会有些许公式,不过读者不必担心这些公式,因为每一个公式的推导我都会附上详细的推导解释过程,如果您觉得这样可能还是会有困难的话,那你真是来对地方了,每个公式的背后我都会附上人类经验对这个公式的理解,也就是说您只需要一点点的生活常识,您就可以越过公式本身从而得到公式内部最精华的我个人的理解。作者能力有限,还希望各位大神多多指教。
以监督学习中的分类问题为例,最经典的就是mnist手写数字识别了,做的是一件什么事情呢?如下图所示:
以上功能的链接您可以点击这里。
这里示例是输入数字7(最下面那层)经过神经网络层层的识别,最终在数字7的那个位置被点亮,也就是将数字7识别出来了。这是一个非常典型的监督学习中的分类问题。神经网络最初始是随机参数,所做的事情就是将一张图片,数字7的图片,输入到神经网络当中去,然后会输出一个标签。如果神经网络输出的标签不是数字7的标签,那么将会进行训练,使得神经网络输出达到数字7即可。
那这个监督学习跟强化学习又有什么关系呢?我们把这个任务改变一点点,如果现在依次输入的是以下这两张图片:
数字7 输入第一张图片到神经网络当中去,神经网络有一个输出,输入第二张图片神经网络也有一个输出,并且我们只告诉神经网络你的输出是否是正确的,而不是告诉神经网络输出应该是什么。用官方解释是:evaluates(评估) the actions taken rather than instructs(指导) by giving correct actions。那么这个问题就变成了序贯决策问题,也就是你经过了很多次连续的输入,然后需要去输出一个决策。
再将其迁移到游戏Flappy Bird中去:
Flappy Bird 神经网络输入是几张像素图片,神经网络输出是向是否向上跳,不动(自由落体,也就是向下坠落)。然后游戏告诉神经网络,你的输出对还是不对,也就是游戏的得分告诉神经网络输出的好坏。
好,回顾一下我们做了一件什么事情,我们把游戏的像素输入到神经网络中,神经网络输出向上或者不动的标签到游戏中去,游戏返回得分数据用于神经网络训练。
到这里,已经完成了一个强化学习算法的基本思想,用强化学习术语来对此过程做一个解释如下:
Reinforcement Learning 神经网络被称为一个Agent(智能体),神经网络输入的游戏像素我们称之为state(状态),神经网络输出的向上,不动等标签,我们称之为action(动作),游戏相对与Agent是Environment(环境),游戏返回给神经网络的标签我们称之为Reward(奖励)。除此之外游戏还会给出下一个像素,使得游戏能够运行很多次。同样的思想可以被用于下围棋,神经网络的输入是棋盘,输出棋盘的落子位置,训练的依据就是这盘棋是否赢了。
专业一点:强化学习是一门决策学科,理解最佳的方式来制定决策。在工程控制当中有一门学科叫最优控制,与强化学习使用的方法有很大的类似之处,这种方式是基于数据的数据驱动,不需要知道环境的模型。在认知神经科学领域,强化学习主要是模仿人类的大脑决策。心理学领域,理解的是对外部环境变化做出的反应。在数学领域,研究的是如何数学推导得出最优控制的解,也叫做运筹学,在博弈论里面研究的是如何做出决策,使得收益最大化。
强化学习与监督学习的第一个不同之处是:在强化学习里面,没有人会告诉你应该采取什么样的动作,外部环境只会告诉你你采取的动作是好的还是坏的,而不是直接告诉你什么是应该采取的动作。这是一个类似小孩的试错学习。
强化学习与监督学习的第二个不同之处是:我们得到的奖励并不是立刻得到的,我们有可能是在很多步之后得到这个奖励,比如下围棋。你可能在很多步之后才会知道这个动作是好的动作还是坏的动作。也有可能你采取了一个动作之后得到一个小的奖励,但是在之后的序列决策过程中,你将会得到毁灭性的打击。这是reinforcement learning的一大特点。
强化学习与监督学习的第三个不同之处是:在监督学习中,假设数据是独立同分布的,预测数据和训练数据的分布是一致的。但在强化学习中,这个基本的假设是不成立的,因为在智能体会通过动作改变环境,从环境中获取的数据也会不断发生改变。
在强化学习中智能体所做的是序贯决策问题,序贯决策问题就是需要连续不断地做出决策,才能实现最终目标的问题。这也就是说我们的数据是不满足独立同分布的。我们需要应对的是一个动态系统,每一个动作都会影响下一个状态。所以这样的方式不太适合我们传统的监督学习范式。也就是神经网络的输出会影响到神经网络的输入。
回到之前的Flappy Bird游戏中去,我们获得的是像素信息,实际上叫做Observation(观测),而state是游戏的所有信息,比如包含小鸟的速度,位置信息等等我们就没有观测到,我们把这类问题叫做Partial observation(部分可观测),在博弈论里面我们称之为非完美信息。比如棋牌游戏中,我们并不知道对方手里有什么牌,我们只知道自己手中的牌和已近打出去的牌,环境中还隐含了部分信息我们无法观测。
我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!