归一化激活层的进化:谷歌Quoc Le等人利用AutoML 技术发现新型ML模块

扶醉桌前 提交于 2020-04-10 15:17:14
最近,谷歌大脑团队和 DeepMind 合作发布了一篇论文,利用 AutoML 技术实现了归一化激活层的进化,找出了 BatchNorm-ReLU 的替代方案 EvoNorms,在 ImageNet 上获得 77.8% 的准确率,超越 BN-ReLU(76.1%)。

选自arXiv,作者:Hanxiao Liu,等机器之心编译,机器之心编辑部。

批归一化和激活函数是深度神经网络的重要组成部分,二者的位置常常重合。以往的神经网络设计中通常对二者分别进行设计,而最近谷歌大脑和 DeepMind 研究人员合作提出了一种新方案:将二者统一为一个计算图,从低级原语开始进行结构进化。研究者利用层搜索算法发现了一组全新的归一化-激活层 EvoNorms。这些层中的一部分独立于批统计量(batch statistics)。

实验证明,EvoNorms 不仅在包括 ResNets、MobileNets 和 EfficientNets 在内的多个图像分类模型上效果显著,它还能很好地迁移到 Mask R-CNN 模型(进行实例分割)和 BigGAN(用于图像合成)。在多种情况下,EvoNorms 的性能显著优于基于 BatchNorm 和 GroupNorm 的层。

搜索空间

研究者将每个归一化-激活层表示为一个计算图,即将输入张量转换为同样形状的输出张量(见图 1)。每个中间节点表示一元或二元运算(见表 1)。这些运算旨在保存输入张量的维度,以确保计算图中节点的形状彼此兼容。计算图共有 4 个初始节点:输入张量、常数零张量,以及沿着被初始化为 0 和 1 的通道维度的两个可训练向量 v_0 和 v_1。

图 1:左图:搜索到的归一化-激活层的计算图,该层独立于批统计量,研究者将其命名为 EvoNorm-S0。右图:使用 EvoNorm-S0 作为归一化-激活层的 ResNet-50,当 8 个 worker 上的批大小从 1024 到 32 不等的情况下,在 ImageNet 数据集上的性能结果。EvoNorm-S0 的性能还优于 MobileNetV2 和 Mask R-CNN 模型中基于批归一化(BN)和组归一化(GN)的层。

表 1:搜索空间的原语。

按照顺序可以生成随机图。从初始节点开始,研究者随机采样原语操作并根据操作的元数(arity)对其输入节点进行随机采样,从而生成新节点。

层搜索方法

该研究使用的搜索方法包含以下重要部分:

  • 将每个层与多个架构进行配对,并在轻量级代理任务中训练模型,从而评估每个层的性能。
  • 通过进化算法来优化多目标边界,使用高效的否决机制(rejection mechanism)进行增强,从而过滤掉不需要的层。

下图 3 展示了层搜索方法的整体工作流程:

图 3:层搜索算法的工作流程。将每个产生突变的层与 K 个架构配对,从头开始训练以得到 K 个多目标锦标赛选择算法的性能分数。

层评估

像 BatchNorm-ReLU 这类有用的层能够在多种网络架构中均具备良好的效果。然而,从图 4 中可以看到,那些在某一给定架构中表现不错的层,在迁移到其他架构后其性能未必就好。为了明显地提升其泛化性能,研究者将层搜索构建为一个多目标优化问题,其中每个候选层均在 K (K > 1) 个不同锚点架构上进行评估,以获得多个拟合值。

图 4:5000 个随机层与不同图像分类架构适配时的准确率。

代理任务与锚点架构

研究者将代理任务定义为在 CIFAR-10 数据集上的图像分类任务,并考虑在 ImageNet 上三个具有代表性的网络架构,将其针对文中的设置进行相应调整。这些架构包括:通道倍率(channel multiplier)为 0.25×的预激活(Pre-activation)ResNet50;通道倍率为 0.5×的 MobileNetV2;通道倍率为 0.5×的 EfficientNet-B0。

为处理 CIFAR-10 中图像分辨率低于 ImageNet 的问题,将以上网络架构的前两个用于缩小空间的卷积步长修改为 1。研究者将这些调整后的版本分别称为 ResNet50-CIFAR,MobileNetV2-CIFAR 和 EfficientNet-CIFAR。

图 5:锚点架构中的模块定义。从左到右依次为:ResNet-CIFAR、MobileNetV2-CIFAR 和 EfficientNet-CIFAR。

进化

该研究使用的进化算法是锦标赛选择算法的变体。在每一步中,基于全部层的随机子集构建锦标赛,获胜者可以生成突变后的进化版本,在经过评估后加入到候选层中。因此,随着这一过程不断重复,候选层的整体质量有所提升。研究者还通过保持获选层最近部分的滑动窗口,对进化执行正则化。

