0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AutoML又一利器来了!谷歌宣布开源AdaNet

DPVg_AI_era 来源:未知 作者:李倩 2018-11-01 09:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

这个项目基于Cortes等人2017年提出的AdaNet算法,用于学习作为子网络集合的神经网络的结构。

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

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

AdaNet提供以下特征:

Estimator API,可轻松训练、评估和服务AdaNet模型。

学习在TensorFlow中集成用户定义的子网。

用于在单个 train() 调用中搜索子网架构和参数的接口

关于CPUGPU的分布式训练(我们正在开发TPU支持)。

一流的TensorBoard integration。

提供理论学习。

基于集成学习的自动搜索工具

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

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

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

现在,AdaNet就是这样一个工具,可以自动搜索神经网络架构,并学会将最好的架构组合成一个高质量的模型。

AdaNet易于使用,并能创建高质量的模型,为ML实践者节省了用于选择最佳神经网络架构的时间,实现了一种将学习神经架构作为子网络集合的自适应算法。

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

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

快速且易于使用

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

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最先进的结果进行改进。此外,我们的模型使用更少的参数实现了这一结果:

Zoph等人2018年提出的NASNet-A模型的性能,以及AdaNet学习在CIFAR-10上将小型NASNet-A子网结合起来的性能比较。

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

用户还可以通过扩展adanet.subnetwork.Generator类来完全定义候选子网络的搜索空间。这允许他们根据可用硬件增大或减小搜索空间。子网络的搜索空间可以很简单,只需使用不同的随机种子复制相同的子网络配置,就能训练具有不同超参数组合的数十个子网络,并让AdaNet选择要包含在最终集合中的子网络。

谷歌的研究团队提供了GitHub repo和tutorial notebook,并且包含了一些使用dense layers和卷积的示例帮助大家入门。

AdaNet的数据集、工作原理和应用范围

今天,该项目的成员也在Reddit和ycombinator上回答读者提问,我们精选了一些回答:

1、请问你使用该算法尝试了哪些数据集?它是否只适用于图像分类,比如Google的AutoML产品?

我们在图像识别之外的几个大型数据集上使用了AdaNet,包括结构化数据(参见原始论文)和一些NLP数据集。在大多数情况下,AdaNet的性能优于独立训练的任何单个子网络(这些子网络可能使用非常复杂的架构,如NASNet-A)。

当然,如何定义一个优化搜索空间,并使用合理的搜索启发方式/算法对于获得最佳的最终模型非常重要,而且一般最佳的模型是使用强大的先验,就像最先进的模型,并让AdaNet学习将这些模型的不同变化结合起来。

但是,如果你希望AdaNet能够通用于任意数据集,可以尝试定义合理的搜索空间,比如搜索日益复杂的完全连接的神经网络,并允许AdaNet学习将其组合到最佳模型中。

最终,这就是我们设计的AdaNet具备高度灵活性的原因:我们希望任何人尝试建立对自己的数据集有意义的子网络搜索空间,以便获得最佳性能的最终模型。

2、官方资源库中的示例是个更好的例子,说明了AdaNet的工作原理:

https://github.com/tensorflow/adanet/blob/master/adanet/examples/tutorials/adanet_objective.ipynb

