这些天都在没日没夜地关注一个话题,谷歌人工智能程序AlphaGo(国内网友亲切地称为“阿尔法狗”)以5:0击败欧洲职业围棋冠军樊麾二段,并在和世界冠军的比赛中2:0领先。
什么!!
19年前计算机击败国际象棋冠军卡斯帕罗夫的情景还历历在目,现在计算机又要来攻克围棋了吗!?
虚竹在天龙八部里自填一子,无意中以“自杀”破解“珍笼”棋局,逍遥子方才亲传掌门之位。难道以后“阿尔法狗”要出任逍遥派掌门了?
1933年,东渡日本19岁的吴清源迎战当时的日本棋坛霸主、已经60岁的本因坊秀哉,开局三招即是日本人从未见过的三三、星、天元布阵,快速进击逼得对方连连暂停“打卦”和弟子商量应对之策。随后以“新布局”开创棋坛新纪元。难道阿尔法狗会再造一个“新新布局”?
作为一个关心人工智能和人类命运的理科生,近些天刷了好些报道,记者们说“阿尔法狗是个‘价值神经网络’和‘策略神经网’络综合蒙特卡洛搜索树的程序”,但我觉得光知道这些概念是不够的。我想看看“阿尔法狗”的庐山真面目。
准备好棋盘和脑容量,一起来探索吧?
围棋棋盘是19x19路,所以一共是361个交叉点,每个交叉点有三种状态,可以用1表示黑子,-1表示白字,0表示无子,考虑到每个位置还可能有落子的时间、这个位置的气等其他信息,我们可以用一个361 * n维的向量来表示一个棋盘的状态。我们把一个棋盘状态向量记为s。
当状态s下,我们暂时不考虑无法落子的地方,可供下一步落子的空间也是361个。我们把下一步的落子的行动也用361维的向量来表示,记为a。
这样,设计一个围棋人工智能的程序,就转换成为了,任意给定一个s状态,寻找最好的应对策略a,让你的程序按照这个策略走,最后获得棋盘上最大的地盘。
如果你想要设计一个特别牛逼惊世骇俗的围棋程序,你会从哪里开始呢?对于在知唯盯谷歌DeepMind工作的黄士杰和他的小伙伴而言,第一招是:
蒙特卡洛搜索树(Monte-Carlo Tree Search)是一种“大智若愚”的方法。面对一个空白棋盘S0,黄士杰的老师Coulum最初对围棋一无所知,便假设所有落子方法分值都相等,设为1。然后扔了一个骰子,从361种落子方法中随机选择一个走法a0。Coulum想象自己落子之后,棋盘状态变成S1,然后继续假设对手也和自己一样二逼,对方也扔了一个筛子,随便瞎走了一步,这时棋盘状态变成S2,于是这两个二逼青年一直扔骰子下棋,一路走到Sn,最后肯定也能分出一个胜负r,赢了就r记为1,输了则为0,假设这第一次r=1。这样Coulum便算是在心中模拟了完整的一盘围棋。
Coulum心想,这样随机扔骰子也能赢?运气不错啊,那把刚才那个落山饥子方法(S0,a0)记下来,分值提高一些:
我刚才从(S0, a0)开始模拟赢了一次,r=1,那么新分数=2,除了第一步,后面几步运气也不错,那我把这些随机出的局面所对应落子方法(Si,ai)的分数都设为2吧。然后Coulum开始做第二次模拟,搭和这次扔骰子的时候Coulum对围棋已经不是一无所知了,但也知道的不是太多,所以这次除(S0, a0)的分值是2之外,其他落子方法的分数还是1。再次选择a0的概率要比其他方法高一点点。
那位假想中的二逼对手也用同样的方法更新了自己的新分数,他会选择一个a1作为应对。如法炮制,Coulum又和想象中的对手又下了一盘稍微不那么二逼的棋,结果他又赢了,Coulum于是继续调整他的模拟路径上相应的分数,把它们都+1。随着想象中的棋局下得越来越多,那些看起来不错的落子方案的分数就会越来越高,而这些落子方案越是有前途,就会被更多的选中进行推演,于是最有“前途”的落子方法就会“涌现”出来。
最后,Coulum在想象中下完10万盘棋之后,选择他推演过次数最多的那个方案落子,而这时,Coulum才真正下了第一步棋。
蒙特卡洛搜索树华丽转身为相当深刻的方法,可以看到它有两个很有意思的特点:
1)没有任何人工的feature,完全依靠规则本身,通过不断想象自对弈来提高能力。这和深蓝战胜卡斯帕罗夫完全不同,深蓝包含了很多人工设计的规则。MCTS靠的是一种类似遗传算法的自我进化,让靠谱的方法自我涌现出来。让我想起了卡尔文在《大脑如何思维》中说的思维的达尔文主义[6]。
2)MCTS可以连续运行,在对手思考对策的同时自己也可以思考对策。Coulum下完第一步之后,完全不必要停下,可以继续进行想象中的对弈,直到对手落子。Coulum随后从对手落子之后的状态开始计算,但是之前的想象中的对弈完全可以保留,因为对手的落子完全可能出现在之前想象中的对弈中,所以之前的计算是有用的。这就像人在进行对弈的时候,可以不断思考,不会因为等待对手行动而中断。这一点Coulum的程序非常像人,酷毙了。
但黄士杰很快意识到他老师的程序仍然有局限:初始策略太简单。我们需要更高效地扔骰子。
如何更高效的扔骰子呢?
用P_human()来扔。
如果某一步被随机到很多次,就应该主要依据模拟得到的概率而非P_human。
所以P_human的初始分会被打个折扣:
这样就既可以用P_human快速定位比较好的落子方案,又给了其他位置一定的概率。看起来很美,然后实际 *** 作中却发现:“然并卵”。因为,P_human()计算太慢了。
一次P_human()计算需要3ms,相对于原来随机扔骰子不到1us,慢了3000倍。如果不能快速模拟对局,就找不到妙招,棋力就不能提高。所以,黄士杰训练了一个简化版的P_human_fast(),把神经网络层数、输入特征都减少,耗时下降到了2us,基本满足了要求。先以P_human()来开局,走前面大概20多步,后面再使用P_human_fast()快速走到最后。兼顾了准确度和效率。
这样便综合了深度神经网络和MCTS两种方案,此时黄士杰的围棋程序已经可以战胜所有其他电脑,虽然距离人类职业选手仍有不小的差距,但他在2015年那篇论文的最后部分信心满满的表示:“我们围棋软件所使用的神经网络和蒙特卡洛方法都可以随着训练集的增长和计算力的加强(比如增加CPU数)而同步增强,我们正前进在正确的道路上。”
看样子,下一步的突破很快就将到来。同年2月,黄士杰在Deepmind的同事在顶级学术期刊nature上发表了“用神经网络打游戏”的文章[2]。这篇神作,为进一步提高MCTS的棋力,指明了前进的新方向:
红白机很多人小时候都玩过,你能都打通吗?黄士杰的同事通过“强化学习”方法训练的程序在类似红白机的游戏机上打通了200多个游戏,大多数得分都比人类还好。
“强化学习”是一类机器学习方法,Agent通过和环境s的交互,选择下一步的动作a,这个动作会影响环境s,给Agent一个reward,Agent然后继续和环境交互。游戏结束的时候,Agent得到一个最后总分r。这时我们把之前的环境状态s、动作a匹配起来就得到了一系列<s,a>,设定目标为最后的总得分r,我们可以训练一个神经网络去拟合在状态s下,做动作a的总得分。下一次玩游戏的时候,我们就可以根据当前状态s,去选择最后总得分最大的动作a。通过不断玩游戏,我们对<s,a>下总得分的估计就会越来越准确,游戏也玩儿得越来越好。
打砖块游戏有一个秘诀:把球打到墙的后面去,球就会自己反d得分。强化学习的程序在玩了600盘以后,学到这个秘诀:球快要把墙打穿的时候评价函数v的分值就会急剧上升。
机器学习的开山鼻祖Samuel早在1967年就用自对弈的方法来学习国际跳棋[7],而之前的蒙特卡洛搜索树也是一个自对弈的过程。但是现在黄士杰不仅有一个从人类对弈中学习出的P_human这样一个高起点,而且有一个神经网络可以从对弈样本中学习,有理由相信这次会有更好的结果。
黄士杰准备在MCTS框架之上融合局面评估函数v()。这次还是用P_human作为初始分开局,每局选择分数最高的方案落子,下到第L步之后,改用P_human_fast把剩下的棋局走完,同时调用v(SL),评估局面的获胜概率。然后按照如下规则更新整个树的分数:
前两项和原来一样,如果待更新的节点就是叶子节点,那局面评估分就是v(SL)。如果是待更新的节点是上级节点,局面评估分是该节点所有叶子节点v()的平均值。
如果v()表示大局观,“P_human_fast模拟对局”表示快速验算,那么上面的方法就是大局观和快速模拟验算并重。如果你不服,非要做一个0.5: 0.5之外的权重,黄士杰团队已经实验了目前的程序对阵其他权重有95%的胜率。
以上,便是阿尔法狗的庐山真面目。
上图演示了阿尔法狗和樊麾对弈时的计算过程,阿尔法狗执黑,红圈是阿尔法狗实际落子的地方。1、2、3和后面的数字表示他想象中的之后双方下一步落子的地方。白色方框是樊麾的实际落子。在复盘时,樊麾觉得位置1的走法更好。
深度学习、蒙特卡洛搜索树,自我进化三招齐出,所有其他围棋ai都毫无还手之力。99%的胜率不说,“阿尔法狗”还可以在让四子的情况下以77%的胜率击败crazystone。“阿尔法狗”利用超过170个GPU,粗略估算超过800万核并行计算,不仅有前期训练过程中模仿人类,自我对弈不断进化,还有实战时的模拟对局可以实时进化,已经把现有方法发挥到了极限,是目前人工智能领域绝对的巅峰之作。
围棋是NP-hard问题,如果用一个原子来存储围棋可能的状态,把全宇宙的原子加起来都不够储存所有的状态。于是我们把这样的问题转换为寻找一个函数P,当状态为S时,计算最优的落子方案a = P(s)。我们看到,无论是“狂拽酷炫”的深度学习,还是“大智若愚”的MCTS,都是对P(s)的越来越精确的估计,但即使引入了“左右互搏”来强化学习,黄士杰和团队仍然做了大量的细节工作。所以只有一步一个脚印,面对挑战不断拆解,用耐心与细心,还有辛勤的汗水,才能取得一点又一点的进步,而这些进步积累在一起,终于让计算机达到并超过了人类职业选手的水平。
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间.
英语作文human vs alphagoGoogle's artificial intelligence-driven AlphaGo sofare program will challenge Ke Jie, the world's top professional Go player, at China's Future of Go Summit in May. The prospect of this petition beeen human and artificial intelligence has captured the attention of the Chinese public, where the game was invented more than 2,500 years ago, and driven interest in Google's DeepMind machine learning method that developed AlphaGo.We believe a machine could never replace a person as an adversary in future.It's a cold machine without blood, while we have spiritual power.
怎么看待alphago的这个失误谷歌非常有谋略,先让阿尔法狗连赢三次,奠定胜利的事实,展示人工智能的厉害!让人恐慌! 然后,谷歌让阿尔法狗输棋给李世石,以明白无误的方式告诉恐慌的人们:不要害怕,我们掌控着人工智能的! 如果人工智能把人逼上绝路,人工智能产业就会遭到人们的封杀! 谷歌输一局,缓和局面。
中日韩还有成千上万围棋学习者和相关从业人员,Google是商业公司,当然不会把事情做绝,肯定会考量这方面的因素。
比赛结束,alphago四比一完胜李世石,仅胜利的一局有很多人认为是谷歌为了让alphago有世界排名而故意输的一局,因为如果一个棋手一直连胜,是没有世界排名的,输了一局才裤缺衡有排名,按照官方发布目前alphago排名世界第二,中国小将柯杰世界第一。
如何评价AlphaGo的围棋水平
AlphaGo能够战胜李世石的确证明了他是有职业顶尖的水平,也就是的职业九段,其计算能力与局部分析能力超越职业九段!可是,AlphaGo要想拿到扮指职业冠军是基本不可能的,因为它不会自主学习,需要输入对方的棋谱才能占优优势。
此外,在局部与大局的判断上,AlphaGo是有缺陷的,如果是遇到巅峰时期的李昌镐或是聂老聂卫平先生,折现缺点就会被无限放大。
总而言之,现在它的对局还是太少了,需要更多的对局与研究,看不同的棋风与派别对它的胜率的影响,究竟综合实力是多少,还需要考究!
人工智能的利与弊作文结尾?机器人还是不一样,完全不受外界与情绪的任何干扰,坐下便拼杀起来。
它的芯片经历了十年换代,几乎对所有围棋套路了如指掌,面对我的每一步棋,都能识破我的意图,找到最合适的解决方法,更别提失误了,而我却并不急躁,慢慢悠悠,心中早胡做已打好了算盘。
这盘棋下得出奇得慢,半个月,1个月,我也并不着急,AlphaGo作为一个高智商机器人也能准确捕捉到我的所有需求,我们不仅棋下得有条不紊,它更是端茶倒水,冷风热气,无微不至。
这棋转眼便下了三个月,我打定主意,心中不急,这AlphaGo作为机器人便更不知着急了,倒是观众们耐心早已磨完,他们催促也好,咒骂也罢,我自不动,每日只想一步棋,每日只下一步棋,但我内心却从未平静。
我等待着机会,更等待着灵感,后来已无人有心再关注这场比赛,我的心中也越发平静了。
直到那一天,我依如往常早早起床,一边诵读着道德经,一边在园中散步。
突然,一个灵感穿过我的头脑,一个阴阳卦象图转变为了一幅棋盘,“我若击杀这个未曾关注过的棋点,他岂不再无机会?”我哈哈大笑,回到棋盘前,下了这一步我等了许久的棋,不出所料,AlphaGo一筹莫展,投子认输。
世界轰动,人们重新将关注点拉到了我身上,我也不过多解释,手放背后:“道可道,非常道……”我先人一盘棋能下几个月,参悟世间之道,下的是道,而非棋,这岂是一个机器人能理解的?”从此之后,人们不再挑战AlphaGo,亦不再过度追求棋中胜负,他们好像也沉静了下来,回归了这项运动最本质的精髓,思考人生,思考自然,思考世界,找到了心中的那片桃花源。
如何评价柯洁与 AlphaGo 的对决柯洁经历了英雄般的战斗后,依然第二局输给AlphaGo。
最有价值的信息可能来自AlphaGo之父萨比斯,中盘阶段他评论说:“不可思议,根据AlphaGo的评估,柯洁现在下得很完美。
”赛后萨比斯则评论:“这是一场惊心动魄的令人惊奇的比赛,柯洁几乎把AlphaGo逼到了极限。
”柯洁今天的最大收获是测出阿法狗的真实水平。
期望这次比赛能够验证。
当然它有两个前提条件,一是柯洁把最好水平发挥出来,二是AlphaGo能够经受真正的考验,而不是表面看它只赢一两个子,实际上后台胜率显示根本没有机会。
前天的第一局,AlphaGo赢了1.5目。
这是一个很小的差距,但柯洁下得谈不上多出色,因为从头到尾他基本没什么机会。
AlphaGo并不是一个赌徒,能赢100目绝不赢99;它是根据胜率估算来行棋的,如果赢1目而它认为胜率是100%,就没必要去下赢100目而胜率只有99%的棋。
所以,第一局柯洁远远没有逼出AlphaGo的真正实力。
昨天AlphaGo方面的消息,认为这次虽然只是一个单机版,但棋力已经比去年赢李世石的时候提高了三子。
这是一个挺吓人的消息,因为它会让人类棋手觉得,目前这个版本至少比人类强三子以上。
老实讲这挺绝望的,三子以上,四子。
那等于彻底宣布人类棋手跟AlphaGo已经是天壤之别。
知道,面对一个可以让四子的对手,这是职业和业余的差距,比赛已经失去意义,准确地说那叫戏耍。
它可以只赢1目甚至半目,但不说明任何问题,就像柯洁也可以让只输半目,但那又能说明什么。
难道会跑大街上喊,快看,柯洁只赢了半目。
谁都知道,柯洁想怎么赢就怎么赢,半目和100目没差别。
今天的比赛,由于“几乎把AlphaGo逼到了极限”,虽然不是让子棋,但基本可以猜出,在人类棋手高水平发挥的前提下,目前AlphaGo让不到人类三子,可能是二子或者略多。
挂盘讲解的李世石也做出这种判断:AlphaGo并没有提升三子的实力,估计大概有二子。
至此,本次比赛人类棋手的目标或者说心愿已经达到:测试出AlphaGo的真正实力。
否则,AlphaGo就永远是上帝般的存在。
知道它强,但不知道它到底多强,所以它就是上帝。
知道,没有上帝。
如果由于无法评测AI(人工智能)的水平,而把它视为上帝一样的存在,这不是人类进化或者说发展的方向。
等于把命运交给未知,哪怕这个未知是人类创造出来的,也有理由疑虑甚至恐惧。
所以要感谢柯杰,不愧围棋第一人,他今天的勇气和表现,至少让暂时可以从外部角度了解到AlphaGo的真实水平。
这是比胜负更重要的事情。
如何评价AlphaGo题目:《人工智能》3月15日,举世瞩目的“人机大战”尘埃落定,人工智能“阿尔法狗围棋”(AlphaGo)以4:1的比分战胜人类围棋顶尖高手李世石九段,为世人留下一个不愿接受又不得不接受的事实。
面对“阿尔法狗围棋”(AlphaGo),有人不服,如中国的超级围棋新星柯洁九段,就公开向“阿尔法狗围棋”(AlphaGo)叫板:“你赢不了我!”有人叹息:人类智慧最后的尊严在一只“小狗”面前丢失。
有人甚至悲观地认为,机器统治人类的时代即将来临。
其实,所谓人类尊严、所谓机器人的统治时代,只是我们一些人的臆想,“阿尔法狗围棋”(AlphaGo)的胜利,说到底就是一次技术革命的胜利,是人类对自身的一次超越。
正如西安交通大学副校长、国家重点基础研究计划(973)“基于视认知的非结构化信息处理基础理论与关键技术”首席科学家徐宗本说的:“任何人工智能技术的成功一定是当代最新技术综合运用的成功,片面说成谁战胜谁是不公平的,也是无意义的,说人类智慧的最后壁垒被攻破,这都是无稽之谈。
”“阿尔法狗围棋”(AlphaGo)的胜利,背后的最大价值在于,它激励人们持续不断地探索过去人工智能领域一直看似难以实现的人类智能级别。
从这一点上看,人工智能的胜利也有非凡的意义,甚至可以说具有划时代的意义。
是的,翻开人类历史,哪一次技术革命不带来人类社会翻天覆地的变化?蒸汽机的发明、使用,使人类从农业手工业时代进入了工业社会;电动机的诞生,使人类从工业社会跨入了现代化。
而以原子能、电子计算机、空间技术和生物工程的发明与应用为主要标志的信息技术革命,更让人类从此进入了自动化、信息化时代。
每一次技术革命,伴随的都是生产力的发展和人类自身的解放。
“阿尔法狗围棋”(AlphaGo)的 胜利,是不是会掀起又一次技术革命,我们还需拭目以待。
然而,人工智能的进步,却可以让我们展望到人类美妙无比的前景。
我们似乎可以看到,不久的将来,到 处都是机器人在人们的指令下为人们服务;我们似乎可以看到,那些对于目前医术来说几乎无解的人类大脑和神经疾病,如自闭症、老年痴呆症这样的国际医学难 题,随着人工智能的进步,一切都会迎刃而解;我们似乎可以看到,有了人工智能的协助,人类真正步入了大同的理想社会。
是的,“阿尔法狗围棋”(AlphaGo)的胜利,是人类的智慧向前迈出的又一步,有了这一步,我们的世界将更加美好。
当然,面对这些进步,我们不能只是围观、娱乐和敬仰,我们应该用我们的智慧,去促成人工智能更大的进步!
AlphaGo是什么 谷歌AlphaGo全解读AlphaGo一般指阿尔法围棋阿尔法围棋(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序。
其主要工作原理是“深度学习”。
阿尔法围棋(AlphaGo)是一款围棋人工智能程序。
其主要工作原理是“深度学习”。
“深度学习”是指多层的人工神经网络和训练它的方法。
一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。
这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
对于最强AlphaGo Zero如何炼成的真心话,都在这里最强AlphaGo Zero怎样炼成刚刚,Deepmind在Reddit的Machine Learning板块举办了在线答疑活动AMA,Deepmind强化学习组负责人David Silver和其同事热情地回答了网友们提出的各种问题。
由于在AMA前一天Deepmind刚刚发表了《Mastering the game of Go without human knowledge》(不使用人类知识掌握围棋)的论文,相关的提问和讨论也异常热烈。
什么是AMA?AMA(Ask Me Anything)是由Reddit的特色栏目,你也可以将其理解为在线的“真心话大冒险”。
AMA一般会约定一个时间,并提前若干天在Reddit上收集问题,回答者统一解答。
本次Deepmind AMA的回答人是:David Silver:Deepmind强化学习组负责人,AlphaGo首席研究员。
David Silver1997年毕业于剑桥大学,获得艾迪生威斯利奖。
David于2004年在阿尔伯塔大学获得计算机博士学位,2013年加盟DeepMind,是AlphaGo项目的主要技术负责人。
Julian Schritieser:Deepmind高级软件工程师。
此前有多位机器学习界的大牛/公司在Reddit Machine Learning版块开设AMA,包括:Google Brain Team、OpenAI Research Team 、Andrew Ng and Adam Coates、Jürgen Schmidhuber、Geoffrey Hinton、Michael Jordan 、Yann LeCun、Yoshua Bengio等。
我们从今天Deepmind的AMA中选取了一些代表性的问题,整理如下:关于论文与技术细节Q: Deepmind Zero的训练为什么如此稳定?深层次的增强学习是不稳定和容易遗忘的,自我对局也是不稳定和容易遗忘的,如果没有一个好的基于模仿的初始化状态和历史检查点,二者结合在一起应该是一个灾难...但Zero从零开始,我没有看到论文中有这部分的内容,你们是怎么做到的呢?David Silver:在深层增强学习上,AlphaGo Zero与典型的无模式算法(如策略梯度或者Q学习)采用的是完全不同的算法。
通过使用AlphaGo搜索,我们可以极大改进策略和自我对局的结果,然后我们会用简单的、基于梯度的更新来训练下一个策略及价值网络。
比起基于简便的基于梯度的策略改进,这样的做法会更加稳定。
Q:我注意到ELO等级分增长的数据只与到第40天,是否是因为论文截稿的原因?或者说之后AlphaGo的数据不再显著改善?David Silver:AlphaGo已经退役了!这意味着我们将人员和硬件资源转移到其他AI问题中,我们还有很长的路要走呐。
Q:关于论文的两个问题:Q1:您能解释为什么AlphaGo的残差块输入尺寸为19x19x17吗?我不知道为什么每个对局者需要用8个堆叠的二进制特征层来描述?我觉得1、2个层就够了啊。
虽然我不是100%理解围棋的规则,但8个层看起来也多了点吧?Q2:由于整个通道使用自我对局与最近的/最好的模型进行比较,你们觉得这对于采用参数空间的特定SGD驱动轨迹对否会有过拟合的风险?David Silver:说起来使用表征可能比现在用的8层堆叠的做法更好!但我们使用堆叠的方式观察历史数据有三个原因:1)它与其他领域的常见输入一致;2)我们需要一些历史状态来表示被KO3)如果有一些历史数据,我们可以更好地猜测对手最近下的位置,这可以作为一种关注机制(注:在围棋中,这叫“敌之要点即我之要点”),而第17层用于标注我们现在究竟是执黑子还是白子,因为要考虑贴目的关系。
Q:有了强大的棋类引擎,我们可以给玩家一个评级——例如Elo围棋等级分就是通过棋手对局的分析逐步得出的,那么AlphaGo是否可以对过去有等级分前的棋手的实力进行分析?这可能为研究人类的认知提供一个平台。
Julian Schritieser:感谢分享,这个主意很棒!我认为在围棋中这完全可以做到,或许可以用最佳应对和实际应对的价值差异或者政策网络给每一手位置评估得到的概率来进行?我有空的时候试一下。
Q: 既然AlphaGo已经退役了,是否有将其开源的计划?这将对围棋社区和机器学习研究产生巨大的影响。
还有,Hassabis在乌镇宣称的围棋工具将会什么时候发布?David Silver:现在这个工具正在准备中。
不久后你就能看到新的消息。
Q:AlphaGo开发过程中,在系统架构上遇到的最大障碍是什么?David Silver:我们遇到的一个重大挑战是在和李世石比赛的时候,当时我们意识到AlphaGo偶尔会受到我们所谓的“妄想”的影响,也就是说,程序可能会错误理解当前盘面局势,并在错误的方向上持续许多步。
我们尝试了许多方案,包括引入更多的围棋知识或人类元知识来解决这个问题。
但最终我们取得了成功,从AlphaGo本身解决了这个问题,更多地依靠强化学习的力量来获得更高质量的解决方案。
围棋爱好者的问题Q:1846年,在十四世本因坊迹目秀策与十一世井上幻庵因硕的一盘对局中,秀策下的第127手让幻庵因硕一时惊急两耳发赤,该手成为扭转败局的“耳赤一手”。
如果是AlphaGo,是否也会下出相同的一首棋?Julian Schritieser:我问了樊麾,他的回答是这样的:当时的围棋不贴目,而AlphaGo的对局中,黑棋需贴7.5目。
贴目情况不同造成了古今棋局的差异,如果让AlphaGo穿越到当年下那一手,很有可能下的是不同的另一个地方。
Q:从已发布的AlphaGo相互对局看,执白子的时间更为充裕,因...
AlphaGo这个系统主要由几个部分组成:走棋网络(Policy Neork),给定当前局面,预测/采样下一步的走棋。
快速走子(Fast rollout),目标和1一样,但在适当牺牲走棋质量的条件下,速度要比1快1000倍。
估值网络(Value Neork),给定当前局面,估计是白胜还是黑胜。
蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS),把以上这三个部分连起来,形成一个完整的系统。
我们的DarkForest和AlphaGo同样是用4搭建的系统。
DarkForest较AlphaGo而言,在训练时加强了1,而少了2和3,然后以开源软件Pachi的缺省策略 (default policy)部分替代了2的功能。
以下介绍下各部分。
1、走棋网络走棋网络把当前局面作为输入,预测/采样下一步的走棋。
它的预测不只给出最强的一手,而是对棋盘上所有可能的下一着给一个分数。
棋盘上有361个点,它就给出361个数,好招的分数比坏招要高。
DarkForest在这部分有创新,通过在训练时预测三步而非一步,提高了策略输出的质量,和他们在使用增强学习进行自我对局后得到的走棋网络(RL neork)的效果相当。
当然,他们并没有在最后的系统中使用增强学习后的网络,而是用了直接通过训练学习到的网络(SL neork),理由是RL neork输出的走棋缺乏变化,对搜索不利。
有意思的是在AlphaGo为了速度上的考虑,只用了宽度为192的网络,而并没有使用最好的宽度为384的网络(见图2(a)),所以要是GPU更快一点(或者更多一点),AlphaGo肯定是会变得更强的。
所谓的0.1秒走一步,就是纯粹用这样的网络,下出有最高置信度的合法着法。
这种做法一点也没有做搜索,但是大局观非常强,不会陷入局部战斗中,说它建模了“棋感”一点也没有错。
我们把DarkForest的走棋网络直接放上KGS就有3d的水平,让所有人都惊叹了下。
可以说,这一波围棋AI的突破,主要得益于走棋网络的突破。
这个在以前是不可想像的,以前用的是基于规则,或者基于局部形状再加上简单线性分类器训练的走子生成法,需要慢慢调参数年,才有进步。
当然,只用走棋网络问题也很多,就我们在DarkForest上看到的来说,会不顾大小无谓争劫,会无谓脱先,不顾局部死活,对杀出错,等等。
有点像高手不经认真思考的随手棋。
因为走棋网络没有价值判断功能,只是凭“直觉”在下棋,只有在加了搜索之后,电脑才有价值判断的能力。
2、快速走子那有了走棋网络,为什么还要做快速走子呢?有两个原因,首先走棋网络的运行速度是比较慢的,AlphaGo说是3毫秒,我们这里也差不多,而快速走子能做到几微秒级别,差了1000倍。
所以在走棋网络没有返回的时候让CPU不闲着先搜索起来是很重要的,等到网络返回更好的着法后,再更新对应的着法信息。
其次,快速走子可以用来评估盘面。
由于天文数字般的可能局面数,围棋的搜索是毫无希望走到底的,搜索到一定程度就要对现有局面做个估分。
在没有估值网络的时候,不像国象可以通过算棋子的分数来对盘面做比较精确的估值,围棋盘面的估计得要通过模拟走子来进行,从当前盘面一路走到底,不考虑岔路地算出胜负,然后把胜负值作为当前盘面价值的一个估计。
这里有个需要权衡的地方:在同等时间下,模拟走子的质量高,单次估值精度高但走子速度慢;模拟走子速度快乃至使用随机走子,虽然单次估值精度低,但可以多模拟几次算平均值,效果未必不好。
所以说,如果有一个质量高又速度快的走子策略,那对于棋力的提高是非常有帮助的。
为了达到这个目标,神经网络的模型就显得太慢,还是要用传统的局部特征匹配(local pattern matching)加线性回归(logistic regression)的方法,这办法虽然不新但非常好使,几乎所有的广告推荐,竞价排名,新闻排序,都是用的它。
与更为传统的基于规则的方案相比,它在吸纳了众多高手对局之后就具备了用梯度下降法自动调参的能力,所以性能提高起来会更快更省心。
AlphaGo用这个办法达到了2微秒的走子速度和24.2%的走子准确率。
24.2%的意思是说它的最好预测和围棋高手的下子有0.242的概率是重合的,相比之下,走棋网络在GPU上用2毫秒能达到57%的准确率。
这里,我们就看到了走子速度和精度的权衡。
和训练深度学习模型不同,快速走子用到了局部特征匹配,自然需要一些围棋的领域知识来选择局部特征。
对此AlphaGo只提供了局部特征的数目(见Extended Table 4),而没有说明特征的具体细节。
我最近也实验了他们的办法,达到了25.1%的准确率和4-5微秒的走子速度,然而全系统整合下来并没有复现他们的水平。
我感觉上24.2%并不能完全概括他们快速走子的棋力,因为只要走错关键的一步,局面判断就完全错误了;而图2(b)更能体现他们快速走子对盘面形势估计的精确度,要能达到他们图2(b)这样的水准,比简单地匹配24.2%要做更多的工作,而他们并未在文章中强调这一点。
在AlphaGo有了快速走子之后,不需要走棋网络和估值网络,不借助任何深度学习和GPU的帮助,不使用增强学习,在单机上就已经达到了3d的水平(见Extended Table 7倒数第二行),这是相当厉害的了。
任何使用传统方法在单机上达...
转载请注明出处作文大全网 » alphago是什么语言开发的
阿尔法围棋(AlphaGo)是一款围棋人工智能程序,由位于英国伦敦的谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和戴密斯·哈萨比斯与他们的团队开发,这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子脊拦。2015年10月阿尔法围棋以5:0完胜欧洲围棋冠军、职业二段选手樊麾;2016年3月对战世界围棋冠军、职业九段选手李世石。阿尔法围棋(AlphaGo)是一款围棋人工智能程序。这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子。
深度学习
阿尔法围棋(AlphaGo)的主要工作原理是“深度学习”。“深度学习”是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
两个大脑
阿尔法围棋(AlphaGo)是通过两个不同神经网络“大脑”合作孙敏来改进下棋。这些大脑是多层神经网络跟那些Google图片搜索引擎识别图片在结构上是相似的。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13 个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。
这些网络通过反复训练来检查结果,再去校对调整参数,去让下次执行更好。这个处理器有大量的随机性元素,所以人们是不可能精确知道网络是如则野枝何“思考”的,但更多的训练后能让它进化到更好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)