美文网首页程序员@IT·互联网数据乐园
强化学习和AI适用场景的思考

强化学习和AI适用场景的思考

作者: b19707134332 | 来源:发表于2017-04-14 10:14 被阅读580次

    随着AlphaGo和围棋第一人柯洁的对战,强化学习又将迎来一波热潮。
    强化学习到底是怎么让机器能够玩游戏的,这个问题很久之前就困扰着我。
    (如果需要从数理上了解强化学习,请阅读参考资料,或者在网络上检索“强化学习”,本文只是一般科普文章,本文认为你多少知道什么是卷积神经网络,并且有初步的机器学习知识)

    机器玩游戏,需要克服哪些问题呢?

    机器如何知道游戏规则

    其实,按照现在的科技水平,人类还是无法开发一个泛用的人工智能,去胜任所有的游戏,游戏规则是人类告诉机器的。但是,这里的告诉,并非告诉机器所有的事情,具体告诉机器的事情如下:
    在当前的状态下,如果你选择了某种动作,游戏给予如何的评价(正面的,负面的,或者中立的,并且是量化的)。
    例如 Flappy Bird 中,在某个状态下,如果你让小鸟往上飞行之后,小鸟是通过一个水管了(正面),还是撞到水管了(负面),或者是没有发生任何事情(中立)
    当然,一般的游戏,都有一个表示分数的区域,有时候程序会告诉AI表示分数的区域在哪里,然后程序能够自己读取分数,知道在选择某个动作之后评价如何。

    当前状态怎么表示

    一般的视频游戏,如何让AI知道当前状态,归根到底就是让AI能够读图,懂得画面表示的意义。
    AI看到的只是游戏画面,就是像素,AI无法知道游戏的逻辑,目标到底是什么的!
    例如Flappy Bird 的游戏,AI是无法知道我们是想让小鸟尽量穿过水管的。
    就如图像识别AI一样,她能识别出图像中是否有猫,但是,她并不知道猫到底是什么。(很有趣的悖论)
    一般的游戏视频画面,最简单的1帧也要80x80的大小,考虑到彩色的游戏,即使转化为灰度,也有256种。
    80 x 80 x 256 =1638400种游戏状态,这个如论如何也是不能接受的。这里的话,还是祭出了图像处理的大杀器,卷积神经网络,通过卷积的各种技巧,将状态数控制在一个很小的,可接受的数值内。

    原理介绍

    强化学习的一个最简单的原理就是告诉机器,你在某个状态下,选择了某种动作,会得到何种反馈。并且使得你进入另一种什么样的状态。通过不断的训练,就是要让机器能够获得最大的正面的反馈。

    什么场景适合AI

    在AI疯狂的训练下,小鸟已经可以非常优雅的在水管之间穿梭自如了。
    其实,FlappyBird这个游戏,如果使用普通的程序来写的话,代码量其实不多(除去图像识别的代码,强化学习是用CNN卷积做的,两种思想没有可比性),也无需任何学习,理论上说,如果代码没有Bug的话,小鸟是可以永远一直飞下去的。
    当然,FlappyBird只是一个例子来描述强化学习的方法,也是一个合格的好的例子,够简单,能说明问题。
    有句话说得好,如果人类在一秒钟之内可以完成的任务,则该任务是适合AI来做的。
    但是,有些任务,如果用传统的编程来做的话,可能也能做得很好,而且避免了黑箱,难以调试,结果不稳定的缺陷。
    由于学习了ML,有时候,看到什么问题都考虑用ML的方法来解决,有了锤子什么都是钉子了。

    水果的分类

    Tensorflow来做的话,无非是给机器喂很多数据,高等,中等,低等,然后在使用softmax进行分类罢了。这样做的效果肯定也非常好,模型会给你拟合出来一个标准。但是,如果用传统程序来做的话,也是可以的,只是这个标准你需要事先确定罢了。所以说,ML在没有明确标准的时候,或者结果受到很多因素制约,同时还要考虑到概率分布的时候,则是非常适合的。

    简历过滤

    HR对于海量简历,是不是能够通过机器学习进行面试候选人的过滤呢?
    如果投简历的人的特征和录取概率可以有一个模型的话,理论上是可以的。收集很多简历,很多录取信息,建立一个模型也是可以的。但是现在也没有看到这样的模型被开发出来,其中理由不是技术可以说明的。
    (HR在过滤简历的时候,只是简单的过滤一下是否符合职位要求罢了。)

    参考资料
    程序员带你一步步分析AI如何玩Flappy Bird

    相关文章

      网友评论

        本文标题:强化学习和AI适用场景的思考

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