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

    文章

    5866

    浏览量

    103278
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98810
  • 强化学习
    +关注

    关注

    4

    文章

    259

    浏览量

    11115

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

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

收藏 人收藏

    评论

    相关推荐

    腾讯突然宣布,微信鸿蒙版要来了

    今年初, 华为宣布HarmonyOS NEXT命名为“鸿蒙星河版” ,并计划在二季度启动开发者 Beta 计划,四季度发布商用正式版。 消息出,不少人为之振奋。 鸿蒙星河版因不再兼容安卓开源
    发表于 04-30 19:34

    NVIDIA和谷歌宣布开展一项新的合作,加速AI开发

    NVIDIA 和谷歌宣布开展一项新的合作,以帮助全球初创企业加速创建生成式 AI 应用和服务。
    的头像 发表于 04-11 14:03 169次阅读

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlow。TensorFlow是一个开源的机器学习框架,由谷歌的机器学习团队开发,用于构建和
    的头像 发表于 03-01 16:25 249次阅读

    谷歌发布轻量级开源人工智能模型Gemma

    谷歌近日宣布推出开源人工智能(AI)模型系列Gemma,旨在为开发人员和研究人员提供一个负责任的AI构建平台。这一举措标志着自2022年OpenAI的ChatGPT引领AI聊天机器人热潮后,
    的头像 发表于 02-23 11:38 420次阅读

    谷歌宣布Gemma大模型全球开放使用

    谷歌公司近日宣布,其先进的AI大模型Gemma即日起在全球范围内开放使用。这一新模型由谷歌DeepMind和其他团队合作开发,并与其最大的AI模型Gemini共享技术和基础架构。Gemma的开放
    的头像 发表于 02-23 10:41 355次阅读

    谷歌开源70亿参数大语言模型,全方位超越Meta Llama-2?

    基于Gemini打造的开源模型Gemma。   谷歌加入AI模型开源阵营,Gemma横空出世   根据谷歌的介绍,Gemma是由谷歌Deep
    的头像 发表于 02-23 00:15 3105次阅读
    <b class='flag-5'>谷歌</b><b class='flag-5'>开源</b>70亿参数大语言模型,全方位超越Meta Llama-2?

    谷歌大型模型终于开放源代码,迟到但重要的开源战略

    在人工智能领域,谷歌可以算是开源的鼻祖。今天几乎所有的大语言模型,都基于谷歌在 2017 年发布的 Transformer 论文;谷歌的发布的 BERT、T5,都是最早的一批
    发表于 02-22 18:14 192次阅读
    <b class='flag-5'>谷歌</b>大型模型终于开放源代码,迟到但重要的<b class='flag-5'>开源</b>战略

    谷歌发布全球最强开源大模型Gemma

    谷歌近日宣布,其全新开源大模型Gemma正式亮相。Gemma被誉为全球性能最强大、同时也是最轻量级的模型系列,分为2B(20亿参数)和7B(70亿)两种尺寸版本。令人瞩目的是,即便是2B版本,也能够在笔记本电脑上流畅运行。
    的头像 发表于 02-22 14:51 346次阅读

    芯原与谷歌携手合作开源项目Open Se Cura

    2023年12月19日,中国上海——芯原股份 (芯原,股票代码:688521.SH) 今日宣布谷歌合作支持新推出的开源项目Open Se Cura。
    的头像 发表于 12-19 09:07 253次阅读

    解锁未来软件安全的利器——华为云 CodeArts 开源治理服务

    剖析当前开源软件行业的现状,并引领您了解华为云 CodeArts 开源治理服务是如何成为解决方案的利器开源软件的挑战与行业现状 随着开源
    的头像 发表于 12-10 21:01 717次阅读
    解锁未来软件安全的<b class='flag-5'>利器</b>——华为云 CodeArts <b class='flag-5'>开源</b>治理服务

    ARM最大危机来了谷歌官宣:安卓将全面支持RISC-V

    电子发烧友网报道(文/吴子鹏)日前,谷歌开源博客发布了一篇文章,宣布了Android(安卓)与 RISC-V 的最新进展。文章开门见山地提到,“Android支持许多不同的设备类型和CPU架构
    的头像 发表于 11-04 00:16 1728次阅读

    Orange Pi OS(OH)发布,开源鸿蒙PC端来了

    正式向大家宣布个喜讯:基于OpenHarmony定制研发的Orange Pi OS(OH)即将发布!日前,迅龙开源鸿蒙的工程师团队已经在搭载RK3566的开发板Orange Pi 3B上完成
    发表于 10-26 11:32

    VisionFive 2成功集成Android开源项目(AOSP)!

    非常高兴地向各位宣布,赛昉VisionFive 2上已成功集成了Android开源项目(AOSP),为用户带来了更多的软件解决方案以及与Android软件生态系统的无缝集成。这里程碑
    发表于 10-16 13:11

    谷歌助手LED控制开源分享

    电子发烧友网站提供《谷歌助手LED控制开源分享.zip》资料免费下载
    发表于 06-30 09:51 0次下载
    <b class='flag-5'>谷歌</b>助手LED控制<b class='flag-5'>开源</b>分享

    谷歌开源内部Rust Crate审计结果

    “Rust 可以轻松地将代码封装和共享到 crate 中,crate 是可重用的软件组件,就像其他语言中的包一样。我们拥抱广泛的开源 Rust crate 生态系统,既利用了谷歌以外编写的 crates,也发布了我们自己的几个 crates。”
    的头像 发表于 05-29 11:10 553次阅读