尽管名字叫“AutoML”,但实际上似乎仍需要做很多工作才能实现模型的优化。 (第二个示例在这方面的表现相对更好一些:

https://github.com/tensorflow/adanet/blob/master/adanet/examples/tutorials/customizing_adanet.ipynb)

确实,虽然AdaNet项目目前还不包含最先进的架构搜索策略/搜索空间,但它确实为研究人员提供了一个抽象对象(adanet.subnetwork.Generator)来实现神经架构搜索算法,同时提供了适合用户的生产友好型的TF Estimator界面,让算法开发更容易集成到生产过程中,而且,已经使用TF Estimator生态系统的用户也可以更快地从这些开发成果中受益。

我想指出的是,尽管AdaNet的某些方面并不那么先进,但我们已经看到AdaNet在各种各样的任务上取得了良好的效果。大家都来试试看吧!

当然,我们不会停下脚步!我们很高兴自己也在这个领域工作,我们今后将继续更新这个项目。

3、我还没有细读,但抱歉问一句;:AdaNet可以处理具有可变长度skip connections的块吗?(比如DenseNet),甚至能够提供AmoebaNet风格的模型吗?指导超参数/架构选择过程的元策略(网格搜索/贝叶斯等)有哪些呢?谢谢!

这是个好问题!在最简单的情况下,AdaNet允许用户将独立子网从线性模型集成到用户定义的DenseNet / AmoebaNet式网络上。但更有趣的是在迭代之间共享信息(这些信息可以是张量输出,或是哪些超参数表现最好),以便AdaNet进行神经架构搜索。用户可以定义自己的adanet子网生成器,指定如何跨迭代过程调整训练方式。

开箱即用的元策略其实和用户简单定义的启发式算法差不多。但是,AdaNet框架足够灵活,可以支持更智能的策略,并抽象出分布式训练(Estimator),评估(TensorBoard)和服务(tf.SavedModel)的复杂度。

4、机器学习和深度学习取得了如此大的进步。可以估计一下我需要多少CPU 和成本才能获得一些结果吗?我的数据训练量大约是20M的样本(每个样本1K数据点)。

这取决于你搜索的子网数量以及每个子网的训练成本。你可以使用单个DNN定义搜索空间,并为其提供一次迭代,这与固定DNN Estimator的操作相同。

比如说,假设搜索空间包含5个DNN,每个DNN完成一次迭代训练需要的成本为X,训练10次迭代,你的训练成本就是X x 5 x 10 = 50X。

但是,考虑到你使用AdaNet,可以考虑整合50个DNN进行探索、训练和选择等流程,此外,由于AdaNet是作为TensorFlow Estimator实现的,如果这就是你想要的,可以很容易地增加机器数量,以加快训练速度。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    6259

    浏览量

    111997
  • 神经网络
    +关注

    关注

    42

    文章

    4844

    浏览量

    108203
  • 强化学习
    +关注

    关注

    4

    文章

    274

    浏览量

    12002

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

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源项目BomberCat安全测试工具总体介绍

    硬件安全测试缺款多技术融合的利器吗?今天带来开源安全测试工具, 集 NFC 与磁条两大主流卡片技术于体,专为银行终端、门禁系统等设
    的头像 发表于 02-27 09:19 559次阅读
    <b class='flag-5'>开源</b>项目BomberCat安全测试工具总体介绍

    谷歌评论卡,碰碰即可完成谷歌评论 #谷歌评论卡 #NFC标签 #nfc卡

    谷歌
    深圳市融智兴科技有限公司
    发布于 :2026年01月15日 17:02:00

    TCL首款基于开源鸿蒙的智慧健康空调发布

    12月18日,在TCL空调新品发布会上,基于开源鸿蒙打造的小蓝翼P7 Ultra系列AI健康空调正式发布。这是TCL空调与开源鸿蒙生态深度融合的重要成果,也是开源鸿蒙赋能智慧家居的又一
    的头像 发表于 12-25 09:33 639次阅读

    泰凌微:布局端侧AI,产品支持谷歌LiteRT、TVM开源模型

     电子发烧友网报道(文/李弯弯)泰凌微近日表示,公司与谷歌在智能家居、音频等多个领域开展具体项目合作。其与谷歌已从单的遥控器芯片供应,发展为涵盖音频、智能家居、端侧AI等多领域的深度合作关系
    的头像 发表于 12-15 08:21 1w次阅读

    为什么说uCentral是构建开放网络的开源利器

    uCentral是TIP主导的开源网络管理系统,其核心uCentral Controller通过开放协议实现设备集中管控与自动化运维。该系统支持配置下发、状态监控和闭环自愈,在数据中心场景中要求底层交换机具备NETCONF/YANG、VXLAN等开放接口能力,为构建智能云化网络提供坚实基础。
    的头像 发表于 11-28 18:33 1428次阅读
    为什么说uCentral是构建开放网络的<b class='flag-5'>开源</b><b class='flag-5'>利器</b>?

    开源鸿蒙和开源欧拉成为开放原子开源基金会首批毕业项目

    11月21日,在2025开放原子开发者大会开幕式上,开放原子开源基金会宣布旗下开源鸿蒙(OpenHarmony)与开源欧拉(openEuler)成为首批毕业项目。
    的头像 发表于 11-25 17:22 1016次阅读

    见证中国开源生态成长力量:开源鸿蒙五年跨越与未来展望

    数字化浪潮滚滚向前,操作系统作为数字世界的基石,其重要性不言而喻。 2020年,随着开源鸿蒙项目的正式开源,中国基础软件领域迎来了场深刻的变革。从“0到1”的系统启动,到“1到N”的
    的头像 发表于 11-19 11:03 452次阅读

    芯原与谷歌联合推出开源Coral NPU IP

    芯原股份近日宣布谷歌联合推出面向始终在线、超低能耗端侧大语言模型应用的Coral NPU IP。
    的头像 发表于 11-13 11:24 1283次阅读
    芯原与<b class='flag-5'>谷歌</b>联合推出<b class='flag-5'>开源</b>Coral NPU IP

    NVIDIA宣布开源Aerial软件

    NVIDIA 开源其 Aerial 软件,并将 NVIDIA Sionna 研究套件和 Aerial 测试平台引入 NVIDIA DGX Spark 平台,为研究人员提供强大的工具和便捷的访问途径,以加速 AI 原生无线创新。
    的头像 发表于 11-03 15:14 1206次阅读

    谷歌查找我的设备配件(Google Find My Device Accessory)详解和应用

    物品。为了更好的理解它的工作原理,我们先来了谷歌查找我的设备网络FMDN(Google find my device network)。FMDN由四部分组成:附件(Accessory),所有者
    发表于 08-31 21:10

    正面迎战英伟达CUDA,华为宣布CANN全面开源

    8月5日,在北京举行的昇腾计算产业发展峰会上,华为轮值董事长徐直军宣布,升腾 AI 核心软件平台 CANN 将全面开源,同时还将Mind 系列应用软件及工具链同步开放,包括Mindstudio
    的头像 发表于 08-06 14:34 9973次阅读
    正面迎战英伟达CUDA,华为<b class='flag-5'>宣布</b>CANN全面<b class='flag-5'>开源</b>

    华为正式开源盘古7B稠密和72B混合专家模型

    [中国,深圳,2025年6月30日] 今日,华为正式宣布开源盘古70亿参数的稠密模型、盘古Pro MoE 720亿参数的混合专家模型和基于昇腾的模型推理技术。 此举是华为践行昇腾生态战略的又一
    的头像 发表于 06-30 11:19 1466次阅读

    开源鸿蒙统互联分论坛圆满举办

    万物互联时代到来,物联网设备数量及设备连接数高速增长,如何实现高效、稳定的设备间通信,成为行业重要的研究方向。作为开源操作系统,开源鸿蒙带来了全新的技术架构和解决方案,其统互联的技术
    的头像 发表于 06-05 15:33 1171次阅读

    开源鸿蒙开发新体验,开鸿Bot系列今日开启预售!

    今日,深开鸿正式宣布,开鸿Bot系列产品——开鸿BotBook与开鸿BotMini全面开启预售。该系列面向开源鸿蒙开发者量身打造,搭载基于OpenHarmony深度定制的KaihongOS桌面
    发表于 05-16 14:13

    明远智睿SSD2351开发板:仪器仪表与智慧农业的创新利器

    资料和一对一的技术支持,让农业科研人员和开发者可以根据实际需求对开发板进行定制和优化,开发出更加适合智慧农业发展的应用和解决方案。明远智睿SSD2351开发板为仪器仪表和智慧农业领域带来了新的发展机遇,推动了这两个领域的创新和进步。
    发表于 05-09 19:09