选择标准。锦标赛获胜者的选择标准并非唯一,因为每个层都具备多个分数。下面展示了两个可实施的选项:

  • 平均值:具备最高平均准确率的层获胜(如图 6 中的 B);
  • 帕累托:位于帕累托边界上的随机层获胜(如图 6 中的 A、B、C 均获胜)。

突变。研究者通过以下三个步骤完成获胜层的计算图突变:

  1. 随机均匀选择中间节点;
  2. 随机均匀地使用表 1 中的新操作替换当前操作;
  3. 随机均匀地选择该节点的新的继任者。
图 6: 对于多目标进化的二选一锦标赛评价准则。

否决机制

质量。对于在任意三个 anchor 架构中进行了 100 个训练步后验证准确率低于 20% 的层,研究者选择丢弃。由于候选层中绝大部分无法获得有意义的学习动态(见图 2),因此这一简单机制可以确保计算资源集中在对有潜力的少量候选层进行完整的训练。

稳定性。除了质量以外,研究者还选择丢弃具备数值不稳定性的层。其基本原理是:向着最大化网络梯度范数的方向对抗式地调整卷积权重 θ,从而对候选层进行压力测试。

实验

在表 2 中,研究者将所发现的层与应用广泛的归一化激活层在 ImageNet 数据集上进行比较,包括使用谷歌之前提出的Swish 激活函数的强基线。

表 2:不同的归一化-激活层在 ImageNet 上的测试准确率。需要移动平均数的项见图中蓝字。对于相同的架构,用相同的代码库和相同的训练设置会得到一样的结果。

表 3 展示了从另一个搜索实验中得到的 EvoNorms 的性能数据,该实验不使用包含批聚合操作(batch aggregation op)的层。

表 3:不具备批统计量的基于样本的层在 ImageNet 上的测试准确率。学习率和批大小呈线性关系。对相同的架构,用相同的代码库和相同的训练设置会得到一样的结果。

图 7 展示了具备大批量的 Evonorms 的学习动态。在相同的训练环境下,尽管训练损失较大,但在 ResNet-50 上 EvoNorm-B0 的性能仍然优于 BN-ReLU。

图 7:在批大小较大的情况下,ResNet-50 和 MobileNetV2 在 ImageNet 数据集上的训练/评估曲线。图中显示了每个层对应的测试准确率。

为了调查该研究发现的层能否在搜索时的分类任务以外的任务上实现泛化,研究者将其与 Mask R-CNN (He et al., 2017) 和 ResNet-FPN (Lin et al., 2017) 进行配对,并在 COCO 数据集上执行目标检测和实例分割任务。

表 4:在 COCO val2017 数据集上的 Mask R-CNN 目标检测和实例分割结果。

研究者进一步测试了 EvoNorms 在训练 GAN 时的可用性。运用 BigGAN 的训练步骤进行训练后,研究者在表 5 中给出了最佳表现的结果。使用 EvoNorm-B0 的 BigGAN-deep 生成的部分样本图像如图 8 所示。

表 5:BigGAN-deep 生成器中不同归一化激活层的图像合成性能,其中使用批统计量与不使用批统计量的层是彼此分离的。如图所示,中位数和最佳性能是在 3 个随机种子上取得的。IS 值越高越好,FID 值越低越好。

图 8:BigGAN-deep + EvoNorm-B0 生成的部分图像示例。

与只依赖一种方差的传统归一化范式不同,EvoNorm-B0 尝试在其 denominator 中混合两种方差。前者在同一 mini-batch 内捕捉不同图像的全局方差,后者则捕捉每个图像的局部方差。

图 9:EvoNorm-B0 的计算图。

研究者以 MobileNetV2 为例详细研究了上述问题。结果显示,EvoNorm-B0 在准确率-参数权衡和准确率-FLOPs 权衡方面都显著优于 BN-ReLU(见图 11)。这是因为 EvoNorms 的开销可以很大程度上由其性能收益来补偿。

图 11:MobileNetV2 配以不同的归一化激活层时的 ImageNet 准确率 vs 参数,以及准确率 vs FLOPs。

下图 10 在代理任务中对比了进化和随机搜索,从图中我们可以看到它们在优化搜索目标时的采样效率存在很大差距。

图 10:在代理任务中,进化 vs 随机搜索 vs 固定基线(BN-ReLU)的搜索进程。

作者信息

这篇论文的作者共有四位,分别来自谷歌大脑和 DeepMind。其中,一作是谷歌大脑研究科学家 Hanxiao Liu(刘寒骁)。他本科毕业于清华大学,2018 年在卡内基梅隆大学取得计算机科学博士学位,曾先后在微软、Citadel、DeepMind 等公司实习,2018 年加入谷歌担任研究科学家。

论文一作刘寒骁。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!