This commit is contained in:
louzefeng
2024-07-11 05:50:32 +00:00
parent bf99793fd0
commit d3828a7aee
6071 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
<audio id="audio" title="151 | 精读AlphaGo Zero论文" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/8d/ab/8d21f182725cc1895b49d5dc8ffd89ab.mp3"></audio>
长期以来,利用人工智能技术挑战人类的一些富有智慧的项目,例如象棋、围棋、对话等等都被看做人工智能技术前进的重要参照。人工智能技术到底是不是能够带来“拟人”的思维和决策能力,在某种意义上成了衡量人工智能水平以及整个行业发展的试金石。
在这些项目中,围棋可以说是一个难度很大的项目,更是饱受关注。一方面,围棋的走棋可能性非常多,且棋局变化多端,这似乎给计算机算法带来了很大的困难。另一方面,围棋在一些国家和地区(比如中国、日本和韩国)不仅仅是一个智力竞技项目,更有一系列理念、人格等全方位的配套文化概念,使得人们对此产生怀疑,人工智能模型和算法是否能够真正学习到有价值的信息,而不仅仅是模拟人的行为。
2015年来自谷歌DeepMind团队的AlphaGo打败了职业二段樊麾在这之后短短两年的时间里该团队的人工智能技术迅猛发展不仅以4比1击败韩国的李世石九段更是在今年战胜了即时世界排名第一的柯杰可谓战胜了被誉为“人类智慧皇冠”的围棋项目。
前段时间DeepMind团队在《自然》杂志上发表了AlphaGo的最新研究成果AlphaGo Zero这项技术更是把人工智能在围棋上的应用推向了一个新高度可以说是利用计算机算法把围棋的棋艺发展到了一个人类之前无法想象的阶段。
今天我就来带你认真剖析一下这篇发表在《自然》杂志上的名为《不依靠人类知识掌握围棋》Mastering the Game of Go without Human Knowledge的论文 。标题中的不依靠人类知识当然有一点夸张,不过这也正是这篇论文的核心思想,那就是仅用少量甚至不用人类的数据来驱动人工智能算法。在之前的很多人工智能模型和算法来看,这是一个巨大的挑战。
## 作者群信息介绍
文章共有17位作者都来自伦敦的谷歌DeepMind团队。AlphaGo的第一篇论文也是发表在《自然》杂志当时有20位作者比较起来这篇论文的作者数目减少了。另外虽然两篇论文的主要作者都是三名共同贡献但是这三个人发生了一些变化。下面我就介绍一下本文的三个主要作者。
第一作者大卫·希尔维David Silver目前在DeepMind领导强化学习Reinforcement Learning的多项研究。大卫的经历很传奇早年曾在南非生活和学习1997年从剑桥大学毕业后先到一家名为Elixir Studios的游戏公司工作了好几年。然后到加拿大的阿尔伯塔大学University of Alberta学习机器学习特别是强化学习。他当时就开始尝试开发用计算机算法来进行围棋博弈。大卫2013年全职加入DeepMind之后迅速成了DeepMind在强化学习特别是深度学习和强化学习结合领域的领军人物。
第二作者朱利安·施瑞特维泽Julian Schrittwieser是谷歌的一名工程师他长期对围棋、人工智能感兴趣。值得注意的是朱利安这次成为主要作者而在之前的第一篇文章中还只是普通贡献者可以推断在AlphaGo Zero这个版本里有相当多的工程优化。
第三作者卡伦·西蒙彦Karen Simonyan是DeepMind的一名科学家长期从事计算机视觉和人工智能技术的研究。他来自2014年DeepMind收购的一家名为Vision Factory的人工智能公司。卡伦最近几年的论文都有高达几千的引用量。
## 论文的主要贡献
首先,**这篇论文的主要“卖点”就是较少利用、或者说没有利用传统意义上的数据驱动的棋局**。第一篇论文里的AlphaGo以及后面的一些版本都是主要利用人类的棋局作为重要的训练数据采用监督学习Supervised Learning和强化学习结合的形式。在AlphaGo Zero这个版本里人类的棋局被彻底放弃而完全依靠了强化学习从完全随机Random的情况开始“进化”出了具有人类经验的各种走法的围棋策略并且达到了非常高的竞技水平。可以说这是本篇论文的核心贡献。
在核心的模型方面也有不少改进,比如一个很大的改进就是**把策略网络Policy Network和价值网络Value Network合并**,这样就能更加有效地用简单统一的深度模型来对这两个网络进行建模。另外,整个模型的输入特征也有变化,从深度模型提取特征外加人工挑选特征,到这篇文章提出的**完全依靠棋盘的图像信息来自动抓取特征**,可谓是减少人工干预的一个重要步骤。
文章的另一大看点是实验结果。作者们展示了新的AlphaGo Zero模型能够战胜之前很多版本的模型最令人惊奇的可能莫过于AlphaGo Zero在“自学”的过程中还“悟”到了很多人类在围棋学习过程中领悟的棋局招数。
## 论文的核心方法
AlphaGo Zero模型的核心起源于一个简单的深度网络模型。这个深度网络的输入是棋盘当前位置的表达Representation以及过去的历史信息输出一个走子的概率以及对应的价值。这个价值是用来描述当前棋手能够赢的概率。刚才我们已经说了这个深度网络集合了策略网络和价值网络形成了这么一个统一的评价整个棋盘的神经网络。在具体的网络架构方面AlphaGo Zero采用了计算机视觉领域最近流行的**残差架构**ResNet可以说也是这个方法的一个小创新。
有了这个基本的神经网络之后,作者们就需要和强化学习结合起来。具体来说,在每一个位置的时候,算法都会去执行一个**蒙特卡罗树搜索**Monte Carlo Tree Search对当前的神经网络模型输出的走子策略进行一个修正或者可以认为是“加强”。这个蒙特卡罗树搜索的输出结果依然是走子的概率但是这个概率往往比之前单从神经网络得到的要强。然后更新神经网络的参数使得参数尽可能地接近蒙特卡罗树搜索的结果。
那么,什么是蒙特卡罗树搜索?简单来说,就是我们从当前的棋盘情况出发,对整个棋盘产生的所有可能性进行有限制情况的搜索,也就是说,不是“穷举法”。大体说来,从某一个可能性走到下一个可能性主要是依靠下一个可能性发生的概率,以及通过神经网络来判断是否能赢的可能性。
整个算法最开始的时候是从随机的位置初始化然后通过对神经网络的更新以及每一个迭代通过利用蒙特卡罗树进行搜索从而找到更加合适的神经网络模型的参数整个算法非常简单明了。不管是结构上还是复杂度上都比之前的版本要简洁不少。文章反复强调公布的算法可以在单机上运行基于Google Cloud的4 TPU机器相比于最早的AlphaGo需要使用176个GPU也可以看到整个模型的进化效果。
## 方法的实验效果
AlphaGo Zero的实验效果是惊人的。从模拟中看大约20小时后这个版本的模型就能够打败依靠数据的监督学习版本的AlphaGo了。而到了40小时后这个版本已经可以打败挑战了李世石的AlphaGo。也就是说不依靠任何人类棋局AlphaGo Zero在不到2天的运算时间里就能够达到顶级的人类水平。
除了可以打败之前的AlphaGo版本以外这个版本相比于监督学习的版本在大约20小时以后也可以更好地预测人类对战的走子。并且随着训练时间的推移这种预测的准确性还在不断提升。
刚才我们也提到了AlphaGo Zero在自我训练的对战中在不依靠人类数据的情况下的确是发现了相当多的人类熟悉的对战套路。然而有一些人类在围棋历史中较早发现的套路却没有或者较晚才在AlphaGo Zero的训练历史中习得。这打开了很多问题比如发生这样情况的原因究竟是什么等等。
最后作者们展示了AlphaGo Zero非常强大的实战能力在和之前最强的AlphaGo版本也就是AlphaGo Master的对战中AlphaGo Zero取得了100比0的绝对优势。而相同的AlphaGo Master与人对弈的成绩是60比0。
## 小结
今天我为你讲了发表在《自然》杂志上的这篇关于AlphaGo Zero的论文这篇文章介绍了一个简洁的围棋人工智能算法结合深度学习和强化学习不依靠人类的信息。
一起来回顾下要点:第一,关注这篇文章主要作者的信息,我们可以推断出文章的一些变化方向。第二,这篇文章有两大看点,一是很少或者几乎没有利用人类的棋局数据,二是得到了显著的实验结果。第三,文章提出的核心模型将策略网络和价值网络合并,与强化学习相结合。
最后给你留一个思考题有人说AlphaGo Zero并不是完全不依靠人类信息比如围棋本身的规则就是很强的监督信息再比如不管每一步的走动如何棋局最后是输是赢依然是很强的信息。那么AlphaGo Zero到底是不是还是依赖了很强的数据呢我们能不能把AlphaGo Zero看做是监督学习的产物呢你怎么看
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,57 @@
<audio id="audio" title="152 | 2017人工智能技术发展盘点" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/0f/99/0f5c193cf22f6807fd174eb2e0398d99.mp3"></audio>
今天是大年初一,在这里先给你拜个年,祝新年新气象,新年新开始!
在今天这个辞旧迎新的日子里,我们对过去一年的人工智能技术发展做一个简单的盘点,梳理思路,温故知新。
**2017年对于人工智能整个领域的发展是举足轻重的一年**。这一年人工智能的各个领域都蓬勃发展我们目睹了一些在AI发展史上的标志性事件。比如从人工智能的技术上看人工智能系统AlphaGo Master与人类世界实时排名第一的棋手柯洁展开围棋人机对决最终连胜三盘从人工智能的投入上看很多互联网公司都先后成立单独的人工智能研发机构像阿里巴巴的达摩院从云服务和人工智能结合的发展来看2017年谷歌在这一方向发展迅猛不仅在中国开设了研发中心还宣布已经有超过万家企业和组织正在使用谷歌的人工智能接口。
今天我希望能够从几个关键领域和发展方向出发,在繁多的科技进步中,理清关键信息,对过去一年的产业动态和发展做出点评,给你一个清晰而简单的信息参考。
## 人工智能在棋牌上的迅猛发展
**2017年的一个标志性的事件无疑是AlphaGo在围棋这项运动中的“收官”表现**。虽然2016年AlphaGo战胜李世石之后很多人依然对人类能够在围棋这个古老的运动中有所发挥保留着期望也给予其他围棋选手以希望。然而5月27日AlphaGo Master与当时人类世界实时排名第一的棋手柯洁展开人机对决并且直接连胜三盘可以说这个结果完全摧毁了人类在这个项目上的希望。随后AlphaGo团队的负责人德迈斯⋅哈萨斯Demis Hassabis宣布乌镇围棋峰会将是AlphaGo参加的最后一场赛事这也意味着AlphaGo以完美的表现“收官”。
几个月后的10月DeepMind团队在《自然》杂志上发表了一篇文章介绍了AlphaGo Zero一个没有用到人类棋局数据的AlphaGo比以前任何击败人类的版本都要强大。通过跟自己对战AlphaGo Zero经过3天的学习以100:0的成绩超越了AlphaGo Lee的实力21天后达到了AlphaGo Master的水平并在40天内超过了所有之前的版本。这种完全不依靠人类棋局的办法并且能够通过自我训练达到最高人类水平可以说是让人工智能界目瞪口呆。我们在之前的分享中曾经详细介绍了这篇论文的核心内容[精读AlphaGo Zero论文](https://time.geekbang.org/column/article/654))。
从2016年开始到2017年年底短短一年多的时间内AlphaGo经历三次重大进化并以非常完整的形式在《自然》杂志上总结最后成果不得不让人惊叹人工智能在这一方向上发展的神速。
另外一项成就和AlphaGo在围棋上所取得的成就旗鼓相当那就是来自卡内基梅隆大学团队的“**利不拉图斯**”Libratus在宾夕法尼亚州匹兹堡的“里维斯”Rivers赌场战胜四位德州扑克顶级选手获得最终胜利。这个胜利背后的一些原理已经被团队发表在了NIPS 2017的论文中并且这篇论文也获得了NIPS 2017的最佳论文。我们在之前的NIPS 2017最佳论文推荐中也介绍了这方面的内容[精读NIPS 2017最佳研究论文之三如何解决非完美信息博弈问题](https://time.geekbang.org/column/article/3211))。相比于围棋来说,德州扑克这种非对称信息博弈的难度应该说更大,而卡内基梅隆大学团队的成绩在未来应该会有更大的发挥空间。
## 计算机视觉的发展
自从和深度学习紧密结合以来计算机视觉在最近的56年里迅猛发展。2017年在像素级别的分割工作上有了一个不错的进展。通俗地讲就是给定一个输入的图像我们希望能够不仅分析这个图像里究竟有哪些物体还能够对于图像中的每一个像素知道其属于哪一个物体也就是我们经常所说的把物体从图像中“抠”出来。
来自Facebook人工智能研究院的明星团队在ICCV上的两篇最佳论文可以说给这个问题提供了非常漂亮的解决方案。
第一篇的重要进展是Mask R-CNN这篇文章中作者们提出了“两个阶段”的策略。第一个阶段叫做“区域提交网络”Region Proposal Network目的是从图像中提出可能存在的候选矩形框。第二个阶段从这些候选框中使用一个叫RoIPool的技术来提取特征从而进行标签分类和矩形框位置定位这两个任务。Mask R-CNN主要是针对第二部分进行了更改。也就是说不仅仅在第二部分输出区域的类别和框的相对位置同时还输出具体的像素分割。
和很多类似工作的区别是像素分割、类别判断、位置预测是三个独立的任务并没有互相的依赖。这是作者们认为Mask R-CNN能够成功的一个重要的关键。之前的一些工作像素分割成为了类别判断的依赖从而导致这几个任务互相有了干扰。我们在介绍ICCV 2017最佳论文中已经对这篇文章有了详细的论述[精读2017年ICCV最佳研究论文](https://time.geekbang.org/column/article/2681))。
另外一个重要工作则是“焦点损失Focal Loss这也是图像分割的一个重要进展。如果说Mask R-CNN是“两个阶段”的的代表作的话焦点损失则是在“一个阶段”工作上有了显著进展。焦点损失要解决的问题就是对输入图像进行物体识别和语义分割这两个任务。和两阶段的模型不同的是一个阶段模型是希望直接从输入图像入手希望能够从输入图像中提取相应的特征从而可以直接从这些特征中判断当前的图像区域是否属于某个物体然后也能够一次性地找到矩形框的位置用于定位这个物体。
这种思路虽然直观但是有一个致命的问题那就是对于一个输入图像来说大量的区域其实并不包含目标物体因此可以认为是学习过程中的“负例”Negative Instance。如何能够有效地学习这么一个“不均衡”Imbalanced的数据集是这一种思路需要考虑的问题。
焦点损失提出了一个新的目标函数用于取代传统的交叉熵Cross Entropy的目标函数。这个新的目标函数的主要目的就是让一个阶段模型能够在正负例比例非常不协调的情况下依然可以训练出较好的模型使得一个阶段模型在效果上能够和两个阶段模型媲美。我们在之前的论文分享中已经详细介绍过这个工作的内容[精读2017年ICCV最佳学生论文](https://time.geekbang.org/column/article/2717))。
## 人工智能研究机构的发展
2017年我们见证了越来越多的公司和机构设立人工智能研发团队。
10月11日在阿里云栖大会上阿里巴巴 CTO 张建锋宣布阿里巴巴成立全球研究院。达摩一成立就打算在一系列的领域做出成绩。从宣布的战略看来,达摩希望涉足量子计算、机器学习、基础算法、网络安全、视觉计算、自然语言处理、人机自然交互、芯片技术、传感器技术、嵌入式系统等,涵盖机器智能、智联网、金融科技等多个产业领域,整个布局可谓雄心壮志。
第一步的计划是在全球各地组建前沿科技研究中心包括亚洲达摩院、美洲达摩院、欧洲达摩院并在北京、杭州、新加坡、以色列、圣马特奥、贝尔维尤、莫斯科等地设立不同研究方向的实验室初期计划引入100名顶尖科学家和研究人员。这样的布局会对阿里的中长远发展有什么帮助我们拭目以待。
很多公司在人工智能团队的布局也可谓争先恐后。一个比较突出的代表是今日头条。互联网的新贵今日头条2017年扩张明显。2月14日前微软亚洲研究院常务副院长马维英离职微软加入今日头条出任副总裁管理今日头条人工智能实验室。之后任职华为诺亚方舟实验室主任的李航博士也选择离开了华为加入今日头条人工智能实验室。如果加上之前比较知名的李磊、王长虎今日头条的阵容可谓兵强马壮。这样的人员配置能够在今后的发展中对今日头条产生多大的影响呢这一点还需要时间的检验。
年底,谷歌的人工智能团队在李飞飞博士和李佳博士的带领下,高调在北京开设分部,成立一个致力于人工智能的中国中心。在公开的新闻稿里,谷歌认为北京有在未来技术领域拥有发言权的野心,这种野心推动了中国政府的大力投入,让国内在人工智能领域展现出日益增长的实力。谷歌已在北京有数百名从事研发和其他工作的员工。谷歌中国人工智能中心将由李飞飞和李佳领导。李飞飞是斯坦福大学人工智能实验室的负责人,领导着谷歌云业务的人工智能部门。李佳是谷歌云业务的人工智能部门研发主管。
## 小结
今天我为你简单梳理了2017年人工智能领域发生的一些事情希望能够帮助你去回顾这一年。**人工智能的蓬勃发展,表现在每天都有太多的新技术新动态,这里我们只是以点带面,让你感受到过去这一年行业的飞速变化**。
对于2017年人工智能领域的发展你有怎样的感受和体验呢
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,61 @@
<audio id="audio" title="153 | 如何快速学习国际顶级学术会议的内容?" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/b3/ee/b3db6dba58561f6cb9a08e1e03da66ee.mp3"></audio>
我们在专栏中已经多次分享了计算机科学(特别是机器学习、数据挖掘和人工智能)领域顶级学术会议的会议论文,向你介绍了这些会议中一些最新的学术和研究成果,希望这些内容能够起到抛砖引玉的作用。
最近今年,随着机器学习和人工智能的逐渐火热,越来越多的研究人员投入到这些领域中,这些顶级会议的投稿论文数和收录稿件数都成倍增长,不少会议会有几百篇论文被收录。这就给希望学习这些论文的人,不仅是初学者,甚至是长期在这些领域工作的研究人员和实践者,都带来了不小的挑战。
现实情况下,尝试去看完一个会议的所有论文是不现实的,从某种程度上看也是不必要的。那么,怎样才能从这些会议中快速地、有效率地吸收到更多的内容呢?想要事半功倍地学习顶级学术会议的论文,究竟有没有什么方法可以帮助我们实现这个目的呢?
今天我就结合自己的经验,和你分享如何快速学习顶级会议的内容。
## 顶级会议的基本内容架构
在学习任何顶级会议的论文内容之前,我们其实最需要了解的就是这些会议本身有什么规律,或者说会议的内容安排上是不是遵循了一定的逻辑架构。这里,我们首先来看一看这些顶级会议在内容安排上的规律。
毫无疑问,所有顶级会议的核心内容是收录的论文。这一点,我已经反复提及了。有一个细节可能是初学者容易忽视的,那就是很多会议都对收录的论文进行了区分,用于区分出最优秀的论文和一般的论文。
这种区分一般有两种形式。第一种形式是论文在会议上的表现形式有区别。最优秀的少量论文是时长2030分钟的**演讲报告**,而其他大量的论文是时间很短的报告,或者有的会议干脆就没有这些论文报告时间。第二种形式是这些论文在会议论文集中发表的长度有区别,这也就有了所谓**长论文**和**短论文**的区分。通常情况下长论文是811页而短论文则是26页不等。
除了收录的论文以外,顶级会议往往还有很多精彩的内容。你可以关注的第二个有价值的内容形式是“**讲座”**Tutorial。“讲座”的形式常常有半天的、全天的以及超过一天由几个研究者针对某一个特定主题的集中式分享和讨论。一般来说“讲座”往往是一些最新的热点问题但同时有了一整套阶段性的成果这时候在这个领域有突出贡献的研究者就利用“讲座”的模式把这些内容给总结出来进行分享。
第三种你可以关注的内容形式就是“**研讨班**”。“研讨班”是针对某一个特定的近期热门的主题,由一些学者或者工程师组织的小型会议。和“讲座”一样,“研讨班”往往也是半天到一天不等。“研讨班”被认为是小型会议,因此有时候也还会收录一些论文。然而,这些论文的数量和质量都有很大的差别。
从组织的角度来讲“研讨班”的目的主要是吸引更多人对某个主题的关注以及给目前针对这个主题工作的研究者们提供一个交流的场所和平台。从这个角度来讲很多“研讨班”分享的内容可能都是“还在进行的工作”Work In Progress。所以“研讨班”所关注的热点往往比“讲座”还要激进。近年来机器学习和人工智能的热点越来越多有的会议有多达十几个甚至二十几个“研讨班”在大会期间举行。
最后,还有一个可以关注的则是很多会议和研讨班中都有的“**邀请演讲**”Invited Talk或者叫作“**主题演讲**”Keynote Talk。如果是亲自参加这些会议或者有视频录像那么这些演讲往往还是值得一听的。从会议组织的角度来说这些演讲往往是邀请在本领域有重大贡献的学者或者是相关领域的权威学者。因此通过这些演讲我们可以了解到这些领域的重要学者都在针对什么问题进行思考以及他们眼中这些领域的发展方向是怎样的。
上面介绍了几个顶级会议值得关注的点,需要注意的是,并非所有会议都有“研讨班”或者“讲座”。
## 如何精选内容
了解了这些顶级会议内容的一个基本架构以后,我们现在来聊一聊如何从这些不同形式的内容中精选出你可以学习的信息。
首先,我们来说一说论文。刚才提到了,论文可能分为长论文、短论文以及报告论文和非报告论文。那么,有一些比较粗浅的方法可以帮助你筛选。例如,针对长论文和短论文,可以首先关注长论文。对于报告论文和非报告论文,可以先关注报告论文。利用这种简单的方法,我们已经过滤掉了至少一半以上的论文数量。这里的一个基本假设是,会议安排这些论文的区分其实就是一个最基本的质量控制。
另外很多会议把所有的论文分为不同的“组”Track。每一个组其实有一个主题例如搜索、推荐、用户建模等等。这其实也是帮助你通过论文内容的类别进行区分。所以如果你已经知道自己感兴趣的内容那就可以直奔主题。再庞大的会议针对某一个主题的论文数目往往也是非常有限的。
还有一种便捷的方法就是“跟踪”某一些学者。当然,这需要你对这些领域有哪些活跃的学者、有哪些权威的学者要先有一个了解。你心里有这么一个清单,那么,只关注这些你清单上的学者在这个会议上发表的论文就是一个非常简洁的方法。
举一反三,还有一些和追踪学者类似的办法,比如你可以追踪某几个研究组或者公司。当然,这也需要你对这些领域有一定的了解。
对于论文来说,另外一个精选内容就是获奖论文。虽然对于获奖论文在长期来看是不是最具有学术价值一直存在争议,但是作为快速学习和扩宽视野的方法,浏览这些获奖论文以及获奖作者的一些附带研究,可以说是了解一个领域的另外一个捷径。
说完了论文之后,我们来看一看“讲座”。其实,这里也有一个窍门,那就是**如果你是一个初学者,我建议你不要一上来就去看一个会议的论文,而是从“讲座”入手**。
我们前面提到过,“讲座”是学者已经总结好的最近已经形成一定系统性的研究成果。这里,“总结好”和“系统性”这两个特点非常重要。这意味着“讲座”里面的内容往往不是一篇论文的介绍,而是多篇相对于一组主题论文的总结。这一组论文以及相关主题极有可能已经形成了一个稳定的内容块,而“讲座”的目的就是希望更多人认可、学习、普及这个内容块。有很多“讲座”的内容在几年后就成为了这些领域核心经典思想的一部分。因此,**学习“讲座”其实就是一个走捷径的过程**。
另一方面,因为“讲座”具有总结性质,所以肯定会提供很多具体论文的文献资料,这些资料可以作为进一步学习的“指南针”。正因为这个性质,对于“讲座”内容的把握你可以做到先从概念上和大思想上对一个主题进行把握,例如看你自己能不能简单地把这个“讲座”中的核心技术、核心思想复述出来。同时,你也可以来衡量一下到底需不需要对这个“讲座”具体指引的论文进行阅读。绝大多数的时候,我们对于“讲座”的把握在这个层次其实就够了。
最后,我们来说一说“研讨班”的内容。和“讲座”不同的是,“研讨班”的内容因为其性质,往往比较杂。我们刚才也提到了,“研讨班”重在为一线的研发人员提供一个交流的平台。因此,他们的交流是第一目的。而且,“研讨班”的很多方向和主题都比较新,因此对于初学者而言,需要甄别哪些内容值得细看哪些内容可以忽略。总体说来,这里面的内容都不推荐给初学者。当然,如果你对某一个领域已经追踪了一段时间,有了一定的了解,那么“研讨班”无疑是最前沿的讨论平台之一。
## 小结
今天我为你梳理了如何快速学习顶级会议的内容,希望这篇文章可以帮助你在海量的会议内容中找到自己感兴趣的信息。
一起来回顾下要点:第一,我们讲了顶级会议的内容架构;第二,我们简要地介绍了如何在这些内容中进行快速筛选。
最后给你留一个思考题拿到一篇10页的长论文究竟该如何快速阅读呢
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,63 @@
<audio id="audio" title="154 | 在人工智能领域,如何快速找到学习的切入点?" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/0b/cd/0bfc157c9e44e9d5f8f12a29ebaeb1cd.mp3"></audio>
到现在,我们专栏的人工智能核心技术模块就已经全部介绍完了,我们讲了推荐系统、搜索系统、广告系统、自然语言处理及文本挖掘、计算机视觉这五大模块。相信你对这些领域都有了一个最基本的认识。同时,我们还对一些前沿领域的学术会议进行了专项的讨论,和你分享了一些读论文的经验。
这个过程中,我收到了很多反馈,在人工智能领域,面对日新月异的新模型、新方法、新思路,很多人都感到非常难找到切入点来学习和提高。那么,今天我就来分享一下如何快速入门人工智能领域,帮你找到一些学习的捷径。
## 关注知识主干
我们已经介绍了这么多知识模块,不知道你是否注意到,在每个人工智能的子领域里,真正的知识主干其实是非常有限的。我这里说的“主干”是指构成这个子领域的重要的假设、思路和方法。如果你能够掌握这些主干的内容,那么也就能够相对容易地了解其他枝节信息了。
之所以要了解主干内容,还有一个原因。从时间这个尺度上来看,有一些技术和思想在某个时期曾经有很大的影响力,但是随着时间的变化,它们会被后来更新的技术所取代。因此,只抓主干,也会比较容易看清楚不同类型的技术的时效性。
那么,我们怎么去了解什么是知识主干呢?
**对于比较成熟的子领域,或者是传统领域,我们可以依靠教科书**。一说起教科书,很多人的第一反应就是枯燥。确实,教科书对于很多知识点的描述过于细节,但是从大的知识块上来讲,教科书还是能够帮助初学者尽快把握重要的知识主干,是一个非常高效的途径。
对于一些比较新的、发展迅速的领域,知识的重要结构发生了很大的变化。在这些领域,要么我们还没有成形的教科书,要么就是即便有,教科书的内容也可能是过时的。所以,比较新的领域我们往往需要借助其他的信息途径。
在这里,我给你介绍两个途径。
第一,**“文献综述”Survey论文**。这一类论文的目的就是对一个较新的,而且是快速变化的领域做一些阶段性的总结。从某种意义上来说,我们其实可以把文献综述看成是另外一种“教科书”。既然某个领域变化快速,那么针对这个领域知识的文献综述就会有很强的时效性。所以,阅读文献综述时,我们需要关注发表的时期,以确保文献的新鲜度。
第二,**顶级学术会议的“讲座”Tutorial**。我们之前在如何学习会议内容的分享中提到,讲座往往包含了一些最新的热点问题,同时针对这些问题的研究也有了一整套阶段性的成果,这时候,在这个领域有突出贡献的研究者,就利用“讲座”的模式把这些内容给总结出来进行分享。换句话说,关注这些讲座,也就相当于了解了某个领域的文献综述。
值得说明的是,关注知识的主干内容这一方法其实是可以“**循环使用的**”。什么意思呢?
举个例子,例如我们要了解深度学习究竟有哪些最基本的内容。在这个层次上的主干内容就有前馈神经网络、卷积神经网络和递归神经网络。那么,接下来,我们就需要大概了解这三种不同的神经网络究竟是什么,解决什么样的问题。层层递进,对于某一个神经网络,比如卷积神经网络,我们要了解的主干知识有“卷积是什么意思”,“这种结构要达到什么目的”。
总结一下,不论是学什么内容,第一个思路就是先看看它的主干知识是什么,养成这样一个思考习惯,你的学习效率就会大大提升。
## 关注知名学者
针对人工智能领域入门的另外一个“捷径”是关注你所喜欢领域的学者的研究动态。
在一些人工智能的子领域,经常出现这样一种局面,那就是少数学者的研究成果奠定了整个领域的重大发展。你有没有发现,这其实也就是另外一种意义上的主干内容。追踪和学习这些学者的研究成果有两个目的:一方面可以了解到最新的动态;另一方面可以让学习有的放矢,达到事半功倍的效果。
如果我们针对一个领域搜集到五个左右的学者然后关注这些学者本人以及所在机构或者实验室的成果那么一般情况下你阅读了差不多10篇论文后就基本能够把握住这个方向发展的大概内容。
需要注意的是,我们这里所说的知名学者,主要还是指在某一个领域有重要贡献,特别是贡献了核心思想的学者。对于这些学者,我们不能仅仅关注他们论文的数目,还是要看论文的影响力。对于绝大多数人工智能领域而言,我们可以很容易地在网上找到知名学者的名字和介绍。
补充一点,如何在一个完全陌生的领域寻找知名学者呢?寻找这类学者的一个简单的方法是先看这个领域引用度最高的前几篇论文,然后找到这些论文中经常出现的某个学者的名字,然后根据这个学者的名字稍微查询一下,看一看这个学者过去的一些论文发表经历,从而判断这个学者是不是在某个领域持续进行研究。
## 深入学习少量的模型
对于很多人工智能的初学者而言,各种眼花缭乱的模型往往让人会觉得不知所措。这个时候,与其一头扎入各式各样层出不穷的新模型里,还不如**扎扎实实学懂吃透少数几个模型**。这个思路也符合软件领域我们常说的“T型”人才模型广度很重要但是没有深度的广度很多时候就没有价值。先有了深度广度的拓展就会更容易。
比如,从工业界的应用角度来说,我们一般需要掌握的模型就那么几个。可以说,**如果你掌握了线性模型、树模型和神经网络模型就可以解决超过80%甚至更多的业务需求了**。那么,我们要做的就是深入细致地学习这三种模型,而不是去了解几十种甚至上百种模型,但是每一种都只是了解了一点皮毛内容而已。
那么,对于这些核心内容,多深入才算是深入学习呢?
首先,也是最基本的,我们要“理解”这些模型的最基本的原理。其次,最好能够从数学的角度来理解这些模型的数学推导。再次,还要理解这些模型的“模型本身和优化算法的区别”,以及各种优化算法的好坏。最后,我们最好能够自己动手写一写这些模型的基本实现。另外,还有很多方面能够帮助我们进行深入学习,比如这些模型会有什么特点?在什么场景下比较适用?这些问题都是非常好的参考。
## 小结
今天我为你梳理了快速入门人工智能领域的几个思路,希望你能在学习的过程中快速定位到有用的信息,提高自己的学习效率。但是,有一点我想推心置腹地跟你说,虽然我们今天分享的内容叫作如何快速入门,但是要想在这个领域真正获得成长,我们更需要有一颗平稳的心,要抱持着一种愿意踏踏实实学习基础的态度,这一点是非常必要的。换句话说,**成长为一名有能力的数据科学家或者人工智能工程师,往往并没有太多的捷径可走**。
一起来回顾下要点:第一,我们讲了抓住内容主干的思想;第二,我们简要地介绍了如何跟踪知名学者;第三,我们讨论了深入学习少量模型的好处。
最后,给你留一个思考题,你现在要学习一个新模型,是要深入了解模型的数学细节,还是仅仅知道一个大概信息就可以,你怎么做判断呢?
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,49 @@
<audio id="audio" title="155 | 人工智能技术选择,该从哪里获得灵感?" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/36/dd/36dd2dcc7970fbc316373d17e7f47cdd.mp3"></audio>
在上一讲的内容里,我们分享了在人工智能领域快速学习的一些方法。学习到这些人工智能技术后,我们肯定是希望能够把技术应用到工程实践中,来解决实际产品的问题。
这里面有一个非常重要的问题,就是面对这些论文、或者是别人分享的工程实践,作为初学者或者是有一些经验的工程师,我们应该如何来选择技术呢?是去实现当前最新论文介绍的技术?还是跟随其他公司已经有了的架构?
今天,我们就来聊一聊**人工智能领域的工程技术选择**这个话题。
## 如何看待学术论文和技术选择的关系
首先,我们来看一看论文和工程技术选择之间的关系。我们是不是需要去实现最新论文里的模型呢?
在回答这个问题之前,我们来聊一下学术论文本身的一些特点。
学术论文,作为科学知识和信息传播的一种载体,本身是有其内在的使命和一定的规律的。学术论文的核心功能是在一定的规范框架下,传播、总结和讨论新知识。这里面我们需要注意的是“一定的规范框架”和“新知识”。
我们先来说说新知识,这其实是整个学术论文存在的核心价值。很多新知识其实是某种意义上的学术尝试和创新,例如提出的一种新观点、一种新思想、一种新方法或者是一种新算法。这些新知识是不是能够沉淀下去成为某种主流思想,或者说是否能够在实际系统中真正发挥作用,还有待时间的检验。换句话说,新知识的知识结构还不完整,我们并不知道这些知识点后续会有什么样的发展,我们并不能简单地在学术创新和实现现实意义之间划等号。
因此冒然利用最新的技术往往会因为技术不成熟、信息不完整而带来很多风险。举个例子如果我们在2009年的时候就采用了深度学习技术当时的很多方法例如“事先训练”Pre-Training在后面更加成熟的技术面前都已经被遗弃了。很明显当时的深度学习框架远远没有现在的成熟所以就会有很大的前期工程成本。
再举个例子,在最基本的“随机梯度下降”算法上进行改进的优化算法,绝大多数都是在理论上对收敛速度的改进。而这些收敛速度基本上都取决于当数据点趋近于无穷多的时候。那么,这种改进其实并没有太大的现实意义。
我们刚才还提到学术论文都在“一定的框架范围内”其实就是说目前计算机科学的绝大多数论文都遵循某种格式和写作要求也可以说是某种程度的“八股论文”式的写作。这种格式虽然统一了论文发表内容的差异性但是过分注重在某个标准数据集上的一些性能提升就有可能发明了一些在其他数据集上完全无法推广的技术。比如有的论文甚至把在某些标准数据集上非常小例如小于1%)的提升当作重要的创新。显然,这样的成果往往都无法在工程环境中复现,又何谈现实意义呢?
说了这么多学术论文的特点,我们再回到刚才最开始的话题,那就是学术论文和工程选择的关系。学术论文提供了一种思路,帮助我们开阔眼界,但是切记,我们不能把学术论文当作是金科玉律和亘古不变的真理。相反,对于每一篇学术论文,我们要带着批判的眼光,有所保留地来看待论文背后的创新点。
那学术论文中的思路是不是就完全不要去采用呢?其实也不是。**当我们发现有一系列的学术论文,或者很多学术会议都在探讨某个类似的技术时,那么这个技术也许就值得我们尝试去实现一下,来做一些早期的评测,看这样的技术在自己工程环境的数据中是不是依然有效果**。
## 如何看到工业界技术分享和技术选择的关系
除了正规的学术论文以外,在人工智能火热的今天,各类工业界的技术分享也是层出不穷,这里面的内容水平和可复制性可以说是千差万别。那么,我们到底应该如何看待这些技术分享呢?我总结了两点给你借鉴。
第一,一般来说,很多公司的技术分享其实都是只言片语或者说一个整体平台的片段。因此,如果我们直接把这些分享用于自己团队的工程实践中,往往就会产生断章取义的效果。
实际上,一个公司的技术选择和这个公司在做选择那个时间段的很多因素都有着密不可分的关系。比如,一个比较大的机器学习系统往往和公司的其他业务需求、数据基础、机器学习基础设施以及团队当时的工程水平等因素相关。某一个系统在一个时期内的形态就是这些相关因素的一个综合体现。然而,技术人员的分享内容很难涵盖所有的方方面面,使得我们容易忽略某个技术选择和公司以及团队的这种内在的紧密联系,而单纯考虑技术分享的内容。因此,**尽量去理解其他公司的技术选择思路,要比只关注所分享的内容本身更重要**。
第二,**公司的很多技术选择并不是同行审议的结果,需要我们带着批判的眼光去看待**。这一点是和学术论文相比较而言的。一般来说,一篇高水平的论文要想发表在顶级学术会议(或者期刊)上,往往都需要得到同行的审议。这种审议的重点一般会看论文是不是比较了类似方法,以及能否真正说清楚论文的创新点和贡献在哪里,这其实就是对论文质量的某种程度的把关。那么,这个同行审议的环节在公司做技术选择的过程中是不一定存在的。很多公司的技术发展路线选择都不能摆脱种种外部的和内部的限制,最后的结果并不是无懈可击或者不容置疑的。
所以,我们不太可能直接复制其他公司的技术框架,但是这些公司的技术分享对我们的好处也是显而易见的。**我们一定要抱着开放的心态来学习这些分享中的精华之处,重点是能够理解各个组件之间的逻辑关系,以及一些关键技术点选择背后的推理过程和取舍过程,这种思考对于我们的提高是非常有帮助的**。
## 小结
今天,我们从如何借鉴学术论文和工业界技术分享两个角度,一起来梳理了人工智能技术选择的思路。工程技术选择是一个综合的复杂问题,我们一方面着眼于创新技术本身,一方面着眼于自己公司、产品和团队的实际情况,以批判的眼光吸收新知识和新实践,最后做出最适合自己发展的技术选择。
最后给你留一个思考题在一个公司的最佳实践分享中他们提出了一个模型A大幅度提高了模型B现在你会如何来看待这个分享呢
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,61 @@
<audio id="audio" title="156 | 近在咫尺,走进人工智能研究" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/32/40/32732b9e0f0f7d1fa0b3ec7509d00540.mp3"></audio>
在前面两次的分享里,我们聊了一些在人工智能领域快速入门的捷径,以及面对不同的论文或别人分享的技术实践,我们该如何来选择技术。我们今天来看另一个话题:**如何做人工智能研究**。
对于初学者来说,可能很多人会觉得人工智能研究离自己比较远,在工作中一时半会儿也接触不到。但实际上,我们有必要了解做研究的一些基本原理,而且这些思路能够应用到我们的日常工作中。
对于中高阶的工程师来说,能够在研究方向更进一步,我们就可以更好地理解优秀的学术论文是怎么写成的,能够快速挖掘出论文的核心价值。同时,也可以把自己手上的工作总结成论文发表出去,真正参与到学术社区的建设当中。当然了,即便我们不以写论文为目的,用做研究的标准来要求自己平时的工作,也可以让很多工作更加严谨,这也是一种不错的进阶。
## 什么是人工智能研究
那到底什么是人工智能研究呢?
简单来说,只要是针对某一个问题,我们有新的方法、新的见解或是新的结果,这都是潜在的研究成果。另外一方面,如果我们发现了一个新的问题,甚至是一个新的领域,那就更具备总结出来加以发表的潜质。
你是不是已经注意到了,研究的一个核心要素就是“新”。这也是让很多初学者感到困惑的地方:我们平时的很多工作看上去都那么普通,没有什么创新的地方呀!
其实,哪怕是在人工智能技术应用非常广泛的很多领域和场景,依然有相当多的地方存在创新点,只是初学者不太容易注意到。我这里举几个例子,你可以感受一下。
例如一个互联网网站经常使用在线测试也就是通常所说的A/B测试来判断这一个网站的新功能或者新特性是否好于现在的版本。一个最基本的设置就是把现在的版本当做“对照组”然后把新的功能当做“实验组”分别在50%的流量上运行这两个组别。然而在线A/B测试存在一些根本上的挑战。
第一我们举例是把整个网站流量的一半用于测试某一个组别而有一些小的改变在50%的流量上可能需要2~3周的时间才能看出效果。而在真实情况中拿来进行A/B测试的流量往往是占比更小的因此等到能够看出一个实验的效果需要很长时间这本身就是一个非常耗时的过程。
第二,如果我们测试的功能和收入相关,那么假设对照组或者实验组有明显的收入增加或者减少,观察到了这样的结果,但是我们无法在实验的过程中动态地调整这个预先设置好的比例。
你看关于传统意义上A/B测试所面临的难题我们这里仅仅是列举了两条其实还有很多其他的问题。从这些问题出发我们是不是就可以问问自己能否找到节省A/B测试时间的方法呢能否让实验达到同样的效果但是使用尽可能少的时间能否在A/B测试的过程中动态调整用户或者流量的比例呢这些问题其实就都是研究课题。
再比如传统的推荐系统非常适合电影推荐的场景例如著名的Netflix大赛。经历了十多年的发展后推荐系统方法重点都集中在矩阵分解这样的协同过滤的方向上。那是不是这样的方法就解决了所有的推荐问题呢
我们试想一下如果是电影推荐我们作为一个用户看了《纸牌屋1》之后系统就给我们推荐《纸牌屋2》、《纸牌屋3》以及这一个系列虽然有一点重复但依然是可以接受的非常相关的推荐结果。那么如果我们在一个电商网站上购买了一款佳能相机以后系统依然给我们推荐类似的相机我们是不是就会觉得这样的推荐短期内意义不大了呢
我们可以看到,推荐系统对场景有非常高的要求。对于一些特定场景的推荐,我们无法直接照搬现有的方法。这个时候,这个场景,就需要一些创新,有可能是把现有的方法进行改进和调整,也有可能是完全提出一些新的思路或新的方法。
说到这里,你是不是对人工智能研究的范围有了一个新的认识呢?按照我们在这里举例的思路,你可以观察一下自己手边的项目,这里面或许就潜藏着不少值得研究的课题,说不定你就能发现一个新的研究领域。
## 怎么做人工智能研究
由此可见,作为普通的工程师或者初学者,我们的工作中也有机会接触到研究课题和研究领域。那么,接下来,我们就来看一看怎么做人工智能研究。这其实是一个非常大的话题,今天我来给你提供一个简单的指南。
要做人工智能研究一般有这么几个步骤。
第一,**好好总结一下在当前这个场景下,我们要解决的是什么问题,也就是针对要研究的问题进行建模归纳**。回到刚才所提的电商推荐的例子,我们需要解决的问题是把类似的相机过滤掉?还是要推荐买了相机后其他的附件?还是要推荐相机的替代品?或者是要从根本上理解这样的情况是怎么产生的,消费者的心理预期是什么样的?你可以看到,即便是尝试解决同一个问题,我们也可以有好多不同的切入点。所以,最重要的第一步就是找准一个切入点。
第二,**了解前人的工作,查找和学习相关文献**。相信我,即便你认为找到了一个貌似完全新的问题或者领域,认真查找了相关文献之后,有很大可能你会发现其实已经有人做了一些类似的工作。甚至,你还可能发现你设想的某种方法已经有人尝试过了。
了解前人工作这个步骤初学者或者是完全在工业界的工程师往往容易忽略。这一步的核心其实就是看前人在你设想的问题中是如何寻找方案的和你设想的思路是不是完全一致。通常情况下你会发现一定的差异性。于是基于这些差异性你可以提出一些“进阶性”Incremental的创新思路。这也就是我们常说的“站在巨人的肩膀上”。
另外,多了解前人的工作,我们不会把自己的思想和整个大的方法论孤立开来,能够更好地融入到研究的整个社群中去。
第三,**选择一种测试数据集和一些“基线方法”Baseline来进行比较**。无论是多么重要的新方法,也无论是什么样的新领域,如果我们不能通过一些标准的数据集,或者是构造一些可以值得信赖的数据集,而且和多种方法进行比较,那么这些创新也都无法通过检验。换句话说,我们提出的新方法、新思路再好,必须有一个相对的比较者,最好这个比较者是之前提出的,已经使用了的,这样,我们才能够更清楚地说明新的方法究竟好在哪里。
研究工作,特别是“了解前人工作”和“进行基线比较”这两点,是和一般的技术分享有区分的重要标志。这其实也是我们在上一次的分享中讲到的,有的技术分享其实只是描述做了一件事情,或者是描述了一个系统,我们无法真正知道这个系统的设计和整体的思路在社群中的位置,也不知道这个系统是否和类似系统进行过比较,这其实也给我们的技术选择设置了挑战。通过今天的内容,我们了解了研究工作的思路,**把用研究的思路应用在工作中,会让我们平时的技术选择更加严谨**。
## 小结
今天我为你梳理了进行人工智能研究的一些思路。通过今天的内容,你会发现,人工智能研究离我们并不遥远,很多场景都有可能发现新问题、找到新方法。另外,了解一些研究思路对我们的日常工程开发也会有所借鉴。
最后,给你留一个思考题,如何来衡量我们自己做研究的价值?
欢迎你给我留言,和我一起讨论。

View File

@@ -0,0 +1,144 @@
受极客邦科技邀请1月份我回国参加AICon1月13日晚做了一场直播直播的主题是“人工智能20问”编辑们收集整理了一些大家感兴趣的有关人工智能的话题我在直播中分享了我自己这些年来的一些经验和心得。这场直播的文字精简版已经发布在InfoQ的公众号上今天我也和你在专栏里分享希望其中的某些话题能够对你有所启发也欢迎你留言和我讨论。
## 暖场篇
>
Q您本硕博学的都是计算机科学专业这个专业其实有很多方向您为什么会选择人工智能这样一个比较新的领域
A我到美国读博的时候开始并没有想去学习人工智能而是想做一些操作系统及软件的研发。到了美国以后我的导师认为社交媒体的数据挖掘、机器学习应用比较前沿希望有一个相关课题当时把新的课题给了我。我从这个课题入手接触了机器学习接触了人工智能然后慢慢地走上了人工智能的发展方向。
>
Q您怎么定义人工智能
A我认为人工智能有两个方面非常重要。一是人工智能是**数据驱动**的,也就是说一个人工智能产品一定得是有数据支撑的;另一方面人工智能是一个**持续的决策过程**比如说AlphaGo、无人驾驶等都是利用机器学习以及其他算法进行持续决策的一个过程。**在人工智能这个定义中,数据驱动和持续决策应该说是非常重要的两个元素**。
## 落地篇
>
Q您能不能详细介绍一下目前在Etsy有哪些人工智能的技术是实实在在落地了的落地的场景是什么取得了什么样的效果
AEtsy人工智能应用主要是围绕三块在做。
第一块是**搜索**。其实这也是普通电商的一个场景你来到电商平台输入一个关键字Etsy返回一个搜索的结果这个看上去很简单好像跟传统的搜索没有什么区别。但实际上电商的搜索不管是大一点的电商如亚马逊、京东、阿里还是小一点的电商真正能够做到比较完美的搜索体验是非常困难的。比如一部分用户的购买欲望很强烈那么我们如何能够帮助他找到最合适的商品也有一部分用户并没有特别强的购买意愿这个时候他希望通过搜索一些关键字来获取灵感从你的平台上能得到一种逛街的体验所以这个时候搜索带来的东西就未见得一定是他要买的如何能够通过搜索给他带来逛街的体验是比较困难的。这块搜索是我们现在一直在做的并且用不同的模型来进行落地尝试。
那么第二个方向就是**推荐系统**。电商的推荐也是一个老生常谈的话题了但在一些新的场景下如何做比如Etsy上有很多的商品是手工艺品数量可能很少那么在给用户推荐的时候必须考虑到它的件数是有限的这个地方也是有一些难点。
第三个当然就是我们的**广告平台**。如何能够通过人工智能帮助广告提升,广告是一个买卖的双方系统,如何帮助卖家实现好的宣传效果,这个也需要通过算法来更新的。
>
Q目前已落地的一些人工智能技术起到的作用和我们传统的一些办法相比效果明显吗
A人工智能在搜索广告和推荐这块效果已经比较明朗了肯定是比传统的方法做得好但是它的提升度在不同的情况下区别还蛮大的。**我们如果能够让效果最大化,必须跟产品界面,还有前端等融合,形成一个统一的产品,才能让算法得到的结果以最好的形式展现出来**。
>
Q您认为人工智能落地遇到的最大的一个挑战或者困难是什么
A**现在人工智能落地最难的并不是算法本身,最难的是和场景的对接**。算法本身可能是一个数学描述,是个模型,但是真实的场景跟模型中间还有一段距离。**这个距离需要数据科学家进行“翻译”,把我们的场景和算法衔接起来,需要我们的工程师,能够去根据新翻译的场景调整算法**。所以不是所有的经典的算法你都能够马上利用,而是需要一些更改,这种更改必须是基于你的场景,你去理解这个场景,并且能够进行合理的翻译,这实际上是最困难的。
## 观点篇
>
Q人工智能对程序员就业有什么影响?
A我刚才已经谈到了数据科学家和人工智能工程师职能有重叠但也略有不同。打个比方就像你踢一场足球赛需要有11个队员有前锋有中场有后卫有守门员一个复杂的人工智能产品需要有不同的角色这些角色都需要有一定人工智能机器学习背景比如说前端工程师一些设计的人员一些产品经理都需要人工智能背景。**那么从这个角度看这个问题,我觉得反而是大家的机会更多了,大家可以根据自己的背景,根据自己的喜好,寻找适合自己的角色**。
>
Q人工智能会在哪个行业爆发
A**我觉得另外一个角度看这个问题更好,有多少行业能够去利用人工智能?**就像你刚才提到的,这个人工智能可能会像空气,会像水,会像电一样,成为一个基础设施,我很认同,今年可能会有一些新的契机,我对这方面也很感兴趣。我们也看到,像吴恩达,他想去对传统制造业和人工智能做一些结合,我觉得这个趋势就是一个很好的切入点,不是说现在就能够彻底地改变制造,因为毕竟各行各业有些很深的问题,你得去了解它,但是它可以打开一扇门,让更多的传统行业,比如像制造业的人来了解人工智能,我觉得这个可能会是未来的方向。
>
Q现在有一种说法是人工智能就是人工智障您怎么看
A今天我们所看到的人工智能像AlphaGo也好或者图像识别的一些突破云技术的一些突破它的确比10年前比20年前的技术要好的多我觉得人工智能的确到了一个好的阶段。同时我们也必须要承认人工智能不能做的事情也很多并且它做绝大多数事情可能不如我们想象的完美。但是我觉得我们也不必给它贴上人工智障的标签以表达我们的失望之情。**人工智能目前还处于一个很初级的阶段,前面还有很长的路走。我自己希望通过做一个传播者和一个教育者,让更多的人了解人工智能**。
>
Q您觉得人工智能存在泡沫吗
A我个人觉得现在的确是有些泡沫比如说媒体的热炒媒体可能不是很了解情况然后去下一些断言。但是我个人感觉现在的泡沫处于一个比较健康的状况这个泡沫帮助更多的人了解这个行业帮助更多的人投身到这个行业帮助更多的社会资源聚焦到人工智能。
## 人才篇
>
Q我相信大家都比较关心数据科学团队的招聘的情况您现在会做很多招聘的工作您在招聘的过程中有怎样的一个标准或者最看中候选人的一个特质是什么
A招聘大概有这么几个方面一个是对候选人的**基础知识**的考察,比如说机器学习基础、统计背景、计算机的基本系统的掌握。第二点,我们会给一些场景,去考察这个候选人是否有能力把一个现实的场景跟他所学的挂上钩,他**能否用机器学习或人工智能算法作为一种语言去描述这个场景**,这个能力也是很重要的。第三个是**动手的能力**,比如说他是不是会一些最基本的编写代码,或者数据结构等,大概是分这么三块。
>
Q您在专栏里面提到过数据科学家大概有两类您能具体说说这两类吗有什么区别呢
A在国外数据科学家是一个比较范的统称大概有两大类。
一类是**偏数据分析**,比如我有一个商业的问题,或者产品的问题,我想去挖掘这个数据,看能不能回答我这个问题,它重在分析,不偏重如何提高产品品质。比如说他分析圣诞期间什么东西卖得比较火,明年男生会不会更喜欢某款相机,回答类似的静态问题。
另外一类的数据科学家主要侧重于怎么用机器学习的算法提高我们的搜索、推荐或广告效率,更**偏重于驱动产品**。这两类数据科学家的技能有一些重叠的部分,比如最基本的机器学习、统计背景、编程背景等,但是他们的侧重方向不一样。
>
Q是不是硕士学历及以上才能做人工智能
A我觉得要分现状和未来两方面。现状是本科生没有全面的一个训练一些需要高阶技能的部分可能硕士也没有完整训练过并不是说做人工智能就一定要博士生而是需要的这些技能刚好只有一些博士生满足。但是随着教育和推广的演进这个门槛会逐渐降低。我跟朋友闲聊的时候经常举一个例子牛顿发明整个力学体系时候那会儿全世界可能只有几个人知道但是现在牛顿力学体系只是高中的一堂课它的门槛低多了。未来人工智能、机器学习的门槛也会降低普通人也可以从事相关的工作。
## 学习篇
>
Q如何入门和学习人工智能
A一方面要**去看经典的教材和经典的书籍**,这个是不可或缺的;另一方面,人工智能这个领域发展太快了,很多的新东西都是在**顶级学术的论文**里面,去阅读学习论文也是必不可少的。
>
Q如何提高看书的效率
A**这个需要在实践中去学,如果需要某个知识点,要去通读这个知识点相关的内容,相同的内容多看一些不同的观点,把它搞懂搞透**。有的讲的比较粗的,需要去其他地方找到比较细的论证,有的比较细可能没有抽象到一个高度,在其他地方反而能找到,要互补,这样看书的方式是最高效的。
>
Q您前面提到除了看书看要看国际会议论文。如果让您给大家推荐三个顶尖国际会议您推荐哪三个
A我个人觉得工业界的朋友可以关注这几个会议。
第一个是**KDD**Conference on Knowledge Discovery and Data Mining数据挖掘与知识发现大会。这个会议有个工业组论文包括一些已经落地的项目经验或者将要上线的经验并且在开会的过程中会跟工业界有互动的环节。你去KDD可以看到很多人在翻译现实中的场景这对工业界的朋友来说是很有帮助的。
另外一个是**WSDM**International Conference on Web Search and Data Mining网络搜索与数据挖掘国际会议。这个会议缘起于雅虎、谷歌等硅谷公司认为传统的学术会议不能满足工业界需求最近几年工业界的不少解决方案和新问题都是在这个会议上提出的。
第三个是**CVPR**Conference on Computer Vision and Pattern Recognition国际计算机视觉与模式识别会议。这个会议可以帮助很多初学者拓宽视野让大家知道机计算机视觉是一个非常广的领域深度学习只是其中的一部分。
>
Q外行看热闹内行看门道有很多报道只关注谁获得了最佳论文奖谁获得了终身成就奖除此之外您觉得对于这些顶级会议我们还应该关注什么
A现在这些会议会有上百篇甚至将近一千篇的论文。作为一个初学者或者是想进阶的工程师或者是数据科学家一个比较有效的方法就是**根据你的领域去了解**。像我比较关注搜索、推荐等,我一次性去了解这次会议在该领域大概有多少论文,有些什么新的东西,这就极大的缩小了关注范围,节省了时间。另一个**需要去了解这个会议上有哪些新的想法,这些也许跟你现实的工作不直接相关,但是对于你拓宽视野很有帮助**。
>
Q那针对阅读论文我们应该怎么入手呢您的经验是怎样的
A学习人工智能方面的知识特别是读论文很多时候大家觉得难以入手因为有太多的论文一个比较高效的方法是**先读文献综述**。文献综述总结了当前的发展状况,能帮你解决至少两个问题,第一个问题是,了解相关术语,你用这些术语能查到更多相关的东西,如果你连术语都不知道,可能连这些论文查都查不出来,这些综述能帮助你熟悉这个领域的语言,和它里面的一些子问题。另外一个,能够起到文献综述作用的是**国际的顶级会议**这些会议会邀请学者做分享分享往往会有一个PPT这些PPT会归纳最近几年的发展和观点。通过综述和讲座你就已经对这个领域有了一个概念性的理解然后你再去读三到五篇该领域、子领域的经典论文这是我个人去体会过相对比较高效的一个方法。
>
Q小白如何入门人工智能
A如果你想真正投身到人工智能我个人建议还要相对系统地去学习整个知识体系比如刚才我们聊过的机器学习、统计、系统概念、最基本的编程的能力等还有一些工具比如Python等磨刀不误砍柴工但这肯定需要一个过程。
>
Q目前有个说法Python是机器学习第一语言一般推荐大家先学习Python您怎么看
APython的确是一个比较好的机器语言学习工具并且现在围绕Python也产生了不少生态系统使得Python比较适合机器学习、数据分析或者是一些场景。但这里我必须强调一下**在一个比较完整的端到端的人工智能应用中,特别是工业级的应用中,往往是一个比较异构化的环境**。所谓异构化是指不是单一的语言或者单一的工具就能够完全的把数据转化成你想要的模型并且能够用这个模型去推动我们的产品这里面可能有Python的部分但可能还有Java的部分有C++的部分等如果你真想要有一个进阶成为一个更加全面的工程师或者是科学家就不能只掌握Python。