硅谷Live /实地探访/ 热点探秘 / 深度探讨
Google AutoML 再添新功能
虽然 AutoML 领域已经发展了好几年,2017 年 5 月,谷歌在它的神经架构搜索中加入了 AutoML 这个术语。在谷歌开发者大会上,Sundar Pichai 表示:“这就是我们为什么创造 AutoML 这一工具,它证明了让神经网络设计神经网络是可能的。”
同时,谷歌 AI 的研究者 Barret Zoph 和 Quoc Le 也表示:“我们的方法(AutoML)中,一个控制器神经网络可以生成一个子模型架构……”
2018 年 1 月份,谷歌云首席科学家李飞飞和谷歌云研发负责人李佳宣告 Cloud AutoML 的问世,按照谷歌的宣传:毫无技术基础的人都可以尽情地享受 AI 带来的便利,甚至可以用 AutoML 技术搭建自己的训练模型。
AutoML Vision 是 Cloud AutoML 这个大项目推出的第一项服务,提供自定义图像识别系统自动开发服务。根据谷歌介绍,即使是没有机器学习专业知识的的小白,只需了解模型基本概念,就能借这项服务轻松搭建定制化的图像识别模型。 只需在系统中上传自己的标签数据,就能得到一个训练好的机器学习模型。整个过程,从导入数据到标记到模型训练,都可以通过拖放式界面完成。
发布之初,谷歌就表示会将 AutoML 服务拓展到翻译、视频和自然语言处理等领域。于是,六个多月之后,李飞飞如约带着升级版的 AutoML 出现在了 Google Cloud Next 大会舞台上。
一方面,针对图像分类的 Cloud Vision API 正式发布公共测试版。这个 API 可以快速将图片归类到数千个类别,检测图中的不同对象和面孔,找到并读取图片的印刷文字,还能进行图片情感分析。
另一方面,Cloud AutoML 一次上线了两个新功能,分别是:
AutoML Natural Language,用于解析文本的结构和含义,可从文本文档、新闻或博客文章中提取有关人物、地点、事件等信息。
AutoML Translation,可使用最新的神经机器翻译技术将一串字符翻译成任何支持的语言。
据介绍,这些新功能已经开始在国外一些媒体中应用,如金融时报、彭博社等。
说了这么多,如果不放出 AutoML 新功能的链接就太不厚道了,下面是目前谷歌三款 AutoML 功能的传送门,欢迎体验(Google 页面上提供了详细的使用和收费介绍,均提供中文版本和免费试用):
CLOUD VISION API
https://cloud.google.com/vision/
CLOUD NATURAL LANGUAGE
https://cloud.google.com/natural-language/
TRANSLATION API
https://cloud.google.com/translate/
先冷静想想,AutoML 真有那么神奇吗?
fast.ai 创始人之一 Rachel Thomas 在最新发布的文章《Google's AutoML: Cutting Through the Hype》中对谷歌 AutoML 技术提出了质疑。
在提出谷歌 AutoML 前,CEO Sundar Pichai 曾写过这么一段话:
目前,设计神经网络非常费时,并且需要专家只在科学和工程领域中的一小部分进行研究。为了解决这一问题,我们创造了一种名为 AutoML 的工具,有了它,神经网络可以设计神经网络。我们希望 AutoML 能做到目前博士们可以达到的水平,三至五年之后,我们希望它能为众多开发者设计不同功能的新的神经网络。
谷歌 AI 的负责人 Jeff Dean 表示,100 倍的计算力可能会替代机器学习专家,对计算有大量需求的神经架构搜索是他唯一举出的例子。
这就引出了一系列问题:
开发者们需要“设计不同功能的神经网络”吗?
神经网络是否能用有效的方法解决类似的问题呢?
巨大的计算力真的可以替代机器学习专家吗?
在评价谷歌的言论之前,我们要知道谷歌之所以一直强调高效使用深度学习的关键是更多的计算力,是与它的利益相关的,因为在计算力上,谷歌足以吊打其他人。如果真如他们所说,那我们可能都需要购买谷歌的产品了。这并不意味着谷歌的说法是错误的,但是我们最好意识到他们言论之下的经济动机。
神经架构搜索vs迁移学习:两种不同方法
在一篇名为《谷歌 AutoML 凭什么成为“下一代 AI 黑科技”?》中曾经提到过,Google Cloud AutoML 服务使用了三个核心技术,分别是:神经架构搜索技术(Neural Architecture Search Technology)、 learning2learn 以及迁移学习(Transfer Learning)。
在 Rachel Thomas 的文章中,我们了解到了一些有关迁移学习和神经架构搜索更深层次的解释。
迁移学习利用预训练模型,可以让人们用少量数据集或者较少的计算力得到顶尖的结果,是一种非常强大的技术。预训练模型此前会在相似的、更大的数据集上进行训练。由于模型无需从零开始学习,它可以比那些用更少数据和计算时间的模型得到更精确的结果。
迁移学习之下的基础理念是,神经网络结构会对相同种类的问题进行泛化:例如,很多图片都有基础特征(比如角度、圆圈、狗狗的脸、车轮等等),这些特征构成了图片的多样性。相反,提升神经架构搜索的效率是因为,每个数据集都是独一无二的,它的结构非常个性化。
来自 Matthew Zeiler 和 Rob Fergus 的示例,图像分类器对 4 个特征进行学习:角度、圆圈、狗狗的脸和车轮
当神经架构搜索发现了一种新结构,必须从零开始学习该结构的权重。但是有了迁移学习,则可以从预训练模型上已有的权重开始训练。这也意味着无法在同一个问题上同时使用迁移学习和神经架构搜索:如果你要学习一种新的结构,你可能需要为此训练一个新权重;但如果用迁移学习,可能无需对结构进行实质性改变。
当然,你可以将迁移学习运用到一个经过神经架构搜索的结构上(作者认为这是个不错的想法)。这只需要几个研究者用神经架构搜索和开源的模型即可。如果可以用迁移学习,并不是所有机器学习从业者都要在问题上使用神经架构搜索,然而,Jeff Dean、Sundar Pichai 以及谷歌和媒体的报道都表示:每个人都应该直接用神经架构搜索。
神经架构搜索当然是有好处的!比如,神经架构搜索很适合用来寻找新的结构。谷歌的 AmoebaNet 就是通过神经架构搜索学习来的,另外 fast.ai 很多技术进步也都得益于神经架构搜索。但作者认为,没有证据表明每个数据集最好在它自己的模型上建模,而不是在现有模型上微调。由于神经架构搜索需要大型训练集,这对小型数据集来说可能不太友好。即使是谷歌自己的一些研究也会用迁移技术而不是为每个数据集寻找一种新结构,例如 NASNet。
为什么还要吹捧 Google AutoML 呢?
有了上述那么多限制,为什么还要还有很多人在宣传 AutoML 的有用性呢?我们在整理 fast.ai 这篇文章的时候,综合出了以下几种解释:
1. 谷歌的 AutoML 真实反映了一些学术研究机构掺杂了盈利机构之后的危机。 很多科学家都想创建有关热门学术研究领域的产品,但并不评估它能否满足实际需求。这也是很多 AI 初创企业的现状,作者的建议是不要试图将博士论文变成产品,并且尽量不要雇佣纯学术研究人员。
2. 谷歌很擅长营销。人工智能对很多门外汉来说门槛较高,以至于他们没办法评估某种主张,尤其是谷歌这样的巨头。很多记者也随波逐流,争相报道谷歌的新技术、新成果。作者经常跟那些不在机器学习界工作的人谈论谷歌的成果,即使他们根本没有用过谷歌的机器学习产品,但也表现得非常兴奋,可是如果仔细深究又讲不出个所以然来。
谷歌造成的新闻误导的另一个案例是谷歌 AI 研究人员宣布“他们创建了一种深度学习技术,能够重建人类基因组”,并且他们还将这项技术与诺贝尔奖获得者做了对比,连线杂志(《Wired》)对此做了报道。在这之后,约翰霍普金斯大学生物统计学家、生物工程教授 Steven Salzberg 对报道进行了批判。Salzberg 指出,这项研究实际上并没有重建人类基因组,而且“在现有软件上仅有微小提升,甚至还不如现有软件”。很多基因研究者对 Salzberg 的说法表示了赞同。
谷歌确实有很多伟大的成果,但是我们在欣赏的同时也要注意鉴别。
3. 谷歌因为利益相关,说服我们高效利用深度学习的关键是更强的计算力,因为谷歌在计算力方面非常有优势。AutoML 通常需要大量计算,例如为了学习 AmoebaNet 需要用 450 个 K40 GPU 训练 7 天。
机器学习专家短缺的问题还有何解?
如果 AutoML 并没有那么神奇和万能,那还有什么方法可以解决全球机器学习从业者短缺的问题呢?Rachel Thomas 给出了以下几种方法:
让深度学习更易使用
给深度学习去神秘化
让资金不够充足的人也能用到云 GPU
让深度学习更易使用
为了让深度学习更易使用,很多研究已经使其能够更快、更轻易地训练更好的网络。典型的案例有:
Dropout 能让模型在更小的数据集上训练,并且不存在过度拟合
批归一化使训练速度更快
线性整流函数(ReLU)避免了梯度爆炸
其他提高使用简易程度的研究包括:
学习速率探测器使训练过程更稳定
Super convergence 加速了训练时间,并且需要更少的计算资源
“Custom heads”对现有的架构来说,可以在很多问题上重复使用
给深度学习去神秘化
另外一个障碍是,很多人总认为深度学习离他们很远,或者觉得他们的数据集太小、并未接受过深度学习训练或者计算力不够等等。还有一种观点认为,只有到了机器学习的博士阶段才能用到深度学习,或者很多公司根本无法负担招聘一位深度学习专家。
但是在作者的经历中,进入深度学习的门槛远比他们想象中的低,只要你有一年的编程经验以及一个 GPU。
提供更多资源:谷歌 Colab Notebooks
虽然云 GPU 的花费普通人还能负担得起(每小时大约 50 美分,约合人民币 3.4 元),但是很多学生表示确实有点贵。在某些国家因为规定,他们无法使用像 AWS 这样的服务,而谷歌 Colab Notebook 可以解决这个问题,它提供了 Jupyter notebook 环境,无需设置即可使用,在云上运行并给用户使用免费的 GPU。谷歌 Colab Notebook 将会为深度学习做出更多努力,也许这也是谷歌在机器学习未来发展的一个更好的目标。
你认为谷歌AutoML是真的强大还是广告打得响?欢迎留言和我们分享!
推荐阅读