AutoML又一利器来了,谷歌宣布开源AdaNet(附教程)

AutoML又一利器来了,谷歌宣布开源AdaNet(附教程),第1张

关键词: AutoML , AdaNet , 集成学习 , 机器学习 , 神经网络

来源:新智元

今天,谷歌宣布开源AdaNet,这是一个轻量级的基于TensorFlow的框架,可以在最少的专家干预下自动学习高质量的模型。
这个项目基于Cortes等人2017年提出的AdaNet算法,用于学习作为子网络集合的神经网络的结构。

谷歌AI负责人Jeff Dean表示,这是谷歌AutoML整体工作的一部分,并且,谷歌同时提供了AdaNet的开源版本和教程notebook。

7 小时前 上传

下载附件 (30.21 KB)



该团队在介绍博客中表示:“AdaNet以我们最近的强化学习和基于进化的AutoML研究为基础,在提供学习保证的同时实现了快速、灵活。重要的是,AdaNet提供了一个通用框架,不仅可以学习神经网络架构,还可以学习集成,以获得更好的模型。”
AdaNet提供以下特征:

EsTImator API,可轻松训练、评估和服务AdaNet模型。
学习在TensorFlow中集成用户定义的子网。
用于在单个 train() 调用中搜索子网架构和参数的接口。
关于CPU和GPU的分布式训练(我们正在开发TPU支持)。
一流的TensorBoard integraTIon。
提供理论学习。
基于集成学习的自动搜索工具

集成学习(Ensemble learning)是将不同机器学习(ML)模型预测结合起来的技术,广泛用于神经网络,以实现最先进的性能。得益于丰富的经验和理论保证,集成学习在许多Kaggle竞赛中取得了成功,例如Netflix Prize。

由于训练时间长,集成学习在实践中使用不多,而且选择哪个ML模型需要根据其领域专业知识来。

但随着计算能力和专用深度学习硬件(如TPU)变得更容易获得,机器学习模型的一个趋势是变得更大,集成(ensemble)也就变得更加重要。

现在,AdaNet就是这样一个工具,可以自动搜索神经网络架构,并学会将最好的架构组合成一个高质量的模型。
AdaNet易于使用,并能创建高质量的模型,为ML实践者节省了用于选择最佳神经网络架构的时间,实现了一种将学习神经架构作为子网络集合的自适应算法。

AdaNet能够添加不同深度和宽度的子网络,以创建多样化的集合,并通过参数数量来改进性能。

7 小时前 上传

下载附件 (437.5 KB)



AdaNet自适应地产生了神经网络的集成。在每次迭代中,它测量每个候选对象的集成损失,并选择最佳的一个,然后进入下一次迭代。

快速且易于使用

AdaNet实现了TensorFlow EsTImator接口,通过封装训练、评估、预测和服务导出,大大简化了机器学习编程。它集成了开源工具,如TensorFlow Hub模块,TensorFlow Model Analysis和Google Cloud的Hyperparameter Tuner。分布式训练支持可显着缩短训练时间,并可与可用的CPU和加速(例如GPU)进行线性扩展。

7 小时前 上传

下载附件 (24.66 KB)



AdaNet在CIFAR-100上每个训练步骤(X轴)的精度(y轴)。蓝线是训练集上的性能,红线是测试集上的性能。每一百万步开始训练一个新的子网络,并最终提高整体的性能。在添加新子网之前,灰线和绿线是集合的准确度。

由于TensorBoard是用于在训练期间可视化模型性鞥的最佳TensorFlow功能之一,AdaNet可与其无缝集成,以监控子网络训练,集合组合和性能。当AdaNet完成训练后,它会导出一个可以使用TensorFlow Serving部署的SavedModel。

学习保证

构建神经网络集合面临这么几个挑战:要考虑的最佳子网架构是什么?再此使用相同的架构或鼓励多样性是不是最佳选择?虽然具有更多参数的复杂子网将在训练集上表现更好,但由于其存在更强的复杂性,它们可能不会适用于未知数据。这些挑战来自评估模型性能的过程。我们可以评估一个训练集子集的性能,但这样做会减少可用于训练神经网络的示例数量。

相反,AdaNet的方法(在ICML 2017的“ AdaNet:人工神经网络的自适应结构学习 ”一文中提出)是为了优化一个对象,以平衡集合在训练集上的表现与其适用于未知数据的能力之间的权衡。集合这样选择子网络:只有当候选子网络改进了总体的训练损失,而不是影响了整体的泛化能力时,才包含这个候选子网络。这保证了:

1.集合的泛化误差受到训练误差和复杂性的限制。
2.通过优化对象,我们可以直接将限制最小化。

优化对象的一个实际好处是:它不需要保留集来选择要添加到集合中的候选子网。这还将带来另一个好处:我们可以使用更多的训练数据来训练子网。

可扩展性

我们认为,为满足研究和生产制作AutoML框架的关键在于不仅要提供合理的默认值,还要允许用户尝试自己子网及模型的定义。因此,机器学习研究人员、从业人员和爱好者均可报名定义自己的AdaNet adanet.subnetwork.Builder,通过使用高级别的TensorFlow API,如tf.layers。

已经在其系统中集成TensorFlow模型的用户可以轻松地将他们的TensorFlow代码转换为AdaNet子网,并使用adanet.EsTImator提高模型性能,同时获得学习保证。AdaNet将探测他们定义的候选子网的搜索空间,并学习整合子网。例如,我们采用了NASNet-A CIFAR架构的开源实现方式,将其转换为子网,并在八次AdaNet迭代后对CIFAR-10最先进的结果进行改进。此外,我们的模型使用更少的参数实现了这一结果:

7 小时前 上传

下载附件 (18.02 KB)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2631496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-11
下一篇 2022-08-11

发表评论

登录后才能评论

评论列表(0条)

保存