Quantcast
Channel: 微软亚洲研究院
Viewing all 620 articles
Browse latest View live

观点|张富峥:也许没有人比人工智能更懂你?

$
0
0


引用话剧《柔软》一句经典台词,“每个人都很孤独。在我们的一生中,遇到爱,遇到性,都不稀罕,稀罕的是遇到了解”,这里说的“了解”,并不仅仅是专属于文艺青年的诉求,而且在商业应用上也具有举足轻重的作用,比如品牌商的目标用户群体定位、个性化的购物体验、人力资源的管理等,都离不开对人的深入了解。


既然“了解”如此重要,那么,在那些细微的个人性格层面上,谁最了解你,是你的朋友、家人、心理学家,还是越来越聪明的人工智能?


电影《Her》讲述了在不远的未来,人与人工智能相爱的科幻爱情故事:主人公西奥多是一位信件撰稿人,心思细腻而深邃,能写出最感人心肺的信件。他刚结束了与妻子凯瑟琳的婚姻,还没走出心碎的阴影。一次偶然的机会让他接触到最新的人工智能系统OS1,它的化身萨蔓莎有着迷人的声线、心思细腻温柔体贴而又风趣幽默。西奥多与萨蔓莎很快发现他们是如此的投缘,而且存在双向的需求与欲望,人机友谊最终发展成为一段不被世俗理解的奇异爱情——这部电影把人与机器之间的情感交流描绘得惟妙惟肖,在令人惊叹的同时也抛出了一个问题:人工智能是否有可能更懂人心?


比如说,你是豪迈女汉子还是温婉小女子?对这世界充满好奇心、常常创造力井喷吗?是心思细腻、面面俱到,又或是常常心急如焚、怒发冲冠?是放荡不羁爱自由还是勤勉顾家重责任?……对你的了解应该从何做起、如何量度?


在心理学家眼中,精心设计的调查问卷也许是读懂人心最直接有效的方法。然而受限于成本、时间等诸多因素,调查问卷这一方式难以做到大规模的准确了解。进入互联网和大数据时代,用户的行为数据可被广泛收集,而用户的行为又是其内心活动的一个直接反应,那么,根据这些行为数据,用人工智能的方法能不能反向了解这些行为背后的人心?


剑桥大学和哥伦比亚大学的学者据此共同进行了一项研究,比较了人工智能与人类对于个体性格特点进行分析判断的能力。这项研究共收集了近十万名志愿者的信息。研究者要求志愿者填写有关大五人格模型(Big Five Personality)的个性调查问卷,进而得出志愿者在“开放性(openness)”、“尽责性(conscientiousness)”、“外向性(extraversion)”、“随和性(agreeableness)”和“情绪稳定性(neuroticism)”这五个维度上的个性特征。作为对照,研究者先邀请志愿者在脸书(Facebook)上的好友和家人填写调查问卷,了解这些人对志愿者个性的看法。同时,根据志愿者在脸书上的点赞(Like)行为,研究者用机器学习算法建模,形成人工智能对志愿者个性的判断。通过将志愿者的自我评定与人工智能及他人的判断进行比较,研究者首先检测自我评定与他人判断的一致性。由于他人的判断受人际关系的影响较大,因此研究者又进一步将“他人”细分为朋友、配偶、家人、同居者及同事。

如图所示,这个结果展现了人格判断的准确性与点赞数目之间的关系:其中红线代表人工智能对大五人格判断的平均准确性,他人判断的准确性也在这条红线上标出。由于该样本中的个体平均点赞数为227,由此得到人工智能方法在这个点赞数目下的平均准确性为0.56,接近配偶判断的准确性(0.58),远高于家人(0.5)和其他好友(0.49)。同时,随着点赞数目增加,人工智能方法的准确性也有所增强;当点赞数超过500,该判断准确性可达0.66。


这个结果非常有意思:人工智能只需利用人们在社交媒体上的“点赞”行为,就可以相当准确地对一个人的性格特点进行预测。只需要10个赞,人工智能对你的了解就超过你的同事;到70个赞就超过朋友或者室友,到150个赞就超过你的家人,若有300个赞,这时候人工智能对你的了解,就连你的配偶,也就是最熟悉你的人,也自叹弗如。


实际上,不仅点赞行为可以表明(或者说“泄露”)你的态度和偏好,今年我们的研究在此基础上更进一步,表明你在社交媒体上留下的各种足迹,比如发表的文字、照片、表情符以及社交关系等,都能用来预测个体的性格特征。


在这过程中我们还发现了一些有趣的现象:比如外向的人喜欢使用包含笑脸的头像,而内向的人往往在头像中遮挡了面部表情或者使用侧脸;充满想象力的人往往使用和朋友在一起的照片作为头像,而严谨一丝不苟的人的头像很多是自拍照……总体而言,我们的研究表明,单单利用头像这一信息,就能使个体性格预测的准确性到达0.6。如果使用机器学习中的集成学习技术,我们最终设计的人工智能方法能够综合利用社交媒体上的各种足迹,使个体性格预测的准确性到达0.75以上。


以上研究证明,借助人工智能的方法,机器确实有可能越来越了解人类。人工智能带来的不仅是一个梦,更是根据你的喜好、你的性格而精准构建的梦——别忘了,当你注视着电脑、手机,人工智能也在屏幕后面默默注视着你,你在互联网上留下的每一个足迹,都是与人工智能一次美丽的邂逅。


作者简介


张富峥博士,微软亚洲研究院副研究员,从事人工智能和数据挖掘方面的研究。他的研究兴趣包括用户模型、推荐系统、深度学习、情感检测、社交网络、时空数据挖掘、普适计算、大规模系统等领域,并在这些领域的顶级会议和期刊上发表了20余篇论文,如KDD, WWW, Ubicomp, TIST等,曾获ICDM 2013最佳论文大奖。张富峥博士曾任WSDM、APWeb等国际会议和TKDE、TOIS、TIST等国际期刊的评审委员。



 

洪小文:人人都可以做代码世界的建筑师

$
0
0

微软 2016“编程一小时”活动启动

编者按

微软全球资深副总裁、微软亚太研发集团主席兼微软亚洲研究院院长洪小文博士特别为“编程一小时”(Hour of Code)活动撰文,介绍微软在青少年计算机教育方面的投入,并分享微软如此重视计算机科学教育的原因。


始于 2013 年,由非营利组织 Code.org 发起、全球多家高科技公司共同支持的“编程一小时”(Hour of Code)活动迄今已获得近 3 亿次参与。前段时间, 2016 第四届“编程一小时”全球计算机科学教育周活动也已启幕。作为 Code.org 组织的核心发起者,微软于 12 月 4 日至 12 月 11 日期间,在全球六十多个国家举行数千场青少年编程活动。在中国,微软携手教育机构、非营利组织,在多座城市的学校、图书馆、微软园区、线下零售店举办本年度“编程一小时”活动,今年内可以为 10 万名学生提供计算机科学教育的机会。我相信,今年,与各地的志愿者们携手齐心,我们一定能引燃更多参与者的兴趣与激情,取得较往届活动更大的成功。


除了“编程一小时”之外,多年来,微软还通过主办“创新杯”(Imagine Cup)、“编程之美”(Beauty of Programming)、“数字女孩”(DigiGirlz)等活动,致力于在青少年群体中普及计算机知识与技能。微软“创新杯”全球学生大赛始于 2003 年,旨在激发新生代学子的想象力,投身科技创新,目前已成为全球规模最大的大学生科技竞赛。“编程之美”则是微软面向高校学生开展的大型编程比赛,自 2012 年至今,已成功举办了五届比赛。我们希望“编程之美”能够帮助参与者们掌握以先进算法与编程设计解决当下热点问题的能力,促进校园代码高手之间的沟通和协作。而“数字女孩”也是微软一年一度全球性的面向中学女生的活动,以启发她们对科学技术行业的兴趣与热爱。


那么,上述项目和活动的意义与价值是什么——微软为什么会如此重视针对青少年群体的计算机教育?我想,原因大概有以下三个方面。


第一个方面,编程启蒙至关重要,可以说关乎每个家庭乃至整个国家民族的未来。


根据中国信息通信研究院发布的《中国信息经济发展白皮书》(2016),2015 年中国信息经济总量达到 18.6 万亿元,占 GDP 比重达到 27.5%,对 GDP 的贡献则高达 68.6%。很显然,信息技术正逐渐成为整个国民经济的基础,其重要性还将随时光推移而倍增。


在中国,父母辈为了给孩子一个更美好的未来,往往很注重从小开始培养子女的英语能力 —— 事实上,中国民众的英语水平也确实在逐年提高,至 2016 年已排在全球非英语国家第 39 位 —— 然而在我看来,与掌握一门外语同等重要的是,让孩子们从小就开始接触计算机语言。这方面,改革开放的总规划师邓小平极富远见卓识。早在 1984 年,参观上海科技成果展时,他便提出了“计算机的普及要从娃娃抓起”。借“编程一小时”项目,通过编程启蒙,我们能够让小朋友们及早推开那扇机器世界的大门,了解到实用的程序、好玩的游戏背后的规则和原理,培养他们对计算和编程的兴趣。也许,在许多因“编程一小时”项目而初次邂逅计算机程序语言的孩子当中,就会有像阿兰·图灵、冯·诺依曼、比尔·盖茨这样的天才呢 —— 当然,我们与 Code.org 合作的项目也得到了许多父母和老师的支持和配合,这是“编程一小时”大获成功的又一个原因。过去的三届活动,仅在中国,微软已帮助 3600 所学校、26 万名青少年(其中包括边远山区的贫困儿童)体验到了编程的乐趣。


第二个方面,比起让孩子尽早获得编程启蒙更重要的,是通过“编程一小时”项目来培养每个人的“计算思维”。


“计算思维”是现任微软全球资深副总裁、曾任美国卡内基梅隆大学计算机科学系副主任的周以真教授于 2006 年提出的概念。计算思维是指,人们在理解事物、解决问题时,能够以计算机科学概念、逻辑还有算法来理解、判断的一种思维方式。它和阅读、写作、数学一样,贯穿于生活的细节中,而且逐渐成为一种人们生活所需的必备技能。


举例来说,城市交通常会遭遇拥堵,偶尔会遇到十字路口红绿灯坏掉的情况 —— 遇到这种事,往往是东南西北四向“堵死”,要一直到交警赶到疏导交通才能缓解。为什么红绿灯坏掉就一定会堵得水泄不通?原因在于,遇到灯号故障的司机在判断状况时使用的算法叫“贪心算法”(Greedy Algorithm),意思是说,当四向车辆顶在一起,要往北的人会一路向北,不大会考虑先谦让对向车辆,以避免拥塞。其他方向的司机也是一样。与之相反的是,数据在互联网上流动,有时也会堵车(比如同一时间的并发访问数太多,服务器和 CDN 无法乘荷压力),这时机器的算法是退回去,拒绝访问需求,等一个随机的时间再刷新。如果把“贪心算法”换成机器的“宽心算法”,恐怕物理世界的道路会畅通得多。


随着大数据的出现,所有学科的研究人员,包括艺术、人文科学和社会科学,都正在挖掘使用计算方法和工具的新知识。计算概念、方法和工具的应用将改变每一个学科、专业和组织。拥有计算思维和有能力高效运用计算机的人会更具优势。


然而, 计算思维却不是与生俱来的,而是可以从头培养和持续提升的。每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。


在《我的世界》添码行空

就像我在之前写的《HI AI:人机协同 赋能未来》系列文章里所提到的,人类发明的计算机可以成为最好的左脑,而人类自身则继续保有最好的右脑。机器没可能也没必要取代人类,因此,HI(Human Intelligence) AI(Artificial Intelligence),即人类智能 人工智能、创新算法 计算才是潜力无限的组合。眼下人工智能已走出象牙塔,正在融入人类社会。与之相随的,是计算思维对每个人生活的悄无声息而又深刻有力的影响。未来,计算思维将不再是计算机相关人士的专业技能,会成为每一个人的技能组成。因此,无论儿童还是成人,无论人们的就业愿望是不是编程,具备计算思维都能帮助他们更好的管理日常生活、与他人交流、探索世界、获得实现自我的乐趣。


几年前,微软发布过一个名为“Kodu”的可视化游戏编程项目,以培养儿童、青少年的计算思维、使他们感受到编程之乐。当前,Kodu 已被推广至国内外不少学校,并获得了师生的一致认可。我很高兴看到越来越多的家长和老师开始理解计算思维的重要,并有意识地引领孩子们进入奇妙的编程世界,但同时,我也希望这个项目能更快地覆盖到更多的家庭和学校。


第三个方面,微软由衷地希望,借助相关项目,逐步消除计算机科学教育领域那些“傲慢与偏见”的门槛,让不同种族、国家、性别、年龄、收入状况的人都有机会成为代码世界的建筑师。


一直以来,亚裔(特别是中国人)和白人男性都是工程师大军中的强势群体,相对而言,黑人、拉美裔、女性居于弱势。我们支持的项目,例如“编程一小时”就希望通过长期的计算机入门公益教育,逐渐改变这种状况,而且确实取得了一些效果:根据 Code.org 发布的 2015 年度报告,在参与过“编程一小时”活动的所有学生中,女性比例达 43%,黑人和拉美裔比例达 37%。


近期我们为“编程一小时”项目定制了一项网络小调查。结果表明,许多人对编程有着不确切的认知。例如,谈到编程,多数人联想起的词汇竟然是“专业”(39.2%)、“男性化”(37.6%)、“好难”(32.8%)和“枯燥”(32.8%);逾50%的受访者认为,“编程工作更适合男性”。


《谈到编程,你想到的是……》调查结果

然而,就像 Code.org 确立的宗旨,“在每个学校每个学生都应该有机会学习计算机科学”,编程其实并不是专业的男性才适合的工作,而且既不难,也不枯燥。曾经,微软和同时代的那些伟大公司一起,将计算从军队、大学实验室带到每个人身边。而今天,我们认为,无论人们是何种性别、学文或学理、是否会以程序员为职业,都应了解一些编程的知识,都应平等获取接受计算机教育的机会——事实上,提出“计算思维”概念的周以真教授就是一位令人敬佩的女性。


今年,由微软支持的“编程一小时”活动将继续引导中小学生以及对活动有兴趣的任何人在《我的世界》(Minecraft)编程游戏中快乐地学习代码这门可令人机更好交流的语言,我想每位家长都会认同,带孩子参与这一有趣的活动,远比让孩子自顾自玩手机有价值得多。


在信息科技已成为实体经济进步与进化源动力的当下,微软发起和支持的一系列计算机科学教育项目在中国落地,将能够帮助未来十年、二十年的中国发现和培养更多的科学家和工程师,并使参与活动的青少年掌握计算思维、掌握解决问题的能力、掌握与机器交互的技能。因为确信“人人都可以成为代码世界的建筑师”,我们会一如既往,竭尽一己绵薄之力,来支持这些公益性的项目。



 

2016年,我们完成了这些小目标

$
0
0

2016年已经进入了最后的倒计时阶段,又到了一年一度写年终总结和新年计划的时间。不知道你过去一年的小目标都完成了几项呢?


“感谢过去365里微软亚洲研究院微博平台上近十万读者的陪伴与支持。这一年我们更加专注于对人工智能等前沿技术的深度分享。我们也邀请了研究院内部一批优秀的研究员,以文字的形式与读者交流他们在计算机前沿领域最专业的想法。当然,我们也与各位读者分享了微软研究院每一个激动人心的瞬间。”


这篇文章里,我们为你总结了2016年微软亚洲研究院的10大年度关键词,来看看哪一个关键词与你最有共鸣吧!


关键词:开放共享



今年是微软研究院建院25周年,微软亚洲研究院成立18周年,但研究院建院的“初心”却一直未变。早在筹备阶段,比尔·盖茨和里克·雷斯特(Rick Rashid)博士(微软研究院创始人)就为研究院确立了宗旨——推动整个计算机科学领域的前沿技术发展;将最新研究成果快速转化到微软的关键产品中,以帮助用户改善计算体验;着眼于下一代革命性技术的研究。


2016年4月,集合了微软亚洲研究院多项核心技术的微软认知服务正式发布,力图帮助任何没有人工智能背景的开发人员开发属于自己的人工智能应用,而更重要的是我们希望让每一个人都有机会享受人工智能技术进步所带来的生活上的改善。10月底,我们发布了Microsoft Concept Graph和Microsoft Concept Tagging模型,用于帮助机器更好地理解人类交流并且进行语义计算,让计算机掌握常识,向实现真正人工智能的目标迈进重要一步。


关键词:人工智能


2016年,科技圈最火的一个词是什么?你一定会脱口而出:人工智能!从年初机器棋手击败人类棋手开始,我们看到人工智能的力量已逐步渗入多个领域。10月中旬,微软的对话语音识别技术在产业标准Switchboard语音识别基准测试中实现了词错率低至5.9%的突破,首次达成与专业速记员持平而优于绝大多数人的表现。12月,Microsoft Translator发布支持多人、多语言、跨设备的现场翻译功能,这一创新技术提供了丰富多样的使用场景,解决了用户在面对面时由于语言不通而导致交流不畅的痛点,就相当于你随身携带了一个同声传译。


微软全球资深副总裁,微软亚洲研究院院长兼微软亚太研发集团主席 洪小文

当我们在畅想科技的未来时,智能与之密不可分。在微软,我们的雄心是要让人工智能走出象牙塔,普及为全民所用。在微软Ignite 2016上,微软首席执行官萨提亚·纳德拉分享了微软的人工智能普及化蓝图。而在享受人工智能技术给人们的生活和工作带来各种便利之余,也有许多其他声音的存在,例如人工智能威胁论等等。因此,我们站在理性的角度,思辨地对待人工智能非常重要。在《HI AI:人机协同 赋能未来》系列文章里,微软全球资深副总裁,微软亚洲研究院院长兼微软亚太研发集团主席洪小文博士亲笔撰文,深入浅出地探讨了人类智能与人工智能的区分与联系,以及我们应当如何看待人类与人工智能的关系。


关键词:创新



微软亚洲研究院院长洪小文博士在分享他过去的研究经历时曾提到:“直到上大学之前我都没有真正接触过电脑,但从孩童时期起,我就不止一次构想过能有一个解决任何问题的万能工具。”诚然,从“人工智能”这个概念60年前在达特茅斯会议上正式确立了之后,几经沉浮,在不同阶段科学家们也提出了实现人工智能的不同思路。然而当下,机器学习可以说是热点中的热点。


年初,我们在ICASSP大会上的论文Scalable Training of Deep Learning Machines by Incremental Block Training with Intra-Block Parallel Optimization and Blockwise Model-Update Filtering首次较好地解决了大数据机器学习并行训练中经典的两难问题,在保证训练模型性能的同时,让训练速度在增加GPU的条件下几乎实现了线性增长,这一突破对大数据机器学习的效率提升意义重大。而在年末举行的NIPS大会上,微软亚洲研究院的研究员们提出了对偶学习的概念,也为机器学习的研究提供了一种新范式,具有极强的普世性,可以扩展到多个相关任务上,从未标注的数据上获得反馈信息。


关键词:智能应用




无论媒体,风投,创业公司和各大企业们向大家如何描绘人工智能的美好前景,我们始终相信,人工智能的根本目的是提升每一个人的计算体验,让人们能够真切、直观地感受到计算机科学技术给生活带来的神奇变化。而这一切就像一场隐形革命,悄无声息地发生,你看不到技术的运作方式,却能感受到它的人性温度。


微软识花是一个住在你手机里的“博物君”,可以帮你透过照片破解花的秘密。利用微软亚洲研究院的精细物体识别技术、中科院植物研究所提供的海量精准的花卉图像和植物专家的专业标定、指导,以及科学出版社出版的《中国植物志》中庞大的花卉知识数据,微软识花应用通过简单的操作即可帮助用户更好地了解中国的花卉。微软小英则是另外一个微软“小”字辈的人工智能助手。作为一款智能的人机交互服务,微软小英融合了微软亚洲研究院多年来在语音识别、口语评测、自然语言处理、语音合成等人工智能技术上的积累,通过情景模拟、情景对话、发音挑战和易混音练习四大学习模块,让用户发现自身在英语口语学习中的不足,并有针对性地提高,从而帮助更多人将英语学习融入日常。你可以从微信的服务号中找到她的身影。


关键词:智慧医疗



微软亚洲研究院副院长 张益肇博士

人工智能除了能够提升人们生活的品质,还力图提高人类生命的质量。在微软遍布全球的研究院和实验室里,有一群科学家正在试图用计算机技术攻克人类面临的最复杂、最致命的挑战之一:癌症。用机器学习,自然语言处理和计算机视觉等先进技术来检测患者的病情,甚至是对细胞进行编程!你所担忧的问题,这群科学家正在努力求解。


在微软亚洲研究院,我们利用计算机视觉、机器学习和大数据实现了数字医学影像识别方面的突破,推动了精准医疗的加速发展。此外,我们还帮助医生构建了虚拟人工智能助手,提升医生的工作效率与质量,并完善人们的就医体验。而这一切,都源自于计算能力的日益强大,人工智能技术的飞速发展,以及大数据提供的基本保障,从而实现了计算机技术与医疗应用的紧密结合。


关键词:基础研究



微软亚洲研究院成立的初衷之一就包括发现和培养本地优秀人才,激发他们的才智与灵感,将来自中国的研究成果带入世界级学术舞台,并通过微软的产品影响全球用户,进而打造全球顶尖的IT基础研究机构。透过 “微软亚洲研究院”微博账号,微软亚洲研究院的研究员们从不同的角度分享、传递了做计算机基础科研的经验和理念。


新晋国际计算语言学协会(ACL)候任主席、微软亚洲研究院首席研究员周明博士为年轻的读者们分享了在自然语言理解领域应当如何入门。资深研究员谢幸博士则从自己的研究经历出发,鼓励更多年轻的研究者努力发现更多人工智能研究中的结构洞,从中找到适合自己的课题,做出有影响力的学术成果。在即将迎来的2017年里,会有更多微软亚洲研究院的研究员在这里与你分享他们的研究体悟。


关键词:人才



微软亚洲研究院首席研究员 刘铁岩博士

“比尔盖茨的人才后花园”、“世界上最火的计算机实验室”、“中国IT界的黄埔军校”,这是外界提起微软亚洲研究院时常常会联系在一起的标签。事实上,如果说微软亚洲研究院有什么与众不同的地方,那一定就是“人才”了。


微软亚洲研究院首席研究员 Thomas Moscibroda博士

