美文网首页
人工智能应用案例学习7

人工智能应用案例学习7

作者: ericblue | 来源:发表于2018-04-21 07:32 被阅读0次

    接上文继续学习建模算法优化改良。

    2015年2月,Aja Huang在Deepmind的同事在顶级学术期刊nature上发表的文章 Human-level control through deep reinforcement learning 用神经网络打游戏。这篇文章给AlphaGo提供新的方向:强化学习。

    强化学习(Reinforcement learning)是机器学习的一个分支,特别善於控制一只能够在某个环境下自主行动的个体 (autonomous agent),透过和环境之间的互动。(备注:强化学习定义可查阅《人工智能应用案例学习3》)

    借用吃豆人游戏进一步说明强化学习建模过程:自主行动的个体就是控制的吃豆人,环境就是迷宫,奖励就是吃到的豆子,行为就是上下左右的操作,强化学习的输入是:

    状态 (States) = 环境,例如迷宫的每一格是一个 state。

    动作 (Actions) = 在每个状态下,有什么行动是容许的。

    奖励 (Rewards) = 进入每个状态时,能带来正面或负面的价值。

    输出是:方案 (Policy) = 在每个状态下,你会选择哪个行动?也是一个函数。

    所以,需要根据S,A,R,来确定什么样的P是比较好的,通过不断的进行游戏,获得大量的交互数据,可以确定在每一个状态下,进行什么动作能获得最好的分数,而强化学习也就是利用神经网络来拟合这个过程。

    参考这种思路,Aja Huang给围棋也设计了一个评价函数v(s) 。此函数的功能是:量化评估围棋局面。使用v(s)可以让我们在MCTS的过程中不用走完全局(走完全盘耗时耗力,效率不高)就发现经必败。

    在利用P(s) 走了开局的20步后,如果有一个v(si) (i为当前状态)可以直接判断是否能赢,得到最后的结果r,不需要搜索到底,可以从效率(树剪枝,优化算法时间复杂度)上进一步增加MCTS的威力。

    很可惜的,现有的人类棋谱不足以得出这个评价函数(此处并不明白原理,先记录下来待后面深入分析)。所以Aja Huang决定用机器和机器对弈的方法来创造新的对局,也就是AlphaGo的左右互搏。

    神经网络的训练过程和结构

    先用P(s)和P(s)对弈,比如1万盘,得到1万个新棋谱,加入到训练集中,训练出 P1(s)。

    使用P1(s)和P1(s)对弈,得到另1万个新棋谱,加入训练集,训练出P2(s)。

    同理,进行多次的类似训练,训练出Pn(s),给最后的新策略命名为Pplus(s)。

    使用Pplus(s)和P(s)进行对弈,发现Pplus(s)胜率高,自对弈的方法就被证明是有效的。(之所以自对弈有效,是因为过程中没有放弃过随机,如此一来,大量的计算,就更可能覆盖到更多的可能性,对提高棋力可以产生有效的作用,同时因为概率的问题,不断的自我对弈造成下棋的路数集中)

    事实并没有那么美好,Aja Huang发现,使用Pplus(s)来代替P(s)进行MCTS反而棋力会下降。

    Aja Huang认为是Pplus(s)走棋的路数太集中(此处记下后续验证尝试),而MCTS需要更加发散的选择才能有更好的效果。

    相关文章

      网友评论

          本文标题:人工智能应用案例学习7

          本文链接:https://www.haomeiwen.com/subject/mpcdkftx.html