论文阅读——Peephole: Predicting Network Performance Before Training

摘要

(1)提出了一种统一的方式将各个层编码成向量,通过LSTM将它们组合在一起形成一个集成的描述。
(2)利用递归网络强大的表达能力,可靠地预测各种网络结构的性能

背景

在过去的几年中,计算机视觉领域见证了一系列的突破。这一显著进展的背后是卷积神经网络的进步。从AlexNet, VGG, GoogLeNet,到ResNet,我们在改进网络设计方面取得了长足的进步,这也带来了显著的性能改进。以ILSVRC为例,分类错误率在短短几年内从15.3%下降到3%以下,这主要归功于网络架构的演变。如今,使用更好的网络已经成为提高性能的常用策略。这种策略虽然简单,但在实际应用中已经多次被证明是非常有效的,例如识别,检测,分割。

本文解决的问题

  1. 如何将网络结构转化成数字表示:
    (1)提出了一种向量表示方法(unified layer code)来编码独立的层。该方法能够将不同的层统一表示,能够使用固定的维数表示向量;
    (2)使用LSTM网络来集成层表示,以统一的方式处理具有不同深度和拓扑结构的体系结构
  2. 如何获取训练集
    输入是网络结构而不是普通的数据集,因此需要将网络结构转化成普通的数据表示
  3. 文章的整体结构
    在这里插入图片描述

网络转化成数字表示

提出 Unified Layer Code方法,该方法包含Integer coding、Layer embedding和Integrated Prediction三个部分。

(1) Integer coding:将不同类别的Layer用四元组(Type,KW,KH,CH)表示。其中,Type表示层的类别,KW表示卷积核的宽度,KH表示卷积核的高度,CH表示信道的数量,为输入信道和输出信道的比值。

(2) Layer embedding:由于Integer coding表示成的结果是一个离散变量无法进行数值计算和模型识别,作者使用Lookup table对四元组(Type,KW,KH,CH)embedding转化成实向量。Lookup总共有三类layer types, kernel sizes(对KW和KH两个参数进行embedding)和channel ratios。综上,给定一个四元组(Type,KW,KH,CH),作者通过从相应的lookup table中检索来将其元素转换为实向量,然后连接由单个整数派生的embedding向量,形成该层的向量表示,如下图所示,
在这里插入图片描述
(3) Integrated Prediction
作者利用LSTM network 将layer-wise representations based on Unified Layer Code and Layer Embedding整合到隐藏层中。在最后一步,即分类器全连接层的最后一层,作者提取LSTM cell的隐藏状态来表示网络的整体结构,称之为structural feature。 Peephole framework最终将structural feature和epoch index(也经过Integer coding和 Layer embedding的处理)结合,并使用多层感知器(MLP)来做出最终的预测精度。特别是,最后一步的MLP组件由三个全连接层组成,其中包含Batch Normalization和ReLU激活函数,这个分量的输出是一个真实的值,作为网络估计的精度。

获取训练集

(1)Block-based Generation
首先设计单个块,然后按照一定的框架将它们堆叠成一个网络。如下图,
在这里插入图片描述
如上图所示,该框架包括具有不同分辨率的三个阶段。每个阶段是一堆Block,然后是一个max pooling layer 降低spatial resolution。最后一个块的特征经过一个average pooling layer,再经过一个linear layer进行分类。在一个阶段内复制Block时,当前一层的输出维与下一层的输入维不匹配时,会在中间插入 1 × 1 1 \times 1 1×1个卷积层进行维度自适应。

一个Block被定义为一个不超过10层的short sequence of layers。在生成Block中,作者使用Markov chain方法。具体来说,我们从一个卷积层开始,从{1,…,5}中随机选择 kernel size from和从{0.25,0.5,0.75,1.0,1.5,2.0,2.5,3.0}中选择the ratio of output/input channel numbers from,然后,在每一步中,我们根据现有的层类型之间的预先定义的转换概率,绘制下一层,这些转换概率是通过实际网络的经验估计的。例如,一个卷积层有很大的概率后面跟着一个batch normalization layer and a nonlinear activation,activation layer更可能是另一个convolution layer or a pooling layer的后续。概率选择如下表所示,在这里插入图片描述
有了一组Block,就可以按照skeleton将它们组装起来,从而构建一个完整的网络。

(2)学习目标

给定一组样本网络 { x i } 1 : N {\{ {x_i}\} _{1:N}} {xi}1:N,通过在给定的数据集上训练网络,可以得到每个网络 x i {x_i} xi的性能曲线 y i ( t ) y_i(t) yi(t),即验证准确度为epoch numbers的函数。因此,可得到数据集 D = { ( x i , y i ) } 1 : N D = {\{ ({x_i},{y_i})\} _{1:N}} D={(xi,yi)}1:N并且以监督学习的方式,学习predictor的参数。学习的目标函数为,

L ( D ; θ ) = 1 N ∑ i = 1 n l ( f ( x i , T ) , y i ( T ) ) L(D;\theta ) = \frac{1}{N}\sum\limits_{i = 1}^n {l(f({x_i},T),{y_i}(T))} L(D;θ)=N1i=1nl(f(xi,T),yi(T))

θ \theta θ表示predictor的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值