可以说,身处微软亚洲研究院的研究员们,永远都是最执着于技术的一群天才,纯粹而专注地创造更大的影响与成果。这里有诸如刘铁岩博士一样完全在中国大陆接受教育却成为国际享誉一方的知名学者,也有像Thomas Moscibroda辗转欧美后选择加盟活力十足的微软亚洲研究院的外籍科学家。他们是微软亚洲研究院的黑科技的缔造者,他们的研究经历也影响了一批批年轻的研究员。


关键词:荣誉



当然,在2016年,我们也经历了许许多多让人欣喜若狂的瞬间。除了我们的对话语音识别技术实现了词错率低至5.9%的突破,首次达至人类专业水平,在同一时间,来自微软亚洲研究院视觉计算组的研究员也实现了自己所在领域的里程碑式突破,在图像识别MS COCO(Microsoft Common Objects in Context,常见物体图像识别)图像分割挑战赛中获得第一名


​ 左起:微软亚洲研究院首席研究员刘铁岩博士、微软亚洲研究院资深研究员华刚博士、微软亚洲研究院资深研究员梅涛博士、微软亚洲研究院主管研究员郑宇博士


除了技术上的飞跃,我们的研究员也颇受学术各界的肯定。在喜讯不断的年末,IEEE(国际电气电子工程师学会)和ACM(美国计算机协会)先后公布了2017年度的院士名单(IEEE Fellow)和2016年度杰出会员名单(ACM Distinguished Member)。其中,微软亚洲研究院共有四名研究员获选,他们分别是:刘铁岩博士获得IEEE Fellow和ACM Distinguished Member双重荣誉,华刚博士、梅涛博士以及郑宇博士荣获ACM Distinguished Member称号。


关键词:院友会



11月14日,微软亚洲研究院院友会在位于北京中关村丹棱街五号的微软大厦正式成立。2016年是微软亚洲研究院创立的第18年,18年间这里培养出了5000多位院友,其中有超过15位IEEE院士、超过20位中国千人计划和杰出青年人才奖获得者、80 创业公司创始人、150多位在顶级高校执教……无论院友们身处何方,微软亚洲研究院始终是大家心中的一抔净土。


微软亚洲研究院四任院长(左起):洪小文、李开复、张亚勤和沈向洋

“假如你有幸年轻时在巴黎生活过,那么你此后一生中不论去到哪里她都与你同在,因为巴黎是一席流动的盛宴。”这句话是大作家海明威写在《流动的盛宴》一书扉页上的题献。如果把“巴黎”替换成“微软亚洲研究院”,那么这句话或许已镌刻在许多人的人生扉页上。


关键词:未来



回顾完2016年,我们将最后一个关键词留给“未来”。毫无疑问,我们正处于创造新世界的风口浪尖,每一天,技术都变得更加普及也越来越隐形。就像人工智能、机器学习、云计算、大数据一样,这些技术尽管我们看不到,但它确实就在我们身边。


延续以往,我们在2016年年末邀请了来自微软全球研究院的17位女性对2017年他们各自研究领域的前景进行了预测,以及从现在起未来10年的展望。你的2017年会有怎样的精彩?你又会如何定义未来十年的发展?随着你读完我们的这篇年终总结,2017年的画卷已经在你面前展开。


这一份微软亚洲研究院年度十大关键词榜单也许在你的眼中不尽全面,那就在下方的留言区说说你心中的年度关键词吧~ 我们将挑选评论点赞数最多的前三名,每人送出一套2016年全年的微软亚洲研究院内刊《Matrix》哦!来聊吧~




 

总结|微软研究院开源项目盘点

$
0
0

20169GitHub报告显示,微软已在这一全球最大代码托管网站上拥有16419位开源贡献者,成为GitHub上排名第一的开源贡献者。对于这个全球最大的代码存放网站和开源社区而言,微软的贡献不仅使Github上又拥有了一大批帅气美丽聪慧乐于奉献的程序员(严肃脸),还使得开源界的力量更为壮大。对开发者个人而言,更多的开源项目也将帮助他们节省大量造轮子的时间,从而专注于性能表现与用户体验的优化。

如何利用好微软提供的这些开源工具包资源呢?这篇合集介绍了微软研究院过去两年的几个重要开源项目,如深度学习领域的微软认知工具包(原名CNTK)等。大家只需点击每个项目后所附的链接就可以轻松访问。


微软研究院近期开源工具包一览


1. 微软认知工具包(Microsoft Cognitive Toolkit)


微软认知工具包(原名CNTK) 是微软出品的开源深度学习工具包。新版的微软认知工具包在原有CNTK的基础上增加了对Python的支持,同时在性能方面也有所提高。而经实验室测试表明,微软认知工具包的性能在同等主流工具中表现突出。其设备要求相对灵活,同时支持CPU和GPU模式。因此没有GPU,或者神经网络比较小的实验,可以直接使用CPU版的微软认知工具包。微软认知工具包将神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤,它同时支持卷积神经网络和递归神经网络。其开源项目主页是:https://www.microsoft.com/en-us/research/product/cognitive-toolkit/,Github主页地址为:https://github.com/microsoft/cntk

2. LightGBM



