7月24日,在Google Cloud Next大会上,Google带来Cloud AutoML的全新进展,又成功吸引一大波注意。
Google AI首席科学家李飞飞宣布,推出正式版的Cloud AutoML Vision,同时,新增用作自然语言处理的AutoML Natural Language和用作翻译的AutoML Translation。至此Google Cloud AutoML拥有视觉、自然语言处理、翻译等多种服务。
对于承载着AI民主化使命的AutoML,大多数媒体都是一片赞誉。而fast.ai创始者之一Rachel Thomas特意撰写三篇博文对AutoML的局限进行反思。为了深入理解AutoML,雷锋网也特意采访了一些国内致力于AutoML的公司,一起探讨AutoML真的是AI的未来,还是大家期望过高?创业公司要进入AutoML领域如何与大公司竞争?
要完成一个机器学习项目,不管是图像识别、语音识别还是自然语言处理,其实现的过程都需要包括:数据预处理、特征选择、模型算法选择、调参、上线后模型的再优化、效果评估。
人工设计机器学习模型的过程中,神经网络的设计是一大难点,需要设计师非常有经验。Google CEO Sundar Pichai曾经这样介绍AutoML,“目前,设计神经网络非常费时,并且需要专家只在科学和工程领域中的一小部分进行研究,为了解决这一问题我们创造了一种名为AutoML的工具,有了它,神经网络可以设计神经网络。”
据Google介绍,Google Cloud AutoML有三大核心技术:神经架构搜索技术(Neural Architecture Search Technology)、learning2learn以及迁移学习(transfer learning)。Cloud AutoML主要承担了机器学习中特征选择、模型算法选择以及调参部分。神经架构搜索技术可以自动搜索出一个好的参数+神经网络结构组合,而迁移学习则可以记住最终开发者认可的模型,下一次可以做得更好更快。
雷锋网也曾发文分析,Google Cloud AutoML中的神经架构搜索技术用神经网络设计神经网络的方式其实就是如下图所示:
左边有一个名为「控制器」(the controller)的 RNN,它设计出一个「child」的模型架构(雷锋网觉得可以称之为「雏形/子架构」),而后者能够通过某些特定任务进行训练与评估。随后,反馈的结果(feedback)得以返回到控制器中,并在下一次循环中提升它的训练设定。这一过程重复上千次——生成新的架构、测试、再把反馈输送给控制器再次学习。最终,控制器会倾向于设计那些在数据集中能获得更高准确性的架构,而反之亦然。
AutoML Vision是Google Cloud AutoML的首个版本,据Google介绍,即使是没有机器学习专业知识的小白,只需了解模型基本概念,就能借这项服务轻松搭建定制化的图像识别模型。只需在系统中上传自己的标签数据,就能得到一个训练好的机器学习模型。整个过程,从导入数据到标记到模型训练,都可以通过拖放式界面完成。
听起来很厉害,不少人对AutoML Vision也是一片赞誉,特别是李飞飞和李佳也都对此寄予厚望。李飞飞在2018年发布Google Cloud AutoML时,说到:“在差不多一年多以前我们两个人共同加入谷歌云的时候,我们都心怀一个使命,那就是让 AI 平民化。我们的目标是降低 AI 的使用门槛,让 AI 对尽可能多的开发者、研究者和商业用户来说变得触手可及。”
李飞飞表示谷歌AutoML是在TensorFlow和Cloud Vision API之间的产品,能让非专业机器学习人士根据需求开发机器学习模型,这个定位如何理解,什么样的人用TensorFlow,什么样的人用Cloud Vision,以及什么样的人用AutoML?
智铀科技创始人夏粉告诉雷锋网,TensorFlow比较适合于算法科学家,适合于有一定机器学习基础的人用来研究算法以及应用。Cloud Vision适合于关心AI应用的人,希望用AI模型直接解决应用场景问题,比如说像人脸识别,直接拿API进行人脸识别,这里的模型是已经建好的模型。AutoML介于两者之间,它适用于机器学习背景较弱或者没相关经验的人来建模,根据手头场景数据,建立针对该场景的模型。可以说TensorFlow研究如何建模,AutoML是帮助建模,Cloud Vision是直接使用模型。
有不少媒体在报道AutoML时都写到,无需写一行代码就能自动生成机器学习模型,这或许有些言过其实,即使AutoML不写代码也能用,但是没有经验的人不太可能从中获得想要的结果。
Rachel Thomas在博文中分析到,Google Cloud AutoML目前还有不少限制。第一个最大的限制就是其需要大量的算力,Google 采用的神经架构搜索方法需要用500GPU训练4天。在2018年3月的TensorFlow开发者峰会上,Jeff Dean表示在未来,Google Cloud将会以100倍的算力取代机器学习专家,而对于算力有强大要求的神经架构搜索就是例证。
其次,机器学习的步骤很复杂,数据清洗和模型训练是机器学习中最为耗时的部分,虽然AutoML解决了模型的训练,但是数据清洗依然对数据科学家有很高的要求。
此外,神经架构搜索要做的是寻找新的架构,而目前大多数人其实并不需要全新的架构,通过迁移学习已知的架构就能解决问题。
云脑科技核心算法工程师徐昊告诉雷锋网,AutoML目前还面临三个问题。第一是计算量:目前的AutoML优化算法要能发挥效能,在超参数空间中要能够采样足够多的点。每一个采样点都是一种超参数的配置,需要经过一次完整的训练过程。在较大的项目,如在线CTR预估中,模型大数据大,每一次完整的训练都很耗资源。这种情况下,使用AutoML进行自动调优耗时极长,往往不是项目周期所能接受的。
二是局限性:AutoML算法目前主要针对的是调参,以及部分特征抽取方面的问题,可以说只是机器学习项目中的一个环节。在实践中要搭建一个能够落地的模型,还有很多因素需要考虑。例如对于不同类型数据,如何选取合适的模型;模型大小,特征选择与最终deloy时serving延时的trade off等等。
三是人类工程师的参与:AutoML在当前的状态下,在大项目中完全取代人类工程师难度是很大的。我们认为较好的方式,应该是AutoML能够与人类工程师协作,AutoML的优化算法能够展示调参过程与方向,便于工程师参与介入。并且提供合适的接口,将人工经验引入自动学习的过程。
与AutoML Vision同理,AutoML Natural Language和AutoML Translation也是为了促进AI民主化,让更多的公司和开发者能够轻松打造自己的自然语言处理应用,或者是AI翻译应用。
Cloud AutoML Natural Language能够用于自动预测客户所需要的自定义文本类别,比如美国出版与多元化传媒巨头赫斯特集团(Hearst)就在使用Google的这项新工具对其内容进行管理,他们的高级副总裁Esfand Pourmand表示,这个工具能够让赫斯特生成自定义的AI模型应用于内容管理,其精度高于其他方案。
Cloud AutoML Translation则可以为客户提供定制化的翻译需求,日本经济新闻社(Nikkei Group)数字业务常务董事Hiroyuki Watanabe表示,Cloud AutoML Translation这项工具能够快速对内容进行定制化的翻译,其准确率“让人印象深刻”。
Google Cloud研发负责人李佳谈到,“至此,AutoML可以为各行各业缺乏AI经验的企业和开发者提供自动生成图像、语言、翻译功能。AutoML的注册用户也已经超过18,000家,服务行业横跨媒体、零售、金融、保险、能源、医疗、环境等等。”
为什么谷歌要针对不同的应用场景推出相应的AutoML版本?
云脑科技中国区数据算法负责人黄颂认为,不同领域的数据处理,特征抽取,模型选择与调优过程差别较大。例如NLP模型中,需要抽取很多与语法有关、甚至与关键词在句中文中的位置有关的特征。而Vision模型中,需要抽取与图像histogram有关的特征,差异较大。Google推出的细分场景的AutoML,应该能够提高自动学习在各领域的效率。至于先推出AutoML Vision是因为飞飞更懂vision。相对于自然语言领域来说,图像视觉领域目前研究更加充分,数据集也更加丰富。另外,图像和语音领域可以获得更加原始的数据信息,而自然语言的文本其实已经是经过人脑处理和抽象的结果,前者更容易为神经网络所处理。
但对于AutoML来说,背后很多技术是相通的。从AutoML Vision获得的经验,也可以迁移。根据谷歌的介绍,新出的两个系列应该也是搭建在AutoML引擎中的自动调优和Transfer Learning两大模块之上,是各自细分领域的升级版。
AutoML的本质是利用优化算法代替人类工程师进行模型调优等工作,从而降低专家成本。在细分领域上,如果该领域的数据特点和处理流程比较独特(因而不能直接套用其它领域的AutoML方案),或者人类专家在解决此领域问题时存在大量机械重复无创造性的劳动,那这部分工作就很有可能将来被AutoML取代掉。
夏粉认为就像ML(机器学习)里的研究点非常多一样,AutoML里也有很多可研究的技术。并且技术会不断更新进步,每个场景下适用的数据、特征、算法以及应用过程都不一样,需要针对性的AutoML版本,不同场景要用不同的机器学技术来做。AutoML的技术也会逐渐深入细分,比如AutoML Vision里面有AutoML图像和AutoML视频,NLP里面也有中文和英文。
Google将自家的项目取名为Google Cloud AutoML,在名字上占了很大的便利,以至于现在很多人以为AutoML就是Google家的。
AutoML的概念其实源自于2012年学术界提出的新观念——Programming by Optimization(PbO),意在解决编程时人工调校参数的问题。学界和业界对AutoML已有诸多的实践,我们也看到了一些产品,例如微软的CustomVision.AI、国内智铀科技的“小智”、云脑科技的Deepro平台。
雷锋网好奇,在这个领域,创业公司如何与大公司竞争?
夏粉告诉雷锋网,我觉得跟Google AutoML做差异化竞争的话,一个是说AutoML技术点非常多,那么创业公司可以从里面挑一个点然后集中精力去做,解决某一类AutoML问题,把它做到商业化、做到垂直化。第二个是说Google AutoML这个策略主要是配合Google Cloud平台,希望让更多客户使用Google Cloud。而对于创业公司的话可以注重于私有化部署这块市场,可以做一些非云方面的事情。第三个是可以做不同行业的AutoML解决方案(比如说金融行业,安全行业,营销行业,我们也有针对不同行业的版本),专门为了一个垂直行业而降低机器学习的门槛。对于智铀来说,类似 AutoML Vision 和NLP这种类似的产品未来可能会做,眼前还是做跟Google有些差异化的产品。
云脑科技核心算法工程师徐昊表示,Google的AutoML是搭配在其云平台上进行销售的。用户使用AutoML的时间越长,Google Cloud的收益也越大。然后对于普通公司,往往不一定有Google Cloud那样的计算资源。即便拥有大量的计算,往往也限于项目的周期限制,对现有AutoML的计算效率有更高的要求。
在计算资源不是卖点的情况下,往往需要中小创业公司给出更精细化的AutoML方案。云脑在研发AutoML产品的时候有三个优化方向。首先是更高效,我们在更深层次进一步降低AutoML的计算量,让自动调参能够达到工程实践的需求。其次是更全面,通盘考虑了整个ML流程落地的全局因素,进行全局优化。其三高透明度,更注重AutoML的工具性,让人类工程师能够更好的观察与介入。
看来,正如很多行业人士对雷锋网所说,人工智能是一个全新的时代,目前还没有出现真正的类似互联网时代的巨头,能够直接霸占所有的领域。新的时代,新的机遇,正适合创业公司开辟自己的土壤。
相关文章:
谷歌大脑撰文解析 AutoML:神经网络如何自行设计神经架构? | Google I/O 2017