ProxyLessNAS

ProxyLessNAS : Direct Neural Architecture Search On Target Task And Hardware

Related Work

Proxy Tasks:

1.在小数据集上训练

2.只学习一些小的Blocks

3.只训练一小部分的Epoch

基于Proxy Tasks的流程结构

Motivation

1.基于 Proxy Tasks的NAS方法并没有考虑到诸如Latency等性能的影响

2.现存的NAS结构是采用搜索Block的方法进行Stack组成最终的网络结构,但是实际情况中,每一个Block是可以不同的

3.DARTS是一种创造性的将Architecture 和Weight联合进行SGD优化的,但是在使用Proxy Tasks学习Block进行堆叠的同时又存在GPU Consumption的方法
m O D A R T S ( x ) = Σ i = 1 N p i o i ( x ) = Σ i = 1 N e x p ( α i ) Σ j e x p ( α j ) o i ( x ) m_O^{DARTS}(x)=\mathop {\Sigma}\limits_{i=1}\limits^{N}p_i o_i(x)=\mathop{\Sigma}\limits_{i=1}\limits^{N}\frac{exp(\alpha_i)}{\Sigma_jexp(\alpha_j)}o_i(x) mODARTS(x)=i=1ΣNpioi(x)=i=1ΣNΣjexp(αj)exp(αi)oi(x)

4.Drop Path是一种可以找到紧性的高效网络结构的方法
m O O n e − S h o t ( x ) = Σ i = 1 N o i ( x ) m_O^{One-Shot}(x)=\mathop{\Sigma}\limits_{i=1}\limits^{N}o_i(x) mOOneShot(x)=i=1ΣNoi(x)

Overview

本文提出了一种Path-Level的剪枝方法

**Step 1:**直接训练一种包含所有候选Path的超参Network

**Step 2:**在训练过程中,通过引入结构化参数来学习通路的冗余性

**Step 3:**在最终获得紧性的优化结构时将具有冗余性的Path进行剪枝

存在问题

  • 随着可选Operations的增加,可选Network的Size越大,会增加GPU Memory

    • Solution:借助"Binary Connect"的思路,将Architecture Parameters二值化,在一个Run-Time中只允许一个Path被激活
  • Hardware Objectives(e.g. Latency)不可微

    • 将Network Latency抽象成连续函数,利用正常的Loss进行优化
    • Reinforce-Based Algorithm

基于ProxyLess的流程结构

Contributions

1.直接在大型数据集上且不需要使用Proxy Task的技术进行训练和学习

2.允许在大型的候选集上进行搜索

3.打破了Block 堆叠的Network的构成方式

4.提出了对于NAS做剪枝的方案,展示了NAS与模型压缩之间的相近的关系,同时通过Path剪枝,本文的方法节约了大约一个量级的计算量

5.提出了一个基于Latency Regularization Loss的梯度下降方法以解决硬件目标问题

Method

Construction of Over-Parameterized Network

Question:为了能够进行搜索,必须要对整个超参的网络结构进行定义

解决方案:所有的Path都是混合通路,学习的是整个Network而不是Block

将Network用 N ( e = m O 1 , . . . , e = m O n ) ​ N(e=m^1_O,...,e=m^n_O)​ N(e=mO1,...,e=mOn)表示

  • e i e_i ei代表一个有向无环图的一条确定的边
  • O = { o i } O=\{o_i\} O={ oi}是一个含有 N N N个初始Operations(卷积、池化、Identity、Zero)的集合
  • m O m_O mO每条边上含有N条并行通路的一个混合操作

因此,对于一个输入 x x x,混合操作 m O m_O mO的输出结果是基于 N N N条通路所形成的

ProxyLess Net

Learning Binarized Path

**Question:**随着Path可选的空间逐渐扩大,Weight的运算量将不断增加

**解决方案:**二值化Path

ProxyLessNet在训练过程中,在众多的Path中,只激活一个Path,故此本文将所有的Path进行二值化处理
g = b i n a r i

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值