专栏首页AI异构神经网络架构搜索——可微分搜索(DAAS)

神经网络架构搜索——可微分搜索(DAAS)

DAAS

本文是华为基于可微分网络搜索的论文。本文基于DARTS搜索离散化后性能损失严重的问题,提出了离散化感知架构搜索,通过添加损失项(Discretization Loss)以缓解离散带来的准确性损失

  • 论文题目:Discretization-Aware Architecture Search
  • 开源代码:https://github.com/sunsmarterjie/DAAS。

摘要

神经架构搜索(NAS)的搜索成本为通过权值共享方法大大减少。这些方法通过优化所有可能的边缘和操作的超级网络,从而确定离散化的最佳子网,即修剪弱候选者。在操作或边缘执行离散化过程目前存在的不准确之处以及最终结构的质量不能保证。本文提出了离散化感知架构搜索(DAAS),其核心思想是添加损失项以推动超级网络朝向所需拓扑的配置,以便离散带来的准确性损失得到缓解。实验在标准图像分类基准上证明了方法的重要性,尤其是在目标网络不平衡的情况下。

DAAS架构思路展示

方法

算法的核心思路是采用超网络中边和操作参数归一化后的信息熵作为Loss约束,最小化信息熵可以实现离散的参数分布

操作参数

\alpha

的离散化损失

\mathcal{L}_{i, j}^{\mathrm{O}}(\boldsymbol{\alpha})=-\sum_{o \in \mathcal{O}} \frac{\exp \left\{\alpha_{i, j}^{o}\right\}}{\sum_{\boldsymbol{o}^{\prime} \in \mathcal{O}} \exp \left\{\alpha_{i, j}^{o^{\prime}}\right\}} \cdot \log \frac{\exp \left\{\alpha_{i, j}^{o}\right\}}{\sum_{o^{\prime} \in \mathcal{O}} \exp \left\{\alpha_{i, j}^{o^{\prime}}\right\}}
\mathcal{L}^{\mathrm{O}}(\boldsymbol{\alpha})=\sum_{j} \sum_{i < j} \mathcal{L}_{i, j}^{\mathrm{O}}(\boldsymbol{\alpha})

边参数

\beta

的离散化损失

\mathcal{L}_{j}^{\mathrm{E}}(\boldsymbol{\beta})=-\sum_{i < j} \frac{\exp \left\{\beta_{i, j}\right\}}{\sum_{i^{\prime} < j} \exp \left\{\beta_{i^{\prime}, j}\right\}} \cdot \log \frac{\exp \left\{\beta_{i, j}\right\}}{\sum_{i^{\prime} < j} \exp \left\{\beta_{i^{\prime}, j}\right\}}+\left|\sum_{B} \beta_{i, j}-2\right|^{2}
\mathcal{L}^{\mathrm{E}}(\boldsymbol{\beta})=\sum_{j} \mathcal{L}_{j}^{\mathrm{E}}(\boldsymbol{\beta})

\left|\sum_{B} \beta_{i, j}-2\right|^{2}

,该项的主要目的是为了维持保留边的均匀性,因为,每个节点保留两条边,因此设置为2。以5条边为例,与前面信息熵对应,最佳的

\beta

取值为两个保留边的取值均为1,其他边的取值为0。

基于信息熵的离散化损失

\mathcal{L}(\boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})=\mathcal{L}^{\mathrm{C}}(\boldsymbol{\alpha}, \boldsymbol{\theta})+\mathcal{L}^{\mathrm{O}}(\boldsymbol{\alpha})+\mathcal{L}^{\mathrm{E}}(\boldsymbol{\beta})
\mathcal{L}(\boldsymbol{\theta}, \boldsymbol{\alpha}, \boldsymbol{\beta})=\mathcal{L}^{\mathrm{C}}(\boldsymbol{\alpha}, \boldsymbol{\theta})+\lambda_{c}\left(\lambda_{\boldsymbol{\alpha}} \mathcal{L}^{\mathrm{O}}(\boldsymbol{\alpha})+\lambda_{\boldsymbol{\beta}} \mathcal{L}^{\mathrm{E}}(\boldsymbol{\beta})\right)

最终完整的Loss分布,各个Loss受到超参的约束。在这里,文章对超参的渐进式设置做了不同的探索。渐进式超参对前期Weights的充分训练和后期架构参数的离散化分布起到了关键作用

\lambda_{c}

渐变分析

\lambda_{1}

\lambda_{2}

渐变分析

损失函数作用的可视化

基于信息熵的离散化损失方法

实验结果

CIFAR-10

CIFAR-10 实验结果

CIFAR-10 搜索的Cell单元

ImageNet

ImageNet 实验结果

消融实验

Error离散化对比

DARTS与DAAS的Error离散化对比

操作与边的可视化

CIFAR-10 with 14 edges in a normal cell

softmax evolution of

\beta

本文分享自微信公众号 - AI异构(gh_ed66a0ffe20a),作者:许柯

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 神经网络架构搜索——可微分搜索(Latency-DARTS)​

    可微分的神经架构搜索方法在自动机器学习中盛行,主要是由于其搜索成本低,设计搜索空间灵活。然而,这些方法在优化网络方面存在困难,因此搜索到的网络往往对硬件不友好。...

    AI异构
  • DARTS-:增加辅助跳连,走出搜索性能崩溃

    尽管可微分架构搜索(DARTS)发展迅速,但它长期存在性能不稳定的问题,这极大地限制了它的应用。现有的鲁棒性方法是从由此产生的恶化行为中获取线索,而不是找出其原...

    AI异构
  • APQ:联合搜索网络架构、剪枝和量化策略

    本文提出APQ,以便在资源受限的硬件上进行有效的深度学习推理。与以前分别搜索神经体系结构,修剪策略和量化策略的方法不同,本文以联合方式优化它们。为了应对它带来的...

    AI异构
  • 用Python中的tkinter模块作图(续)

    Zoctopus
  • 『ACM-算法-离散化』信息竞赛进阶指南--离散化

    当以权值为下标的时候,有时候值太大,存不下。 所以把要离散化的每一个数组里面的数映射到另一个值小一点的数组里面去。

    风骨散人Chiam
  • 小程序Canvas实践指南

    导语 总结在小程序canvas开发实践中遇到的一些问题和解决方法。 ? 1. 什么是 Canvas? 在 MDN 是这样定义 canvas 的: canvas...

    腾讯VTeam技术团队
  • Canvas

    三产
  • canvas离屏技术与放大镜实现

    利用canvas除了可以实现滤镜,还可以利用离屏技术实现放大镜功能。为了方便讲解,本文分为 2 个应用部分:

    心谭博客
  • canvas-入门

    定义 canvas是HTML5新增的一个重要元素,先看下它的定义: <canvas> is an HTML element which can be used ...

    前端黑板报
  • android自定义钟表android自定义钟表

    接下来就是设定这个自定义View的大小,在没有大小自适应的时候,view的高度我这位整个手机屏幕高度的三分之一,宽度为整个屏幕的宽度

    HelloJack

扫码关注云+社区

领取腾讯云代金券