1:Alphago有什么了不起的?不就是算得快吗。ibm早在20年前就通过象棋战胜人类了。又是Google的一次营销。
2:alphago 实现人工智能了,电脑立即要超过人类占据地球了。
这两种想法哪个才是正确的那?严格地说,都不对。
所以我认为非常有必要给非计算机行业的同学们科普一下。由于是一篇科普文。所以我们不讨论卷积神经网络或MCTS这些东西。对原理感兴趣的同学能够:https://deepmind.com/alpha-go.html。
另外。欢迎加微信探讨各种问题或指出错误:lofocus
要理解什么才是真正的alphago?
必须弄明确下面几个问题。
1: 象棋早就被打败了。围棋有什么了不起?
用计算机怎么才干达到绝对的胜利?那就是穷举,就是把每一步每一种落子的可能都算一遍,然后电脑尽可能的往胜利的分支上去走,这样除非你也能看尽每一步棋。或者运气极佳,一个失误都没有,否则必输。要做到看尽每一步棋。须要多大的脑容量那?这主要取决于棋盘的大小,简化一下,不考虑落子的顺序和规则,象棋的难度是10的46次方,而围棋的难度是10的172次方。这么说对于没有算法复杂度概念的人可能非常难理解。10的172次方就是1后面跟172个零,而宇宙中原子总数量大概是1的80次方左右。
还不理解?我们缩小一下范围,假设象棋的难度是1,就是仅仅有一个格。谁先下谁赢。那么围棋就是1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。没错。依旧非常大。
这样的计算量,眼下电脑的计算能力是远远不够用的。此外。象棋的棋子是有差别的,电脑能够优先保证车马炮一类的,然后才去考虑小兵。加上象棋的规则复杂导致计算机不用考虑大量不合理的走法(术语叫剪枝)。所以计算象棋相对就简单多了。仅仅通过提高计算能力就能够达到打败天下无敌手。
围棋也有非常多不合法的落子方式能够去掉。去掉之后的难度大概是1的170次方,对。并没有卵用。
当然。还能够刨除一些可预知的不合理没有胜率的规则,可是难度依旧是不可计算的天文数字。通过计算机的计算能力打败人类围棋高手,眼下看不到不论什么希望。这也就是大部分人。包含非常多计算机领域的大牛,集体不看好alphago的原因。
2:围棋程序不是早就有了吗?狗狗就是提升了一点而已。
的确,非常早之前电脑就会下围棋,并且也下的不错,至少我下只是我的手机。这些软件是怎么做到的那?事实上就是用象棋程序的原理(当然有针对性的改善了,比方使用了蒙特卡洛搜索等等),这类程序太依赖计算,所以电脑性能越高,软件也就越厉害。只是前面说过了,围棋太复杂无法算尽。
所以这样的方式始终无法突破瓶颈。在人类高手面前看起来非常像白痴。
3:Google是怎么实现的?
这个问题讨论起来非常复杂,通俗的说。就是预先输入一大堆人类对战的棋谱,然后电脑下棋的时候。依据这些棋谱的某些特征去选择把棋子放在什么地方(注意。不是全然复制人类之前的下棋方法,而是依据数据分析推断)。它可能认为非常多地方都值得放棋子。那就把胜利最大的几个位置都測试一下,分析出一个胜率最高的位置。怎么确定哪个位置胜率最高那?就是把棋子放在一个位置,然后用同样的方法去推断对手的棋子会放在什么位置…如此反复,直到下完一整盘棋。看看是输是赢。这个过程会依据不同的选择反复非常多次,这样就找到一个胜率相对最高的位置。然后你会发现,通过这样的方法狗狗是无法进步的,由于人类没有那么多棋谱让它学习。所以,他会通过自己跟自己下棋来获得提高,并且他自己会下出什么奇怪的套路人类非常难预測。
怎么样?狗狗的进步方法是不是跟人类非常像?学习上:首先找老师学规则(程序狗写的),然后看各种名人的作品(输入人类数据),在然后自己反复练习(机器学习)。
对战上:纵观全局。考虑一下因该把棋子放在什么地方,然后在心里预演一下放在这里合不合适。
事实上,狗狗的实现就是对人了思考过程的模拟。
4:电脑要占据地球了?
然而并没有,先不说狗狗的算法有多通用,至少它全然不是你所理解的拥有了自主意识。它就仅仅会下围棋。稍做改动或者不用改动(眼下的算法还是须要改动的,看论文他们的算法还是针对围棋做了非常多特殊的设定)。就能够下象棋、打游戏、医疗、基因排序、经济预測等等等,可是它并不知道什么是程序员。什么是单身狗,也不会梦见电子羊。它更像是用统计学上的一些方法。做到了人类凭直觉完毕的事情。而不是具有了人类胡思乱想的能力。
5:狗狗根本不理解围棋,所以不是人工智能。大家都被骗了?
这个想法可能源于人类对人工智能以及对自己的认识不足。举个样例:人理解骑自行车吗?人生下来是本不会骑车的,可是通过学习都能够学会。从不会到会。差别是什么。是由于那个人如今理解自行车了吗?就个人来说,从不断摔倒,到能够撒把骑车,并没有特别的变化,我说不出速度和重心的关系,也谈不上理解骑车,但最好还是碍我转弯避让,自由穿梭。差别不是理解,而是训练。通过训练,得到反馈,做出调整。获得模式。
下棋也是这样,通过大量的训练,能够做出最好的反应,就可能会赢。
6:这有什么意义?
要说意义,我个人认为还是非常非常大的,这可能是本世纪最重要的一个事件,也可能是人类历史上最重要的一个事件。当前,前提是证明AlphaGo的方法的确可行。
尽管如今的狗狗不是一个通用的神经网络,想让下围棋的狗狗下象棋,是须要人工改动狗狗的逻辑制造一条新狗的。即使这样。这样的算法的应用场景依旧十分广泛,比方医疗、金融、自己主动驾驶、同声传译、甚至在数论、量子场论等非常多领域都实用武之地,如今,一些基层医生、律师、高级技工等行业也须要開始操心自己的饭碗了。他能解决的不是一个问题,而是一系列问题。他找到的未必是最佳解决方式,但至少超过了人类所能找到的全部解决方式。
的确。如今的狗狗还不具有自由意识。但不能说狗狗不具有自由意识就没有不论什么意义,就不叫人工智能。
假设狗狗真的具有独立思维,那是否应该叫“人类智能”那?况且。假设机器真的具有了自由意识。那对于人类的意义恐怕就不须要我在这写了。也没有围棋比赛了,人类应该考虑是否拿起武器去反抗了。
说究竟狗狗还是程序,还是各种指令的集合。
可是,谁又能说程序和运算不能是智能那?难道智能必须是由碳水化合物组成的肉身吗?假设人类能够制造一个绝对理性人,没有情感。没有意识,但无所不知无所不晓,智商全面碾压全部人类小肉虫,这台“机器”的发明是否是一件值得我们深思的事情那?当然,狗狗还远未达到这个程度,但它让我们看见了一丝希望。一道曙光。
今天,AlphaGo用事实证明了机器能够部分取代人类思考,让人脑思维结晶的权威性受到质疑,这绝对是一个崭新的開始。
。。
昨天,我们不相信计算机能够解决围棋问题,今天,我们是非依旧不相信计算机能够产生自由意志那?我们还是独一无二的吗?