赞
踩
引自百度百科
目前AutoML包括三个工具分别是:AutoML Vision(视觉领域),自然语言处理领域和翻译领域。
(1)AuotoML要实现的目标:
引自 谷歌CEO Sundar Pichai
(2)AuotoML产品特点及优势
谷歌云负责人、首席科学家 李飞飞
(3)Google的经济动机
引自 论智 Rachel Thomas
引自 谷歌AI的研究者 Barret Zoph和Quoc Le
(1)AutoML Vision简介
AutoML Vision是一款提供自定义图像识别系统自动开发的服务。用户只需要将自己的数据上传,就可以直接在谷歌云上训练和管理模型。也就是说,即使是没有机器学习专业知识的的人,只需了解模型基本概念,就能借这项服务轻松搭建定制化的图像识别模型。
对AutoML Vision简单介绍如下:(https://cloud.google.com/vision/)
(1)AutoML Vision关键技术
AutoML Vision依靠两种核心技术:迁移学习和神经架构搜索。
关键技术1:迁移学习
迁移学习利用预训练模型,可以让人们用少量数据集或者较少的计算力得到顶尖的结果,是一种非常强大的技术。预训练模型此前会在相似的、更大的数据集上进行训练。由于模型无需从零开始学习,它可以比那些用更少数据和计算时间的模型得到更精确的结果。
神经架构搜索和迁移学习比较:
迁移学习之下的基础理念是,神经网络结构会对相同种类的问题进行泛化:例如,很多图片都有基础特征(比如角度、圆圈、狗狗的脸、车轮等等),这些特征构成了图片的多样性。相反,提升神经架构搜索的效率是因为,每个数据集都是独一无二的,它的结构非常个性化。
当神经架构搜索发现了一种新结构,你必须从零开始学习该结构的权重。但是有了迁移学习,你可以从预训练模型上已有的权重开始训练。这也意味着你无法在同一个问题上同时使用迁移学习和神经架构搜索:如果你要学习一种新的结构,你可能需要为此训练一个新权重;但如果你用迁移学习,可能无需对结构进行实质性改变。
AutoML由控制器(Controller)和子网络(Child)2个神经网络组成,控制器生成子模型架构,子模型架构执行特定的任务训练并评估模型的优劣反馈给控制器,控制器将会将此结果作为下一个循环修改的参考。重复执行数千次“设计新架构、评估、回馈、学习”的循环后,控制器能设计出最准确的模型架构。
(1)正面评价
Google’s AI can create better machine-learning code than the
researchers who made it.
AutoML is better at coding machine-learning systems than the
researchers who made it. In an image recognition task it reached
record a high 82 percent accuracy. Even in some of the most complex
AI tasks, its self-created code is superior to humans; it can mark
multiple points within an image with 42 percent accuracy compared to
human-made software’s 39.
Tristan Greene
Google’s machine learning software has learned to replicate itself.
Artificial intelligence (AI) designed to help them create other AIs.
Futurism
(2)负面评价:
论智 Rachel Thomas
(3)相对客观评价
(1)算法核心:让神经网络训练神经网络。
(2)实现原理:一种控制器神经网络(RNN)提议一个“子”模型框架,然后对特定任务进行训练和质量评估;根据反馈给控制器的信息改进下一轮的提议。重复这个过程上千次从而生成新的架构。最终测试和反馈让控制器学习的好架构被控制器分配高的概率,以便在验证数据集上得到更高的准确性且架构空间的差异更小。
(3)实现原理:(与上述类似)
Tristan Greene
(4)原理解释:
Tristan Greene
(1)常见机器学习模型实现的步骤:
对模型进行经验调参的步骤:数据与处理-特征选择-模型算法选择-调参-上线后优化-效果评估。
(2)AutoML主要功能及设计方法:
主要功能:一是模型/算法选择,二是模型超参数优化。
引自 知乎 Frankie Gu (https://zhuanlan.zhihu.com/p/27792859)
ENAS: 更有效地设计神经网络模型(AutoML):ENAS全称Efficient Neural Architecture Search,出自Google在2018年发布的论文《Efficient Neural Architecture Search via Parameter Sharing》,通过共享模型参数的形式高效实现神经网络模型结构的探索。
使用的关键技术:强化学习、动态构建计算图等技术,从宏观角度看是一种搜索算法,产出是一个精心挑选的NN模型,因此这是一种很符合期望的AutoML,同时实现完整的“自动(Auto)机器学习(ML)”还需要有自动特征抽取、自动超参调优等技术支持。
(1)NAS举例说明
假设模型必须是一个三层的全连接神经网络(一个输入层、一个隐层、一个输出层),隐层可以有不同的激活函数和节点个数,假设激活函数必须是relu或sigmoid中的一种,而隐节点数必须是10、20、30中的一个,那么我们称这个网络结构的搜索空间就是{relu, sigmoid} * {10, 20 ,30}。在搜索空间中可以组合出6种可能的模型结构,在可枚举的搜索空间内我们可以分别实现这6种可能的模型结构,最终目标是产出效果最优的模型,那么我们可以分别训练这6个模型并以AUC、正确率等指标来评价模型,然后返回或者叫生成一个最优的神经网络模型结构。
NAS算法是一种给定模型结构搜索空间的搜索算法,当然这个搜索空间不可能只有几个参数组合,在ENAS的示例搜索空间大概就有 1.6*10^29种可选结构,而搜索算法也不可能通过枚举模型结构分别训练来解决,而需要一种更有效的启发式的搜索算法,这种算法就是贝叶斯优化、增强学习、进化算法等.
(2)超参自动调优算法:贝叶斯优化
(3)搜索空间的获取:
(4)网络空间的搜索方法
暴力枚举法(排除);贝叶斯优化(Bayesian optimization)、粒子群优化(Particle swarm optimization)、Policy
gradient、DQN等等,这些算法都可以用于NAS内部的模型的优化。是的,NAS内部也有一个模型,一般在论文或者代码中称为controller模型,又它来控制想要生成的神经网络模型的结构,而生成的神经网络模型会根据客户的使用场景(例如图像分类)来返回模型效果对应的指标,这个一般称为child模型。
NAS没有学会建模也不能替代算法科学家设计出Inception这样复杂的神经网络结构,但它可以用启发式的算法来进行大量计算,只要人类给出网络结构的搜索空间,它就可以比人更快更准地找到效果好的模型结构。
ENAS需要人类给出生成的网络模型的节点数,我们也可以理解为层数,也就是说人类让ENAS设计一个复杂的神经网络结构,但如果人类说只有10层那ENAS是不可能产出一个超过10层网络结构,更加不可能凭空产生一个ResNet或者Inception。
如下图:ENAS要学习和挑选的就是Node之间的连线关系,通过不同的连线就会产生大量的神经网络模型结构,从中选择最优的连线相当于“设计”了新的神经网络模型。
引自 论文 Efficient Neural Architecture Search via Parameter Sharing
总结:NAS其实原理很简单,首先在一定空间内搜索,问题优化上使用了贝叶斯优化、增强学习等黑盒优化算法、在样本生成上使用了权值共享、多模型Inference的方式、在编码实现用了编写一个Graph来动态生成Graph的高级技巧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。