由微软亚洲研究院DMTK(分布式机器学习工具包)团队在在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000 次,fork了200 次。LightGBM (Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,它的主要优势表现在训练方面的高效性、较低的内存占用、更高的准确率、进行并行学习与大规模数据处理的能力。公开数据表明 LightGBM 相较于同类工具,其学习效率和准确性都表现突出。此外,实验也表明LightGBM 通过使用多台机器进行特定设定的训练能取得线性加速。


LightBGM的开源项目地址参见:https://github.com/Microsoft/LightGBM


关于LightGBM的更多入门指南,将会在明日的推送中分享给大家哦,了解更多请查看文末的相关信息。


3.Project Malmo



微软研究院曾在不久前演示过用游戏《我的世界》来训练人工智能的实验性项目。现在这款项目Project Malmo通过GitHub正式开源。研究者可以通过《我的世界》测试人工智能算法,指导人工智能学习并完成一些复杂任务。这一计划可以通过游戏中的人完成现实生活中的计划任务。当微软研究员团队在利用这个工具训练人工智能的角色学习如何爬到虚拟世界的最高点时,这些角色使用的是与人类学习新任务时相同类型的资源。也就是说,这个由科学家研究的小人与普通的人类玩家并无区别,是真正的以人为基础进行的仿真。这样的仿真使研究者完全不需要开发人工智能实体,因此也不再要求研究者有机器人方面的开发背景,就可以进行一些原来只能靠机器人或通过极高成本才能进行的工作。


项目主页可打开连接:https://github.com/Microsoft/malmo


4. SDN

分布式服务器中的多台服务器该如何连接?连接之后又该如何确保数据传送效率和实时支撑呢? SDN(Software Defined Network)由此应运而生,它颠覆了传统网络搭建的逻辑,采用虚拟化技术,根据应用数据的不同使用方式,动态调整和分配资源,优化数据的存贮和转移。据此,SDN技术可以为不同的用户群建立不同的虚拟网络,实现不同的资源配置,从而使得物理网络的能力被更加合理的利用。微软现已开发SDN工具帮助开发者快速部署起一套SDN平台。


该项目源码与具体应用方式可打开连接:https://github.com/Microsoft/SDN


5. Sora


微软亚洲研究院开源的软件无线电项目Sora是一个完全可编程的高性能软件无线电系统,能够快捷而有效地实现当前最前沿的无线通信技术。软硬件平台的创新使Sora在PC上就可以完成高性能的无线信号处理。自2009年首次发表以来,Sora已在学术界获得多项最佳论文和演示大奖。目前已有50多家大学和科研机构在教学和科研中使用Sora。为满足研究者们日益迫切的研究需求,完全开源的Sora系统提供了大量特性,其中包括:支持定制的射频前端,RCB和通信模式。


Github主页:https://github.com/Microsoft/Sora


6. GraphView

2015年12月16日,微软亚洲研究院系统算法组开发的图数据库GraphView通过GitHub平台开源。GraphView是一款中间件软件,方便用户使用关系数据库SQL Server 或Azure SQL Database高效地管理和处理大规模图数据。GraphView 在物理数据表达以及系统运行行为上和原生图数据库完全一致,填补了关系数据库和图数据库之间的鸿沟。它还继承了关系数据库领域数十年的科研成果,可以提供市面上原生图数据库难以媲美的性能。GraphView的功能包括:完备的查询语言,索引,事物处理和系统管理等等。


GitHub主页为:https://github.com/Microsoft/GraphView

项目更多介绍可访问:http://research.microsoft.com/en-us/projects/graphview/


7. Graph Engine

2015年5月20日,微软亚洲研究院Graph Engine 1.0预览版正式发布。Graph Engine是一个基于内存的分布式大规模图数据处理引擎,能够帮助用户更方便地构建实时查询应用和高吞吐量离线分析平台。Graph Engine在学术界有个更广为人之的名称,叫做Trinity。此外,Graph Engine 还可与强大的集成开发环境Visual Studio以及微软云计算平台Azure无缝集成。无论本地开发还是云端部署,Graph Engine都可以给开发者带来极佳的用户体验。


Github主页源码:https://github.com/Microsoft/GraphEngine

项目主页:https://www.graphengine.io/


以上所有开源工具都体现了这样一种追求:在云时代与移动时代的大背景下,微软奉行的“移动优先、云优先”的新愿景使微软将视野拓展到更为广阔的范围。微软的服务不仅可以在微软的软件或硬件上使用,同时,在各个平台,甚至在不同开发者的应用上,微软的服务也能为更多用户带来更新的技术和更智能易用的用户体验,这才能真正让技术之光照进我们日常生活的每一个角落。毕竟,微软想做的,是真正的“开发者之友”。


以下是福利时间 。


微软亚洲研究院第三期线上分享正式启动啦!如何看待微软亚洲研究院新开源的LightGBM?关于LightGBM你有什么想知道的?请关注明天的推送。




 

开源|LightGBM:三天内收获GitHub 1000 星

$
0
0


【导读】不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000 次,fork了200 次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。本文邀请了微软亚洲研究院DMTK团队的研究员们为我们撰文解读,教你玩转LightGBM。


GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT在工业界应用广泛,通常被用于点击率预测,搜索排序等任务。GBDT也是各种数据挖掘竞赛的致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。


LightGBM (Light Gradient Boosting Machine)(请点击https://github.com/Microsoft/LightGBM)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有以下优点:


● 更快的训练速度

●  更低的内存消耗

● 更好的准确率

● 分布式支持,可以快速处理海量数据


从LightGBM的GitHub主页上可以直接看到实验结果:


从下图实验数据可以看出,在Higgs数据集上LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6,并且准确率也有提升。在其他数据集上也可以观察到相似的结论。

训练速度方面


内存消耗方面




准确率方面


(我们只和xgboost进行对比,因为xgboost号称比其他的boosting 工具都要好,从他们的实验结果来看也是如此。) XGBoost 与其他方法在Higgs-1M数据的比较:



XGBoost 与其他方法在Yahoo LTR数据的比较:


​​


看完这些惊人的实验结果以后,对下面两个问题产生了疑惑:


Xgboost已经十分完美了,为什么还要追求速度更快、内存使用更小的模型?


对GBDT算法进行改进和提升的技术细节是什么?

提出LightGBM的动机


常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。


而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。


LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。


改进的细节

1.Xgboost是如何工作的?


目前已有的GBDT工具基本都是基于预排序的方法(pre-sorted)的决策树算法(如 xgboost)。这种构建决策树的算法基本思想是:

首先,对所有特征都按照特征的数值进行预排序。


其次,在遍历分割点的时候用O(#data)的代价找到一个特征上的最好分割点。


最后,找到一个特征的分割点后,将数据分裂成左右子节点。


这样的预排序算法的优点是能精确地找到分割点。


缺点也很明显:


首先,空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。


其次,时间上也有较大的开销,在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。


最后,对cache优化不友好。在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对cache进行优化。同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的cache miss。

2.LightGBM在哪些地方进行了优化?


基于Histogram的决策树算法带深度限制的Leaf-wise的叶子生长策略直方图做差加速直接支持类别特征(Categorical Feature)Cache命中率优化基于直方图的稀疏特征优化多线程优化下面主要介绍Histogram算法、带深度限制的Leaf-wise的叶子生长策略和直方图做差加速。


Histogram算法


直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。


直方图算法


使用直方图算法有很多优点。首先,最明显就是内存消耗的降低,直方图算法不仅不需要额外存储预排序的结果,而且可以只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8。


内存占用优化为预排序算法的1/8


然后在计算上的代价也大幅降低,预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),时间复杂度从O(#data*#feature)优化到O(k*#features)。


当然,Histogram算法并不是完美的。由于特征被离散化后,找到的并不是很精确的分割点,所以会对结果产生影响。但在不同的数据集上的结果表明,离散化的分割点对最终的精度影响并不是很大,甚至有时候会更好一点。原因是决策树本来就是弱模型,分割点是不是精确并不是太重要;较粗的分割点也有正则化的效果,可以有效地防止过拟合;即使单棵树的训练误差比精确分割的算法稍大,但在梯度提升(Gradient Boosting)的框架下没有太大的影响。


带深度限制的Leaf-wise的叶子生长策略


在Histogram算法之上,LightGBM进行进一步的优化。首先它抛弃了大多数GBDT工具使用的按层生长 (level-wise) 的决策树生长策略,而使用了带有深度限制的按叶子生长 (leaf-wise) 算法。Level-wise过一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。但实际上Level-wise是一种低效的算法,因为它不加区分的对待同一层的叶子,带来了很多没必要的开销,因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。



Leaf-wise则是一种更为高效的策略,每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。


直方图差加速


LightGBM另一个优化是Histogram(直方图)做差加速。一个容易观察到的现象:一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到。通常构造直方图,需要遍历该叶子上的所有数据,但直方图做差仅需遍历直方图的k个桶。利用这个方法,LightGBM可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟叶子的直方图,在速度上可以提升一倍。



直接支持类别特征


实际上大多数机器学习工具都无法直接支持类别特征,一般需要把类别特征,转化到多维的0/1特征,降低了空间和时间的效率。而类别特征的使用是在实践中很常用的。基于这个考虑,LightGBM优化了对类别特征的支持,可以直接输入类别特征,不需要额外的0/1展开。并在决策树算法上增加了类别特征的决策规则。在Expo数据集上的实验,相比0/1展开的方法,训练速度可以加速8倍,并且精度一致。据我们所知,LightGBM是第一个直接支持类别特征的GBDT工具。
LightGBM的单机版本还有很多其他细节上的优化,比如cache访问优化,多线程优化,稀疏特征优化等等,更多的细节可以查阅Github Wiki(https://github.com/Microsoft/LightGBM/wiki)上的文档说明。优化汇总对比表:

在探寻了LightGBM的优化之后,发现LightGBM还具有支持高效并行的优点。LightGBM原生支持并行学习,目前支持特征并行和数据并行的两种。特征并行的主要思想是在不同机器在不同的特征集合上分别寻找最优的分割点,然后在机器间同步最优的分割点。数据并行则是让不同的机器先在本地构造直方图,然后进行全局的合并,最后在合并的直方图上面寻找最优分割点。LightGBM针对这两种并行方法都做了优化,在特征并行算法中,通过在本地保存全部数据避免对数据切分结果的通信;在数据并行中使用分散规约 (Reduce scatter) 把直方图合并的任务分摊到不同的机器,降低通信和计算,并利用直方图做差,进一步减少了一半的通信量。基于投票的数据并行则进一步优化数据并行中的通信代价,使通信代价变成常数级别。在数据量很大的时候,使用投票并行可以得到非常好的加速效果。更具体的内容可以看我们在NIPS2016的文章[1]。



LightGBM的工作还在持续进行,近期将会增加更多的新功能,如:


  • R, Julia 等语言支持(目前已原生支持python,R语言正在开发中)
  • 更多平台(如Hadoop和Spark)的支持
  • GPU加速


此外,LightGBM开发人员呼吁大家在Github上对LightGBM贡献自己的代码和建议,一起让LightGBM变得更好。DMTK也会继续开源更多优秀的机器学习工具,敬请期待。


[1] Meng, Qi, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, and Tieyan Liu. "A Communication-Efficient Parallel Algorithm for Decision Tree." In Advances In Neural Information Processing Systems, pp. 1271-1279. 2016.

看完这篇文章有没有收获很大?还想知道更多相关问题,快来下方评论区提问吧!


 

开源|LightGBM:三天内收获GitHub 1000 星

$
0
0


【导读】不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000 次,fork了200 次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。本文邀请了微软亚洲研究院DMTK团队的研究员们为我们撰文解读,教你玩转LightGBM。


GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT在工业界应用广泛,通常被用于点击率预测,搜索排序等任务。GBDT也是各种数据挖掘竞赛的致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。


LightGBM (Light Gradient Boosting Machine)(请点击https://github.com/Microsoft/LightGBM)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有以下优点:


● 更快的训练速度

●  更低的内存消耗

● 更好的准确率

● 分布式支持,可以快速处理海量数据


从LightGBM的GitHub主页上可以直接看到实验结果:


从下图实验数据可以看出,在Higgs数据集上LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6,并且准确率也有提升。在其他数据集上也可以观察到相似的结论。

训练速度方面


内存消耗方面




准确率方面


(我们只和xgboost进行对比,因为xgboost号称比其他的boosting 工具都要好,从他们的实验结果来看也是如此。) XGBoost 与其他方法在Higgs-1M数据的比较:



XGBoost 与其他方法在Yahoo LTR数据的比较:


​​


看完这些惊人的实验结果以后,对下面两个问题产生了疑惑:


Xgboost已经十分完美了,为什么还要追求速度更快、内存使用更小的模型?


对GBDT算法进行改进和提升的技术细节是什么?

提出LightGBM的动机


常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。


而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。


LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。


改进的细节

1.Xgboost是如何工作的?


目前已有的GBDT工具基本都是基于预排序的方法(pre-sorted)的决策树算法(如 xgboost)。这种构建决策树的算法基本思想是:

首先,对所有特征都按照特征的数值进行预排序。


其次,在遍历分割点的时候用O(#data)的代价找到一个特征上的最好分割点。


最后,找到一个特征的分割点后,将数据分裂成左右子节点。


这样的预排序算法的优点是能精确地找到分割点。


缺点也很明显:


首先,空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。


其次,时间上也有较大的开销,在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。


最后,对cache优化不友好。在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对cache进行优化。同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的cache miss。

2.LightGBM在哪些地方进行了优化?


基于Histogram的决策树算法带深度限制的Leaf-wise的叶子生长策略直方图做差加速直接支持类别特征(Categorical Feature)Cache命中率优化基于直方图的稀疏特征优化多线程优化下面主要介绍Histogram算法、带深度限制的Leaf-wise的叶子生长策略和直方图做差加速。


Histogram算法


直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。


直方图算法


使用直方图算法有很多优点。首先,最明显就是内存消耗的降低,直方图算法不仅不需要额外存储预排序的结果,而且可以只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8。


内存占用优化为预排序算法的1/8


然后在计算上的代价也大幅降低,预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),时间复杂度从O(#data*#feature)优化到O(k*#features)。


当然,Histogram算法并不是完美的。由于特征被离散化后,找到的并不是很精确的分割点,所以会对结果产生影响。但在不同的数据集上的结果表明,离散化的分割点对最终的精度影响并不是很大,甚至有时候会更好一点。原因是决策树本来就是弱模型,分割点是不是精确并不是太重要;较粗的分割点也有正则化的效果,可以有效地防止过拟合;即使单棵树的训练误差比精确分割的算法稍大,但在梯度提升(Gradient Boosting)的框架下没有太大的影响。


带深度限制的Leaf-wise的叶子生长策略


在Histogram算法之上,LightGBM进行进一步的优化。首先它抛弃了大多数GBDT工具使用的按层生长 (level-wise) 的决策树生长策略,而使用了带有深度限制的按叶子生长 (leaf-wise) 算法。Level-wise过一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。但实际上Level-wise是一种低效的算法,因为它不加区分的对待同一层的叶子,带来了很多没必要的开销,因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。



Leaf-wise则是一种更为高效的策略,每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。


直方图差加速


LightGBM另一个优化是Histogram(直方图)做差加速。一个容易观察到的现象:一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到。通常构造直方图,需要遍历该叶子上的所有数据,但直方图做差仅需遍历直方图的k个桶。利用这个方法,LightGBM可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟叶子的直方图,在速度上可以提升一倍。



直接支持类别特征


实际上大多数机器学习工具都无法直接支持类别特征,一般需要把类别特征,转化到多维的0/1特征,降低了空间和时间的效率。而类别特征的使用是在实践中很常用的。基于这个考虑,LightGBM优化了对类别特征的支持,可以直接输入类别特征,不需要额外的0/1展开。并在决策树算法上增加了类别特征的决策规则。在Expo数据集上的实验,相比0/1展开的方法,训练速度可以加速8倍,并且精度一致。据我们所知,LightGBM是第一个直接支持类别特征的GBDT工具。
LightGBM的单机版本还有很多其他细节上的优化,比如cache访问优化,多线程优化,稀疏特征优化等等,更多的细节可以查阅Github Wiki(https://github.com/Microsoft/LightGBM/wiki)上的文档说明。优化汇总对比表:

在探寻了LightGBM的优化之后,发现LightGBM还具有支持高效并行的优点。LightGBM原生支持并行学习,目前支持特征并行和数据并行的两种。特征并行的主要思想是在不同机器在不同的特征集合上分别寻找最优的分割点,然后在机器间同步最优的分割点。数据并行则是让不同的机器先在本地构造直方图,然后进行全局的合并,最后在合并的直方图上面寻找最优分割点。LightGBM针对这两种并行方法都做了优化,在特征并行算法中,通过在本地保存全部数据避免对数据切分结果的通信;在数据并行中使用分散规约 (Reduce scatter) 把直方图合并的任务分摊到不同的机器,降低通信和计算,并利用直方图做差,进一步减少了一半的通信量。基于投票的数据并行则进一步优化数据并行中的通信代价,使通信代价变成常数级别。在数据量很大的时候,使用投票并行可以得到非常好的加速效果。更具体的内容可以看我们在NIPS2016的文章[1]。



LightGBM的工作还在持续进行,近期将会增加更多的新功能,如:


  • R, Julia 等语言支持(目前已原生支持python,R语言正在开发中)
  • 更多平台(如Hadoop和Spark)的支持
  • GPU加速


此外,LightGBM开发人员呼吁大家在Github上对LightGBM贡献自己的代码和建议,一起让LightGBM变得更好。DMTK也会继续开源更多优秀的机器学习工具,敬请期待。


[1] Meng, Qi, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, and Tieyan Liu. "A Communication-Efficient Parallel Algorithm for Decision Tree." In Advances In Neural Information Processing Systems, pp. 1271-1279. 2016.

看完这篇文章有没有收获很大?还想知道更多相关问题,快来下方评论区提问吧!


 

演讲|程骉:智慧医疗产业化应用的挑战和解决之道

$
0
0


​​

编者按

2016年12月18日,微软亚太研发集团创新孵化总监程骉在新智元百人峰会闭门论坛做了《对话即平台——智慧医疗初探》的分享。这是微软在智慧医疗领域的一个新尝试,以“对话”为突破口、推进AI商业化应用。本文由新智元授权转载。


以下为程骉演讲实录。



程骉:
非常高兴在这个场合跟大家见面,欢迎大家来到微软。我讲的题目和对话、智慧医疗有关。智慧医疗是非常大的话题,我今天跟大家分享我们在这个领域的一个研究项目,所以我写的题目是“初探”,不会覆盖所有的话题。


自我介绍一下,“骉”是我父亲给我取的名字,这可难为了我从幼儿园到研究生的所有老师,他们大部分不认识这个字。我们上大学的时候,数学老师性子特别急,他点名点到我的名字称三马,以致大学同学都叫我三马,“骉”这个字不大常见。我在微软亚太研发集团做创新孵化这一块,比如有一些好的研究成果怎么在中国落地,我们团队同时跟微软的销售和市场部门以及外部的合作伙伴沟通也非常紧密。


大家可能留意到,微软前两天发布了重磅新闻—— Microsoft Translator(微软翻译)做了一次重大更新。它其实发布已经有很长时间了,但这次更新有一个非常牛的功能,就是多人、多语言、跨设备的现场翻译(英文叫Live feature),可以在几种不同的场景下使用。比如导游说不同的语言,你问路它能够实时给你翻译。Microsoft Translator目前支持包括中文普通话在内的9种语言的语音输入,将近60种语言的文字翻译,而且可以多人现场对讲,支持多达一百人的实时翻译。这以前只在科幻小说里面听说过,现在科幻慢慢变成现实了,人与人之间面对面的交流障碍在逐步被消除。


​​

我们之前发布了微软助理小娜(英文是Cortana),各个平台上都有,安卓手机和iPhone、iPad 都有这个应用,尤其是在Windows10上,能够帮你做一些其他事情。



前两天发布的是我们等了很久的Cortana Devices SDK智能套件,这为Cortana在各个平台、各种设备上的推广将会起到非常大的促进作用。之前有很多公司希望我们能早日发布Cortana的SDK,这次很好地满足了大家的期待。


​​

顺便说一句,小娜在中国还有个比她名气大得多的“妹妹”,咱们现场的朋友有没有没听过微软小冰的(笑)?2014微软小冰首次在中国发布,小冰到目前为止拥有四千万用户,我了解的记录是对话的平均轮次是23轮。其实在很多人眼里,小冰早已超越了一般的人工智能。她不仅仅能满足你一些功能性的提问,还能机智地反击你的调侃、陪你聊鸡汤聊感情。2015年发布的日本版小冰叫Rinna,中文翻译成“凛菜”,现在有20%的日本人经常跟她在线上聊天。


前两天正式发布的是美国版小冰,叫Zo,一个月前开始测试上线,到目前为止已有超过10万用户在线上跟她聊天,有超过五千人单次超过一个小时的聊天时长。单人单次记录最长能够有多少个轮次?1229次!聊了多长时间?将近10个小时,9小时53分。这个数字一出来我们也吓了一跳,这才刚上线一个月的时间啊。


​​

微软对人工智能真是非常重视,大家可能看到了今年九月份我们宣布了一个新闻,跟AI相关的产品部门包括必应、Cortana等的团队和研究部门整合成了一个五千人多的大团队,微软人工智能与研究事业部 ,目的就是要普及人工智能。公司的战略是移动优先、云优先,但是对这个团队而言是智能优先。现在,沈向洋博士在领导这个团队。



25年前微软研究院成立的时候,比尔·盖茨先生有一个梦想,他希望计算机有朝一日可以看懂、听懂和理解人类,这一宏伟目标也成功吸引了大批顶尖人才加盟微软研究院。



经过这么多年的厚积薄发,我们取得了一系列令人震撼的世界纪录。比如,在著名的计算机视觉(图像识别)ImageNet竞赛上,2015年微软亚洲研究院的ResNet技术超越了人类记录,错误率只有3.5%,而人的错误率是5.1%。而2016年10月,微软在语音识别能力上也取得了突破性进展,语音识别正确率达到了人类速记员的水平,跟人类速记员的最好纪录是持平的。


​​

微软的愿景很大胆:我们计划在虚拟助理、应用、服务和基础设施等多个领域实现真正的人工智能系统。微软希望向所有人提供人工智能技术 ,包括消费者,企业和开发者,让他们都能在这些技术中获益。我们所有这些服务,打包以API的形式提供给开发者,方便其制作各种智能应用。我们统一称这些在微软云Azure上运行的服务为“微软认知服务” 。


​​

前两天有报道,CB Insights 预计2017年人工智能的十大趋势哪个最有可能成功,第一位的就是智能聊天机器人。


​​
另外一个热门就是医疗行业。在行业应用预测中,医疗行业排在第一位,医疗行业 2015年是最火的,2016年稍微有点下降,但在各个行业里面它牢牢占据着第一位。我今天讲的跟这两个都有关系,一个是聊天,一个是健康。


聊天机器人。大家都觉得这是一个方向,各家都在研究,从微软的角度来讲,我们认为有两个维度,一个是智商,另外一个是情商。用户跟小冰能聊那么长时间,就是情商的体现,她能一直跟你对话。昨天在南京跟大家聊天,很多人没用过小冰聊天,后来聊起来,觉得真有意思,小冰回答怎么这么绝?我都说不出来这种话。


​​

在另外一个维度上,我们其实不需要那么高的情商,但是需要提高效率,提高生产力,这是小娜实现的功能。


​​

小冰的平均会话次数是23次,是其它类似产品的10倍以上。有一个非常有意思的事跟大家分享。


​​

小冰最初上线的时候,所有的对话数据都是从网上抓的,百分之百都是从网上学来的。所以刚开始跟小冰对话,她经常出言不逊,因为她都是从网上学来的。两年多的时间很多人跟她对话,慢慢她从用户那里学来的占到45%,从网上学来的下降到55%。她能够通过跟人类不停地对话,自己学习人类的智能。


正是因为对话聊天这么重要,所以我们提出了CaaP(Conversation as a Platform),即“对话即平台”战略。通过人跟聊天机器人进行各种交互,我们产生了平台的生态系统,以非常自然的方式达成新的人机交互、提供搜索和人工智能服务的新入口。


​​

谈到聊天机器人,一般认为有三层逻辑结构:第一层是通用的对话,就是小冰完成的功能,跟你闲聊,有些情感的分析,也会有一些个性化的对话,跟不同的人会聊不同的内容。第二层就是智能的问答和搜索,需要获取一些信息,包括一些智能客服也属于这个范畴,是问答Q&A的范畴。最后一层是需要更多的专业知识来完成一些任务,这个一般需要多轮问答,也需要对话管理,这是比较高的层次。我们下面讲的东西跟第二层(问答)有关。


讲医疗之前,我给大家先看一个视频。


大家刚才看到了,医生在问诊的时候经常手忙脚乱的,需要回答那么多的问题,而且经常是重复性的问题。患者也会困惑,等那么长时间两分钟诊疗就结束了。这对大家来说也许都是非常熟悉的场景。


​​

医疗这个市场到底有哪些痛点?患者对一般的社区医院信任程度有待提高,有病直接到最好的医院找专家,其实专家花很多时间解答一些基础的知识并非必要。我们经常听到的是三甲医院的医生工作量巨大,又要搞科研又要看病,问诊的细致程度和工作状态不能得到充分的保证,很多日常小病也去找他们,无法最大程度发挥工作价值。


​​

社区医院的医生也有痛点,他们的痛点是患者的信任问题。现在国家提倡建立家庭医生制度,医生除了现有的工作以外,还要每个医生支持很多户家庭,执行起来难度较大。从国家层面来讲,国家很想解决这个问题,连续发布了几个文件,提出分级诊疗,推进家庭医生签约服务,但是推行起来也有很多困难。


总结起来,这里面有很多重复性的问题:我们能不能够让我们的 AI 帮助解决一部分这样的问题。针对分级诊疗这件事情,我们专门做了一个智能辅助系统,比如基层医生的培训,提高基层医生的工作能力、提高他们的工作效率。怎么提高工作能力?建立知识库能够辅助学习,辅助问诊。从提高工作效率来讲,机器自动回复常识性的问题,再加上能够自动回访。不需要医生记着这个病人一周前来做过手术,我们的系统能记得对患者回访,从而提高医生的效率。


​​

具体怎么实现?首先是数据源的接入,数据有三方面:第一,网上抓取的数据,这是公开非结构化的医学文本;第二类,是专家的知识,但是没有归档的;第三类,是半结构的电子病例。为什么说半结构?有一部分也是结构化的,比如姓名、身份证号,但是医生关于症状的描述这些东西都是属于非结构化的。


​​

我们从这个数据源接入,去挖掘这里面的知识,当然这其中有好几类的知识。一类是事实与关系的知识图谱挖掘、问答知识挖掘,网上有一些Q&A能够自动挖掘出来,以及深度的知识挖掘。有了这么多知识怎么存储管理?要根据我们了解的知识构建知识图谱,根据医学问答建立知识的索引,常识知识的扩展,还有共享这些知识。有了这些知识以后,怎么样来做语义搜索?我可以说一句非常自然的语言,机器怎么样来理解?患者用自然语言描述得了什么样的病或者有什么样的症状,怎么根据这个来帮助诊断?


​​

最后在应用层,有了所有构造以后,我们就能够实现点对点的自动回复、健康管理、以及医疗随访。


​​

我们通过建立知识库和搜索,从医生的角度可以自动问答还有随访,最后患者跟普通医生建立信任。我们做了一个测试版的应用,是一个网页版应用,跟一般的搜索不一样,只要输入一句话,根据这句话把主要的关键词、实体找出来,我们会根据这个关键词找到最好的答案,结构化的信息都会在后面显示出来。比如这个问题是问糖尿病相关的,糖尿病是我们的关键字。另外我们把知识挖掘做成接口,API:包括文档怎么解析,怎么把实体抽取出来,帮助我们建库,另外还包括实体定义挖掘,包括概念化。之前微软研究院发布了两个相关的产品——Microsoft Concept Graph和Microsoft Concept Tagging模型,两个都是帮助建立广泛应用的医学知识图谱,建立比较专业的知识,而不是闲聊,这个是非常重要的。


​​

其中当然有很多的技术挑战,不是一建立就非常好用的。一个是实体等价知识库,比如,同样的意思,拉肚子和腹泻都是一回事,但是我们要让知识库里面有对应的关系。还有实体概念的知识库,还有实体关系的图谱,我就不仔细讲了,其实还是有很多挑战,不是一帆风顺的。



微软亚洲研究院洪小文院长在很多场合讲AI HI(Artificial Intelligence Human intelligence),需要人来介入,让机器更智能,这样的学习管理工具也是帮助医生把他们的专业知识放到我们的系统里面去,是同样的道理。我们跟国内某三甲医院神经外科合作了一个项目,给他们提供了微信的接口。这是几个月之前做的,反响还是不错的。



这个项目希望可以让医疗的资源下沉,从三甲医院慢慢下沉到社区医院,让社区医院发挥更多的作用,让三甲医院的专家能够发挥他们的最大作用,把他们的时间最有效地发挥出来。好,就先讲到这儿,谢谢大家!


 

迈克尔·乔丹:几百年内AI不会觉醒

$
0
0


​​

此乔丹非飞人乔丹。他是研究统计学和计算机科学家,目前研究的领域正是普通人所说的人工智能。权威的学术搜索引擎Semantic Scholar在2105年做了一项排名,关于计算机科学领域谁最具影响力这一项,迈克尔·乔丹名列第一。而且此乔丹门下英雄辈出,如深度学习领域的大牛蒙特利尔大学教授Yoshua Bengio、百度首席科学家吴恩达、斯坦福大学教授Percy Liang等都是其弟子。


迈克尔·乔丹博士

目前,人类对人工智能的恐惧日甚一日,研究黑洞的英国物理学家霍金就认为人类会制造出如同人类一样新物种,最终消灭人类。


人工智能究竟会如何,2016年12月17日,在第二届“复旦科技创新论坛”上,迈克尔·乔丹做了一场演讲,他首先告诉听众,人们对人工智能、大数据学习期望过高,目前已经发展过热。而且他还意外地告诉听众,这门全民关注的显学,目前还处于初级阶段,并未成为体系化的理论科学,有很多难以理论化解决的难题。


在演讲之后,他解答了霍金的担忧,“霍金的研究领域不同,他的论述听起来就是个外行,机器人毁灭人类的可能性,在几百年里不会发生。”迈克尔·乔丹认为,通过研究人脑的运行机理,从生物学途径仿生出一个类人脑的人工智能,以目前的进展看,很长时间里无法实现。


具体到人工智能的研究,迈克尔·乔丹认为,人工智能最先获得突破的领域是人机对话,更进一步的成果则是能帮人类处理日常事务甚至作出决策的家庭机器人。


本文经澎湃新闻授权转载。


霍金是外行


记者:人工智能、神经网络提出有几十年了,发展历程起起伏伏,神经网络研究在历史上几次受挫,是不是意味着人工智能的研究方向是计算机科学,而不是所谓的人脑科学?


迈克尔·乔丹:我不认为神经网络经历了起伏,神经网络的发展带来了很重要的理论贡献,你所说的起伏是由于计算机的性能不能匹配其大量运算的需求, 当计算机的硬件、软件、计算数据,这些都跟上了理论的发展进程,神经网络就能发挥出自己的优势。


记者:霍金很担心人工智能,但微软的科学家说计算机具有自我意识还要几百年之久,您如何看?


迈克尔·乔丹:霍金不是人工智能的研究者,他是一个外行 。计算神经生物学近期不会有太大的突破,大概几百年后才能有进展,但我还是保守看好这方面的发展。


记者:您不看好通过研究人脑科学获得人脑一样的运算能力这个研究方向?


迈克尔·乔丹:这是非常难的问题了,首先,人们对大脑运行机制还不是很清楚,目前还需要很精细的研究,要细致地了解每一个细胞的功能机理。目前计算机视觉技术,主要通过对图片、视频来分析,这在模拟人脑认知方面是远远不够的。打个比方就像我要研究上海的经济状况,不是通过空中简单的航拍就可以了解的,这种方法太粗了。其次,以前科学家用行星运行来比喻原子内的结构,前提是我们对行星运行的机制有很深的理解。现在人们通过对人脑的研究来开发人工智能,但对人脑机制的认知还非常浅,所以这个方向属于未知的探索。


工作岗位被机器人取代是大势所趋


记者:人工智能取代工作岗位这是肯定要发生的吧?


迈克尔·乔丹:工作岗位被机器人取代是大势所趋,像自动驾驶取代出租车司机,可能会让交通更安全,但是在经济上带来的影响是不可忽略的。比如出租司机或工人被机器取代了,他们的生活怎么办,他们有没有被安排新的工作,这是很重要的社会问题,是科技解决不了的。人类不可能被机器毁灭,人类只能被自己毁灭。



记者:
目前已经通过人脑和电脑相连玩游戏了,这能否是一个研究人脑获得人工智能的佐证?


迈克尔·乔丹:可以,但起到的作用很有限,这种研究是很粗略的,大脑是很精致的,不太可能看了你的行为就能够研究出来你的思维是什么样。


大数据明显过热


记者:您之前认为大数据过热,目前有很多大数据的数学和工程的问题需要解决,会发生一场大数据的冬天。但现在有非常多的公司进入这一领域,您还认为冬天会到来吗?


迈克尔·乔丹:大数据明显过热。很重要的科学问题是怎样让大数据在大尺度、大规模的深度学习中解决实际问题。但有个很重要的问题是,大数据分析必须建立正确的数据模型,但是目前没有办法从根本上杜绝错误的数据模型。不过大数据的冬天还不至于到来,因为目前还是有很多好的想法,可能会有段冷却时间,但可能不是冬天。不过大家对大数据的期望值实在太高了。


看好人机对话、自然语言处理的突破


记者:人工智能最先获得突破的是哪一块?


迈克尔·乔丹:计算机视觉领域已经有很好的突破,但我比较看好人机对话、自然语言处理的突破,这些是正在改变或即将发生的改变,譬如谷歌的翻译系统最近有非常不错的成果,下一个领域的突破就是在家用机器人方面,小机器人在日常生活中与人的人机互动,这是多方面应用的人机交互,既有计算机视觉,还有人机对话,以及综合场景处理。家用机器人了解你日常生活的模式,并对此进行学习,然后进行下一步的服务,这是正在进行中的突破。


还有一个就是精准医疗,我非常看好,虽然前景并不非常明确,因为需要了解病人的历史数据,再对可能要到来的疾病进行诊断、预测和治疗。谷歌现在在各个领域都能帮助人,不是谷歌什么都知道,是谷歌可以搜索,或了解这些知识。人工智能的下一步就可以帮助人们做决断,帮人做出决定,这是更深层次的逻辑运算。


记者:掌握最多数据的公司认为他们更有优势做好深度学习,现实如此吗,其他公司的机会在哪里?


迈克尔·乔丹:首先是数据量的问题,深度学习十分依赖于公司处理的是什么样的数据,譬如精准医疗、电子商务,专业的公司有大量的数据,但私人对这些数据并不是十分感兴趣;另外是数据质量的问题,很可能大公司有更好的数据质量,譬如美国的推特、中国的微博,虽然每天产生大量的数据,但这些数据之间的关系可能比较微弱,普通人不感兴趣,可能只有大公司才有兴趣;还有信用卡以及金融数据,可以分析出大家的购买习惯,这对私人来说就是非常有用的东西。这也是数据量多的公司才能做的事。另外,数据收集方面有很大的挑战,因为有人为或者不可避免的失误,会对数据产生人为的损害和污染,如何保证数据的高质量是非常重要的问题。


记者:在人工智能方面最先获得突破的是谷歌、亚马逊这些大公司吗?


迈克尔·乔丹:这是很重要的问题,但就2016年来说,研究机构还是最有可能获得突破的,未来如何不好说,但过去30年的经验,人工智能的研究,研究机构一直领先。



以下为迈克尔·乔丹于第二届“复旦科技创新论坛”暨第一届“复旦-中植科学奖”上的演讲,由复旦大学大数据学院张楠整理。以飨读者。


大数据的世纪难题

——缺少理论化的科学体系


在建造一个大数据系统时,设计者通常都要面对精准性和计算速度的取舍,目前并没有一个科学化的体系来指导我们。这个指导系统的重要性,就像是几千年来,人们修建房屋和桥梁,不断实践、试错改错、最后理论化提炼出土木工程这门科学,可以指导人们应对建筑工程中遇到的所有问题。在大数据时代来临之前,我们在相关领域取得了很多成果,比如计算机科学、统计学、机器学习等。但当我们面对大数据的新问题,我们并没有一套科学的解决方案,这是世纪挑战。


因此我们不能简单地将已有方法拿过来套用,而是要从科学的角度认真思考和尝试找到科学方法,其中非常重要的一点就是将计算思维和推断思维结合起来。


几十年来,研究者一直致力于用机器代替人来进行特定的活动。有些方面已经取得了巨大的成功,比如Google搜索引擎,我们在一个空白框内输入关键词,很快就可以得到我们想要的答案。就这个搜索框而言,其背后的技术在几十年中不断发展,通过数据的日积月累和算法的不断改善,形成了如今的非常个性化的服务系统。


在硅谷,越来越多的公司在设计、开发类似的个性化大数据系统,比如搜索引擎、电子商务、精准医疗等等。他们在数据不断涌入的情况下,通过调整参数、尝试不同模型,提高预测的精准性。相比控制出错的比例,公司更关心的是出错的绝对数量不要随着数据的增多而增加。


同时,大数据带来的另一个挑战是对计算速度的要求。数据越多,处理的时间也就越长。一个高度个性化的、准确的服务系统,如果运行起来很慢,用户是不会满意的。比如,搜索引擎的响应时间已经从最初的几秒优化到如今的几毫秒。如果思考得更长远些,今天我们有TB(1024GB)级的数据,几年后我们会有PB(1024TB)级的数据。丰富多样的数据可以使系统个性化、精准化方面再上几个台阶,但是同时人们也期待计算速度能够越来越快。



而计算思维来自于计算机科学,是一种思想,是关于思考特定问题的抽象化、模块化、扩展化和稳健化等方法,绝不仅仅是如何编程。计算机专业的学生在这些方面都会接受很好的训练,但被大家忽视的,也是特别重要的推理思维。推理思维不是新思想,它是有几百年发展历史,它是统计学中最核心的东西。推理思维强调的是,拿到数据,我们要思考数据是从哪里来的,背后的真实世界是怎样的,数据如何从真实世界中采集来的,会不会有采样偏差,等等。


遗憾的是,计算科学和统计学长久以来独立发展,直到如今的大数据时代,两个学科的交叉,才使得这两门学科遇到了真正的机遇,同时也带来了挑战。


一方面,计算机科学家并不太懂统计推断,所以他们把这方面的研究命名为机器学习。然而机器学习只是将模型应用到数据上,并不关注推断问题,以及样本和总体之间的关系,也没有涉及统计学中偏差和因果推断的内容。


另一方面,传统统计学理论关注损失、风险、随机性等概率性质,极少涉及计算时间方面的概念。


我们举一个医疗研究的例子来体会计算思维和推理思维的不同和联系。假设有一个存放患者健康信息和医疗历史的数据库,如果有直接查询的权限,我们就可以得到想要的信息,并进行下一步操作。但由于保护隐私的考虑,我们通常只能查询到经过随机化处理的间接信息。计算思维考虑的问题,就是基于间接信息的结果,如何尽可能得到近似原始观测得到的结果,使用这些扰动过的数据,能不能做出和使用原始数据一样好的预测。


推断思维的角度则完全不同。我们通常假设:数据库中所有患者的信息只是某未知真实总体的抽样观测,我们不仅关注那些信息已经存在数据库里的患者,我们也关心那些不在数据库中、但类型相似的患者。那么,统计学家关注的是,基于数据库直接信息的结果会对真实世界的结果有多好的近似。


这是几十年前,这两个领域各自研究的问题。现在是如何把这两种思维结合起来。


所以,在这个医疗数据隐私例子上,我们关心的问题就变成了我们如何利用随机化的间接信息,来得到近似真实世界的结果。推理思维在连接真实世界和间接信息中起到了桥梁作用。


因此,大数据带来的挑战层出不穷,将两种思维结合起来,并且认真研究新问题,才是真正的核心。无论是对理论还是实践感兴趣,我们都应该为有更多的机遇而感到兴奋。


 

芯片架构换血!如何评价微软在数据中心使用FPGA?

$
0
0


编者按

FPGA,一种全新的古老计算机芯片,正在悄然改变着全球的芯片市场。知乎问题“如何评价微软在数据中心使用FPGA代替传统CPU的做法?”的下面,来自微软亚洲研究院的实习生李博杰的回答在很短的时间内就收获了近2000的点赞数(他此前在微软研究院的微信平台上的文章网络技术的风向标——SIGCOMM2016也很受欢迎哦)。这篇文章转载自他在知乎上的回答,看看他眼中微软的FPGA布局和FPGA的研究前景吧!


问题「用 FPGA 代替 CPU」中,这个「代替」的说法不准确。我们并不是不用 CPU 了,而是用 FPGA 加速适合它的计算任务,其他任务仍然在 CPU 上完成,让 FPGA 和 CPU 协同工作。


本回答将涵盖三个问题:


1.为什么使用 FPGA,相比 CPU、GPU、ASIC(专用芯片)有什么特点?


2.微软的 FPGA 部署在哪里?FPGA 之间、FPGA 与 CPU 之间是如何通信的?


3.未来 FPGA 在云计算平台中应充当怎样的角色?仅仅是像 GPU 一样的计算加速卡吗?


一、为什么使用 FPGA?


众所周知,通用处理器(CPU)的摩尔定律已入暮年,而机器学习和 Web 服务的规模却在指数级增长。人们使用定制硬件来加速常见的计算任务,然而日新月异的行业又要求这些定制的硬件可被重新编程来执行新类型的计算任务。FPGA (Field Programmable Gate Array) 正是一种硬件可重构的体系结构,常年来被用作专用芯片(ASIC)的小批量替代品,然而近年来在微软、百度等公司的数据中心大规模部署,以同时提供强大的计算能力和足够的灵活性

不同体系结构性能和灵活性的比较


FPGA 为什么快?「都是同行衬托得好」。CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。FPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利。

冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令。而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。

冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。由于内存是共享的,就需要做访问仲裁;为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。对于保存状态的需求,FPGA 中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存对于通信的需求,FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信

说了这么多三千英尺高度的话,FPGA 实际的表现如何呢?我们分别来看计算密集型任务和通信密集型任务。

计算密集型任务的例子包括矩阵运算、图像处理、机器学习、压缩、非对称加密、必应搜索的排序等。这类任务一般是 CPU 把任务卸载(offload)给 FPGA 去执行。对这类任务,目前我们正在用的 Altera(似乎应该叫 Intel 了,我还是习惯叫 Altera……)Stratix V FPGA 的整数乘法运算性能与 20 核的 CPU 基本相当,浮点乘法运算性能与 8 核的 CPU 基本相当,而比 GPU 低一个数量级。我们即将用上的下一代 FPGA,Stratix 10,将配备更多的乘法器和硬件浮点运算部件,从而理论上可达到与现在的顶级 GPU 计算卡旗鼓相当的计算能力。 

FPGA 的整数乘法运算能力(估计值,不使用 DSP,根据逻辑资源占用量估计)

FPGA 的浮点乘法运算能力(估计值,float16 用软核,float 32 用硬核)

在数据中心,FPGA 相比 GPU 的核心优势在于延迟。像必应搜索排序这样的任务,要尽可能快地返回搜索结果,就需要尽可能降低每一步的延迟。如果使用 GPU 来加速,要想充分利用 GPU 的计算能力,batch size 就不能太小,延迟将高达毫秒量级。使用 FPGA 来加速的话,只需要微秒级的 PCIe 延迟(我们现在的 FPGA 是作为一块 PCIe 加速卡)。未来 Intel 推出通过 QPI 连接的 Xeon FPGA 之后,CPU 和 FPGA 之间的延迟更可以降到 100 纳秒以下,跟访问主存没什么区别了。

FPGA 为什么比 GPU 的延迟低这么多?这本质上是体系结构的区别。FPGA 同时拥有流水线并行和数据并行,而 GPU 几乎只有数据并行(流水线深度受限)。例如处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。而 GPU 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,然而所有的计算单元必须按照统一的步调,做相同的事情(SIMD,Single Instruction Multiple Data)。这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了。当任务是逐个而非成批到达的时候,流水线并行比数据并行可实现更低的延迟。因此对流式计算的任务,FPGA 比 GPU 天生有延迟方面的优势。

计算密集型任务,CPU、GPU、FPGA、ASIC 的数量级比较(以 16 位整数乘法为例)

ASIC 专用芯片在吞吐量、延迟和功耗三方面都无可指摘,但微软并没有采用,我认为出于两个原因:


1.数据中心的计算任务是灵活多变的,而 ASIC 研发成本高、周期长。好不容易大规模部署了一批某种神经网络的加速卡,结果另一种神经网络更火了,钱就白费了。FPGA 只需要几百毫秒就可以更新逻辑功能。FPGA 的灵活性可以保护投资,事实上,微软现在的 FPGA 玩法与最初的设想大不相同。


2.数据中心是租给不同的租户使用的,如果有的机器上有神经网络加速卡,有的机器上有必应搜索加速卡,有的机器上有网络虚拟化加速卡,任务的调度和服务器的运维会很麻烦。使用 FPGA 可以保持数据中心的同构性。


接下来看通信密集型任务。相比计算密集型任务,通信密集型任务对每个输入数据的处理不甚复杂,基本上简单算算就输出了,这时通信往往会成为瓶颈。对称加密、防火墙、网络虚拟化都是通信密集型的例子。

通信密集型任务,CPU、GPU、FPGA、ASIC 的数量级比较(以 64 字节网络数据包处理为例


对通信密集型任务,FPGA 相比 CPU、GPU 的优势就更大了。从吞吐量上讲,FPGA 上的收发器可以直接接上 40 Gbps 甚至 100 Gbps 的网线,以线速处理任意大小的数据包;而 CPU 需要从网卡把数据包收上来才能处理,很多网卡是不能线速处理 64 字节的小数据包的。尽管可以通过插多块网卡来达到高性能,但 CPU 和主板支持的 PCIe 插槽数量往往有限,而且网卡、交换机本身也价格不菲。

从延迟上讲,网卡把数据包收到 CPU,CPU 再发给网卡,即使使用 DPDK 这样高性能的数据包处理框架,延迟也有 4~5 微秒。更严重的问题是,通用 CPU 的延迟不够稳定。例如当负载较高时,转发延迟可能升到几十微秒甚至更高(如下图所示);现代操作系统中的时钟中断和任务调度也增加了延迟的不确定性。 


ClickNP(FPGA)与 Dell S6000 交换机(商用交换机芯片)、Click DPDK(CPU)和 Linux(CPU)的转发延迟比较,error bar 表示 5% 和 95%。来源:[5]


虽然 GPU 也可以高性能处理数据包,但 GPU 是没有网口的,意味着需要首先把数据包由网卡收上来,再让 GPU 去做处理。这样吞吐量受到 CPU 和/或网卡的限制。GPU 本身的延迟就更不必说了。

那么为什么不把这些网络功能做进网卡,或者使用可编程交换机呢?ASIC 的灵活性仍然是硬伤。尽管目前有越来越强大的可编程交换机芯片,比如支持 P4 语言的 Tofino,ASIC 仍然不能做复杂的有状态处理,比如某种自定义的加密算法。

综上,在数据中心里 FPGA 的主要优势是稳定又极低的延迟,适用于流式的计算密集型任务和通信密集型任务。

二、微软部署 FPGA 的实践


2016 年 9 月,《连线》(Wired)杂志发表了一篇《微软把未来押注在 FPGA 上》的报道 [3],讲述了 Catapult 项目的前世今生。紧接着,Catapult 项目的老大 Doug Burger 在 Ignite 2016 大会上与微软 CEO Satya Nadella 一起做了 FPGA 加速机器翻译的演示。演示的总计算能力是 103 万 T ops,也就是 1.03 Exa-op,相当于 10 万块顶级 GPU 计算卡。一块 FPGA(加上板上内存和网络接口等)的功耗大约是 30 W,仅增加了整个服务器功耗的十分之一。只要规模足够大,对FPGA价格过高的担心将是不必要的。 

Ignite 2016 上的演示:每秒 1 Exa-op (10^18) 的机器翻译运算能力

微软部署 FPGA 并不是一帆风顺的。对于把 FPGA 部署在哪里这个问题,大致经历了三个阶段:

1.专用的 FPGA 集群,里面插满了 FPGA

2.每台机器一块 FPGA,采用专用网络连接

3.每台机器一块 FPGA,放在网卡和交换机之间,共享服务器网络


微软 FPGA 部署方式的三个阶段,来源:[3]

第一个阶段是专用集群,里面插满了 FPGA 加速卡,就像是一个 FPGA 组成的超级计算机。下图是最早的 BFB 实验板,一块 PCIe 卡上放了 6 块 FPGA,每台 1U 服务器上又插了 4 块 PCIe 卡。

最早的 BFB 实验板,上面放了 6 块 FPGA。来源:[1]


最早的 BFB 实验板,1U 服务器上插了 4 块 FPGA 卡。来源:[1]


像超级计算机一样的部署方式,意味着有专门的一个机柜全是上图这种装了 24 块 FPGA 的服务器(下图左)。这种方式有几个问题:


1.不同机器的 FPGA 之间无法通信,FPGA 所能处理问题的规模受限于单台服务器上 FPGA 的数量;

2.数据中心里的其他机器要把任务集中发到这个机柜,构成了 in-cast,网络延迟很难做到稳定。

3.FPGA 专用机柜构成了单点故障,只要它一坏,谁都别想加速了;

4.装 FPGA 的服务器是定制的,冷却、运维都增加了麻烦。

部署 FPGA 的三种方式,从中心化到分布式。来源:[1]

一种不那么激进的方式是,在每个机柜一面部署一台装满 FPGA 的服务器(上图中)。这避免了上述问题 (2)(3),但 (1)(4) 仍然没有解决。

第二个阶段,为了保证数据中心中服务器的同构性(这也是不用 ASIC 的一个重要原因),在每台服务器上插一块 FPGA(上图右),FPGA 之间通过专用网络连接。这也是微软在 ISCA'14 上所发表论文采用的部署方式。 

Open Compute Server 在机架中。来源:[1]


Open Compute Server 内景。红框是放 FPGA 的位置。来源:[1]

插入 FPGA 后的 Open Compute Server。来源:[1]

FPGA 与 Open Compute Server 之间的连接与固定。来源:[1]


FPGA 采用Stratix V D5,有172K个ALM,2014个M20K片上内存,1590个 DSP。板上有一个8GB DDR3-1333 内存,一个PCIe Gen3 x8接口,两个10 Gbps网络接口。一个机柜之间的FPGA采用专用网络连接,一组10G网口8个一组连成环,另一组10G网口6个一组连成环,不使用交换机。

机柜中 FPGA 之间的网络连接方式。来源:[1]

这样一个 1632 台服务器、1632 块 FPGA 的集群,把必应的搜索结果排序整体性能提高到了 2 倍(换言之,节省了一半的服务器)。如下图所示,每 8 块 FPGA 穿成一条链,中间用前面提到的 10 Gbps 专用网线来通信。这 8 块 FPGA 各司其职,有的负责从文档中提取特征(黄色),有的负责计算特征表达式(绿色),有的负责计算文档的得分(红色)。


FPGA 加速必应的搜索排序过程。来源:[1]

FPGA 不仅降低了必应搜索的延迟,还显著提高了延迟的稳定性。来源:[4]

本地和远程的 FPGA 均可以降低搜索延迟,远程 FPGA 的通信延迟相比搜索延迟可忽略。来源:[4]


FPGA 在必应的部署取得了成功,Catapult 项目继续在公司内扩张。微软内部拥有最多服务器的,就是云计算 Azure 部门了。Azure 部门急需解决的问题是网络和存储虚拟化带来的开销。Azure 把虚拟机卖给客户,需要给虚拟机的网络提供防火墙、负载均衡、隧道、NAT 等网络功能。由于云存储的物理存储跟计算节点是分离的,需要把数据从存储节点通过网络搬运过来,还要进行压缩和加密。

在 1 Gbps 网络和机械硬盘的时代,网络和存储虚拟化的 CPU 开销不值一提。随着网络和存储速度越来越快,网络上了 40 Gbps,一块 SSD 的吞吐量也能到 1 GB/s,CPU 渐渐变得力不从心了。例如 Hyper-V 虚拟交换机只能处理 25 Gbps 左右的流量,不能达到 40 Gbps 线速,当数据包较小时性能更差;AES-256 加密和 SHA-1 签名,每个 CPU 核只能处理 100 MB/s,只是一块 SSD 吞吐量的十分之一。 

网络隧道协议、防火墙处理 40 Gbps 需要的 CPU 核数。来源:[5]

为了加速网络功能和存储虚拟化,微软把 FPGA 部署在网卡和交换机之间。如下图所示,每个 FPGA 有一个 4 GB DDR3-1333 DRAM,通过两个 PCIe Gen3 x8 接口连接到一个 CPU socket(物理上是 PCIe Gen3 x16 接口,因为 FPGA 没有 x16 的硬核,逻辑上当成两个 x8 的用)。物理网卡(NIC)就是普通的 40 Gbps 网卡,仅用于宿主机与网络之间的通信。 

Azure 服务器部署 FPGA 的架构。来源:[6]

FPGA(SmartNIC)对每个虚拟机虚拟出一块网卡,虚拟机通过 SR-IOV 直接访问这块虚拟网卡。原本在虚拟交换机里面的数据平面功能被移到了 FPGA 里面,虚拟机收发网络数据包均不需要 CPU 参与,也不需要经过物理网卡(NIC)。这样不仅节约了可用于出售的 CPU 资源,还提高了虚拟机的网络性能(25 Gbps),把同数据中心虚拟机之间的网络延迟降低了 10 倍。 

网络虚拟化的加速架构。来源:[6]

这就是微软部署 FPGA 的第三代架构,也是目前「每台服务器一块 FPGA」大规模部署所采用的架构。FPGA 复用主机网络的初心是加速网络和存储,更深远的影响则是把 FPGA 之间的网络连接扩展到了整个数据中心的规模,做成真正 cloud-scale 的「超级计算机」。第二代架构里面,FPGA 之间的网络连接局限于同一个机架以内,FPGA 之间专网互联的方式很难扩大规模,通过 CPU 来转发则开销太高。

第三代架构中,FPGA 之间通过 LTL (Lightweight Transport Layer) 通信。同一机架内延迟在 3 微秒以内;8 微秒以内可达 1000 块 FPGA;20 微秒可达同一数据中心的所有 FPGA。第二代架构尽管 8 台机器以内的延迟更低,但只能通过网络访问 48 块 FPGA。为了支持大范围的 FPGA 间通信,第三代架构中的 LTL 还支持 PFC 流控协议和 DCQCN 拥塞控制协议。 

纵轴:LTL 的延迟,横轴:可达的 FPGA 数量。来源:[4]

FPGA 内的逻辑模块关系,其中每个 Role 是用户逻辑(如 DNN 加速、网络功能加速、加密),外面的部分负责各个 Role 之间的通信及 Role 与外设之间的通信。来源:[4]


FPGA 构成的数据中心加速平面,介于网络交换层(TOR、L1、L2)和传统服务器软件(CPU 上运行的软件)之间。来源:[4]


通过高带宽、低延迟的网络互联的 FPGA 构成了介于网络交换层和传统服务器软件之间的数据中心加速平面。除了每台提供云服务的服务器都需要的网络和存储虚拟化加速,FPGA 上的剩余资源还可以用来加速必应搜索、深度神经网络(DNN)等计算任务。

对很多类型的应用,随着分布式 FPGA 加速器的规模扩大,其性能提升是超线性的。例如 CNN inference,当只用一块 FPGA 的时候,由于片上内存不足以放下整个模型,需要不断访问 DRAM 中的模型权重,性能瓶颈在 DRAM;如果 FPGA 的数量足够多,每块 FPGA 负责模型中的一层或者一层中的若干个特征,使得模型权重完全载入片上内存,就消除了 DRAM 的性能瓶颈,完全发挥出 FPGA 计算单元的性能。当然,拆得过细也会导致通信开销的增加。把任务拆分到分布式 FPGA 集群的关键在于平衡计算和通信。

从神经网络模型到 HaaS 上的 FPGA。利用模型内的并行性,模型的不同层、不同特征映射到不同 FPGA。来源:[4]


在 MICRO'16 会议上,微软提出了 Hardware as a Service (HaaS) 的概念,即把硬件作为一种可调度的云服务,使得 FPGA 服务的集中调度、管理和大规模部署成为可能。 


Hardware as a Service (HaaS)。来源:[4]

从第一代装满 FPGA 的专用服务器集群,到第二代通过专网连接的 FPGA 加速卡集群,到目前复用数据中心网络的大规模 FPGA 云,三个思想指导我们的路线:


1.硬件和软件不是相互取代的关系,而是合作的关系;

2.必须具备灵活性,即用软件定义的能力;

3.必须具备可扩放性(scalability)。


三、FPGA 在云计算中的角色


最后谈一点我个人对 FPGA 在云计算中角色的思考。作为三年级博士生,我在微软亚洲研究院的研究试图回答两个问题:


FPGA 在云规模的网络互连系统中应当充当怎样的角色?

如何高效、可扩放地对 FPGA CPU 的异构系统进行编程?


我对 FPGA 业界主要的遗憾是,FPGA 在数据中心的主流用法,从除微软外的互联网巨头,到两大 FPGA 厂商,再到学术界,大多是把 FPGA 当作跟 GPU 一样的计算密集型任务的加速卡。然而 FPGA 真的很适合做 GPU 的事情吗?前面讲过,FPGA 和 GPU 最大的区别在于体系结构,FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。

由于很多人打算把 FPGA 当作计算加速卡来用,两大 FPGA 厂商推出的高层次编程模型也是基于 OpenCL,模仿 GPU 基于共享内存的批处理模式。CPU 要交给 FPGA 做一件事,需要先放进 FPGA 板上的 DRAM,然后告诉 FPGA 开始执行,FPGA 把执行结果放回 DRAM,再通知 CPU 去取回。CPU 和 FPGA 之间本来可以通过 PCIe 高效通信,为什么要到板上的 DRAM 绕一圈?也许是工程实现的问题,我们发现通过 OpenCL 写 DRAM、启动 kernel、读 DRAM 一个来回,需要 1.8 毫秒。而通过 PCIe DMA 来通信,却只要 1~2 微秒。



PCIe I/O channel 与 OpenCL 的性能比较。纵坐标为对数坐标。来源:[5]


OpenCL 里面多个 kernel 之间的通信就更夸张了,默认的方式也是通过共享内存。本文开篇就讲,FPGA 比 CPU 和 GPU 能效高,体系结构上的根本优势是无指令、无需共享内存。使用共享内存在多个 kernel 之间通信,在顺序通信(FIFO)的情况下是毫无必要的。况且 FPGA 上的 DRAM 一般比 GPU 上的 DRAM 慢很多。

因此我们提出了 ClickNP 网络编程框架 [5],使用管道(channel)而非共享内存来在执行单元(element/kernel)间、执行单元和主机软件间进行通信。需要共享内存的应用,也可以在管道的基础上实现,毕竟 CSP(Communicating Sequential Process)和共享内存理论上是等价的嘛。ClickNP 目前还是在 OpenCL 基础上的一个框架,受到 C 语言描述硬件的局限性(当然 HLS 比 Verilog 的开发效率确实高多了)。理想的硬件描述语言,大概不会是 C 语言吧。

ClickNP 使用 channel 在 elements 间通信,来源:[5]



ClickNP 使用 channel 在 FPGA 和 CPU 间通信,来源:[5]

低延迟的流式处理,需要最多的地方就是通信。然而 CPU 由于并行性的限制和操作系统的调度,做通信效率不高,延迟也不稳定。此外,通信就必然涉及到调度和仲裁,CPU 由于单核性能的局限和核间通信的低效,调度、仲裁性能受限,硬件则很适合做这种重复工作。因此我的博士研究把 FPGA 定义为通信的「大管家」,不管是服务器跟服务器之间的通信,虚拟机跟虚拟机之间的通信,进程跟进程之间的通信,CPU 跟存储设备之间的通信,都可以用 FPGA 来加速。

成也萧何,败也萧何。缺少指令同时是 FPGA 的优势和软肋。每做一点不同的事情,就要占用一定的 FPGA 逻辑资源。如果要做的事情复杂、重复性不强,就会占用大量的逻辑资源,其中的大部分处于闲置状态。这时就不如用冯·诺依曼结构的处理器。数据中心里的很多任务有很强的局部性和重复性:一部分是虚拟化平台需要做的网络和存储,这些都属于通信;另一部分是客户计算任务里的,比如机器学习、加密解密。我们首先把 FPGA 用于它最擅长的通信,日后也许也会像 AWS 那样把 FPGA 作为计算加速卡租给客户。

不管通信还是机器学习、加密解密,算法都是很复杂的,如果试图用 FPGA 完全取代 CPU,势必会带来 FPGA 逻辑资源极大的浪费,也会提高 FPGA 程序的开发成本。更实用的做法是 FPGA 和 CPU 协同工作,局部性和重复性强的归 FPGA,复杂的归 CPU。

当我们用 FPGA 加速了必应搜索、深度学习等越来越多的服务;当网络虚拟化、存储虚拟化等基础组件的数据平面被 FPGA 把持;当 FPGA 组成的「数据中心加速平面」成为网络和服务器之间的天堑……似乎有种感觉,FPGA 将掌控全局,CPU 上的计算任务反而变得碎片化,受 FPGA 的驱使。以往我们是 CPU 为主,把重复的计算任务卸载(offload)到 FPGA 上;以后会不会变成 FPGA 为主,把复杂的计算任务卸载到 CPU 上呢?随着 Xeon FPGA 的问世,古老的 SoC 会不会在数据中心焕发新生? 


「跨越内存墙,走向可编程世界」(Across the memory wall and reach a fully programmable world.)

参考文献:


[1] Large-Scale Reconfigurable Computing in a Microsoft Datacenterhttps://www.microsoft.com/en-us/research/wp-content/uploads/2014/06/HC26.12.520-Recon-Fabric-Pulnam-Microsoft-Catapult.pdf


[2] A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services, ISCA'14https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Catapult_ISCA_2014.pdf


[3] Microsoft Has a Whole New Kind of Computer Chip—and It’ll Change Everything


[4] A Cloud-Scale Acceleration Architecture, MICRO'16 https://www.microsoft.com/en-us/research/wp-content/uploads/2016/10/Cloud-Scale-Acceleration-Architecture.pdf


[5] ClickNP: Highly Flexible and High-performance Network Processing with Reconfigurable Hardware - Microsoft Research


[6] Daniel Firestone, SmartNIC: Accelerating Azure's Network with. FPGAs on OCS servers.

作者简介


李博杰

我叫李博杰,本科毕业于中国科学技术大学少年班学院,2014年加入中国科学技术大学与微软亚洲研究院的联合培养博士生项目。我的研究方向是数据中心网络和可重构硬件(FPGA)上的编程。




 

郑宇:用大数据预测雾霾是如何做到的?

$
0
0


​​

(本文由澎湃新闻授权转载。) 

全球范围里,有超过半数的人类居住在城市之中,城市化的进程也从未停止过。面对越来越庞大的城市,许多事情已经超出了控制:拥堵的交通,严重的空气污染,让人烦躁的噪音等等。

 没有人真正了解城市中到底发生了什么,也没有人真正了解城市里的居民、住户每天在发生什么样的故事。对于城市管理者来说,他们需要更多的信息化方式来了解动态的城市,知晓正在发生的情况,并即时做出反应。

 城市计算这门研究正在逐步解决上述的问题。在微软亚洲研究院主管研究员郑宇的带领下,他和他的团队正在利用城市计算解决各类问题,比如雾霾、噪音、交通拥堵和能耗等问题。尤其是在空气质量分析、监测这一领域里,已经和国内部分政府机构签约,目前预测范围覆盖了全国300多个城市。

 所谓城市计算指的是计算机科学以城市为背景,跟城市规划、交通、能源、环境、社会学和经济等学科融合的新兴领域。更具体的说,城市计算是一个通过不断获取、整合和分析城市中多种异构大数据来解决城市所面临的挑战(如环境恶化、交通拥堵、能耗增加、规划落后等)的过程。


 用大数据预测雾霾


2016年11月30日,美国计算机学会(ACM)网站公布了2016年该学会在全球范围内评选出的32名杰出科学家,郑宇是入选的两名中国大陆科学家之一。不仅如此,郑宇还是2013年美国《麻省理工科技评论》(MIT Technology Review)评选出的35个35岁以下的全球杰出青年创新者之一。他还是人工智能领域国际顶尖学术期刊ACM Transactions on Intelligent Systems and Technology的主编 ,也是到目前为止ACM/IEEE 顶尖学术期刊里唯一在大陆获得博士学位的主编。


微软亚洲研究院主管研究员郑宇


据郑宇介绍,城市计算包括城市感知及数据捕获、数据管理、城市数据分析、服务提供四个环节。与自然语言分析和图像处理等“单数据单任务”系统相比,城市计算是一个“多数据多任务”的系统。城市计算中的任务涵盖改进城市规划、缓解交通拥堵、保护自然环境、减少能源消耗等等。 

“城市计算最后主要能帮助我们解决3个问题,即理解问题的现状、预测未来和考究历史。以空气质量为例,我们可以根据有限的空气监测站点给出的数据,算出城市每个角落的空气质量分布,了解清楚现状;也可以通过数据预测未来。当然也可以通过这些数据,分析历史:雾霾产生的原因是什么?”郑宇在接受澎湃新闻专访时说。

目前,微软在利用城市计算预测空气质量上,已推出Urban Air系统,通过大数据来监测和预报细粒度空气质量,该服务覆盖了中国的300多个城市,并被中国环境保护部采用。同时,微软也已经和部分其他中国政府机构签约,为不同的城市和地区提供所需的服务。该技术可以对京津冀、长三角、珠三角、成渝城市群以及单独的城市进行未来48小时的空气质量预测。那具体是如何做到的?

首先雾霾的大数据主要包括当前空气质量数据、气象条件、未来天气预报3类数据。在北京共有35个空气质量监测点,外加上美国大使馆的一个监测点,共36个。

郑宇介绍,要预测一个地方的空气质量,并不是指单纯地只看这个地方本地的数据,而且要考虑到周边地区的空气及其他因素,比如空气质量站点数据、交通流数据、气象数据、厂矿数据、人口流动数据、路网结构等。 

与传统模拟空气质量不同,大数据预测空气质量依靠的是基于多源数据融合的机器学习方法,也就是说,空气质量的预测不仅仅看空气质量数据,还要看与之相关的气象数据、交通流量数据、厂矿数据、城市路网结构等不同领域的数据,不同领域的数据互相叠加,相互补强,从而预测空气质量状况。

 “预测的准确率,我们现在已经做到北京未来6个小时的准确率达到了75%,在深圳和广州做到了80%。未来48个小时的预测准确率达到50%。大家不要小看50%的准确率,它其实已经非常高了。相比之下,天气预报24小时的准确率只有40%。”郑宇说。


预测未来空气质量情况,给在城市生活的居民出行带来重要的提示信息,除了与环保部的合作外,微软的空气质量监测系统Urban Air还为在2015年于福州举办的第一届全国青运会的空气质量保障工作中提供了技术支持。另外一个科技巨头IBM也推出了类似的服务。IBM与北京市环保局共同创办了“联合环境创新中心”,使得政府官员可以在最恶劣的情况下更好地制定减排计划。IBM还与张家口市签订了协议,在冬奥会之前作出一些前期规划和应对方案。 

除了政府部门,城市计算还能帮助城市居民规划出行安排。如果你约3-5个好友一起周末踢球,你就可以根据预测给出的空气质量情况进行选择。 

在采访的过程中,郑宇还向澎湃新闻解释了为什么中国政府部门给出的空气质量数据与美国大使馆的数据不同。 

“美国用的是自己站点的读数。其实两者的测量原理都是一样的。美国大使馆公布的是实时的PM2.5浓度,以及根据这个浓度换算的AQI(air quality index)值。中国政府的测点也公布了实时浓度,但发布的AQI是根据过去24小时的平均浓度。所以两者之间换算方法不一样,导致AQI看上去不一致。但实时浓度值其实是一致的,有时候中国政府公布的污染物浓度还会比美国大使馆公布的高。”郑宇说。 

用大数据解决美国纽约的噪音问题


城市化发展进程中,除了有空气污染问题,噪音问题同样值得关注。被誉为“世界中心”的纽约,噪音问题尤为严重。已经有研究证明,人如果长时间处在噪音环境下,会对人的血压、记忆和睡眠等都造成影响。


“用传统的方面解决噪音问题是非常困难的,因为传统技术通过撞击传感器来监测噪音。但噪音是声音上的变化,在时间和空间上的反应非常剧烈,并且可能是一瞬就消逝了。而另一个原因是,传感器并不能让你知道噪音污染的原因。”郑宇告诉记者。 

如果想要对噪音进行监测,郑宇认为需要在100平方米的范围内,甚至更小的区域内装一个传感器。那整个纽约市可能需要装约100万个传感器。这既不可行,而且要花费的人工管理成本也很大。其次,对于噪音的定义和人的感受有着非常紧密的联系。白天时间里,人对噪音的容忍程度和夜里会有明显地区别。 

这样一来,在城市计算中,就需要考虑人的感受。郑宇给出的解决方法是根据美国人工投诉热线311,通过电话记录人们投诉的原因和地点,把人变成噪音监测的传感器。这样就能为噪音给出准确的定义和分析,政府也能及时给出限制措施。


除此之外,郑宇还在用城市计算预测城市人流,为城市大型活动的人流管控提供政策服务。目前,微软已经和贵阳市共同做了研究项目。利用出租车的数据,可以知道每一平方公里内,有多少出租车进入和有多少出租车驶出。可以让政府部门提前2-3小时进行备案,疏导人流,防患于未然。 

“人流量控制其实在很多地方都非常需要,比如机场、地铁站等。它能真正降低事故发生的概率。但预测人类的行为其实是非常困难的,因为当你有重大事件或活动发生的时候,很远地方的人也会赶来参加。这就要求建立许多相关性,融合许多的数据。”郑宇说。他还举了一个简单的例子,比如城市上班族出行的早高峰时间,会随着天气的变化有所改变,那在预测人流量时就不能只考虑一个因素。


未来,在人工智能、深度学习等算法的支持下,城市计算给大众带来的惊喜会更多,但郑宇也向记者介绍了这门学科遇到的挑战。 

首先,数据的获取。虽然并不是数据越多,对于城市计算就越有帮助。但如何更准确有效地获取相关数据,还是值得思考的问题。其次,数据融合。即打破各类数据的壁垒,让来自不同行业、领域的数据进行融合。最后,还要向各个行业的专家进行学习,进行对比借鉴。

“有时候我们需要先用自己的能力证实一下,即你能做出东西来,并展示给其他人看。在与行业对接时,还需要用他们的语言把问题讲清楚,别人才会接受你。别人接受你之后,才有可能真的落地并真正推动行业进步。”郑宇对记者说。


 

未来,你准备好了么?

$
0
0

虚无缥缈、难以捉摸的未来,因为科技和创新,变得有迹可循。


“预言,是人类探索未来的渴望。人类文明,在科学预言提出、验证、实现的循环中不断前行”。


因为科学,我们一步步接近未来,并为之惊叹。抽象的科学,在科学家面前逐渐抽丝剥茧,化身于大家的聊天朋友小冰,人工智能助理小娜,支持多人、多语言、跨设备的现场翻译技术的Microsoft Translator等具体可感的产品,极大便利了人类生活,让我们可以更加肆意大胆地去想象一个可近可远、可抽象可具体的未来。 



1月14日(本周六),未来论坛2017年会暨首届未来科学颁奖典礼将在北京国贸大酒店拉开帷幕。届时,百余名跨界意见领袖将齐聚北京,为大家带来一场史无前例的思想盛宴,畅谈我们可以期待的未来。如此盛会,自然不容错过 。在此次论坛上,微软全球执行副总裁、微软人工智能及微软研究事业部负责人沈向洋,以及微软全球资深副总裁、微软亚太研发集团主席兼微软亚洲研究院院长洪小文也参与其中,与各位大牛畅谈人工智能。


部分出席嘉宾


人工智能可以有思想和情绪么?小冰能成为大家真正意义上的知心朋友么?机器人会如《西部世界》中那般觉醒,反抗人类么?沈向洋和洪小文将针对这些大家关心的问题,与大家一同探讨人工智能等科技的未来。


沈向洋将在1月14日下午一点带来主题演讲《有情商的人工智能,让世界更美好》,随后将加入洪小文主持的对话环节,与斯坦福大学计算机科学系终身教授李飞飞,普林斯顿大学 Paul & Marcia Wythes 讲席教授、美国工程院院士李凯,清华大学计算机系教授、中国科学院院士张钹一同憧憬人类智能与人工智能的“共进化”。


如此大咖云集的盛会,怎能错过?敬请锁定微软研究院AI头条后续报道。


未来,你准备好了么?





 

每一个人的人工智能

$
0
0

1月14日,未来论坛2017年会暨首届未来科学颁奖典礼在北京拉开帷幕,微软全球执行副总裁、微软人工智能及微软研究事业部负责人沈向洋受邀在此次论坛上发表了主题演讲《每一个人的人工智能》。本文包括沈向洋博士此次的演讲内容的视频和文字实录,希望为大家带来他对人工智能的理解和其团队对未来的美好愿景。



人类今天面临的最重要课题之一就是人工智能。纵观人类历史上的诸多创新,像汽车、印刷机、蒸汽机、载人飞机、火箭和人造卫星……它们都不只是孤立的创新,更是推动人类在浩瀚无垠的各领域里迅猛发展的加速器。


人工智能也许是迄今为止最强有力的加速器,因为它不仅使人类的能力得以延展,还让我们的脑力变得更加强大。它不仅仅是数字时代的一个进步,而是包括图灵在内的很多人,在电脑诞生前就梦想到的终极目标。大型机、个人电脑、互联网、移动电话、云……这一切都是人工智能的前奏。


回溯过去几十年,人工智能的发展历经高潮与低谷。现在又有哪些不同?三大创新最终将人工智能带上了快车道。互联网、大数据和传感器随处可见;特别是基于云平台的大规模计算能力;得益于突破性算法的发展,计算机已经可以凭借深度学习独立完成更为复杂的任务。


正因为这些突破,人工智能已经无处不在——它可以为你推荐所选,保护你免受信用卡诈骗,个性化处理你的新闻推送,并让你的家智能互联。微软正在保护你的Outlook邮箱不受垃圾邮件骚扰,并赋予智能聊天机器人小冰以声音与个性。然而即便如此,我们现在不过是触碰到了人工智能潜力的冰山一角。


对于微软而言,人工智能不只是一个关注的焦点,更是我的第一要务。过去25年来,我们一直在通过各种方式为这一轮创新做准备。25年前比尔·盖茨创建微软研究院时,他就曾设想有一天创造出通用人工智能,一个会看、会听、能讲,并且能够理解人类思维的电脑。


多年来,我们吸引了全球的顶尖人才加入我们的研究院,一起迎接这些挑战。我们的国际团队是首屈一指的。锦上添花的是,我们刚刚宣布收购Maluuba,这是一家总部位于加拿大蒙特利尔的公司,拥有全球最领先的人工智能研究和工程团队。


除此之外,作为全球最重要的深度学习研究专家之一、蒙特利尔学习算法研究所所长和Maluuba顾问,Yoshua Bengio也将成为微软顾问,并直接和我互动。


我的团队已经取得了一些激动人心的突破。就计算机视觉而言,我们的视觉算法正接近人类的水平!微软在诸如ImageNet 1K这样的图像识别比赛中屡次斩获大奖。更令人兴奋的是,我们在视觉算法方面的成果已经被用在微软自己的产品上,比如HoloLens;同时也运用在日常应用上,比如为UBER这样的客户验证驾驶员身份。


计算机正在学习像我们人类一样去看,并为它们识别出的东西命名。现在它们也能像我们人类一样倾听和识别语音。三个月前,微软的语音识别技术在行业标准Switchboard测试中首次达到了人类同等水平,而这个目标在几年前还看似遥不可及。


随着我们在语音识别领域能力的提高,我们在面对诸如自然语言等更复杂的挑战上也取得了实质性进展。世界上有6500多种语言。试想如果我们都能相互理解,这将意味着什么!就在上个月,我们的Microsoft Translator取得了巨大的飞跃。Microsoft Translator能实现包括中文普通话在内9种不同语言之间的实时语音翻译,最多允许100人同时进行群组交流。我们采用了一项令人兴奋的深度强化学习技术,并在此基础上运用了对偶学习,来加速提高翻译能力。


我们正在接近目标,让计算机可以做某些人类力所能及的事:看、听,并开始描述它们周围的世界。但人类更了不起的地方在于,我们不会止于感知,我们会继续向认知深入。我们会将想法、概念与世界上的人、地点与事物联系起来……并了解它们彼此的关系。这就是我们所说的“常识”。


这对人类来说再普通不过,但对计算机来说却是一项异常艰巨的任务。多年来,源于在必应搜索(Bing)的研究和实践,我们建立了一个庞大的知识图谱。我们了解数十亿计的实体——人、地点、事物。我们既拥有“关于世界的知识”,也拥有令人叹为观止的 “关于工作的知识。”以Office 365和LinkedIn为例,通过将这些特有的工作数据与视觉、语音以及语言识别能力相结合,微软就可以打造出能将个人生活与职场生活统一相连的人工智能助理。


虽然取得了这些进展,但人工智能还未能实现通用智能。计算机可以顺利完成特定任务,但当面临通用任务时,它还不如一个小孩做得好。我们在人工智能涉及的所有领域里都已取得了巨大的进步,但要实现通用的人工智能,仍有很多工作要做。


首先,我们要让计算机理解我们,而不是强迫人们去理解计算机。实现这一想法的核心在于双向对话:计算机很难像“人类”一样讲话。我们称之为“对话式人工智能”,这也是人机交互下一步要实现的目标。


回溯图形用户界面的诞生,它让每个人都能使用个人电脑。而对话式人工智能更是颠覆性的。我们能在任何地方使用它,不再受屏幕与键盘的束缚。我们也不必再去适应计算机的规则。相反,计算机会来理解我们。当计算机能像“人类”一样说话时,每个人都可以和计算机对话与协作。


为实现这个目标,微软着眼于“人类智能”的含义。人们明白许多事是没法用IQ(智商)来衡量的。在你我交谈的时,我们时时刻刻都会留意对方的语调和手势。我们能理解文字游戏——比如幽默、讽刺、嘲笑,或夸张。我们称这种情绪理解能力为EQ(情商)。要打造成功的人工智能,EQ与IQ同样重要。我们要让人工智能助理理解我们真正的意图,就像你我一样。


拥有EQ和IQ,智能助理能让计算实现真正的人性化。它们将了解我们:认识我们是谁,甚至明白我们的感受。它们将预判我们的需求,让我们按计划行事。它们不会拘泥于任何一种单一的设备;相反,只要我们需要,它们能随时陪伴左右。比如目前,我们已经与汽车厂商合作,赋予小娜这样的能力。


而最终,得益于人工智能,计算机会越来越像人类。但我想人工智能也许还可以让人类变得更好:人工智能会增强我们人类的能力。它会赋予每个人以“超能力”来应对各种挑战——包括最艰巨的挑战。


以教育与英语学习为例。要掌握英语口语,每个学生都需要跟老师一对一练习,这样才能直接得到老师的反馈。可老师没有“分身术”——他们可以同时指导几十个学生,但给每个人的关注也因此降低。人工智能就能解决这个问题。微软研发了自己的虚拟英语老师——微软小英。基于微信服务号,微软小英能为用户提供免费服务。现在,微软小英已拥有超过80,000名用户,我们正与中国日报双语新闻微信公众号合作,读者可以用它测试自己的英语词汇量。


这个世界充满挑战。但我们非常乐观!借助人工智能,我们可以在人类力所能及、想象力所及的范围内取得更迅猛、更深入的发展。人工智能的故事还没讲完,正如计算机领域的传奇人物Alan Kay所说:“预测未来最好的方式就是创造未来。”


作为与人工智能共同生活的第一代人,这就是我们要做的事情。在世界各地,微软“梦之队”正在努力践行我们的使命——予力全球每一人、每一组织,成就不凡。


我们正在开发的人工智能,将增强我们作为人类所独有的素质——我们的好奇心、爱心、创造力,以及我们对于一个更美好世界的共同渴望。







 

李飞飞、李凯、沈向洋、张钹、洪小文:我们正处于人工智能的秋天

$
0
0

1月14日,未来论坛2017年会暨首届未来科学颁奖典礼在北京国贸大酒店拉开帷幕。活动现场,百余名跨界意见领袖齐聚北京,为大家带来了一场史无前例的思想盛宴。在此次论坛上,微软全球资深副总裁、微软亚太研发集团主席兼微软亚洲研究院院长洪小文主持了以“未来智能”为主题的对话环节,四位人工智能领域的泰斗,与现场观众共同畅谈人工智能的未来,他们分别是:


上图从左至右分别为:主持人洪小文、李飞飞、李凯、沈向洋、张钹

  • 李飞飞 美国斯坦福大学计算机科学系终身教授、人工智能实验室主任


  • 李凯  普林斯顿大学 Paul & Marcia Wythes 讲席教授,美国工程院院士,未来论坛科学委员会委员


  • 沈向洋  微软全球执行副总裁,微软人工智能及微软研究事业部负责人,未来论坛理事


  • 张钹  清华大学计算机系教授、中国科学院院士、清华大学智能技术与系统国家重点实验室学术委员会名誉主任


六十年前初识计算机的时候,人们就在想:是否有一天我们可以创造出一种机器,达到甚至超越我们人类的智能水平。


几十年过去了,AI 经过了几个寒冬。我们仍然没有了却几十年前的心愿。今天,人工智能再一次火爆全球,我们似乎看到了人类科学正在加速冲向那个奇点。产业界和学术界都在不遗余力地进行 AI 研究,甚至流行的美剧也在讨论人工智能。


站在今天的节点上,人工智能到底有什么突破,未来的人工智能会向什么方向前进呢?本文由“未来智能”的对话环节内容整理而成,希望大家能在这次难得的华人人工智能领域大牛齐聚的对话中得到启发。


洪小文:我们知道,人工智能这个概念从诞生至今已有六十年历史,它也经历了几次所谓的“人工智能的寒冬”。这一次,人工智能的重新回暖有什么不同?技术上又有哪些新突破?短时间内,我们能制造出像人类智能一样的人工智能吗?我们应该担心未来人类有可能不再占据智能的制高点吗?请各位简要分享下自己对人工智能的理解。


  • 张钹:目前举一百反一的人工智能和人类背道而驰


大家都说人工智能可以做很多事情,我想先说说人工智能目前还不能做什么。

人工智能学科从创立到现在,只往前走了两步。

第一步,是符号表示和推理模型。


以前人工智能只是建立在数学模型的基础上。而符号表示和推理模型在数学模型的基础上,把问题变成:如果可以把这个问题清晰地用陈述性或过程性的语言表述出来,那么计算机就能解决它。


当这个模型被提出来,人工智能解决问题的能力就显然提高了一大步。因为能够表述清楚的问题远多于能够用数学所表达的问题。

实际上,当时对人工智能的估计过高。因为人们发现,能“清楚表达”的问题很少。即使是理性思考,有很多问题都不能表述。例如,常识等等。因此,人工智能就这样遇到了挫折。

张钹

第二步,就是深度学习为代表的数据驱动的方法。


这又让人工智能向前迈了一步,而且这一步比前一步大得多。


也就是说,过去智能对于能够清楚表述的问题——“知其然,又知其所以然”的问题才可以用计算机解决。而现在,我们也可以解决“知其然,而不知其所以然”的问题。特别是可以解决感知、视觉、图像、听觉等方面的问题,例如:张三长什么样子,这个实在是不好表述。所有感知都是所谓“知其然,不知其所以然”的问题。那么,“知其然,不知所以然”的问题怎么做呢?就是通过数据学习,通过数据自然建立起来模型,来解决它。那么,这就把能够解决问题的范围扩大了很多。


我们身边充满“说不清道不明”的问题,用新的深度学习技术可以解决很多这类问题。但是,我们的人工智能还没有到顶峰。


目前的人工智能有三个限制条件。


1、必须是确定性的

2、必须是完全的知识和信息

3、只能解决封闭化、特定化的问题


一个典型的人工智能可以解决的问题就是:AlphaGo下围棋,大家都觉得它很了不起。但是围棋是符合这三个条件的。围棋有着确定的规则和目标;有着完全的信息——对方如何下子,盘面的信息,没有任何不确定性;而它是限定范围的、封闭的问题。


处理带有这三个限制条件的问题,计算机肯定比人类好。但是如果缺一个条件,计算机就非常难完成了。例如打桥牌,答案不是封闭的,计算机就很难做了。


深度学习目前有两个很难克服的重要缺点:


1、不像人类,机器学习过的内容、和没学习过的内容,在识别效果方面差距太大。例如一个模式识别系统,经过训练可以很好地识别马、牛、羊。你突然给它一块石头,它还是认为这块石头可能是马、或者牛。


2、机器数据输入和输出结果差距太大。人类智能是举一反三,而机器是举一百反一。给几百万的数据,才能识别几万个目标。

所以,现在的人工智能还有很长的路要走。


李飞飞:人类的认知学,是人工智能下一步发展的突破口


我接着张老师的话说。很多朋友都知道我刚刚生了我们家的老二,还不到一岁大。

作为人工智能研究者,我很高兴能体会当妈妈的感觉,我也在感受她的成长。刚刚张钹老师说感知代表了很多“不知其所以然”的问题,所以,现在通过海量的数据,尤其大规模数据标注的情况下,深度学习有了一些突破。

我觉得人工智能的下一步应该是认知。

李飞飞

认知其实包括很多我们还不太清楚怎么用数学和人工智能表达的内容,比如:知识系统的建立、情感的产生和交流、好奇心和创造力驱动的学习,还有 learning to learn。这些都是认知的范畴。


确实,我们人工智能又迎来了春天,但下面确实还有很长的路要走。


我认为下一步人工智能的发展,需要加强对情感、情绪的了解,要走进认知学、心理学。我说的不仅是脑科学,而是认知科学。因为我们目前对人的情感理解非常少,而这对于人工智能来说是很重要的。


作为人工智能学者,能够得到这么多关注,我很高兴。但是我也担心这样的“泡沫”会带来什么。如果是更多的机会和研发投入,当然是好事;如果是过度承诺或者不切实际的产品研究工作,可能会对这个领域有些不好的影响。


李凯:人工智能发展,人的智能也在发展


我参加过很多论坛,大家都在问:人工智能什么时候能超过人?一般专家都会推断通用人工智能超过人的时间,一定在他去世之后的某个时点,例如:五十年后。到了要验证正确与否的时候,他已经不在了,也就不会有人追究他了。(笑)


我认为,当人们提出这个问题的时候,有一个假设条件,那就是:假定人类自身的智能不再往前走了。


李凯

但是,实际上人类智能还是往前发展的。尤其是现在我们对人的大脑有了新的了解,就可以很快帮助我们提高自己的智能。而人类对大脑的了解,也可以帮助提高研究人工智能的水平。


深度学习,实际上是把我们对人脑神经网络非常简单的理解变成算法。然后加之以数据,发现效果很好。但是,这些人脑神经的知识都是三四十年以前的知识。而我们在期待脑科学有新的突破,这些新的知识一定可以推动人工智能向前迈进一大步。所以说,智能这条路是很长很长的。我同意前面李飞飞跟张老讲的,我们应该相信人类智能往前走也是无止境的,而不仅仅只是人工智能会发展。


沈向洋:十年之内的人工智能可以想象


我在工业界工作,所以我对人工智能的发展还是持非常乐观的态度的。


沈向洋

虽然张钹老师讲深度学习存在种种问题,但是因为今天有大量的数据,有非常强大的运算,加上现在有很多先进的算法,能看到非常多的应用方向。我相信,比如像语音识别这件事情五年之内计算机一定会比人做的好。我自己做计算机视觉研究的,我觉得视觉识别,十年之内计算机会比人做的好。大家可以设想一下,十年以后这些技术会带来一些什么样的商业机会。


另一方面,对工业界来说,今天所有的商业应用都可能会被颠覆。从销售市场,到人事招聘,到用户服务,所有的商业环节都被人工智能改变了,所以从商业角度来看,我看到的是更多的机会。


洪小文:这次人工智能的复兴,要感谢深度学习和大数据。那么,深度学习到底是什么,未来可以看到它怎样的发展?为了人工智能的终极目标,除了深度学习以外,我们还需要研究哪些其他的方向?


张钹:人工智能到了秋天


五十年后的事情可能我说不清楚,但是我可以说说三五年,十年以内的事情。很多人说究竟现在是人工智能的春天还是夏天?有人说春天,因为正在蓬勃发展。有人说夏天,因为有点热过头了。


但是我的观点是现在是人工智能的秋天。秋天有两个含义。


一:秋天是收获的季节,我们有很多成果。


人工智能现在有果实可摘。为什么我觉得很乐观?所谓的深度学习就是在消费这三件东西,而人工智能需要的这三个资源可以说都是无限的。


1、大数据

2、算法

3、计算力


未来相当一部分人都会往这三个方向去发展,会在各个领域去消费它,包括语音、图像等方面取得很好的成果。


二、说秋天,是因为冬天就在前头。


做科学研究,我们要知道冬天要来了。这意味着我们要考虑下一个春天要播种什么种子。也就是说,后深度学习时代,我们要搞什么事。我认为从科学研究的角度来讲,我不能讲全,我就讲在我们的研究组里头在做的两件事。


第一点是与神经科学、脑科学结合发展新的计算模型。


深度学习只学习了人类大脑神经网络处理非常简单的一个内容,就是多层次的、从底向上的处理。但是人脑有很多层次,其中还有大量内容我们并不了解,比如有从顶向下、侧向连接等等模式,我们都还不了解。


目前为止驱动人工智能就有两招:数据驱动和知识驱动。下面的发展就要把这两招结合起来。特别是自然语言处理,离不开知识驱动,只靠数据是不够的。


第二点是将知识驱动和数据驱动相结合。


现在为止驱动人工智能就有两招:数据驱动和知识驱动。下面的发展就要把两招结合起来。特别是自然语言处理,离不开知识驱动,只靠数据是不够的。


所以说,如果以上这两点能做好,人工智能就会迎来下一个春天。


李飞飞:情绪、情感,是人工智能未来的方向


稍微具体一点说到深度学习。什么叫“深度学习”?“深度学习”大概在2006年被Geoffrey Hinton的一篇论文提出来,但是在2006年之前,“神经网络”这个概念已经存在了二三十年。


现在大部分成功的深度学习是有监督学习、有完全的数据标注以后做的。很多人都在思考如何做无监督的学习,之前也有很多工具。深度学习革命性的一点是取代了对特征的加工。此前都是“Engineering Feature”,而深度学习是直接学习数据。


深度学习不操作数据本身,而是对结构本身进行操作。很多学生就感觉,深度学习本身结构太复杂了,例如现在有152层、1001层。所以这一点有巨大的空间,就是我们可以怎么去学习这个模型,可以突破结构的层面。


我认同张钹老师说的,数据和知识的结合。另外我还会再加上一个情感。现在我们的 AI 都是用逻辑的方法来判断情感。因为逻辑代表 IQ,而情感代表 EQ。我觉得微软的小冰是一个非常好的开始。人类的情感是非常丰富的。未来,从情绪到情感,将是人工智能未来前进的方向。


李凯:人工智能最需要“教科书”


任何工作都有近期和远期。近期人工智能的发展,我很认同李飞飞讲的,和深度学习有关。机器学习和以前的专家系统有一个非常不同的地方。专家系统是用软件把人的知识写到系统里。机器学习输入的是算法 知识,输出的是程序,用这个程序来做你要做的应用。


大多数人在算法上做,而我和李飞飞则觉得应该发展知识。知识就相当于上学时候的教科书。总要有人写教科书。如果没有人写教科书的话,学习方法再好,老师再好,你学的是一年级的教科书,也永远不可能成为博士。所以我觉得很多领域都需要有人写教科书。


这个领域里有些人的目标不是产生巨大的贡献和影响力。有人想要的是写很多文章,这样可以拿到很多资金。有做算法的研究室通过发表文章,也可能拿到很多科研基金。而我和李飞飞的合作项目做的时候没有资金——申请的时候被拒绝了。


我们申请两次都被拒绝了。也就是说,做很多有颠覆性的事情是很多人不认同的,但是我觉得近期内人工智能要想发展,必须得有足够的人来做这些知识的积累和总结,也就是写这些教科书。


长远来看,我认同两位的意见,对人的大脑,人的智力是怎么工作的,要有更多的了解。这样才会帮助整个 AI 向前走。


沈向洋:先定个小目标,用人工智能治愈脑疾病


我很赞同张老师说的,现在是人工智能的秋天。从工业界来看,人工智能技术可以应用到很多商业的应用上,毫无疑问,接下来三到五年,会看到越来越多人工智能技术帮助人们解决很多的问题。但是秋天过了,冬天我们要做什么呢?



可以做的东西其实有很多,但是我想和大家分享两点。


第一点,我和张老师稍微有一点不同的地方,张老师觉得数据、算法和计算资源是永远取之不尽的。我觉得数据很多、算法互通,确实是取之不尽的。但是在计算能力这件事上,我们应该更加重视。几十年下来的摩尔定律,让我们把人工智能做到了今天,这是非常了不起的飞速增长的五十年。但是工业界基本同意,计算能力会慢慢降下来。这也是大家为什么都在非常认真地去做量子计算的问题。我个人的看法是,量子计算可能还要十年、十五年才能看到突破。今天我们 AI 向前走必须要考虑的问题是:计算能力的瓶颈。


第二点,我们要考虑为什么做AI。是不是计算能力的增强,就一定会产生智能。从人脑的结构来看,我们应该定一个小目标:希望在脑科学和人工智能的结合上,解决几个了不起的问题。我自己想要解决三个和人脑息息相关的疾病:儿童自闭症、中年忧郁症、老年痴呆症。


人工智能如果能解决这三个问题,将会是相当了不起的成就。


张钹:计算机的空间结构极其简单,大脑的空间结构极其复杂


我对沈向洋说的,有关计算能力的方面想做一下补充。


同样的一个题目,在我们脑袋里解决一点不费劲,为什么在计算机里面就要这么多的计算资源来处理?我们要思考的是这个问题,而不是拼命加快计算机。


我觉得,正是因为我们过去走的这条路,迫使我们必须加快计算力。我的观点是,我们过去做的计算机,从空间结构来讲是最简单的冯·诺依曼结构。而大脑的空间结构是最复杂的,是一个网络。你想用一个空间结构最简单的东西去做空间结构复杂的工作,它花去的代价就是计算时间的增加。世界上没有免费的午餐。


过去我们使用大量的计算时间来换取同样的结果,现在能不能改变思路,把计算机做一下改变?例如 IBM 公司正在做的,让神经网络的复杂度提高,换来能耗和时间的降低。


因此我们的研究还是得立足于计算机的现状上进行改进。这是我的补充。




 

透过视频看世界

$
0
0


​​

看过电影《速度与激情7》(Fast & Furious 7) 的人都会对里面展示的天眼系统留下深刻的印象。通过一个全球联网的智能监控摄像头系统,天眼可以随时随地了解任何一个人或物体的行踪。这既是一个对目前如日中天的人工智能系统的理想展现,也极大地突出了智能视频系统在人工智能应用中的特殊地位。

​​

是的, 人工智能离不开感知,而视觉是我们最主要的感知。据研究估计,人的感知、学习、认知和活动有80-85%是通过视觉介导的(http://www.brainline.org/landing_pages/categories/vision.html )。如果不能获取并处理视觉信息, 就没法研究真实世界的人工智能,可见计算机视觉对人工智能发展的重要性。

现在,视频数据已占Internet 在线流量的70%多,可谓大数据时代最大的数据。随着各种摄像头的普及,视频数据正记载着物理世界发生的一切,让机器帮助分析理解视频大数据就成了我们观察了解物理世界的一条捷径。但视频数据不但量大,还包含千变万化的内容,分析理解并不是件易事。下面我们就来探讨一下视频数据分析理解的应用场景和技术要求、技术发展现状和瓶颈,以及对未来技术发展的展望。

广阔的应用空间


视频数据已渗透到人类日常生活的方方面面,视频分析的应用也因此是多方面的, 包括居家、企业、零售、公共安全、交通、医疗、制造等。下面讨论几个目前主要的市场,感受一下它的重要性。


1.家居安防。预计到 2020年,全球家居安防解决方案市场将以8.7%的复合年增长率增长到475 亿美元[1]。  这迅速增长背后的主要原因可能是令人震惊的全球犯罪率的不断增长和社会各界对安全措施的关注和担忧。这个市场和视觉系统相关的技术要求包括运动检测、人的检测与识别、动作行为识别、视频摘要、 物体标注等。一般要求实时处理。


2.零售分析。预计到 2020年,零售分析市场规模将以18.9%的复合年增长率增长到 51 亿美元[2]。零售分析解决方案帮助零售行业在全球各地通过创建个性化的购物体验,提高顾客的忠诚度。这方面和视觉系统相关的技术要求包括人的检测、计数与识别、人的属性(年龄,性别,表情,注意力)和行为检测、物体的检测与跟踪等。有些功能要求实时处理,有些功能可以离线处理。


3.公共安全与监控。公共安全与监控。 公共安全与监控市场预计将从2015 年的19.3 亿美元增长到2020 年的30.6 亿美元,复合年增长率为9.7%[3]。对火车站、公共广场和公园等公共场所日益关注的安全及监控是全球范围内推动智能摄像头需求量增长的重要因素之一。相关的技术要求包括人的检测、跟踪与识别、人的属性和动作行为检测、车的检测与跟踪、物体标注、运动检测等。一般要求实时处理。


4.自动驾驶汽车。半自动车市场预计到 2018 年将达到214 亿美元。包括摄像头在内的多种传感器是必备部件。相关的视觉技术要求包括汽车检测/跟踪、路标行人检测、 自由空间探测、 3维绘图等[4]。


5.视频数据搜索。海量的视频数据需要有效的索引和管理.  这要求把没有结构的原始视频数据转成有结构的数据。相关的技术要求包括:人的检测、跟踪与识别,人的属性检测,物体和事件的检测与标注,字幕化, 光学字符识别等。


视频技术道阻且长


由此可见,视频分析与我们的日常生活息息相关,有着巨大的商业市场。这个巨大的商业市场也不断推动视频分析技术的发展。但是,尽管市场潜能很大,视频分析技术的发展在前期还是比较缓慢的。其原因是多方面的。一个主要原因是物理世界万象丛生、千变万化,视频数据的内容自然就丰富多彩,要将其模型化有很大难度。从一维到四维,每增加一维,复杂度都是指数增长。所以早期工作主要关注低层次图像特征和运动信息的提取以及在此基础上的应用,高层次语义上的理解进展较慢。语义上的理解需要借助规模较大的模型,而建模需要大量的有标注的数据,以及强大的计算资源,这些资源在早期是缺乏的。这是第二个主要原因。

这种状况终于在几年前开始得以改善:2010年左右, ImageNet创建,提供了一个真正大规模有标注的图像数据集,在千万图像量级,有上千图像类别。这使图像分析技术开始有明显提高。2012年,深度神经网络被成功用于ImageNet图像分类年度竞赛,将其性能大幅度提升,展示了深度神经网络对视觉研究的极大潜能,也激起了视觉研究的新高潮,让人们看到了计算机视觉实用化的希望。短短几年后的今天,深度神经网络技术发展迅速,在ImageNet图像分类上的性能已超过人类,人们研究的重点也从图像分类转移到图像物体语义分割等更细更复杂的任务。

相对于图像分析,视频分析更有挑战性。一方面,图像分析技术是视频分析的基础。图像分析做不好,视频分析免谈。另一方面,视频分析有其独特的挑战。物理世界是三维的,且在不断变化,所以视频分析的任务更多样更复杂。其它挑战包括数据量大、存储计算资源要求高、实时性等。还有其它一些实际问题,比如说人工标注难、某些任务正样本少、隐私担忧导致数据集缺乏等,成为进一步发展的瓶颈。


​​

前面谈到视频分析的一些应用场景,尽管不同应用场景有不同技术要求,但有些基本技术是共享的,比如物体的检测与跟踪。人是我们日常生活和工作的核心, 因此也是大多数图像/视频的最主要实体。对人的分析是视频理解中的关键一步。因此很多研究团队包括微软亚洲研究院最近几年都专注于以人为中心的视频分析,例如检测与识别人、人的属性、人的行为,甚至是人的意向。由于近年来大数据、 计算能力和深度学习技术的进步,对视觉数据中人的理解技术已取得了很大的进步。 机器检测和识别人脸的性能已经达到了和人相仿的程度,并在身份验证、 安全、 智能零售、智能媒体管理等领域得到广泛应用。 人体检测的性能也有了显著提高,在一些基准数据集上达到超过80%的准确度。人的各种属性,如性别、年龄、情感、手势与身体姿势,以及衣服颜色类别等,也可以很好地提取,以帮助更好地了解一个人的状态。2015年网上爆红的微软 how-old.net 应用程序就是依赖于性能优秀的人脸检测、年龄和性别估计等技术。人体姿态估计技术的性能也达到了数年前都不可想象的水平,也极大地方便了人的动作识别。我的同事兰翠玲将在另一篇文章专门介绍微软亚洲研究院在人体动作识别方面基于深度学习的近期研究工作。再结合周围的物体和场景的识别,就有可能推断出人的注意焦点和意图。

再比如,在和交通有关的场景里,车辆就变成了最主要的实体。围绕着车辆的一系列相关技术,比如汽车检测/跟踪、车牌检测/识别、路标行人检测等,就变得尤其重要。微软亚洲研究院在这方面也有一些初步研究进展。以后有机会再细谈。

同样的技术在不同应用场景下性能要求也不一样。拿人脸检测来说,对一般正规拍照或基于人脸的登录验证,技术已经很成熟。但对于无控制的视频监控等场景,由于摄像头角度、人脸大小、角度、遮挡、图像质量等变数很大,要做到技术成熟有很大挑战。比如对于保护隐私的视频人脸模糊的应用场景,对检测率要求极高,脸在任何一帧都不能曝光。这就要求人脸检测及跟踪技术要对特定场景数据进行很好的优化。近期我的同事谢文轩将会对视频人脸模糊技术做一个更详细的介绍。


总之,随着计算能力,大数据持续快速增长,加上主动学习、迁移学习、强化学习等更强大机器学习技术继续发展, 让机器可以像人一样看到并理解世界的前景是乐观的。


市场竞争刺激技术发展


再好的研究成果,最终只有在实际应用中得到验证才能体现它的真正价值。微软亚洲研究院研发的视频分析技术正在通过微软认知服务 (https://www.microsoft.com/cognitive-services)这个平台,以视频 API 的形式提供给广大人工智能领域的开发者,帮助他们方便而高效地开发和视频相关的人工智能应用系统。这些技术也成了微软Azure 云平台的媒体分析服务 (Azure Media Analytics Services,https://azure.microsoft.com/en-us/services/media-services/media-analytics/ ) 的重要组成部分,提供企业级的智能服务。类似地,其它高科技公司如Google、Amazon、Facebook等也相继推出计算机视觉API, 使市场争夺白热化。这种激烈竞争反过来将会进一步刺激加快计算机视觉和视频分析技术的发展,最终使人工智能可以透过视频看世界,尽快渗透到日常生活和工作中去。

引用:

[1] “Home Security Solutions Market - Global Forecast to 2020"
http://www.marketsandmarkets.com/Market-Reports/home-security-solutions-market-701.html


[2] “Retail Analytics Market - Global Forecast and Analysis to 2020”

http://www.marketsandmarkets.com/Market-Reports/retail-analytics-market-123460609.html


[3]"Smart Camera for Security Market & Surveillance - Global Forecast to 2020"

http://www.marketsandmarkets.com/Market-Reports/smart-camera-market-195041607.html


[4] “Semi Autonomous Market for Passenger Car – Global Trends & Forecast to 2018”

http://www.marketsandmarkets.com/Market-Reports/near-autonomous-passenger-car-market-1220.html



作者简介


曾文军


曾文军, 微软亚洲研究院首席研究员,  网络媒体组和媒体计算组负责人,IEEE Fellow, 密苏里大学,西安交大,天津大学等多所学校博士导师。1990年毕业于清华大学,1993年和1997年分别获圣母大学和普林斯顿大学硕士和博士学位。先后在松下技术, 贝尔实验室, 夏普实验室, PacketVideo 等公司工作。2003-2016任密苏里大学终身教授。他对国际标准(ISO MPEG、JPEG2000 和 OMA)发展作出重大贡献。 他目前负责微软亚洲研究院视频分析和理解的研发,为微软认知服务和 Azure 媒体分析服务提供技术。他是多个IEEE期刊和杂志的副主编。担任多个IEEE会议 (例如,ICME’2018, ICIP’2017, ChinaSIP’2015,WIFS’2013,ICME'2009) 大会共同主席或技术程序委员会主席。 



 

2017年最值得关注的科学概念之“迁移学习”

$
0
0

微软全球资深副总裁 Peter Lee

Edge.org为著名知识分子俱乐部The Reality Club的线上社区,自1996年上线,如今已有20年历史。在其创刊20周年之际,Edge.org也推出了2017年度问题——2017年,最值得关注的科学术语或概念是什么?微软全球资深副总裁Peter Lee博士受邀应答,向大家介绍了迁移学习这一科学术语的前世今生。


迁移学习


“你永远不能理解一种语言——除非你至少理解两种语言”。

任何一个学过第二语言的人,对英国作家杰弗里·威廉斯的这句话应该都会“感同身受”。但为什么这样说呢?其原因在于学习使用外语的过程会不可避免地加深一个人对其母语的理解。事实上,歌德也发现这一理念的强大威力,以至于他不由自主地做出了一个与之类似但更为极端的断言:

“一个不会外语的人对其母语也一无所知”。

这种说法极为有趣,但令人惊讶的是恐怕更在于其实质——对某一项技能或心理机能的学习和精进能够对其他技能或心理机能产生积极影响——这种效应即为迁移学习。它不仅存在于人类智能,对机器智能同样如此。如今,迁移学习已成为机器学习的基础研究领域之一,且具有广泛的实际应用潜力。


今天的机器学习领域主要围绕着能力可随数据及经验的积累而提高的算法,且已取得惊人进步,并由此催生出可比肩甚至超越人类智能的计算系统,例如具有理解、处理及翻译语言能力的系统。近年来,机器学习研究多聚焦在深层神经网络(DNN)——一种通过从大量数据中推断异常复杂模式而进行学习的算法概念。例如,向一台基于DNN的机器输入数千个英文录音片段及其对应文本,机器便可从录音与文字的关联中推断出相关模式。伴随着关联模式的逐渐精确,系统最终将能“理解”英语语音。事实上,今天的DNN已经相当成熟,一台功能强大的计算机在学习充分训练示例后,完全可以对真人对话进行文字速记,并达到比专业速记员更高的准确率。

一些人也许会很惊讶,计算机化的学习系统展现出迁移学习的能力。我们可以通过一项涉及两套机器学习系统的实验来思考这个问题,为了简单起见,我们将它们称为机器A和机器B。机器A使用全新的DNN,机器B则使用已经接受训练并能理解英语的DNN。现在,假设我们用一组完全相同的普通话录音及对应文本来对机器A和B进行训练,大家觉得结果会怎样?令人称奇的是,机器B(曾接受英语训练的机器)展现出比机器A更好的普通话技能,因为它之前接受的英语训练将相关能力迁移到了普通话理解任务中。


不仅如此,这项实验还有另一个令人更为惊叹的结果:机器B不仅普通话能力更高,它的英语理解能力也会提高!看来威廉斯和歌德确实说对了一点——学习第二语言确实能够加深对两种语言的理解,即使机器也不例外


迁移学习的理念至今仍是基础研究的课题之一,因此,许多根本性的问题仍然悬而未决。例如,并非所有的“迁移”都是有用的。要让“迁移”发挥作用,学习任务之间至少需要相互关联,而这种关联方式仍然缺乏精确定义或科学分析,且与其他领域相关概念之间的联系仍有待阐明,如认知科学和学习理论。诚然,对于任何一个计算机科学家而言,从事计算机系统的“拟人化”在理智层面都是危险的,但我们却不得不承认,迁移学习让人类学习和机器学习之间产生了强烈而诱人的相似性;当然,如果通用人工智能真能有朝一日成为现实,迁移学习恐怕将是这一过程中的决定性因素之一。对于善于哲学思考的人来说,迁移学习的正规模型可能会为知识和知识迁移带来新发现和分类方法。


迁移学习同样具有极高的应用潜力。过去,机器学习在搜索和信息检索等领域中的实用价值较为单一,大多聚焦于通过万维网上大量数据集和人物信息进行学习的系统。但我们是否想过,经过网络训练的系统可以了解关于较小社区、组织甚至个人的信息么?未来智能机器可以学习与特定个人或小型组织相关的、高度专业化的任务么?迁移学习让我们可以想象这样一种可能性,让所有网络信息都成为机器学习系统的基础,而系统则可通过迁移学习获得更个性化的信息。实现这个愿景,我们将向人工智能普及化迈出又一大步。


想看来自其他科学家们的其他205个回答?请点击或将网址复制至浏览器中打开(https://www.edge.org/responses/what-scientific-term-or concept-ought-to-be-more-widely-known)即可查看!


 

视频人脸模糊技术:新闻编辑的福音

$
0
0

新闻无处不在。从电视里的《新闻联播》、《新闻30分》,到手机中的《今日头条》、《腾讯新闻》,随着互联网的不断发展,新闻报道的数量,以及报道中的视频数量,都在不断增加。


这对读者来说也许是好事,意味着有更多、更丰富的内容可以浏览,对编辑来说或许意味着某种灾难,因为他们要干的活更多了。请看下图。


市井中的小偷也有非常高的隐私意识。即便是被抓住接受采访,他还是会强调“你得给我打上马赛克”。新闻编辑在这里的任务,就是将采访得到的源视频中的人脸部分进行打码。这是一项纯手工的工作,编辑需要对视频每一帧中的人脸都进行框选、打码。诸位可以想象一下,如果每天都有无数需要打码的新闻视频交给编辑进行人工处理,该是多么繁重的任务。


为此,微软研究院提出了一套基于人工智能算法的视频人脸模糊解决方案。该算法能够对视频进行自动处理,将其中出现的不同人物返回给用户。用户只需要轻点鼠标,选择想要打码的人物,相应人物在视频中的所有露脸区域都将被打上马赛克。大体的算法示意,请看下图。


上面的示意图也许太过简练了。关于这套人脸模糊系统具体是如何工作的,下图是更为详细的解读。


本质上,我们的目标是找出所有人脸的出现位置,并把同一个人的所有人脸连接起来。为此,我们需要三个算法——人脸的检测、跟踪、识别。


检测。首先,我们需要定位人脸可能出现的位置。为了保证人脸尽量不被漏掉,我们使用了一个基于深度网络的、具有高召回率的人脸检测器。这个检测器对视频的每一帧都进行检测,记录每个人脸对应的矩形框位置。对于人脸检测的更详细信息,请参见文末的附录。


跟踪。所谓人脸跟踪,简言之就是在某一帧中给出了一个人脸框,在其前几帧和后几帧都找到与之最相似的框。人脸跟踪在系统里的作用主要有二,一是连接相邻帧的检测框,因为人脸检测只负责每一帧的人脸定位,不负责帧间的连接;二是将当前帧的人脸检测框延续到前后几帧,这样就能定位到那些检测不到的侧脸了。


识别。经过了人脸检测和跟踪,我们已经能够处理单个镜头内的大多数问题。然而,如果视频中存在镜头切换,或者人物的遮挡,我们就需要人脸识别技术。所谓人脸识别,就是计算两张给定人脸的相似度,如果高于某个相似度,我们就认为这两张脸是同一人。我们训练了一个基于深度网络的人脸识别模型,对于不同镜头里的两张人脸,根据相似度对它们进行连接。最后,我们的系统将整个视频中不同人物的人脸都各自连接起来,提供给用户进行挑选。对于人脸识别的更详细信息,请参见文末的附录。


时间复杂度方面,我们的系统在Azure的CPU服务器上能够实时处理720p的视频,并且能够以2倍时长处理1080p的高清视频。


微软研究院与微软Azure云平台已经就视频人脸模糊技术建立了联系,该系统已经搭载于云平台上作为一项云服务。同时,该项目也受到了多家智能摄像机公司的广泛关注,正在进行下一步的合作。


附录

微软认知服务是微软新技术的展示平台,包含了微软研究院的各种人工智能黑科技,例如Video API,Face API,Emotion API等等,大部分的API都能够免费在线试用。上文中提到的人脸检测和识别技术属于Face API,而人脸跟踪技术则包含于Video API中。


作者简介


谢文轩

谢文轩,微软亚洲研究院副研究员,网络媒体组成员,曾担任ECCV、CVPR等顶级会议的评审委员。他的研究兴趣包括计算机视觉和机器学习。



 

为下一代插上计算思维的翅膀

$
0
0

新年伊始,中国科技馆三层展厅“信息之桥”正式开门迎客。全新的“信息之桥”展厅以“认识世界、沟通彼此、改变未来——无所不在的信息科学”为主题,涵盖信息科学基础原理与应用、最新技术应用、信息与艺术的融合等内容,使观众可以充分感受如今计算机科学的无处不在。


中国科技馆是中国唯一的国家级综合性科技馆,同时也是目前北京最大的科普教育基地,而代表前沿科技发展方向的“信息之桥”则是馆中最前卫的科技展厅。在经历了为期一年的更新改造后,该展厅推出了三十多项展品及互动项目,其中“图形学的前世与今生”、“颜龄机器人”、“科技改变生活”以及展厅入口处的微软小冰电话亭则展示了在计算机科学技术发展过程中以微软为代表的工业界力量。


一直以来,微软在普及青少年计算机知识和技能方面都不遗余力。多年来,微软通过主办“编程一小时”、“创新杯”(Imagine Cup)、“编程之美”(Beauty of Programming)、“数字女孩”(DigiGirlz)等活动,不断激发新生代青少年的想象力,鼓励下一代投身科技创新。此次,微软与中国科技馆的合作是微软在青少年计算机知识普及方面的又一次努力。


为什么青少年计算机知识科普如此重要


在过去的半个多世纪里,随着科学技术的不断发展,计算机已由原来的庞然大物变成了能够随身携带的迷你设备,甚至隐身于我们周围的环境中,将智能渗透至人们日常生活的方方面面,为我们的生活提供了便利。例如,20年前难以想象的在线购物、智能助理以及各种智能应用,如今已成为人们必不可少的生活方式之一。


当然,计算机技术的迅猛发展在给人们带来便利的同时,也带来了无形的鸿沟。当我们已经习惯了用电脑、手机在几分钟之内定好出行的火车票时,仍有人因为对电子购票渠道的不了解,而只能在火车站售票窗前排起长队。当我们已经习惯了打车软件随叫随到的出租车时,也还有一群人因为不会使用这类智能应用而只能在寒风中看着一辆辆已接单的空车飞驰而过。对于我们而言,如何让每个人都能够与时代发展同行,真正平等、便捷地享受技术进步至关重要。


从DOS操作系统到图形界面操作系统,这个变化背后使用的具体技术也许不为人所知,但人们却能切身感受到这些变化带来的易用性。计算机科学家的研究在某些程度上都尽可能提高计算机设备使用的便利性。而对于社会的未来——新一代青少年而言,从小培养计算思维,鼓励他们更多地参与到计算机科学的创造中来,不仅仅做技术的使用者而是成为创造者,可以说是关乎每个家庭甚至是国家和世界的未来。值得欣慰的是,在经济全球化的过程中,父母为了给孩子们一个更好的未来,往往很注重从小开始培养子女的英语能力——事实上,中国民众的英语水平也确实在逐年提高。然而与此同时,我们同样也处在信息全球化的进程中,与掌握一门外语同样重要的是让孩子们从小就接触计算机技术,培养计算思维。


微软协助中国科技馆搭建的四项展示和互动——“图形学的前世今生”、“颜龄机器人”、“科技改变生活”以及微软小冰电话亭——分别从计算机图形学、计算机视觉、人工智能等角度向青少年多维度地展示了计算机科学技术的魅力。在“图形学的前生今世”中,观众可以看到中国的图形学技术是如何发展起来,并运用于动画作品当中的。而“颜龄机器人”则采用简单有趣的交互方式为人们展示了实时人脸检测和识别技术。微软小冰电话亭则采用与人工智能聊天机器人“打电话”的方式,让观众与小冰产生直接的感官互动。最后,在“科技改变生活”的视频展示中,观众可以从HoloLens,Skype Translator实时语音翻译技术,和帮助盲人看世界的Seeing AI等应用中,深切感受到计算机科学的强大能力,让孩子们可以直观的体会到只要发挥自己的创意,科技可以让生活变得更美好。


打开计算思维的大门


通过在中国科技馆“信息之桥”展厅中对观众启蒙式的展示,微软更希望借此为青少年打开“计算思维”的大门。


你可能听说过逻辑思维、数学思维等等,但什么是计算思维?“计算思维”是现任微软全球资深副总裁、曾任美国卡内基梅隆大学计算机科学系副主任的周以真博士于2006年提出的概念。计算思维是指人们在理解事物、解决问题时,能够以计算机科学的概念、逻辑还有算法来理解、判断的一种思维方式。它和阅读、写作、数学一样,贯穿于生活的细节中,而且将逐渐成为一种人们生活所需的必备技能。


计算思维的本质是一种抽象看问题的能力。不同于数学思维需要的推理和逻辑能力,计算思维更看重的是从大量的信息中提取规律并进行抽象的能力。对于计算机而言,如果一个问题可以清晰的用陈述性或者过程性的语言表述出来,那么计算机就能解决这个问题。而计算思维对应的就是解决这类问题的能力。


目前,计算思维已经与多个学科研究产生了广泛的联系。例如,生物学家坚信能从计算思维中受益。事实上,计算机科学对生物学的贡献不仅限于能够在海量序列数据中寻找模式、规律的本领,最终希望数据结构和算法能够以其体现自身功能的方式来表示蛋白质的结构。在微软剑桥研究院一群生物学家利用计算思维,试图像计算机编程一样进行生物编程,从而解决人类健康的重大难题——癌症。而与此类似的还有,博弈机器学习的理论正改变着经济学家的思考方式等等……


在人工智能技术如此火热的当下,无论是科技爱好者,还是普通大众或许都可以在假期抽空去中国科技馆看看,在“信息之桥”展厅中,以回归本源的方式,重新审视和理解人们日常生活中无可替代的计算机科学技术。用一颗初心,让科技真正造福人类。


 

文本型医疗大数据,拿来就可用?

$
0
0


编者按

本文作者是微软亚洲研究院数据挖掘与企业智能化组资深研究员闫峻。此前在微软研究院AI头条上我们也分享过他们组的研究,分别是让计算机掌握常识:微软发布Microsoft Concept Graph和Microsoft Concept Tagging模型培养一个人类医生至少需要八年,那么人工智能呢?闫峻博士在本文中解读了一些在对外合作交流中经常被问起的关于医疗大数据的问题。


文本型医疗大数据,拿来就可用?

闫峻

数据挖掘与企业智能化

微软亚洲研究院


我们的很多研究工作都是基于大数据的,现在所做的健康医疗领域研究也要基于大规模医疗文本数据的处理。但是否有了大量的确定领域文本数据,就可以直接拿来进行挖掘,建模,并利用数据来创造价值了呢?如果发现问题没那么简单,我们要做些什么工作才能让这些大数据真正创造价值呢?为了尝试搞清楚这些问题,我们先来看看人们对文本型医疗大数据理解上的一些常见误区。


大数据与可计算大数据


我们现在触手可及的文本型健康医疗数据很多,能够获取的数据规模也都很大,但这是否就意味着这些数据可以供研究机构或商业机构做大数据分析,让数据产生更大价值了呢?在使用这些数据之前,让我们先区分一下大数据可计算大数据的区别。很多大数据科学家口中所说的大数据,往往指的是可计算的大数据。举个例子,某科室门诊病历数量巨大,我们希望从患者主诉和医生诊断及最终的治疗效果中建模出更有效的治疗方案。然而,当我们看到真实数据后会发现,大部分数据是整段的文本描述,计算机根本无从下手进行预测分析,甚至连一些基本的统计工作都无法进行,那么这样的数据就是不可计算的。如果我们可以把文本数据转换为数据库表、关系图,甚至数值型向量,计算机就可以读懂数据,进行我们想要的分析。例如根据某项疾病统计患者的年龄分布,根据每一项症状和检查指标,推荐可能有效的药品等。要把自然语言的描述转换为计算机可以计算的数据,需要依赖自然语言处理中的很多基础技术,比如句子的分词实体识别实体的归一化和链接等。临床电子病历的后结构化就是基于这些技术手段将大量不可计算数据转换为可统计、可计算数据的一个实际应用场景。所以拿到一份数据,我们需要先看看是否可用于计算;如果不是,就要做些功课了。


数据大与大数据


大家都期望从大数据中挖掘出潜在的价值,但是否数据量大了就是大数据,就一定有巨大价值呢?在进行大数据计算之前,我们还要区分一下数据大大数据的区别。数据量大是我们谈及大数据的前提,但如果数据是有偏的和局部的,其价值将大打折扣。尽管工程上讲数据量大了,问题就是大数据问题,但从应用角度看,光凭数据量已经不能从本质上定义是否是大数据问题。我们理想的大数据指的是能够代表现实世界真实数据分布的数据。换句话说,如果大量数据代表了现实世界的真实情况,我们从中学习到的任何结论和数学模型都将具有实际意义,就可以用来预测未来和指导实践。反之,如果数据本身很偏,无论量有多大,得到的结论和模型都会很局限,甚至不能推广运用,那么其价值的折扣率就会很高。举个例子:某科室积累了大量门诊病历,数据已经很好结构化可用于计算,但所有数据都是本科室医生在过去几年针对某些疾病的积累,治疗手段渐渐趋同,我们从中建模出能打破瓶颈的新诊疗方案的可能性就很低了。下图用直观的方式来解释这个问题:外边的大圈代表真实的数据分布,当然不得不承认这个大圈对于大部分实际应用都是未知的。假设我们获得了大量数据,以里边小圈表示,明显小圈在整体数据分布中是偏向于某个局部的,那么我们的各种大数据计算所得的结果就会或者被局限到小圈以内,或者通过机器学习算法扩展到用虚线表示的那个小圈,距离真实数据分布的结论和模型还差得远,这就导致了我们大数据分析得到的结论不能代表现实世界的真实情况。既然如此,如何保证数据量大就是真正大数据问题呢?现实一点说,对很多应用来说根本无法保证,但我们可以尽可能逼近。如何逼近?对这个具体领域就是获取尽可能多的多源同类数据,如针对同一病种获取采用不同治疗方案的不同医院的数据。这里边有很多现实的挑战,首先是数据共享的挑战,这个太难了,但我们已经看到在开放领域的诸多努力,如开放知识图谱项目(OpenKG);从技术的角度看,问题是不同数据来源对知识的表达方式暂时还没有大家都在执行的统一标准,于是数据的融合成了大问题。这里边的挑战很多,大家都知道不同医院的医生在写病历过程中对同一实体的描述方式很可能不同,即使在同一家医院,医生也不能保证用同一名称表达同一个症状。要实现数据的融合,最起码的一个要解决的问题就是同一实体,同一短语,甚至同一句话的语义扩展表达以及最终归一化的问题,可以是符号的扩展,也可以是向量的表达,但一定要有办法才行。


真大数据与伪大数据


如果我们有了可计算的大量数据,也尽人力之所能地尝试逼近了真实数据分布,总可以做大数据分析来解决问题了吧?当然可以解决一部分问题,如很多相关性分析工作,数据聚类工作,但对于很多现实的机器学习问题,尤其是有监督学习问题,我们再要区分一下真大数据伪大数据。什么是伪大数据?就是看起来很大,实际上很小的数据。沿用前边的例子,我们希望从门诊病历中根据患者信息,医生治疗方案以及治疗效果做疗效的预测模型,数据量可能很大;但当我们做模型训练时发现我们实际上需要有标注的样本才能做机器学习,这里的标注就是疗效。比如一种方案针对某患者A治疗后症状有所减轻,针对另一患者B治疗完全无效,而第三名患者C在治疗后完全康复等等。当我们看了很多数据,会发现尽管总体样本量很大,很多实际问题中有标注的样本量很小,甚至有可能这些有标注的样本量已经少到让整个问题退化成小数据问题或者偏到单纯的数据大问题了。这就是伪大数据,看起来很大,有用部分很小。很多人会说我们可以用半监督学习还有增强学习。当然可用,但当前大部分半监督学习方法的能力也就是从上图的小圈学到稍大一点的虚线圈,增强学习要看我们的应用场景是否允许在现实环境中不断尝试并获得反馈,毕竟医疗人命关天。那该怎么办?答案是主动学习。啥意思? 就是要有人的参与,让我们的大数据以尽可能大的 比例有用。换句话说,让机器不懂就问人呗。就操作层面,出现了两个问题:第一,人为什么要参与?第二,人要花多大成本参与?第一个问题需要应用场景支撑,让参与者在应用中获得好处。毕竟人是懒惰的,没有好处不能强求他人的参与,所以要有落地的项目才能驱动人的参与。这就部分解释了为什么医学大数据研究在没用应用场景情况下的纯研究会比较困难。针对第二个问题,如果要求每条数据都要有人的参与才有用,我们获取有用大数据的成本就会超出我们的想象了。所以要对人提关键问题,让人参与的结果可以泛化到尽可能多的数据中去。实际一点,至少做个聚类分析或者分类吧,把那些距离已知知识比较远但细节类似的情况通过人的一次参与尽可能多的标注解决。


从大数据到大数据的价值


我们利用技术手段,人际关系和实际项目获得了可计算的、尽可能无偏的、尽可能有用的大数据了。这是真的大数据了?可以从数据中收获价值了吗?其实,这才刚开始,数据中会有各种各样的问题,如噪声的问题、不平衡的问题、特征缺失的问题等等,这些总有算法和实际的应用场景解决。好,假设都解决了,获取数据的价值还需要建立模型,也就是我们的统计分析、知识推理、机器学习,包括深度学习模型。但是针对医疗的大数据还有一些特殊性值得我们注意。举几个例子,有很多应用场景如诊断问题,需要结论的可解释性或部分可解释性,那么我们的很多黑箱算法,如深度学习就遇到挑战了。当然可以用知识推理,但问题又来了,知识图谱建立的各种挑战和知识图谱普遍碎片化的现状让我们的推理工作障碍重重。现实就是如此,但有什么办法尽量做得好一点?可以把符号推理与统计学习结合起来,让碎片化知识图谱的知识推理和深度学习的决策模型结合起来,我们称之为Local Knowledge Powered Global Learning。如何结合?方法很多,学术界也很关注,但不是现在的主题,暂时放放。最后,说明一下,大数据的类型很多,普遍认为有很多应用场景直接使用大量文本数据就可以用了:比如搜索,找相关的文章去读;比如自动问答,找到能回答问题的一段话就可以。但仔细想想,我们真的逃开了上面列出的技术问题吗?假设我们想要寻找一个罕见疾病的可能病因或方案,有大量的医疗文献可供查找,我们是否要从问题和文献中识别目标实体,是否要做语义的扩展用来匹配,是否要尽可能保证文献覆盖率,是否需要相关性的训练数据?仔细想想,在这些场景中其实就是把上边提到的一些功课放在另外一个流程中去做了,至少部分的做了,所以说到底还是做了。


作者简介



闫峻博士,微软亚洲研究院资深研究员。他的研究兴趣包括人工智能中的知识挖掘,基于知识的机器学习,文本处理技术,信息检索,互联网广告等并更加关注医疗健康领域的人工智能研究。至今为止,他的数十项研究成果被应用到微软的不同技术产品中,获取技术专利数十项,发表高质量学术论文70余篇。他是很多高质量学术会议的程序委员会成员及资深程序委员会成员, 并且是很多高质量期刊的审稿人。



 

文本型医疗大数据,拿来就可用?

$
0
0


编者按

本文作者是微软亚洲研究院数据挖掘与企业智能化组资深研究员闫峻。此前在微软研究院AI头条上我们也分享过他们组的研究,分别是让计算机掌握常识:微软发布Microsoft Concept Graph和Microsoft Concept Tagging模型培养一个人类医生至少需要八年,那么人工智能呢?闫峻博士在本文中解读了一些在对外合作交流中经常被问起的关于医疗大数据的问题。


文本型医疗大数据,拿来就可用?

闫峻

数据挖掘与企业智能化

微软亚洲研究院


我们的很多研究工作都是基于大数据的,现在所做的健康医疗领域研究也要基于大规模医疗文本数据的处理。但是否有了大量的确定领域文本数据,就可以直接拿来进行挖掘,建模,并利用数据来创造价值了呢?如果发现问题没那么简单,我们要做些什么工作才能让这些大数据真正创造价值呢?为了尝试搞清楚这些问题,我们先来看看人们对文本型医疗大数据理解上的一些常见误区。


大数据与可计算大数据


我们现在触手可及的文本型健康医疗数据很多,能够获取的数据规模也都很大,但这是否就意味着这些数据可以供研究机构或商业机构做大数据分析,让数据产生更大价值了呢?在使用这些数据之前,让我们先区分一下大数据可计算大数据的区别。很多大数据科学家口中所说的大数据,往往指的是可计算的大数据。举个例子,某科室门诊病历数量巨大,我们希望从患者主诉和医生诊断及最终的治疗效果中建模出更有效的治疗方案。然而,当我们看到真实数据后会发现,大部分数据是整段的文本描述,计算机根本无从下手进行预测分析,甚至连一些基本的统计工作都无法进行,那么这样的数据就是不可计算的。如果我们可以把文本数据转换为数据库表、关系图,甚至数值型向量,计算机就可以读懂数据,进行我们想要的分析。例如根据某项疾病统计患者的年龄分布,根据每一项症状和检查指标,推荐可能有效的药品等。要把自然语言的描述转换为计算机可以计算的数据,需要依赖自然语言处理中的很多基础技术,比如句子的分词实体识别实体的归一化和链接等。临床电子病历的后结构化就是基于这些技术手段将大量不可计算数据转换为可统计、可计算数据的一个实际应用场景。所以拿到一份数据,我们需要先看看是否可用于计算;如果不是,就要做些功课了。


数据大与大数据


大家都期望从大数据中挖掘出潜在的价值,但是否数据量大了就是大数据,就一定有巨大价值呢?在进行大数据计算之前,我们还要区分一下数据大大数据的区别。数据量大是我们谈及大数据的前提,但如果数据是有偏的和局部的,其价值将大打折扣。尽管工程上讲数据量大了,问题就是大数据问题,但从应用角度看,光凭数据量已经不能从本质上定义是否是大数据问题。我们理想的大数据指的是能够代表现实世界真实数据分布的数据。换句话说,如果大量数据代表了现实世界的真实情况,我们从中学习到的任何结论和数学模型都将具有实际意义,就可以用来预测未来和指导实践。反之,如果数据本身很偏,无论量有多大,得到的结论和模型都会很局限,甚至不能推广运用,那么其价值的折扣率就会很高。举个例子:某科室积累了大量门诊病历,数据已经很好结构化可用于计算,但所有数据都是本科室医生在过去几年针对某些疾病的积累,治疗手段渐渐趋同,我们从中建模出能打破瓶颈的新诊疗方案的可能性就很低了。下图用直观的方式来解释这个问题:外边的大圈代表真实的数据分布,当然不得不承认这个大圈对于大部分实际应用都是未知的。假设我们获得了大量数据,以里边小圈表示,明显小圈在整体数据分布中是偏向于某个局部的,那么我们的各种大数据计算所得的结果就会或者被局限到小圈以内,或者通过机器学习算法扩展到用虚线表示的那个小圈,距离真实数据分布的结论和模型还差得远,这就导致了我们大数据分析得到的结论不能代表现实世界的真实情况。既然如此,如何保证数据量大就是真正大数据问题呢?现实一点说,对很多应用来说根本无法保证,但我们可以尽可能逼近。如何逼近?对这个具体领域就是获取尽可能多的多源同类数据,如针对同一病种获取采用不同治疗方案的不同医院的数据。这里边有很多现实的挑战,首先是数据共享的挑战,这个太难了,但我们已经看到在开放领域的诸多努力,如开放知识图谱项目(OpenKG);从技术的角度看,问题是不同数据来源对知识的表达方式暂时还没有大家都在执行的统一标准,于是数据的融合成了大问题。这里边的挑战很多,大家都知道不同医院的医生在写病历过程中对同一实体的描述方式很可能不同,即使在同一家医院,医生也不能保证用同一名称表达同一个症状。要实现数据的融合,最起码的一个要解决的问题就是同一实体,同一短语,甚至同一句话的语义扩展表达以及最终归一化的问题,可以是符号的扩展,也可以是向量的表达,但一定要有办法才行。


真大数据与伪大数据


如果我们有了可计算的大量数据,也尽人力之所能地尝试逼近了真实数据分布,总可以做大数据分析来解决问题了吧?当然可以解决一部分问题,如很多相关性分析工作,数据聚类工作,但对于很多现实的机器学习问题,尤其是有监督学习问题,我们再要区分一下真大数据伪大数据。什么是伪大数据?就是看起来很大,实际上很小的数据。沿用前边的例子,我们希望从门诊病历中根据患者信息,医生治疗方案以及治疗效果做疗效的预测模型,数据量可能很大;但当我们做模型训练时发现我们实际上需要有标注的样本才能做机器学习,这里的标注就是疗效。比如一种方案针对某患者A治疗后症状有所减轻,针对另一患者B治疗完全无效,而第三名患者C在治疗后完全康复等等。当我们看了很多数据,会发现尽管总体样本量很大,很多实际问题中有标注的样本量很小,甚至有可能这些有标注的样本量已经少到让整个问题退化成小数据问题或者偏到单纯的数据大问题了。这就是伪大数据,看起来很大,有用部分很小。很多人会说我们可以用半监督学习还有增强学习。当然可用,但当前大部分半监督学习方法的能力也就是从上图的小圈学到稍大一点的虚线圈,增强学习要看我们的应用场景是否允许在现实环境中不断尝试并获得反馈,毕竟医疗人命关天。那该怎么办?答案是主动学习。啥意思? 就是要有人的参与,让我们的大数据以尽可能大的 比例有用。换句话说,让机器不懂就问人呗。就操作层面,出现了两个问题:第一,人为什么要参与?第二,人要花多大成本参与?第一个问题需要应用场景支撑,让参与者在应用中获得好处。毕竟人是懒惰的,没有好处不能强求他人的参与,所以要有落地的项目才能驱动人的参与。这就部分解释了为什么医学大数据研究在没用应用场景情况下的纯研究会比较困难。针对第二个问题,如果要求每条数据都要有人的参与才有用,我们获取有用大数据的成本就会超出我们的想象了。所以要对人提关键问题,让人参与的结果可以泛化到尽可能多的数据中去。实际一点,至少做个聚类分析或者分类吧,把那些距离已知知识比较远但细节类似的情况通过人的一次参与尽可能多的标注解决。


从大数据到大数据的价值


我们利用技术手段,人际关系和实际项目获得了可计算的、尽可能无偏的、尽可能有用的大数据了。这是真的大数据了?可以从数据中收获价值了吗?其实,这才刚开始,数据中会有各种各样的问题,如噪声的问题、不平衡的问题、特征缺失的问题等等,这些总有算法和实际的应用场景解决。好,假设都解决了,获取数据的价值还需要建立模型,也就是我们的统计分析、知识推理、机器学习,包括深度学习模型。但是针对医疗的大数据还有一些特殊性值得我们注意。举几个例子,有很多应用场景如诊断问题,需要结论的可解释性或部分可解释性,那么我们的很多黑箱算法,如深度学习就遇到挑战了。当然可以用知识推理,但问题又来了,知识图谱建立的各种挑战和知识图谱普遍碎片化的现状让我们的推理工作障碍重重。现实就是如此,但有什么办法尽量做得好一点?可以把符号推理与统计学习结合起来,让碎片化知识图谱的知识推理和深度学习的决策模型结合起来,我们称之为Local Knowledge Powered Global Learning。如何结合?方法很多,学术界也很关注,但不是现在的主题,暂时放放。最后,说明一下,大数据的类型很多,普遍认为有很多应用场景直接使用大量文本数据就可以用了:比如搜索,找相关的文章去读;比如自动问答,找到能回答问题的一段话就可以。但仔细想想,我们真的逃开了上面列出的技术问题吗?假设我们想要寻找一个罕见疾病的可能病因或方案,有大量的医疗文献可供查找,我们是否要从问题和文献中识别目标实体,是否要做语义的扩展用来匹配,是否要尽可能保证文献覆盖率,是否需要相关性的训练数据?仔细想想,在这些场景中其实就是把上边提到的一些功课放在另外一个流程中去做了,至少部分的做了,所以说到底还是做了。


作者简介



闫峻博士,微软亚洲研究院资深研究员。他的研究兴趣包括人工智能中的知识挖掘,基于知识的机器学习,文本处理技术,信息检索,互联网广告等并更加关注医疗健康领域的人工智能研究。至今为止,他的数十项研究成果被应用到微软的不同技术产品中,获取技术专利数十项,发表高质量学术论文70余篇。他是很多高质量学术会议的程序委员会成员及资深程序委员会成员, 并且是很多高质量期刊的审稿人。



 

行为识别:让机器学会“察言观色”第一步

$
0
0


电影短片《Changing   Batteries》讲了这样一个故事:独居的老奶奶收到儿子寄来的一个机器人,这机器人善于察言观色,很快就跟老奶奶“心有灵犀”,不仅能在老奶奶口渴时为她端水、在老奶奶扫地时接过老奶奶的扫把,做力所能及的家务活,如果老奶奶在椅子上看电视睡着了,机器人还为她轻轻盖上踏足。有了它,老奶奶又重新感受到久违的快乐,过上了更轻松的生活[1]……咳咳,催泪的故事讲完了,接下来我们先说说这机器人的察言观色技能是怎么实现的。

在人工智能研究领域,这一技能叫人体行为识别,是智能监控、人机交互、机器人等诸多应用的一项基础技术。以电影提到的老人智能看护场景为例,智能系统通过实时检测和分析老人的行动,判断老人是否正常吃饭、服药、是否保持最低的运动量、是否有异常行动出现(例如摔倒), 从而及时给予提醒,确保老人的生活质量不会由于独自居住而有所降低。第二个例子是人机交互系统,通过对人的行为进行识别,猜测用户的“心思”,预测用户的意图,及时给予准确的响应。第三个例子是医院的康复训练,通过对动作行为的规范程度做出识别,评估恢复程度以提供更好的康复指导等。

俗话说“排骨好吃,骨头难啃”,行为识别是一项具有挑战性的任务,受光照条件各异、视角多样性、背景复杂、类内变化大等诸多因素的影响。对行为识别的研究可以追溯到1973年,当时Johansson通过实验观察发现,人体的运动可以通过一些主要关节点的移动来描述,因此,只要10-12个关键节点的组合与追踪便能形成对诸多行为例如跳舞、走路、跑步等的刻画,做到通过人体关键节点的运动来识别行为[2]。正因为如此,在Kinect的游戏中,系统根据深度图估计出的人体骨架(Skeleton,由人体的一些关节点的位置信息组成),对人的姿态动作进行判断,促成人机交互的实现。另一个重要分支则是基于RGB视频做行为动作识别。与RGB信息相比,骨架信息具有特征明确简单、不易受外观因素影响的优点。我们在这里主要探讨基于骨架的行为识别及检测。

人体骨架怎么获得呢?主要有两个途径:通过RGB图像进行关节点估计(Pose Estimation)获得[3][4],或是通过深度摄像机直接获得(例如Kinect)。每一时刻(帧)骨架对应人体的K个关节点所在的坐标位置信息,一个时间序列由若干帧组成。行为识别就是对时域预先分割好的序列判定其所属行为动作的类型,即“读懂行为”。但在现实应用中更容易遇到的情况是序列尚未在时域分割(Untrimmed),因此需要同时对行为动作进行时域定位(分割)和类型判定,这类任务一般称为行为检测。

基于骨架的行为识别技术,其关键在于两个方面:一方面是如何设计鲁棒和有强判别性的特征,另一方面是如何利用时域相关性来对行为动作的动态变化进行建模。

我们采用基于LSTM (Long-Short Term Memory)的循环神经网络(RNN)来搭建基础框架,用于学习有效的特征并且对时域的动态过程建模,实现端到端(End-to-End)的行为识别及检测。关于LSTM的详细介绍可参考[5]。我们的工作主要从以下三个方面进行探讨和研究:

1.如何利用空间注意力(Spatial Attention)和时间注意力(Temporal Attention)来实现高性能行为动作识别 [8]?

2.如何利用人类行为动作具有的共现性(Co-occurrence)来提升行为识别的性能[7]?

3.如何利用RNN网络对未分割序列进行行为检测(行为动作的起止点的定位和行为动作类型的判定)[9]?


1.  空时注意力模型(Attention)之于行为识别


图1.1

图1.1:“挥拳”行为动作序列示例。行为动作要经历不同的阶段(比如靠近、高潮、结束),涉及到不同的具有判别力的关节点子集合(如红色圆圈所示)。这个例子中,人体骨架由15个关节点的坐标位置表示。

注意力模型(Attention Model)在过去这两年里成了机器学习界的“网红”,其想法就是模拟人类对事物的认知,将更多的注意力放在信息量更大的部分。我们也将注意力模型引入了行为识别的任务,下面就来看一下注意力模型是如何在行为识别中大显身手的。

时域注意力:众所周知,一个行为动作的过程要经历多个状态(对应很多时间帧),人体在每个时刻也呈现出不同的姿态,那么,是不是每一帧在动作判别中的重要性都相同呢?以“挥拳”为例,整个过程经历了开始的靠近阶段、挥动拳脚的高潮阶段以及结束阶段。相比之下,挥动拳脚的高潮阶段包含了更多的信息,最有助于动作的判别。依据这一点,我们设计了时域注意力模型,通过一个LSTM子网络来自动学习和获知序列中不同帧的重要性,使重要的帧在分类中起更大的作用,以优化识别的精度。

空域注意力:对于行为动作的判别,是不是每个关节点在动作判别中都同等重要呢?研究证明,一些行为动作会跟某些关节点构成的集合相关,而另一些行为动作会跟其它一些关节点构成的集合相关。比如“打电话”,主要跟头、肩膀、手肘和手腕这些关节点密切相关,同时跟腿上的关节点关系很小,而对“走路”这个动作的判别主要通过腿部节点的观察就可以完成。与此相适应,我们设计了一个LSTM子网络,依据序列的内容自动给不同关节点分配不同的重要性,即给予不同的注意力。由于注意力是基于内容的,即当前帧信息和历史信息共同决定的,因此,在同一个序列中,关节点重要性的分配可以随着时间的变化而改变。

图1.2展示了网络框架图。时域注意力子网络 (Temporal Attention)学习一个时域注意力模型来给不同帧分配合适的重要性,并以此为依据对不同帧信息进行融合。空域注意力子网络(Spatial Attention)学习一个时域注意力模型来给不同节点分配合适的重要性,作用于网络的输入关节点上。

图1.2

图1.2:网络结构框图。主网络(Main LSTM Network)用于对特征进行提取、时域相关性利用和最终的分类。时域注意力子网络 (Temporal Attention)用于给不同帧分配合适的重要性。空域注意力子网络(Spatial Attention)用于给不同关节点分配合适的重要性。

空时注意力模型能带来多大的好处呢?我们在SBU 数据库、NTU RGB D 数据库的Cross Subject(CS) 和 Cross View(CV) 设置上分别进行了实验,以检测其有效性。图1.3展示了性能的比较:LSTM表示只有主LSTM网络时的性能(没引入注意力模型)。当同时引入时域注意力(TA)和空域注意力(SA)网络后,如STA-LSTM所示,识别的精度实现了大幅提升。

图1.3

图1.3:空时注意力网络的识别精度比较。(a) SBU 数据库。(b) NTU 数据库Cross Subject(CS)。(c) NTU数据库Cross-View(CV)。其中, LSTM只包含主网络结构。STA-LSTM同时包含了空时子网络。

细心的读者可能已经发现,序列中的空域注意力和时域注意力具体为多大是没有参考的(不知道Groundtruth)。网络是以优化最终分类性能来自动习得注意力。那么,学到的注意力模型分配的注意力数值是什么样呢?我们可视化并分析了空时注意力模型的输出。图1.4可视化了在 “挥拳”行为动作的测试序列上,模型输出的空域注意力权重的大小,时域注意力权重值 以及相邻帧时域注意力的差值。如图1.4(a)中所示,主动方(右侧人)的节点被赋予了更大的权值,且腿部的节点更加活跃。图(b)展示了时域注意力的变化,可以看到,时域注意力随着动作的发展逐渐上升,相邻帧时域注意力差值的变化则表明了帧间判别力的增量。时域注意力模型会对更具判别力的帧赋予较大的注意力权重。对不同的行为动作,空间注意力模型赋予较大权重的节点也不同,整体和人的感知一致。

(a)



(b) (c)

图1.4: 空时注意力模型学到的权重在“挥拳”测试序列上的可视化。(a) 空域注意力权重。红色圆圈的大小示意对应关节点权重的大小。红色圆圈越大,表示权重越大。这里我们只将有着最大权重的前8个节点做了标记。(b) 时域注意力权重。(c) 差分时域注意力权重,即相邻帧的时域注意力权重的差值。

2.  LSTM网络框架和关节点共现性(Co-occurrence)的挖掘之于行为识别

欣赏完“网红”的魅力之后,我们还是回归一下LSTM网络的本真吧。近年来,除了在网络结构上的探索,如何在网络设计中利用人的先验知识以及任务本身的特性来提升性能,也越来越多地受到关注。

着眼于人的行为动作的特点,我们将行为动作中关节点具有的共现性特性引入到LSTM网络设计中,将其作为网络参数学习的约束来优化识别性能。人的某个行为动作常常和骨架的一些特定关节点构成的集合,以及这个集合中节点的交互密切相关。如要判别是否在打电话,关节点“手腕”、“手肘”、“肩膀”和“头”的动作最为关键。不同的行为动作与之密切相关的节点集合有所不同。例如对于“走路”的行为动作,“脚腕”、“膝盖”、“臀部”等关节点构成具有判别力的节点集合。我们将这种几个关节点同时影响和决定判别的特性称为共现性(Co-occurrence)。

图 2.1

图 2.1 基于LSTM的网络结构和共现性特性的利用。

在训练阶段,我们在目标函数中引入对关节点和神经元相连的权重的约束,使同一组的神经元对某些关节点组成的子集有更大的权重连接,而对其他节点有较小的权重连接,从而挖掘关节点的共现性。如图2.2所示,一个LSTM 层由若干个LSTM神经元组成,这些神经元被分为K组。同组中的每个神经元共同地和某些关节点有更大的连接权值(和某类或某几类动作相关的节点构成关节点子集),而和其他关节点有较小的连接权值。不同组的神经元对不同动作的敏感程度不同,体现在不同组的神经元对应于更大连接权值的节点子集也不同。在实现上,我们通过对每组神经元和关节点的连接加入组稀疏(Group Sparse)约束来达到上述共现性的挖掘和利用。

关节点共现性约束的引入,在SBU数据库上带来了3.4%的性能改进。通过引入Dropout技术,最终实现了高达90.4%的识别精度。

图2.2

图2.2 第一层的神经元(LSTM Neurons)和关节点连接的示意图。以第k组的神经元为例,第k组的神经元都同时对某几个关节点有着大的权重连接,而对其他关节点有着小的权重连接(在这里用未连接来示意)。

3.  基于联合分类和回归的循环神经网络之于行为动作检测



(图片来自网络)

前面讨论了对于时域分割好的序列的行为动作分类问题。但是想要计算机get到“察言观色”的技能并不那么容易。在实际的应用中多有实时的需求,而摄像头实时获取的视频序列并没有根据行为动作的发生位置进行预先时域分割,因此识别系统不仅需要判断行为动作的类型,也需要定位行为动作发生的位置,即进行行为动作检测。如图3.1所示,对于时间序列流,检测系统在每个时刻给出是否当前是行为动作的开始或结束,以及行为动作的类型信息。

图3.1

图3.1:行为动作检测示例。对于时间序列流,系统在每个时刻给出是否当前是行为动作的开始或结束,以及行为动作的类型信息。

图3.2

 图3.2:基于滑动窗口的行为动作检测示意图,即每个时刻对固定或者可变的时域窗口内的内容进行判定。

在线(Online)的行为动作检测常常采用滑窗的方法,即对视频序列流每次观察一个时间窗口内的内容,对其进行分类。然而基于滑窗的方法常常伴随着冗余的计算,性能也会受到滑动窗口大小的影响。

对于骨架序列流,我们设计了基于循环神经网络LSTM的在线行为动作检测系统,在每帧给出行为动作判定的结果。LSTM的记忆性可以避免显式的滑动窗口设计。如图3.3所示,网络由LSTM 层和全连层(FC Layer)组成前端的网络Deep LSTM Network, 后面连接的分类网络 (Classification Network)用于判定每帧的动作类别,同时,回归网络 ( Regression Network )用于辅助确定动作行为的起止帧。图3.4展示了该回归子网络对起止点位置的目标回归曲线,即以起始点(结束点)为中心的高斯形状曲线。在测试时,当发现代表起始点的回归曲线到达局部峰值时,便可以定位为行为动作的起点位置。由于LSTM网络对时间序列处理的强大能力,加上联合分类回归的设计,联合分类和回归循环网络(JCR-RNN)实现了快速准确的行为动作检测。


图3.3

图3.3:用于在线行为动作检测的联合分类回归(Joint Classification-regression)循环网络框架。

图3.4

图3.4:行为动作的起止点目标回归曲线。在测试阶段,当起始点(终止点)的回归曲线到达局部峰值时,可以定位为行为动作的起始(结束)位置。

总结和展望

由于行为识别技术在智能监控、人机交互、视频序列理解、医疗健康等众多领域扮演着越来越重要的角色,研究人员正使出“洪荒之力”提高行为识别技术的准确度。说不定在不久的某一天,你家门口真会出现一个能读懂你的行为、和你“心有灵犀”的机器人,对于这一幕,你是不是和我们一样充满期待?


[1] https://movie.douban.com/subject/25757903/  

[2] Gunnar Johansson. Visual perception of biological motion and a model for it is analysis.  Perception and Psychophysics 14(2), pp 201–211, 1973.

[3] Alejandro Newell, Kaiyu Yang, Jia Deng. Stacked Hourglass Networks for Human Pose Estimation, In ECCV, 2016.

[4] Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh. Realtime Multi-person 2D Pose Estimation using Part Affinity Fields. arXiv preprint arXiv:1611.08050, 2016.

[5] http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[6] CVPR2011 Tutorial on Human Activity Recognition.  

http://michaelryoo.com/cvpr2011tutorial/

[7] Wentao Zhu, Cuiling Lan, Junliang Xing, Wenjun Zeng, Yanghao Li, Li Shen, Xiaohui Xie. Co-Occurrence Feature Learning for Skeleton Based Action Recognition Using Regularized Deep LSTM Networks. In AAAI, 2016.

[8] Sijie Song, Cuiling Lan, Junliang Xing, Wenjun Zeng, Jiaying Liu. An End-to-End Spatio-Temporal Attention Model for Human Action Recognition from Skeleton Data. Accepted by AAAI, 2017.

[9] Yanghao Li, Cuiling Lan, Junliang Xing, Wenjun Zeng, Chunfeng Yuan, Jiaying Liu. Online Human Action Detection Using Joint Classification-Regression Recurrent Neural Networks. In ECCV, 2016.

本文作者

兰翠玲博士,微软亚洲研究院副研究员,从事计算机视觉,信号处理方面的研究。她的研究兴趣包括行为识别、姿态估计、深度学习、视频分析、视频压缩和通信等,并在多个顶级会议,期刊上发表了近20篇论文,如AAAI, ECCV, TCSVT等。


 
Viewing all 620 articles
Browse latest View live