MuziWater 2018-07-26
大数据文摘出品
作者:笪洁琼、蒋宝尚、魏子敏
昨天的谷歌云全球NEXT大会(Google Cloud Next 18)上,李飞飞宣布,谷歌AutoML Vision进入公共测试版,并推出了两款新的AutoML产品:AutoML Natural Language和AutoML Translation。
这款谷歌力推的产品在今年1月份面世之时,就担负着让AI民主化的重大使命,同时也与李飞飞作为“AI民主化推进者”的形象深度绑定。
作为谷歌云的首席科学家,李飞飞在这一产品发布时,连发三条推特表达激动之情:
“我很荣幸地宣布AutoML Vision面世。无需精通机器学习,每个人都能用这款AI产品定制机器学习模型。这是‘AI民主化’的重要进展!”
——李飞飞
这个名为Cloud AutoML的宏大项目浮出水面之时,被业内称为“Google Cloud发展的战略转型”——一直以来面向机器学习人工智能开发者的Google Cloud,这次将服务对象转向了普罗大众。
当时这一产品的主要对象还是图像识别,昨天的谷歌云大会上,产品线已经拓展到翻译、视频和自然语言处理领域。
谷歌的宏伟愿景由此可见一斑——你只需在改系统中上传自己的标签数据,大能得到一个训练好的机器学习模型。整个过程,从导入数据到标记到模型训练,都可以通过拖放界面完成。
其实在谷歌发布AutoML前后,机器学习自动化的产品风潮已经吹起:2017年底,微软发布CustomVision.AI,涵盖图像、视频、文本和语音等各个领域。今年 1 月,他们又推出了完全自动化的平台 Microsoft Custom Vision Services(微软定制视觉服务)。
链接:
https://www.customvision.ai
此外,另一个比较火爆的AI自动化产品OneClick.AI 是 2017 年底出现在市场上的一个自动化机器学习(AML)平台,其中既包括传统的算法,也包括深度学习算法。
链接:
https://www.oneclick.ai
同年,国内也出现了不少相关产品,称能够解放算法工程师,让AI自动化。
那么,这些机器学习自动化工具真的可以替代算法工程师甚至AI团队吗?
昨天在谷歌更新两款新的AutoML新产品后,业内掀起了对这一话题的探讨。Keras之父,同时也是谷歌大脑人工智能和深度学习研究员的François Chollet 发布推特表达了对这一产品的质疑:
我们很快会发现AutoML与强化学习同样的问题:人们将整个问题领域(非常广泛和非常重要)与极其特殊的(有缺陷的)方法联系起来。☟
Fast.ai创始人、USF副教授Rachel Thomas则通过一个系列的3篇文章,详细论述了“深度学习自动化”这一业内风潮,她讲述了机器学习从业者工作上最大的难点、AutoML的发展过程,并详细描述了谷歌这款产品的原理以及存在的问题,探讨很有价值。
大数据文摘对这一个系列的文章进行了精华编译,来一起看看,谷歌AutoML真的能让AI民主化么?
机器学习从业者到底在做什么?
媒体头条经常报道机器学习人才匮乏,同时,经常有公司宣称“本公司的产品能够帮助无专业背景的人能使用机器学习”。
谷歌人工智能主管Jeff Dean在TensorFlow开发者大会上表达了他的观点:数以千万计的公司坐拥大量数据,这些数据非常适合用来做机器学习,但是他们缺乏必要的专业知识和技能。
事实上,机器学习(特别是深度学习)中最耗时和最难的两个方面其实是:处理数据格式化和培养深度学习模型。
问题来了:我们可以通过自动化解决这两个麻烦的问题吗?
CMU和DeepMind的研究人员最近发布了一篇有趣的新论文,称为差异化架构搜索(DARTS),它提供了一种神经架构搜索的替代方法,这是目前机器学习的一个非常热门的领域。
神经架构搜索在去年是一个大热门,谷歌首席执行官 Sundar Pichai 和谷歌的AI负责人Jeff Dean 都提出:神经架构搜索及其所需要的大量计算能力,这两点是普及机器学习的必要条件。
自去年一月份以来,谷歌一直往这个方向努力,并且得到了科技媒体的广泛关注。
关于谷歌AutoML的大量外媒报道
2018年3月,在TensorFlow开发者峰会的主题演讲期间,谷歌AI负责人Jeff Dean提出,未来谷歌可能会用100倍的计算能力,取代机器学习专业知识。 同时,他也以神经架构搜索为例,说明了为什么我们需要100倍的计算能力才能使更多人能够使用机器学习。
Jeff Dean在TensorFlow开发者峰会上的Keynote
AutoML到底是什么?用自动化机器学习工具“武装”非机器学习专家,这件事真的对吗?接下来我们将深入研究这些问题。
AutoML到底是什么?
一般来说,AutoML这个术语多被用来描述模型选择和/或超参数优化的自动化方法。
这些方法适用于许多类型的算法,例如随机森林,梯度增强机器,神经网络等,AutoML库、研讨会、研究和竞赛都可以被囊括进这一领域。
初学者常会有这样的看法:为模型选择调参模型是个碰运气的过程,而自动化工具可以使这部分工作变得更容易,即使是经验丰富的机器学习从业者,也可以为其工作提高效率。
在谷歌发布AutoML之前,业内已经存在不少AutoML库。其中最早的是2013年发布的AutoWEKA,其可以自动选择模型并选择超参数。
其他值得注意的AutoML库包括auto-sklearn(将AutoWEKA扩展为python)、H2O AutoML和TPOT。 AutoML.org(以前称为ML4AAD,用于自动算法设计的机器学习)自2014年以来,一直被用在ICML等机器学习学术会议上。
AutoML真的有用吗?
AutoML提供了一种选择模型和优化超参数的方法。 它可通过获取基线,从而了解问题的性能级别。 这是否意味着我们不在需要数据科学家?并不是,因为机器学习从业者还有其他一些有意义的事情要做。
对于许多机器学习项目,选择模型只是构建机器学习产品的复杂过程的一部分。 如果参与者没有看到各个部分是如何相互关联的,那么项目就会失败。 虽然AutoML可以帮助选择模型并选择超参数,但是最重要的是判断机器学习还需要哪些专业的知识,以及如何解决出现的问题。
什么是神经结构搜索?
那么什么是神经结构搜索呢?谷歌CEO Sundar Pichai曾表示:“设计神经网络非常耗时,需要具有专门背景知识的人,并且,对专业知识的高要求限制了创业公司和小的社区使用它。
这种使用“神经网络设计神经网络”的方法被称为神经结构搜索,通常使用强化学习或进化算法来设计新的神经网络结构。
这很有用,因为它使我们发现了更多复杂的体系结构,并且这些体系结构可以针对特定的目标进行优化。但是神经结构搜索非常耗费算力。
确切地说,神经架构搜索通常涉及学习“单元”之类的东西,从而通过组装一堆重复的单元格来创建神经网络:
关于神经结构搜索的学术论文的文献很多,所以我将在这里重点介绍几篇最近的论文:
1.“人工智能”这一术语在谷歌人工智能研究人员Quoc Le和Barret Zoph的工作中有着突出的地位。研究成果在2017年5月在Google I / O上展出。此项研究是使用强化学习来寻找计算机视觉的新架构,并取得了与现有架构类似的结果。
相关论文链接:
https://ai.googleblog.com/2017/05/using-machine-learning-to-explore.html
左边更简单的架构是由人设计的,右边更复杂的架构是由神经网络设计的
2.Nasne来自可扩展图像识别的学习可转移结构。此工作在小数据集上搜索体系结构构件,然后为大型数据集(ImageNet)构建体系结构。这项研究非常耗费算力,花费了1800个GPU日(相当于1个GPU工作5年时间)来学习架构(谷歌的团队使用了500个GPU 4天!)
相关论文链接:
https://arxiv.org/abs/1802.01548
3.高效的神经架构搜索(ENAS):使用的GPU小时数比以前现有的自动模型设计方法少得多,特别是比标准的神经架构搜索要少1000倍。
相关论文链接:
https://arxiv.org/abs/1707.07012
什么是DARTSRTS?
可区分的架构搜索(DARTS),这项研究最近由卡内基梅隆大学和DeepMind的一个团队发布。 DARTS假设候选架构的空间是连续的,这允许它使用基于梯度的aproach,这比大多数神经架构搜索算法效率高得多。
要学习Cifar-10的网络,DARTS仅需4个GPU日,相比之下,NASNet需要1800 GPU日,AmoebaNet为3150个GPU日(所有学习精度相同)。 这是效率的巨大提升!对这一方向的探索虽然还有很长的路要走,但这是一个很有前景的研究方向。 鉴于谷歌经常将神经架构搜索与巨大的计算能力等同起来,有效的架构搜索方法很可能未被充分探索。
神经架构搜索有用吗?
在TensorFlow DevSummit主题演讲中,Jeff Dean建议深度学习工作的一个重要部分是尝试不同的架构。
ioJeff Dean的幻灯片显示,神经架构搜索可以对20种不同的模型进行尝试,从而来找到最准确的。
但是,选择模型只是构建机器学习产品的复杂过程的一部分。 在大多数情况下,架构选择远不是问题中最难,最耗时或最重要的部分。 目前,没有证据表明每个新问题最好用它自己独特的架构建模。
谷歌等公司致力于架构设计,并共享他们发现的架构,所以这些公司正在提供重要且有用的服务。 然而,只有那些致力于基础神经结构设计的研究人员才需要基础架构搜索方法。
怎么才能让机器学习从业者更有效率?
AutoML领域,包括神经架构搜索,主要关注的问题是:我们如何自动化模型选择和超参数优化? 但是,自动化忽视了人类输入的重要作用。
另一个问题:人类和计算机如何协同工作才能使机器学习更有效?而Augmented ML的重点就在于解决这个问题。
augmented ML的一个例子是Leslie Smith的学习速率查找器,它在Quickai库中实现,并在免费深度学习课程中作为关键技术。学习速率是一个超参数,它可以决定模型训练的速度,甚至决定模型是否成功。
通过查看生成的图表,学习速率查找器允许人类非常快的找到良好学习速度。它比AutoML更快地解决了同样的问题,提高了数据科学家对训练过程的理解。
关注于自动选择超参数还有另一个问题:它忽略了某些类型的模型的有用性以及需要调优的超参数较少、对超参数的选择不那么敏感的可能性。例如,随机森林相对于梯度增强器的一个关键好处是,随机森林更稳健,而梯度增强器往往对超参数的微小变化相当敏感。因此,随机森林被广泛应用于工业领域。
谷歌的AutoML:从炒作开始
在发 布谷歌的Au toML时谷歌首席执行官Sundar Pi曾如此公开表示了谷歌的愿景:我们希望AutoML能力能够达到今天一个人类博士的水平,并且可以在三、五年内使满足数十万神经网络设计的特殊需求。
在TensorFlow开发者峰会上,Jeff Dean的演讲
在TensorFlow开发者峰会上,Jeff Dean还提到,计算能力的巨大提升可以替代机器学习的专业知识,而让他有自信这么说的,是一种对计算能力要求极高,但是有很强迁移能力等神经架构——搜索神经架构。
这引发了一系列问题:成千上万的开发人员需自己根据他们的特殊需求设计新的神经网络?还是神经网络本身已经可以有一种有效的方法类推自行设计?
大量的计算能力真的可以取代机器学习专业知识吗?
在思考谷歌力推这一产品背后的利益动机之前,让我们先来了解一下,谷歌的AutoML到底是什么?
谷歌的AutoML到底是什么?
尽管AutoML这一术语早已存在,但直到2017年5月,谷歌才将这一名词带入更多人的视野中,其用AutoML命名了自家一款神经架构搜索方法。
谷歌CEO Sundar Pichai在Google I /O大会后的一篇博文中写道,“神经网络的设计非常耗时且对专业要求很高,为此,我们创建了一种名为AutoML的方法,希望让神经网络自己设计神经网络。我们希望证明,神经网络是可以设计神经网络的,这就是一种名为AutoML的方法。”
之后,在今年1月,谷歌云发布了一套被称为AutoML的机器学习产品,在昨天的谷歌云NEXT 18大会上,李飞飞宣布了这一产品的新进展:进入公共测试版,并推出了两款新的AutoML产品:AutoML Natural Language和AutoML Translation。
根据的显示产品页面,Cloud AutoML Vision依赖于两种核迁技术:迁移学习和神经架构搜索。
什么是迁移学习?
简单来说,迁移学习是一种具备强大“举一反三”能力的技术,通过利用已经训练过类似的大型数据集的预训练模型,可以让拥有较小数据集或较少计算能力的模型获得最好的结果。迁移学习不必从头开始,它通常可以比不使用迁移学习的模型使用更少的数据和计算时间,但达到更高的准确性。
AI神经结构搜索与迁移学习:两种相反的方法
迁移学习的基本原则是利用神经网络架构,对相似的问题进行经验推广:例如,许多图像具有各种各样的底层特征(例如角落,圆圈,狗脸或轮子)。
而神经架构搜索的基本原则恰恰相反,其认为,每个数据集都拥有一个让其表现最佳的独特架构。
图像分类器学习到的4个特征:方框、圆圈、狗脸和轮子,例子来自Matthew Zeiler和Rob Fergus
当神经架构搜索发现一个新的体系结构时,你必须从头开始学习该体系结构的权重,而在迁移学习中,必须从一个预先训练的模型的现有权重开始。在这个意义上,你不能用同样的问题来搜索和进行迁移学习:如果正在学习一种新的体系结构,你需要训练它的新的权重;而如果在一个预先训练的模型上使用转移学习,就不能对模型进行实质性的改变。
当然,可以将迁移学习应用于神经架构搜索学习的体系结构,只需要少数研究人员使用神经结构搜索从而找到适合的模型,但是,并不是所有的机器学习实践者都需要使用神经结构来搜索问题。
神经架构搜索有什么用处
神经架构搜索有利于寻找新的架构。谷歌的AmoebaNet就是通过神经结构搜索学到的,而且,随着学习进度的推进,AmoebaNet已经有了很大的进步。
AmoebaNet没有扩展能力的奖励功能,因此它不能像ResNet一样扩展到多台机器,但是可以在将来学习可扩展的神经网络,针对不同的质量进行优化。
需要更多探讨
并没有证据表明,所有的数据集都使用自定义模型建模的效果好于对模型进行的微调。由于神经结构搜索需要更多的数据集,这对于较小的数据集尤其是一个问题。甚至谷歌自己的一些研究也使用了迁移学习,并没有对所有的数据集都找到一个新的体系结构,比如Nasnet,它在Cifar 10上学习了一个体系结构的构件,然后使用这个构件为ImageNet创建了一个体系结构。
此外,我们还不知道,谷歌追捧的,对神经架构搜索的海量计算是一种高级的方法。例如,最近的一些论文,比如高效的神经架构搜索(ENAS)和可微架构搜索(DARTS),提出了更有效的算法。DARTS每天只需要4个GPU,相比之下,NASNet需要1800GPU日和AmoebaNet 3150 GPU日(在cifar 10上能得到了同样的精度)。
杰夫迪恩是ENAS论文的作者,该论文提出了一种技术,这种技术的计算成本是1000倍,这似乎与他在一个月后的TF DevSummit大会上的强调不一致,比他使用的方法是100倍的成本高得多。
那么,为什么大家都对谷歌AutoML进行追捧呢?
考虑到以上的限制,为什么谷歌 AutoML的宣传与它的有效性(至少到目前为止)是如此的不相称?
我可以想到这些原因:谷歌的AutoML强调了将学术研究实验室嵌入一家盈利性公司的一些危险和诱惑,试图围绕有趣的学术研究来建立产品,而不去评估它们是否满足了实际需要。这也是许多人工智能初创企业的故事,比如MetaMind或几何智能(Geometric Intelligence),它们最终都是在没有生产产品的情况下被收购的。
我对创业公司创始人的建议是,不要只雇佣学术研究人员。
谷歌擅长营销。人工智能被许多局外人视为一个难以访问和令人生畏的领域,他们不认为自己有办法评估索赔,尤其是来自像谷歌这样受人崇拜的公司。许多记者也因此成为了这一问题的牺牲品,并且不加批判地将谷歌的炒作转化为热情洋溢的文章。我定期与那些在机器学习中不工作的人进行交流,却对他们从未使用过的各种Google ML产品感到兴奋,也无法解释任何东西。
当谷歌人工智能研究人员发布了一项“重建真正的人类基因组的深度学习技术”时,谷歌对自己的成果进行了误导性的报道,并将他们自己的研究成果与获得诺贝尔奖的发现(傲娇!)进行了比较,而这则新闻是由《连线》杂志找到的。
然而,美国约翰霍普金斯大学生物医学工程、计算机科学和生物统计学教授Steven Salzberg驳斥了谷歌的帖子。Salzberg指出,这项研究并没有真正重建人类基因组,“只是对现有软件的一种渐进式改进,甚至可能比这还要少。”许多其他基因组研究人员也加入了萨尔茨伯格的观点。
在谷歌上有一些很不错的工作正在进行,但如果我们不需要对如此多的误导性宣传进行筛选,以弄清楚什么是标准的,那就更容易理解了。
谷歌的DeepVariant“不过是对现有软件的一种渐进式改进,甚至可能比这还要小。”
让我们相信有效利用深度学习的关键在于更大的计算能力,这是一种既得利益,因为这是一个他们明显能击败了我们的领域。AutoML通常在计算上非常昂贵,比如在谷歌的例子中,使用450 K40 GPUs 7天(相当于3150 GPU日)来学习AmoebaNet。
虽然工程师和媒体经常对裸金属的力量和更大的东西非常看好,但历史表明,创新往往是由约束和创造力产生的。谷歌使用最昂贵的计算机进行尽可能大的数据;这真的能概括出我们这些人在有限资源的有限世界中所面临的问题吗?
创新来自于做不同的事情,而不是做更大的事情。最近的比较快成功的是。在斯坦福大学的“道恩斯基”比赛中,人工智能就是一个例子。创新来自于做不同的事情,而不是做更大的事情。
——瑞秋托马斯
我们如何解决机器学习专业知识的短缺?
回到Jeff Dean在他的TensorFlow DevSummit大会上提出的关于全球机器学习从业者短缺的问题,有可能采取不同的方法。
我们可以从以下几个方面减少使用深度学习的最大障碍:
让深度学习更容易使用的研究产生了巨大的影响,使训练更好的网络变得更快更简单。现在已经成为令人兴奋的标准实践,发现例子有:
提高易用性的最新研究包括:
以上的发现都没有涉及到裸金属(bare-metal)的力量;相反,所有这些都是创造性的想法,以不同的方式来做事。
关于如何进行深度学习的误区
另一个障碍是,许多“神话”让人们相信,深度学习并不适合他们:错误地认为他们的数据太小,他们没有专业的教育或背景,或者他们的电脑配置不够好。
有一个这样的神话说,只有机器学习的博士才有能力使用深度学习,而许多负担不起昂贵专家费用的公司甚至都懒得去尝试。然而,公司不仅有可能去培训他们已经拥有的员工,能成为机器学习专家,这甚至更棒,因为你现在所拥有的员工已经拥有了你所在领域的专业知识!
我在麻省理工学院技术评论会议上的演讲中,我谈到了6个误区,这些误区让人们错误地相信,使用深度学习比实际应用更困难。
对于绝大多数与我交谈过的人来说,深度学习的难度远远低于他们的预期:一年的编程经验和对GPU的访问。
编译后记
在AI自动化的浪潮下,不少创业公司充满疑惑,既然未来人工智能的发展方向是走向自动化,我到底还需要自己的数据科学团队吗?
大数据文摘曾在本月初就这一问题采访了微软大中华区CTO韦青,他的回答或许有一定的参考性:
AI团队只能是自己的。
微软、阿里或者百度,提供的就像电力一样,是一种“智能力”,企业要把这种智能力转化成自己行业的算法。第三方不会知道企业的流程怎么才是最优秀的,好的做法应该是由第三方为企业提供最优秀的基础算法和充分的算力,企业自己把数据采集上来,培养自己的专家,当然这个专家也可以由第三方帮忙培养,但一定要了解行业经验、行业知识,结合自己的行业知识和经验来得出适合自己的算法。
企业在这个过程中可以源源不断地使用第三方提供的计算力,这种计算力的表现形式只是最基本的compute,就是说第三方会提供一些基础的算法,但是不可能帮助企业解决人工智能的问题,这方面企业一定要靠自己。
企业要培养自己的人才,但没有必要培养所谓算力的人才,因为算力是劳动密集型、资金密集型的;也不是要培养算法的人才,而是要培养利用算法的行业人才。
就像要拧螺丝,最终目的只是要把两个家具拧在一起,而并不是要螺丝和螺丝刀,没有必要自己去开个螺丝刀厂,只需要从德国买一个最好的螺丝刀过来拧上,就可以了。