雷锋网 AI 科技评论编者按:近期,Google 开源了轻量级 AutoML 框架—— AdaNet,该框架基于 TensorFlow,只需求大批的专家干涉便能自动学习高质量模型,在提供学习包管(learning guarantee)的同时也能坚持疾速、灵敏。值得一提的是,AdaNet 提供了一种通用框架,不但可以学习神经网络架构,还能学习集成从而取得更佳的模型。雷锋网(民众号:雷锋网) AI 科技评论凭据 Google AI 在博客上公布 AutoML 的文章停止编译如下。 整合了差别机器学习模型预测的模型集成,被遍及运用于神经网络来完成最优功能,它受害于悠久的历史和实际,从而在 Netflix Prize 和各项 Kaggle 竞赛等应战赛中拔得头筹。但是由于训练耗时长,以及机器学习模型的选择机制需求本身具有范畴专业知识,它们在理论中的使用并不多。不外随着算力和 TPU 等深度学习公用硬件变得更容易取得,我们可以允许更大的机器学习模型,模型集成要领也就成了一种能带来突出体现的选择。如今想象一下,一个东西可以自动搜索神经架构,并学习将最佳的神经架构集成到一个高质量的模型中。 如今,Google 对基于 TensorFlow 的轻量级框架 AdaNet 停止开源,这一框架只需求大批的专家干涉便能自动学习高质量模型。AdaNet 在 Google 比来的强化学习和基于退化的 AutoML 结果的根底上构建,在提供学习包管的同时也能坚持疾速、灵敏。重点是,AdaNet 提供了一种通用框架,不但可以学习神经网络架构,还能学习集成从而取得更佳的模型。 AdaNet 运用便利,还能创立高质量模型,以节省机器学习从业者通常在选择最优神经网络架构上所泯灭的工夫,它会执行一个自顺应学习算法,学习出一个由许多子网络集成失掉的神经网络架构。AdaNet 可以经过差别深度和宽度的子网络来创立多种差别的集成,并在功能提升和参数数量二者之间停止权衡。 ![]() AdaNet 顺应性地添加神经网络的集成。在每次迭代中,AdaNet 权衡每个候选神经网络的集成损失,并选择将最优的神经网络转入下一次迭代中。 疾速易用 AdaNet 接纳了 TensorFlow Estimator 接口,经过封装训练、评价、预测和输入,极大简化了机器学习编程,并整合了 TensorFlow Hub modules、TensorFlow Model Analysis、Google Cloud』s Hyperparameter Tuner 这类开源东西。其对漫衍式训练的支持,极大延长了训练工夫,而且添加新的 CPU 和减速器(例如 GPU)之后功能可以取得线性提升。 百度排名![]() AdaNet 在 CIFAR-100 上每个训练步(x 轴)对应的精确率(y 轴)。蓝线表现训练集上的精确率,红线表现测试集上的功能。一个新的子网络以每一百万步开端训练,最终进步整个集成模型的功能。灰色和绿色线表现新增的子网络之前的集成精确率。 作为最好的 TensorFlow 功效之一,TensorBoard 可以将训练历程中的模型目标可视化,因此 AdaNet 可与 TensorBoard 完成无缝整合,来监控子网络训练、集成归并和功能。AdaNet 完成训练后,会输入一个可运用 TensorFlow Serving 停止摆设的 SavedMode。 学习包管 构建神经网络集成面临一些应战:要考量什么是最佳子网络架构?反复运用相反的架构最好,照旧勉励差别化最好?虽然具有更多参数的庞大子网络在训练集上倾向于体现更好,但是它们也由于更大的庞大性而能够难以泛化到未知的数据。这些应战源自于对模型功能的评价,我们可以从训练集独自分出来一部门数据用于评价功能,不外这样的话能够会增加可用于训练神经网络的样本量。 不一样的是,AdaNet 的要领(该要领可参考 ICML 2017 的论文 AdaNet: Adaptive Structural Learning of Arti¡cial Neural Networks)是优化一个目的,在训练集的集成功能和未知数据的泛化才能间停止权衡。这里接纳了一个切合人类直觉的设定:只要当一个候选的子网络对集成模型的训练损失的优化凌驾其对泛化才能的负面影响时,AdaNet 才会把这个子网络集成出去。这包管了: 第一,集成的泛化误差受其训练误差和庞大度的约束; 第二,经过优化这一目的,可以直接最小化该约束。 优化这一目的的实践收益是,它能消弭选择参加集成的候选子网络时对付留出集的需求。如此带来的附加收益是,使得 AdaNet 可以运用更多的训练数据来训练子网络。 如需理解更多,可参考其 AdaNet 目的函数教程(http://github.com/tensorflow/adanet/blob/v0.1.0/adanet/examples/tutorials/adanet_objective.ipynb)。 可扩展性 Google 以为,创沈阳网页设计立使用于研讨和产物的有用的 AutoML 框架的要害是,它不但可以提供公道的默许值,还能让用户可以实验界说本身的子网络/模型。最终,机器学习研讨者、从业者以及喜好者都可以受邀运用 tf.layers 等高程度的 TensorFlow APIs,来界说他们本身的 AdaNet adanet.subnetwork.Builder。 对付曾经在本身的零碎中集成了 TensorFlow 模型的用户,可以随便地将本身的 TensorFlow 代码转到 AdaNet 子网络中,而且可以在取得学习包管的同时,运用 adanet.Estimator 来提升模型功能。AdaNet 会探究他们界说的候选子网络搜索空间,同时学习对子网络停止集成。例如,Google 完成 NASNet-A CIFAR 架构的开源,将其迁移到了一个子网络中,并经过 8 次 AdaNet 迭代进步了它在 CIFAR-10 上的最优后果。除此之外,Google 的模型完成了用更少参数来取得以下后果: ![]() 在 CIFAR-10 数据集上,展现在 Zoph et al., 2018 中的 NASNet-A 模型的功能 VS 学习结合多个小型 NASNet-A 子网络的 AdaNet 的功能。 用户也可以经过牢固或自界说的 tf.contrib.estimator.Heads,将本身界说的损失函数用作 AdaNet 目的的一部门来训练回归、分类以及多义务学习成绩。 用户还可以经过扩展 adanet.subnetwork.Generator 类别,来充实界说要探究的候选子网络搜索空间。这使得他们可以基于可取得的硬件来扩展或许减少其搜索空间。子网络的训练空间可以复杂也可以庞大,复杂的时分可以只是屡次复制异样的子网络设置,只不外用了几个差别的随机种子,庞大的时分就可以是用差别的超参数组合训练几十个差别的子网络,然后由 AdaNet 选择其中的某一个包罗到最终的集成模型中。 假如的各人对独立实验 AdaNet 感兴味,可以前往 Github repo(http://github.com/tensorflow/adanet),并检察相关教程(http://github.com/tensorflow/adanet/tree/v0.1.0/adanet/examples)。 via:Google AI Blog(Charles Weill,Introducing AdaNet: Fast and Flexible AutoML with Learning Guarantees),雷锋网 AI 科技评论编译 (责任编辑:admin) |