本文做者:HelloDeveloper算法
2014 年 9 月 20 日,在由@百度主办、@InfoQ负责策划组织和实施的第 54 期百度技术沙龙活动上,来自百度天然语言处理部的杨程和来自清华大学自动化系控制理论与技术研究所的赵明国,两位讲师分享了各自在人工智能及机器学习领域的相关经验。微信
本次分享的话题分别是“ 计算机围棋 - 蒙特卡洛搜索与统计学习”和“ RoboCup 人形组的技术与挑战”。本文将对这两个主题分享作下简单的回顾,同时提供相关资料的下载。机器学习
主题一:计算机围棋 - 蒙特卡洛搜索与统计学习(下载讲稿)分布式
计算机博弈在人工智能这个领域是一个重要的研究方向,这与围棋的特性息息相关。杨程举例道:好比说 19 路的围棋它有 361 个交叉点,若是咱们简单地估计它的组合数的话,应该是大概 361 个节程,这可谓一个天文数字了。因此咱们也常说它的空间复杂度是近似无穷大的概念。除了空间无穷大之外,它的状态也没有办法评估。任意地给一个棋盘的状态,有 ABCD 可选的点,咱们怎么样知道哪一个点是最好的,或者说哪一个点的价值高,好有多好,坏有多坏。围棋这块,到如今也没有办法作。这和人工智能的某些领域还比较相似,因此咱们把这个领域做为试金石,若是这个领域研究好,相关的领域也会有所提高,蒙特卡洛搜索就是在这样的背景下应运而生。性能
在介绍完蒙特卡洛搜索的背景后,杨老师便开始展开具体的技术知识分享。他首先给你们展现了一个树型结构图(Mini-Max 搜索),这是临河博弈的解决方案,听说仍是五十年代提出来的。蒙特卡洛搜索实际上就是基于 Mini-Max 来作的。九十年代初,有一个德国人就把它首先用在了围棋上,可是那时候效果不好,因此他在论文中也提到了,看上去很可笑的一个方程,他没有办法用计算语言告诉你,黑必定好,仍是白必定好,至少他翻译不成计算语言。另外,棋盘上众多的闲点,每个点价值最大,ABCD,哪些值值多少分,它是没办法告诉你的。因此早期的阿尔法贝塔搜索,在搜到 E 节点的时候,会写一个屏盘数,让这个去决定哪一个点好,哪一个坏,返回回来。若是这个不许的话,搜索确定是一塌糊涂。后来蒙特卡洛这个办法,既然到了一个点不知道哪一个好,哪一个坏,就干脆一直搜,搜到咱们能够判别的状态,这样咱们就很容易判断,这个围棋的胜负了。学习
关于蒙特卡洛搜索其实包含两个部分,一个是 In-Tree 部分和 Out-Tree 部分。In-Tree 的时候究竟怎么搜索?Out-Tree,蒙特卡洛的思想就是一个随机下子,就是说既然过了树节点和叶子节点之后,双方能够随机在棋盘上扔,扔到一个状态后咱们再数一下谁赢谁负了。可是一次搜索确定不行的,咱们通过大量仿真之后,发现 0.75 是一个均值,就是说走这条路 75% 赢了。咱们大量作这样的仿真,而后每个节点的时候咱们选择均值最大的那个分值,蒙特卡洛搜索的基本思想就是这样。人工智能
固然蒙特卡洛搜索它仍是不够准确,其实最关键的缘由在于:咱们在每个树节点的时候,怎么判断应该往哪边走,这个很困难。这里面仍是有些很深的东西在统计学上。咱们能够探索它的均值是否是最好,多去利用它。首先要解决探索与利用的平衡。2002 年,一个奥地利人提出了 UCB 的计算,这个算法要求刚开始的时候,赌徒每次都试一次,试完一次之后,就开始作选择了,咱们看一下这个地方有这个公式,R,表示我如今第 K 个手臂拿到了全部的金币数,TK(N)表示在 N 次试验中,第 K 个手臂总共实验的次数,也就是说 R/T 是均值,后面是一个根号,这个叫作一个探讨项,就是咱们刚才说的,前面的是均值最大,固然均值最大不是咱们必定要的,因此咱们须要有一个探索项,咱们每一次作选择的时候,其实是要求最大的整个公式,咱们就选择这个。spa
UCB 和 UCB1 Tuned 产生了两个公式,在实验中公式 2 比公式 1 效果要好的多。咱们看看 UCT 的算法,它实际上是很巧妙地借助了 Banit 的算法,可是问题来了,刚开始的时候在内存里是没有树的,是空的,这个树怎么增加?由于这个树每一个节点都会出不少统计值,因此你树的形状长的好很差看,若是你太平了,好比像彻底二叉树那样,好的坏的没区别,这个树确定是不行的,咱们但愿这个树好的方向伸展的很深,坏的很浅,因此这个树的增加在咱们这个探索的过程也是很重要的。翻译
最后,杨老师总结到:今天的分享内容理论有些复杂,系统也相对复杂,一个小时确定是不够的,若是你们感兴趣,能够私下讨论,一块儿交流。blog
主题二:Robocup 人形组的技术与挑战
什么是 Robocup?
来自清华大学的赵明国老师分享了提到:Robocup 就是机器人踢足球。这个相信你们已经有所了解了。就像今年刚刚在巴西举办的机器人足球锦标赛同样,它由一个 Robocup 协会举办,形式和人的作法是同样的。主要研究两个问题,一个是多智能系统,另外一个是分布式智能系统。由于机器人必定是多个机器人足球一个团队踢球,这样做为多智能体的一个平台是获得你们公认的。每一个机器人踢球有独立思考,而后造成团队合做,因此咱们叫分布式智能。把这两个结合起来当一个平台去作。
Robocup 的目的是什么?
1997 年,深蓝打败了当时人类的第一把交椅,就是国际象棋上的卡斯爬罗副,这做为国际象棋上很是标志性的节点,这个就意味着人工智能再往下发展要有一个新目标。新目标选择什么好呢?通过几年的讨论,包括在阿尔斯国际会议上进行初步性探索比赛以后,正好在 1997 年的时候深蓝取得这个胜利,这个做为人类标志性任务结束了,必定要拿到下一个任务,这个任务在 ICI 上正式把这个题目肯定下来,实际当时没有把中国围棋考虑进去,由于它和国际象棋的内容同样,虽然围棋会更难。机器人踢足球,你们想人踢足球的时候,不只仅在动,对手也在动,时时刻刻是动态的环境,这是最主要的区别。另外一个,就是状态的不一样,下棋的时候你一步,我一步,轮流下,在踢足球的比赛里彻底是一个实时性对抗,踢足球必须在最准确的时间作最准确的选择。第三,信息的获取。由于在围棋里面或者象棋里面,还有其余棋里,你全部的状态是准确的,全部的信息是彻底准确的,就是计算机里取到的数据没有任何的区别,可是踢足球不同了,这个我想你们踢过球都应该了解这个状况,你不可能对全局的情况有一个全面的了解,即便解说员在上面,你也可能只关注比赛的一部分,你如何经过一部分的信息可以判断总体的局面,那就出现了不少不少不同的地方。不管分布仍是集中,各有各的优势,各有各的弱项,因此在不一样领域的应用也不同,不见得分布必定好,或者集中好,这有很大的差异,看具体的应用。
Robocup 基本的构件
赵明国老师提到,大概分红这么几类:第一大类叫机器人足球这部分(下面有不少不少的,根据技术发展方向不一样和阶段的不一样分了几个组别);第二大类叫救援,这个是偏机器人的,由于救援自己是遥控的,它不太须要不少独立的,因此救援里分仿真和实体的。再往下发展,最近大概三到五年已经很是获得重点关注,由于这个应用比较近的,就是家庭组,由于机器人要走入家庭,不仅是纯粹的和 IT 业结合的,并且跟家庭结合,跟工厂里的实物结合,这个特别有意义,并且如今美国、欧洲都在作。咱们回顾来看,Robocup 仿真组,这个还属于纯粹的人工智能部分,即纯粹软的部分,是里面独立的程序在作。可是对于你编写的程序来说,这个是你能够认为它是真的,可是它的真实后台不是这样的,因此咱们叫仿真组,仿真组在必定程度上是能够的,这个组比较适合于中国开展,因此咱们在这个领域取得的成绩,最先取得成绩的也是这个组,并且如今开展规模最大的是这个组,好像不少大学里有不少人在作这一类,实际上如今靠人海战术也作的不错,就是带引号的人工智能,作的也不错。
Robocup 的技术挑战
赵老师提到:早在 2000 年之前,就提出了这样的目标:在二十一世纪中叶(即 2050 年先后)的时候,但愿机器人组成的足球队,按照人的全部的比赛规则进行踢,机器人要打败人类,把这个做为最终的目标。从 1997 年到如今也十几年了,赵老师认为目前仍是处于比较低层次阶段,可是就近几年机器人领域和智能领域的发展状况而言,在 2050 年,真可能实现这样的事情。你们尽可能发挥想象力吧。
OpenSpace(开放式讨论环节)
为了促进参会者与咱们每期的嘉宾以及讲师近距离交流,深刻探讨在演讲过程当中的疑问,本次活动依然设置了 Open Space(开放式讨论)环节。
在 Open Space 的总结环节,两位话题小组长分别对讨论的内容进行了总结。
杨程:咱们探讨的问题条件限制多一些的,涉及的技术比较深,主要仍是将机器学习方面,你们在作其余领域的,也能够去尝试。好比说强化学习、个性化推荐等方面,都有相关技术,建议你们试试,我们也能够先下交流。
赵明国: 我们探讨的问题是开放性的,好比说,全世界有一百我的作这个事情,可是一百我的的价值取向都是不同的,我我的会从我本身的研究领域去给你们解答,若是在智能硬件等方面也很感兴趣的同窗,也欢迎多多交流。
会后,一些参会者也经过微信分享了他们的参会感觉:
@Qian Jun:统计学、人工智能、机器学习、不少学科知识、坚持学习。
@Delete:每次看到围棋人工智能的研究时,都会长舒一口气:人类还有但愿。
@壹路高歌:彻底模拟人的意义是什么呢?人得器官自己也有不少缺点,应用任何可用的高科技、高性能传感器难道很差吗?
@章恒:喜欢 Computer Go 的讲座,蒙特卡洛搜索其实很好理解,但具体实现仍是有必定的难度。