引言
AlphaGo是google最近的一个人工智能项目,以下是百度百科的介绍:
阿尔法围棋(AlphaGo)是一款围棋人工智能程序,由位于英国伦敦的谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和杰米斯·哈萨比斯与他们的团队开发,这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子。
如何学习新技能
下面我详细介绍一下AlphaGo是怎样从0开始学习下子的。
- 研究者教会系统看盘面信息,其中包括黑子信息,白子信息,空着信息,围棋规则等。
- 通过学习高手对弈棋谱,学习了3000万高手落子,让系统预测该如何落子,预测准确率达到57% 。
- 通过与自己对弈2000万局进一步提高自己的能力,完成这一步的系统与第二步中的系统对弈达到80%的胜率。
同样学习如何看整个盘面局势也用类似的方法。
这里我们来分解一下整个学习的过程:
- 入门:第一步对应的是一个领域的基本知识,掌握以后就入门了。
- 模仿:一直和菜鸟下棋是不会有进步的,去模仿该领域高手的作品,此时就进阶了。
- 领悟:通过不停练习来提升自己的能力,逐渐形成自己的风格,又一个高手诞生了。
通过这次AlphaGo的胜利,我觉得上面的学习方法是对学习的很好的一种抽象,整个过程可以让一个人更好的学习掌握一个领域知识,下面我拿学习编程来举个例子:
在入门阶段,选择介绍一门编程语言,学习语法以及基础库的使用,然后去看一些基础的教程。
在模仿阶段,这里一定要接触高手的作品(去找该语言github上star比较多的项目),思考他们如何去构建一个项目,如何实现各个功能模块,等到学习几个项目之后,能够基本理解高手为什么这么实现的。
在领悟阶段,用之前学到的知识,自己尝试去做几个项目,不停回顾自己的项目,通过重构现有的代码来提升自己的编程能力:架构,以及功能实现。
这时候你的编程能力也应该是在中上层的水平了,就像AlphaGo一样,进入了职业选手的大门。
后记
人类在做这类学习的过程相比机器还是有优势的,一个是人类强大的抽象能力,还有人类的思考的能力,这大大减少了需要学习的量,可以看到机器在学习围棋的过程中用的数据是非常大的,而人类要达到这个水平需要的学习量大大小于机器的量。
这里只进阶到了高手,和顶尖水平还是有距离的,期待AlphaGo三月份和韩国围棋高手的对局,同样我们也要思考顶尖高手和普通高手的差距到底在哪里,如何去跨越。