纸质或电子文字能够承载很多前人的经验和知识,但是也有很多经验和知识是无法被描述,比如如何教人骑自行车。类似这种知识和经验无法被记录和流传,只能通过口口相传的方式得以延续。同样,机器能够较好完成我们人类赋予的确定性、可描述的指令和任务。
但是,机器是无法理解人类下达类似“找一条最佳的路”的指令。
人类不可能穷举所有机器将要面临的所有状况,唯一的出路,就是机器必须学会在不同环境中自己学习。
2013年,DeepMind发表了一篇如何训练单一网络系统来实现游玩多款“雅达利”游戏,包括《太空入侵者》和《打砖块》,并获得同等甚至是超越人类的比赛成绩。这一成果在当时震惊整个学术界,也促使谷歌于2014年初以超过5亿美元的价格完成对DeepMind公司的收购。
为什么谷歌会对DeepMind如此感兴趣?IBM在22年前就已经制造出能够与人类对抗下棋的“深蓝”,并且谷歌自己的自动驾驶汽车已经在道路上行驶了近70万英里。如果自动驾驶都已经成为可能,那为什么谷歌会对这款攻克一个简单游戏的程序表示如此大的兴趣?
事实上,早期的自动驾驶是需要人为告诉汽车如何根据探测到的道路实现自动行驶,但是并没有学会如何在反复错误中学习如何自动驾驶。
但是,DeepMind这个程序已经学会了在没有人类指导的情况下,实现自主玩游戏。
在无人为干预和调整的情况下,DeepMind使用相同的神经网络架构来学习游玩49款“雅达利”游戏。那么,这个程序是如何学会玩游戏的呢?
强化学习如何根据经验来学习应该采取何种行动?
强化学习就是通过奖励或者惩罚机制来学习做事情,因此,要训练这种强化学习程序,只需编程使得计算程序寻找奖励。一旦计算机程序按照我们希望的方式动作,我们就给与奖励,反之则惩罚。
强化学习看似非常智能,不是人为设定的自动机。但是,强化学习的程序仍然遵循确定性的程序。例如,DeepMind强化学习程序在玩“雅达利”游戏的过程中,都会将游戏最新的4张截图图作为输入,然后通过计算来确定操纵杆“向左、向右或者开火等”的状态。
强化学习流程框图
下面,我通过赛车游戏来说明强化学习的工作原理。赛车游戏的目的是尽可能地快抵达终点,并且避免碰撞赛道和障碍物(例如,来往的车辆)。强化学习的四要素:状态、动作、策略以及奖励。在赛车游戏中,赛车游戏场景是场景,赛车是智能体,游戏得分是奖励,赛车位置是状态,对赛车的操作就是动作,至于怎么操作赛车,就是策略。
在赛车游戏中,可以看出,我们并不能直接对赛车进行编程来控制赛车的运动,因为场景中存在随机障碍。而且,赛车并不能得到全部的环境信息,只能得到赛车检测到的周围环境信息。因此,赛车需要针对不断变化的环境,及时作出细微的策略调整,并且获得最大的场景奖励。
要想训练这个赛车智能体,我们需要在其运动过程中给与及时的奖励和惩罚。如果撞到障碍物,给与惩罚,如果能够顺利到达终点,则根据时间长短给与奖励。那么,我们该如何创建一个可以从这些奖励中进行学习的智能体呢?
智能体状态多维数据集
首先,需要考虑如何让智能体存储环境模型,并且该模型能够总结过去经验,便于未来实现更有效的决策。为此,可以将环境模型设想为一个巨大的立方体。这个巨大的立方体存储赛车智能体在不同的位置上,特定的动作可能得到的价值奖励。
如果这个立方体能被填入正确的数值,那么这种策略就是可行,而且非常简单,甚至可以通过编码来创造一个自动机。但是问题是,如何确定这个立方体每一个小块应该填入什么值?并且,还需要注意的是,赛车必须达到终点,才能给与奖励。因此,立方块里的数值设置需要有一定的梯度,避免赛车智能体过分追求奖励而停止不前。
而且,我们希望赛车能够尽快到达终点获得奖励。耗时越长得到的奖励的价值应该要比快速得到的奖励的价值要小。因此,需要设计一种方法,估算智能体采取行动时得到的奖励,并以此填充立方体的数值。而且,数值需要根据未来得到奖励所需要的时间进行调整。
立方体中的数值越高,表示该动作能够更快、更有可能获得奖励。比如赛车如果采取向左1度奖励25,如果采取向左2度奖励50,那么赛车必然会采取向左2度的动作。最终当赛车无论采取什么动作,得到的奖励基本不变,甚至是没有。那么,赛车也就逐步抵达到了终点。
梯度方向
赛车游戏中,赛车智能体并没有做太复杂的规划,而是只需要顺着梯度的方向,逐步达到顶峰(低谷)就可以。
那么,如何确定这个立方体里的数值?目前有很多方法,但是基本都是通过反复试错来学习立方体中的数值。智能体起初选择完全随机的动作,然后从经验中学习“状态+动作”对应的奖励,从而动态调整立方体中的数值。
由于,在强化学习训练过程中,假设预测智能体的未来状态只与当前状态有关。因此,随着不断的训练,立方体中的数据就会越来越精确,智能体也就能够表现得更加完美。
如何用神经网络攻克49款“雅达利”游戏?
通过构建多维数据集的方式来训练强化学习算法,是一种简单有效的方法,也是实践中经常使用的方法。但是对于玩“雅达利”游戏的智能体来说,其多维数据集规模非常庞大。例如,DeepMind采用过去4张屏幕截屏作为游戏中的状态,对于《太空入侵者》这样的游戏,多维数据集将记录数万亿的状态。
显然,用这种多维数据集的实现方式来完成游戏,非常不现实!
DeepMind借助的方法就是神经网络。神经网络的好处在于,不需要人为设定特征,也就无需为多款游戏手动设置特征。对于单个游戏来说,可以精心设置一些特征,从而以相对简单固化的方法来实现游戏目标。
但是这样做,很难实现能够执行多项任务的自动机。
神经网络里有一条很重要的定理——万能近似定理。该定理表明,含有隐含层的神经网络能够以任意精度近似输入与输出之间的函数。换句话说,只要精心选择神经网络的权重,神经网络就能够针对“雅达利”游戏给出最佳的策略。
雅达利游戏智能体的架构
DeepMind为“雅达利”游戏设计了一个三层架构,分为游戏学习环境、感知以及推理。“雅达利”游戏程序的感知是采用神经网络算法,实现将屏幕上的原始像素转换成游戏中的有用特征。而推理部分,则不断查询神经网络的输出值,选择输出值最高的动作。
神经网络中的卷积层
前面已经提到,游戏最新的4张截图会被当做神经网络的输入,那么,像素图又该如何转化为游戏环境中的位置信息(例如,障碍位置、游戏对象位置等)?DeepMind采用将卷积层作为第一个隐藏层的方法,将卷积层充当为识别图像中物体的分类器。每个分类器都要被应用到输入图像中8×8的像素块上,如果与分类器结果不匹配,结果为黑色,反之则为白色。
将卷积层中的白色像素转换为坐标的层
从第二层到第三层,只需要将黑白图片上的像素映射为白色的坐标。上图中,像素与给出x坐标的神经元之间的权重等于该像素的x坐标,y坐标同样如此。网络中有足够多的数据,每个神经元的坐标编码到权重中,以此来学习每个像素到位置之间的映射关系。
这种将卷积层的输出转化为坐标的方式,对于解释网络中发生的事情大有益处。
“雅达利”游戏中的智能体的第一层卷积层采用32个独立的过滤器,可以搜索各种各样的的物体,从而可以适配多款“雅达利”游戏中的物体。这个卷积层完全连接到具备32个神经元的隐藏层,然后通过连接一个压缩函数完全连接输出层,输出的值则表示智能体不同的动作对应的时间奖励值。
“雅达利”游戏之所以成为DeepMind展示神经网络优势的完美平台,在于游戏过程中提供了明确的目标函数——游戏得分,还在于提供了近似无限的数据来训练神经网络。
但是并不是说,神经网络在游玩“雅达利”游戏的时候不存在问题。虽然智能体采用的是相同的网络架构,但是对于每一款游戏,都会学习不同的权重。而且,经过训练之后,该智能体也只能够在29款游戏中超越人类玩家水平。
蒙特祖玛的复仇
但是,对于一些类似需要探索的游戏,例如《蒙特祖玛的复仇》和《私家侦探》,该智能体的表现就非常糟糕。因为“雅达利”游戏的智能体无法记忆,导致智能体无法记住去过那里、没去过那里等。
而且,由于智能体开始的时候采取的是完全随机的动作来进行自我训练,这也使得智能体在探索类游戏中无法取得很大的进展。例如,在《蒙特祖玛的复仇》中,智能体只是在房间徘徊里,很少能穿过迷宫中的第一个房间。
因此,强化学习距离通用人工智能还有很长的路要走。
强化学习,未来将何去何从?
负责AlphaGo项目的研究员David Silver,认为结合了深度学习的表示能力与强化学习的推理能力的深度强化学习将会是人工智能的终极目标。
但是,作为世界上最大人工智能研究机构之一的DeepMind,在过去一年中就亏损5.72亿美元(约40亿人民币)。尽管DeepMind将大量的资金投入到围棋等其他游戏的AI解决方案上,但是连年亏损的DeepMind势必让我们开始思考,强化学习是否被高估?强化学习领域的泡沫将如何破除?
尽管强化学习在围棋以及《星球大战》等游戏中取得了辉煌的成就,但是这种技术对于环境的要求非常苛刻。微小的变化,都会对整个系统造成非常大的影响。而且,想要更换场景、风格,还得重新训练强化学习网络的权重。
也正是因为这种缺乏灵活性,导致无法根据环境的变化而做出改变。DeepMind的肾脏疾病检查方案也因系统鲁棒性不强,而遭到大众的质疑。并且,深度强化学习需要大量的数据和资金支持,AlphaGo的整个训练成本高达3500万美元。
特别是近几年,研究人员开始反思强化深度学习的研究成果。由于很多文献并不能提供重要参数配置和工程算法实现,导致很多深度强化学习研究成果无法复现。加之,强化学习虽然需要大量样本,但是样本的利用率非常低。
更为关键的是,好的奖励函数难以设计。
因此,我们该如何重新正视强化学习?未来,强化学习将如何发展?
其实,强化学习真的不只是说只能打游戏、下棋。目前,控制领域、自动驾驶领域、NLP领域以及金融通信领域都有强化学习的身影。但是不得不承认的是,强化学习仍然处于初级阶段,我们不能苛求强化学习要解决所有的问题。相反,我们应该找到强化学习适合解决的问题。
从反馈中逐步提升能力,是实现智能的核心要素,这也正是强化学习的核心思想。
深度学习成功后,与强化学习结合成深度强化学习。知识库构建方法成熟后,强化学习里也引入了“记忆”机制。反思强化学习的过程,也引发出新的强化学习发展方向:关系强化学习和符号强化学习。似乎每一项技术成熟之后,总会寻求与强化学习的结合点。
一个机器学习系统,如果能够不断接受外界的反馈而不断改进,那么,这个系统就不仅仅是一个机器学习系统,还是一个强化学习系统。一切涉及到在不断选择和反馈中学习的系统,几乎涵盖强化学习的核心思想。
因此,我们不必担心强化学习的泡沫,反而需要认识到,强化学习很有可能是人工智能的终极目标。
结论
强化学习是一种无须人工干预,自主进行学习的机器学习模型。
DeepMind能够使用同一个网络模型,在无须人工干预的情况下,实现游玩49款“雅达利”游戏,堪称是向前通用人工智能迈进的一大步!
为了更好说明强化学习,本文采用赛车游戏来说明强化学习的工作原理,并介绍了一种采用多维数据集的方式训练强化学习模型的常用方法。但是,由于“雅达利”游戏的状态量非常多,致使DeepMind不得不转向神经网络来设计强化学习模型。
即使强化学习在游戏领域取得了非常不错的效果,但是,强化学习本身的不灵活性、鲁棒性不强等问题也一直困扰着研发者和从业人员。
但是,从反馈中学习是智能构建的重要因素,这也正是强化学习的核心思想。强化学习很有可能是人工智能的终极目标。
你们怎么看待强化学习?欢迎在下方留言评论。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.