打字猴:1.700508282e+09
1700508282 数据科学家养成手册 [:1700503591]
1700508283 11.8.3 强化学习
1700508284
1700508285 与非监督学习和监督学习的工作方式不同,强化学习是一种极为重视反馈的学习过程(如图11-36所示)。非监督学习中的聚类,在我们设置了超参数(Hyperparameter)以后,就可以不对学习过程进行干预了(所以称为“非监督学习”)。对于监督学习,我们在一开始就为所有训练样本设置了标签,让算法根据标签进行分类条件的归纳。强化学习是一种基于与环境互动的学习方式。
1700508286
1700508287
1700508288
1700508289
1700508290 图11-36 强化学习流程
1700508291
1700508292 所谓强化学习是指从环境状态到行为映射的学习,以使系统行为从环境中获得的累积奖励值最大。
1700508293
1700508294 在训练主体的过程中,首先赋予主体对外界状态和奖励的感知能力。这里的“奖励”是指广义的奖励,如果是正值就是奖励(Reward),如果是负值就是惩罚(Penalty)。让主体具备感知“利”与“弊”的基本能力是一种很“高级”的学习方式。对周围一切能够被主体感知的因素,包括声音、图像、视频、文字、温度、湿度等,主体每次输出某个动作都会诱发环境产生奖励的反馈。主体通过一系列动作反馈的奖励积累来归纳在某个或某些状态下给予什么样的动作是最为“有利”或“正确”的。这就是强化学习的本质。
1700508295
1700508296 强化学习不是具体的一个算法,而是一类算法的解决方案总括。在这种思想的指导下,从20世纪50年代开始涌现出了一代又一代强化学习算法体系来解决相应的问题,例如马尔科夫决策过程(Markov Decision Process)、A-Learning、Q-Learning等著名的算法。
1700508297
1700508298 我们通过Q-Learning算法的过程来感觉一下强化学习的基本过程吧,看一下伪代码。
1700508299
1700508300 Initialize Q(S,A)arbitrarilyRepeart(for each episode)  Initialize S  Repeat(for each step of episode)  Choose A from S using policy derived from Q  Take action A, observe R,S’    Q(S,A)←Q(S,A)+α[R+γmaxa’(S’,A’)-Q(S,A)]    S→S’Until S is terminal
1700508301
1700508302 这段伪代码看上去不太容易理解,下面进行详细的分析。
1700508303
1700508304 首先,任意初始化一个Q函数的值。重复进行一个训练过程,直到S结束。这个S是指环境描述向量(State),S结束就是整个训练过程完毕的一个标识。例如,我们训练一个2D飞机游戏的外挂——AI自动打游戏机器人,S可以设定为游戏终止状态,例如通关、所有生命都消耗光(如图11-37所示)。
1700508305
1700508306
1700508307
1700508308
1700508309 图11-37 2D飞机游戏
1700508310
1700508311 然后,就是逐一对episode进行训练。这里的“episode”是指一段游戏中的状态。在每个状态中,会设置一个S(State)向量,在这种游戏中可以是基于游戏元素的向量(例如敌人的种类、坐标、发射的枪弹坐标等),也可以是基于像素的向量(例如直接把当前图像作为向量输入Q-Learning算法充当S状态)。此时,就可以对主体(飞机)输入动作A(Action)。动作A可以由人输入,也可以由机器通过某种策略输入——当机器学习到一定程度之后,这种方式会大大减少人对学习过程的干预。
1700508312
1700508313 在这个过程中,主体会有很多与环境S的互动,例如吃下一个加分的物品、发射枪弹消灭敌人或者躲避敌人的子弹等。在这个过程中,我们可以为这些反馈定义其R的值,对于一些小的、对通关有帮助的事情,R值可以为小一些的正数(例如每生还0.2秒加1分);而对于那些对通关帮助比较大的事情,我们可以定义为较大的正数(例如消灭一个杀伤力很强的敌人加50分)。反之,如果是对通关损害比较小的事情,就为其定义一个绝对值小一些的负数R(例如未能吃到一个威力比较大的武器减去20分);如果是对通关损害比较大的事情,则为其定义一个绝对值大一些的负数R(例如中弹死亡减去1000分)。每隔0.2秒(或其他时间间隔),状态S和Q(S, A)都要进行更新,更新的内容就是保证Q增大方向的策略评价。
1700508314
1700508315 在这个过程中通过不断学习和总结,最后Q(S, A)会得到一个“在S情况下采取某个A会有较大概率获得较大R”的策略,这个策略就是我们要学习的内容。
1700508316
1700508317 如果场景更为复杂,例如3D场景,或者有复杂光照、降雨等复杂气候等的场景,S的定义也会更为复杂。在训练人工智能机器人的过程中,强化训练是使用非常广泛的一种算法体系,也是目前工业界广泛采纳且应用较为成熟的一类方法论(如图11-38所示)。
1700508318
1700508319
1700508320
1700508321
1700508322 图11-38 踢足球的机器人
1700508323
1700508324 Q-Learning算法只是一个算法核心,在对外界的感知中很可能需要其他组件或者设备进行辅助,例如使用卷积神经网络作为图像感知的处理途径,以及使用多种复杂的感知系统组合作为S输入和R输入的处理手段等。整个强化学习的学习思路更像是一个知晓“利”与“弊”、“快乐”与“痛苦”的真实的人,所以基于这种本能刺激得到的策略更像是人在进行主观能动性成分更多的学习。因此,强化学习也被认为是在未来人工智能中最有前景的算法体系。至于其他工作,从理论上讲,就只是计算能力、存储能力和样本数量提升的问题了。
1700508325
1700508326
1700508327
1700508328
1700508329 数据科学家养成手册 [:1700503592]
1700508330 数据科学家养成手册 11.9 神经网络——深度学习
1700508331
[ 上一页 ]  [ :1.700508282e+09 ]  [ 下一页 ]