探索AdaNet API(1)——AdaNet是什么?

(一)AdaNet概览

在这里插入图片描述
在我们为神经网络的最优结构绞尽脑汁的时候,有人却提出了另外一种思路,在发表于 ICML 2017上的《AdaNet:人工神经网络的自适应结构学习》一文中提出对目标函数进行优化,让目标函数可以平衡该集成在训练集上的性能与其泛化未知数据的能力之间的取舍。Google基于TensorFlow实现了AdaNet,AdaNet API是一款轻量级的TensorFlow AutoML框架,可以用来训练和部署自适应神经网络。AdaNet 能够以自适应的方式扩大神经网络集成的规模,在每次迭代中,它可以测量每个候选神经网络的集成损失,然后选择最好的神经网络进行下一次迭代。下边的这一幅GIF完美地展现了AdaNet的工作流程,生成若干个候选子网络,只有当候选子网在减少集成训练损失方面的成效超过其对泛化能力的影响时,才在集成的系统中添加候选子网络。我也是第一时间去感受了一下这款新秀,果然应了那句话——Google从未让人失望!
在这里插入图片描述

(二)基本机构

在这里插入图片描述
在构建Adanet API时使用了多种现有的高级API,tf.estimator、tf.layers、tf.data,所以我更愿意把它称为一个超级API。

(三)使用流程

在这里插入图片描述
在对AdaNet进行了详细学习后,它的使用过程可以概括为以下步骤。首先,构建数据的输入通道,然后是最为关键的一步——定义子网生成器,最后,进行训练和评估,其中每个过程对应的TensorFlow API如图所示。

(四)运行示例

以普通BP神经网络为例,AdaNet经过100000次训练最终给出了如下的网络结构:
在这里插入图片描述

(五)总 结

在本节中我们介绍了AdaNet API的基本概况,有任何的问题可以在评论区留言,我会尽快回复,谢谢支持!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字50 设计师:CSDN官方博客 返回首页