编者按:今天,深度学习专家弗朗索瓦乔莱(Fran ois Chollet)在推特上发布了这段话:用不了多久,AutoML就会发现他们会面临和强化学习一样
编者按:今天,深度学习专家弗朗索瓦乔莱(Fran ois Chollet)在推特上发布了这段话:
用不了多久,AutoML就会发现他们会面临和强化学习一样的问题:人们会用非常具体的(有缺陷的)方法来解决许多宽泛的问题。
在AI First的策略下,Google发布了AutoML,一个独立编写机器学习代码的工具,目的是让更多的人能够通过简单的操作使用机器学习。AutoML然而,这个工具真的有这么强大吗,还是只是一个响亮的广告?fast.ai的创始人之一Rachel Thomas从自己的理解出发,分析了AutoML的现在和未来。以下是《论志》的编纂。
在Google AutoML提出之前,CEO桑德尔皮帅写过这样一段话:
目前,设计神经网络非常耗时,只需要专家研究科学和工程领域的一小部分。为了解决这个问题,我们创造了一个叫做AutoML的工具,用它神经网络可以设计神经网络。我们希望AutoML能达到目前医生能达到的水平。三到五年后,我们希望它能为很多开发者设计出新的不同功能的神经网络。
谷歌AI负责人杰夫迪恩(Jeff Dean)表示,100倍的计算能力可能会取代机器学习专家,对计算需求很大的神经架构搜索是他列举的唯一例子。
这就引出了一系列问题:开发者是否需要“设计不同功能的神经网络”?神经网络能有效解决类似问题吗?巨大的计算能力真的能取代机器学习专家吗?
在评价谷歌的言论之前,我们要知道,谷歌一直强调高效利用深度学习的关键是更多的计算能力,因为这关系到它的利益,因为在计算能力方面,谷歌足以挂掉别人。如果这是真的,那么我们可能都需要购买谷歌产品。这本身并不意味着谷歌的声明是错误的,但我们最好清楚他们言论背后的经济动机。
在我们之前的文章中,我们介绍了AutoML的历史,解释了什么是神经架构搜索,并指出对于许多机器学习项目来说,设计或选择一个架构并不是耗时和痛苦的部分。在今天的文章中,我想详细解释一下Google的AutoML,它引起了很多媒体的关注。大致内容如下:
什么是Google AutoML?
什么是迁移学习?
神经结构搜索与迁移学习:两种相反的方法
需要更多证据
为什么媒体会称赞Google AutoML?
怎样才能解决机器学习专家短缺的问题?
什么是Google AutoML?
虽然AutoML的领域已经发展了好几年,但在2017年5月,谷歌在其神经架构搜索中加入了AutoML这个术语。在谷歌开发者大会上,桑德尔皮帅说:“这就是为什么我们创造了工具AutoML,它证明了用神经网络设计神经网络是可能的。”与此同时,谷歌AI的研究人员Barret Zoph和Quole也表示:“在我们的方法(AutoML)中,一个控制器神经网络可以生成一个子模型架构……”
2018年1月,谷歌云宣布AutoML是机器学习产品中最多的部分。目前AutoML中有一个公开的产品——AutoML Vision,是一个可以对图片中的目标物体进行识别或分类的API。根据产品详情页面,我们知道Cloud AutoML Vision依赖于两个核心技术:转移学习和神经架构搜索。由于我们在上一篇文章中已经解释了神经架构搜索,现在我们将重点放在迁移学习上,看看它与神经架构搜索是如何相关的。
什么是迁移学习?
迁移学习(Transfer learning)是一种通过使用预训练模型的非常强大的技术,它允许人们用少量的数据集或更少的计算能力获得顶级的结果。预训练模型之前会在相似且更大的数据集上进行训练。因为模型不需要从头学习,所以比那些使用较少数据和计算时间的模型能得到更准确的结果。
迁移学习是一项重要的技术,被许多世界500强公司所采用。虽然迁移学习看起来没有神经架构搜索那么性感,但它已经创造了很多学术成果,比如杰瑞米霍华德和塞巴斯蒂安鲁德将迁移学习应用于NLP,在六个数据集上取得了最好的分类效果,成为OpenAI在该领域的研究基础。
神经结构搜索与迁移学习:两种不同的方法
迁移学习下的基本思想是神经网络结构会对同类问题进行泛化:比如很多图片都有基本特征(比如角度、圆、狗脸、轮子等。),这些构成了画面的多样性。相反,由于每个数据集都是唯一的,并且其结构非常个性化,因此神经架构搜索的效率得到了提高。
当神经架构搜索发现一个新的结构时,你必须从头开始学习这个结构的权重。但是有了迁移学习,你可以从预训练模型上的现有权重开始训练。这也意味着你不能在同一个问题上同时使用迁移学习和神经架构搜索:如果你想学习一个新的结构,你可能需要为它训练一个新的权重;但是如果用迁移学习,可能就不需要对结构做实质性的改变了。
当然,你可以把迁移学习应用到一个已经被神经架构搜索过的结构上(我觉得这是个好主意)。用神经架构搜索开源模型只需要几个研究人员。如果可以使用迁移学习,并不是所有的机器学习从业者都应该在问题上使用神经架构搜索。然而,杰夫迪恩、桑德尔皮帅、谷歌和媒体报道都说,每个人都应该直接使用神经架构搜索。
神经架构搜索有什么好处?
神经架构搜索非常适合寻找新的结构!Google的AmoebaNet是通过神经架构搜索学习的,fast.ai的很多技术进步也得益于神经架构搜索。
AmoebaNet不是根据奖励函数设计的,不具备伸缩能力,所以不像ResNet可以根据多种机器进行调整。但可扩展的神经网络可以在未来学习和优化。
需要更多证据
没有证据表明每个数据集最好是基于自己的模型建模,而不是对现有模型进行微调。因为神经架构搜索需要很大的训练集,所以对于小数据集可能不是很友好。甚至谷歌自己的一些研究也会使用迁移技术,而不是为每个数据集寻找新的结构,比如NASNet。
目前我还不知道有什么神经架构搜索在比赛中胜出的案例,也不知道一个需要大量元计算的方法领先于其他方法。比如最近的两篇论文,——高效神经架构搜索(ENAS)和可微分架构搜索(DARTS),提出了更高效的算法。DARTS只用4个GPU就达到了Nasnet 1800 GPU,Amoebanet 3150 GPU的效果。《ENAS》的作者之一杰夫迪恩提出计算能力比以前少1000倍。
为什么要吹捧Google AutoML?
有了这些限制,为什么还有很多人宣传Google AutoML的有用性?我认为有几种解释:
1.谷歌的AutoML真实反映了一些学术研究机构掺杂了盈利机构后的危机。很多科学家都想创造出关于热门学术研究领域的产品,但并不评价它是否能满足实际需求。这也是很多AI创业公司的现状。我的建议是,不要试图把博士论文变成产品,尽量不要雇佣纯学术的研究人员。
谷歌擅长营销。人工智能对很多外行来说门槛很高,以至于他们无法评价某些说法,尤其是谷歌这样的巨头。许多记者也随波逐流,争相报道谷歌的新技术和成就。我经常和不在机器学习领域工作的人聊谷歌的成就。即使他们没有用过谷歌的机器学习产品,他们也很兴奋,但如果你深究,你也说不出个所以然来。
谷歌引起的新闻误导的一个案例是,谷歌AI研究人员宣布“他们创造了一种可以重建人类基因组的深度学习技术”,他们还将这种技术与诺贝尔奖得主进行了比较,Wired报道了这一点。之后,约翰霍普金斯大学的生物统计学家和生物工程教授史蒂文萨尔茨伯格(Steven Salzberg)对谷歌的文章提出了批评。萨尔茨伯格指出,这项研究实际上并没有重建人类基因组,而且“对现有的软件只有轻微的改进,甚至比现有的软件还要差。”许多其他基因研究人员同意萨尔茨伯格的说法。
谷歌确实有很多伟大的成就,但我们在欣赏的同时也要注意鉴别。
3.因为谷歌的兴趣,说服我们高效使用深度学习的关键是更强的计算能力,因为谷歌在计算能力上有优势。AutoML通常需要大量的计算。比如为了学习AmoebaNet,450 K40 GPU需要训练7天。
如何解决机器学习专家短缺的问题?
为了解决全球机器学习从业者短缺的问题,我们可以采用以下方法:
让深度学习更容易使用
揭秘深度学习
让资金不足的人也用云GPU。
让深度学习更容易使用
为了让深度学习更容易使用,许多研究已经使它能够更快更容易地训练更好的网络。典型案例有:
Dropout可以在更小的数据集上训练模型,不存在过拟合。
批量常态化让训练更快。
线性整流器功能(ReLU)可避免梯度爆炸。
其他提高易用性的研究包括:
学习率检测器使训练过程更加稳定。
超级收敛加快了训练时间,并且需要更少的计算资源。
“自定义头”可以在现有架构的许多问题上重用。
揭秘深度学习
另一个障碍是,很多人总是认为深度学习离自己很远,或者认为自己的数据集太小,没有接受过深度学习训练或者计算能力不足。还有一种观点认为,深度学习只能用在机器学习的博士阶段,或者说很多公司根本雇不起一个深度学习专家。
但以我的经验来看,进入深度学习的门槛远比他们想象的要低,只要你有一年的编程经验,有一个GPU。
提供更多资源:Google Colab笔记本
虽然云GPU的成本是普通人可以承受的(每小时50美分左右,约合人民币3.4元),但很多同学表示有点贵。在一些国家,由于法规的原因,他们不能使用像AWS这样的服务。现在谷歌Colab笔记本可以解决这个问题。它提供了一个Jupyter笔记本环境,无需设置即可使用,运行在云上,并赠送用户免费GPU。Google Colab Notebook会为深度学习做更多的努力,这可能是Google在机器学习未来发展中更好的目标。
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们