强化学习
人工智能在自己所属的环境中,一边自行试错一边寻找最适合行动的学习叫作强化学习。从自已认识行动的结果这一点来看,强化学习也可以看作无监督学习。
强化学习中重要的是,首先要清楚地表现出自己的行动和状况。其次,要认识到在什么样的状况下采取什么样的行动,在该环境下会产生什么样的结果。然后,从中学习最优行动的过程。学习的线索是报酬的概念,报酬是相对结果的评价值。如何定义报酬,决定着学习的方向。下面举个例子。
赌场有三台机器,假定是A、B、C。预算是每天3000美元。这个时候肯定没有人会直接向一台机器投入3000美元,或者向三台机器每台投入1000美元。正常来说,都是向三台机器中的每台都稍微投一些。先向每台机器投50美元,然后查看反馈的结果。比如,三台机器返回的数额分别是100美元、30美元和70美元。这样三台机器赢钱的顺序是A、C、B。接下来向A、B、C再分别投入200美元、60美元和140美元。根据赢钱的结果,再决定下一次投入的金额。 通过反复进行这个过程,来决定向三台机器投入数额的大小。这是从行为与结果中学习的强化学习。
另一个例子是对战格斗游戏。让由人类操纵的玩家和由人工智能操纵的玩家进行对战。最开始,人工智能会毫无章法地进行踢打和光束袭击。报酬是玩家的体力会有一定程度的减少。假设状态是与玩家的距离、自己和玩家的速度。最初由于出招毫无章法,几乎对玩家构不成伤害,但是在反复对战的过程中,偶尔会对玩家造成伤害。人工智能会记住这些。通过不断地对战,人工智能可以学习在什么样的状本下采取什么样的行动,能够削弱对方的体力。这就是强化学习。
强化学习是从环境中选取合适行为的手法,在人工智能学习中是最实用的方法之一。应用范围也很广泛,特别是在学习对象无法实现模型化的时候,可以发挥效力。
遗传算法
遗传算法(Genetic Algorithm,GA),是模拟达尔文进化论的AI,是与神经网络、专家系统并称为三大AI的一种代表性AI模型。
这里大致说明下达尔文的进化论。
生物会适应环境,只留下优秀的个体作为后代,劣等的个体被淘汰掉。另外,个体会发生突然变异,也可能会变成极优秀的个体。生物就是在这样反复的过程中得以造化。
“优秀个体=好的解答”,用进化的手法找出最优解,这就是遗传算法。遗传算法最擅长的是“从众多备选答案中,找出最优答案”。举一个郊游零食问题的例子。孩子要带零食去郊游,只不过因为可以使用的金钱有限制,因此不能带很多种类的零食。在一定的金额范围内,只能根据种类和量的最佳组合来选择。
这一类型问题的难点是,零食种类变多的话,买和不买的组合数量会越来越膨胀。如果零食种类少的话,人工就可以计算。但当零食种类达到1万种的时候,可能出现的组合将会是约10的30次方,人工是很难计算的。这种出现组合爆发的问题,通过遗传算法可以迅速地找到正确答案。
遗传算法的原理,是模仿遗传的原理。首先准备含有数个数值的遗传因子。用程序语言说的话,遗传因子只是数值的排列。但是,这些数值在表现空间内承担着各自的角色。比如,以RPG(角色扮演游戏)为例,第一个数值是体力,第二个是魔力,第三个是力的强度,第四个是跑的速度,第五个是弹跳力,这些将成为游戏中角色的设定值。比如,游戏地图中有很多人工智能角色,让这些角色持续交战。这样的话,击败率高的胜出者,其遗传因子就是优秀的。因此,经过一定时间,将拥有胜出遗传因子的个体集合起来,进行遗传因子的交叉。交叉是指取出两个遗传因子并将其切断,形成新的组合。这样会产生新的遗传因子。其依据的是优秀遗传因子产生优秀遗传因子的可能性更高的这一假定。然后,将拥有新的遗传因子的角色,再次放入游戏中并使之战斗。经过不断反复,将自动产生更加强大的游戏角色。
那么,郊游零食问题如何解决呢?首先将遗传因子进行排列,按照50日元、100日元、200日元、300日元划分,各价位明确购买个数。遗传因子的评价是以如何更接近预算(比如说1000日元)来进行判断的。让优秀的遗传因子交叉,慢慢会更加接近正确答案。
如上所述,遗传算法是从多次元的巨大探索空间(集合遗传因子的空间)中,找到适合解答(遗传因子)的算法。因为它使人物角色等得以进化,因此亦被称为进化算法。
本文内容转载自《给孩子的人工智能图解》一书,如存在版权问题请及时联系我们,我们坚持保护原创者的知识版权。