谷歌开源基于TensorFlow的通用框架AdaNet,快速且易于使用

编译:chux

Ensemble learning结合不同机器学习模型预测,被广泛用于神经网络以实现最先进的性能,得益于丰富的历史和理论保证,成功的挑战,如Netflix奖和各种Kaggle竞赛。然而,由于训练时间长,它们在实践中使用不多,机器学习模型候选者选择需要其自己的领域专业知识。但随着计算能力和专用深度学习硬件(如TPU)变得越来越容易获得,机器学习模型将变得更大,整体效果将变得更加突出。现在,想象一个工具可以自动搜索神经架构,并学会将最好的架构组合成一个高质量的模型。

今天,谷歌推出了AdaNet,这是一个基于TensorFlow的轻量级框架,可以通过最少的专家干预自动学习高质量的模型。AdaNet建立在谷歌最近的强化学习和基于进化的AutoML工作的基础上,在提供学习保证的同时又快速灵活。重要的是,AdaNet提供了一个通用框架,不仅可以学习神经网络架构,还可以学习集成以获得更好的模型。

AdaNet易于使用,可创建高质量的模型,为机器学习从业者节省了通常用于选择最佳神经网络架构的时间,实现了将神经架构学习为子网络集成的自适应算法。AdaNet能够添加不同深度和宽度的子网络,以创建多样化的集成,并通过参数数量来改善性能。

AdaNet自适应地生成了一系列神经网络。在每次迭代中,它测量每个候选对象的集成损耗,并选择最好的一个进行下一次迭代。

快速且易于使用

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

AdaNet在cifar 100上每训练步(x轴)对应精度(y轴)。蓝线表示训练集的准确率,红线表示测试集的性能。每百万步就会有一个新的子网络开始训练,最终提高集成的性能。在添加新子网络之前,灰色和绿色的线是集成的精度。

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

学习保证

构建神经网络集成有多重挑战:最佳子网架构是什么?重复使用相同的架构还是鼓励多样性?虽然具有更多参数的复杂子网将倾向于在训练集上表现更好,但由于其更大的复杂性,它们可能不会推广到没见过的数据中。这些挑战源于模型性能评估。我们可以评估来自训练集的保持集分割的性能,但这样做会减少可用于训练神经网络的示例数量。

相反,AdaNet的方法(论文AdaNet: Adaptive Structural Learning of Artificial Neural Networks中提出)是为了优化一个目标,以平衡集成在训练集上的表现与其推广到看不见的数据的能力之间的权衡。直觉是指整体只有当它改善整体训练损失而不是影响其概括能力时才包括候选子网。这保证了:

  • 集成的泛化误差受其训练误差和复杂性的约束。
  • 通过优化此目标,我们直接最小化此约束。

优化此目标函数的一个实际好处是,它不需要保留集来选择要添加到集成中的候选子网络。这样做的另一个好处是可以使用更多的训练数据来训练子网络。要了解更多信息,请浏览有关AdaNet目标的教程:github.com/tensorflow/adanet/blob/v0.1.0/adanet/examples/tutorials/adanet_objective.ipynb

可扩展

为研究和生产使用制作有用的AutoML框架的关键是不仅要提供合理的默认值,还要允许用户尝试自己的子网络/模型定义。这样机器学习研究人员,从业人员和爱好者均可使用高级TensorFlow API(如tf.layers)定义自己的AdaNet adanet.subnetwork.Builder。

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

用户通过固定或定制tf.contrib.estimator.Heads,将自定义的损失函数用作AdaNet目标的一部分,以便训练回归,分类和多任务学习问题。

在CIFAR-10上,2018年Zoph等人提出的NASNet-A模型 VS AdaNet学习结合NASNet-A子网络的性能。

用户还可以通过扩展adanet.subnetwork.Generator类别,来完全定义要探索的候选子网络的搜索空间。这允许他们根据可用硬件增加或减少搜索空间。子网络的搜索空间可以简单到使用不同的随机种子复制相同的子网络配置,训练具有不同超参数组合的数十个子网络,并让AdaNet选择一个进入最终集成。

Github:github.com/tensorflow/adanet 教程notebook:github.com/tensorflow/adanet/tree/v0.1.0/adanet/examples/tutorials 论文:proceedings.mlr.press/v70/cortes17a.html

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

R语言中的情感分析与机器学习

利用机器学习可以很方便的做情感分析。本篇文章将介绍在R语言中如何利用机器学习方法来做情感分析。在R语言中,由Timothy P.Jurka开发的情感分析以及更一...

23790
来自专栏新智元

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

今天,谷歌宣布开源AdaNet,这是一个轻量级的基于TensorFlow的框架,可以在最少的专家干预下自动学习高质量的模型。

33850
来自专栏WeTest质量开放平台团队的专栏

机器学习在启动耗时测试中的应用及模型调优(一)

启动耗时自动化方案在关键帧识别时,常规的图像对比准确率很低。本文详细介绍了采用scikit-learn图片分类算法在启动耗时应用下的模型调优过程。

19630
来自专栏新智元

基准评测 TensorFlow、Caffe、CNTK、MXNet、Torch 在三类流行深度神经网络上的表现(论文)

【新智元导读】新年伊始,新智元向你推荐香港浸会大学计算机学院褚晓文团队最新论文《基准评测当前最先进的深度学习软件工具》,评测了 Caffe、CNTK、MXNet...

80980
来自专栏CVer

KDD 2018 | OCR 神器来了

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

70930
来自专栏机器之心

KDD 2018 | OCR神器来了!Facebook推出大规模图像文本提取系统Rosetta

人们在社交网络上分享和获取信息的主要途径之一是视觉媒介,如照片和视频。近年来,上传至社交媒体的照片数量成指数级增长,每天可达数亿张 [27],处理日渐增多的视觉...

21130
来自专栏AI科技评论

学界丨基准测评当前最先进的 5 大深度学习开源框架

AI 科技评论按:本文转自微信公众号 医AI (med-ai), 来源:arXiv.org,论文作者:Shaohuai Shi, Qiang Wang, Pen...

39950
来自专栏机器之心

资源 | DeepMind开源图网络库,一种结合图和神经网络的新方法

项目地址:https://github.com/deepmind/graph_nets

21130
来自专栏机器之心

学界 | 抛弃黑箱,斯坦福大学与Facebook提出程序生成式图像推理模型

选自arXiv 作者:Justin Johnson等 机器之心编译 参与:李泽南 去年 12 月,斯坦福大学联合 Facebook 推出了一个用于组合式语言和初...

29050
来自专栏AI科技评论

动态|谷歌开源T2T模型库,深度学习系统进入模块化时代!

AI 科技评论按:6月19日,谷歌发布了T2T(Tensor2Tensor)深度学习开源系统,这个系统的一大优点是模块化,这也就意味着系统更加灵活,适应性更强。...

33880

扫码关注云+社区

领取腾讯云代金券