文章目录
- 题目:Computation-performance optimization of convolutional neural networks with redundant kernel removal
- 时间:2018
- 会议:ISCAS
- 研究机构:国立台湾大学
1 缩写 & 引用
- SR: super resolution
- CPO: computation-performance optimization
- LWP: layer-wise polishment
- GO: gradient optimization
2 abstract & introduction
本篇论文的主要贡献:
- 对超分辨率网络模型,去除冗余kernel
- 根据每一层的稀疏度调整并产生最优的reducing因子,优化PSNR
3 提出的方法
剪枝时每次根据指标如稀疏度,剪掉最不重要的几个kernel
3.1 稀疏度的定义
对于某一层l,有N个kernel,首先计算这N个kernel中所有权重的绝对值的平均数
M
l
M_l
Ml
如果某一个数的值绝对值小于
M
l
M_l
Ml,则
σ
(
x
)
=
1
\sigma(x)=1
σ(x)=1,可以计算得到某一个kernel中小于平均数的值个数
即如果一个kernel中的权重的绝对值普遍都比较小,则
S
l
(
n
)
S_l(n)
Sl(n)会比较大,接近1
3.2 layer-wise polishment(LWP)
首先每层的reducing factor是固定的,从0.1开始逐渐增加,逐渐增加减枝的数量,每一步都会finetune
每一层的最优的reducing factor可能不一样,他们把整个网络分成前、中、后三段,前段的reducing factor要大一点,中段和后段的reducing factor要小一点
3.3 梯度优化
首先随机选reducing factor,得到性能指标,多找点数据做训练集
把这个问题转化成可学习的回归模型,输入是各层的reducing factor,输出是网络的精度R,在超分辨率问题上是PSNR
每次训练会用梯度更新r的值,使得回归模型接近真实的精度R
用训练好的模型最后可以找到最优的r
4 实验结果
- 超分辨率网络:Very Deep Super Resolution(VDSR)
- 训练echo:80
4.1 layer-wise polishment
- finetune echo:3
- r f i x = 0.25 r_{fix}=0.25 rfix=0.25
4.2 梯度优化
- 损失函数:mean-square-error平均方差函数
- 优化算法:Adam优化
- 学习率:0.01
- 题目:Computation-Performance Optimization of Convolutional Neural Networks With Redundant Filter Removal
- 时间:2019
- 期刊:TCAS-1
- 研究机构:国立台湾大学
1 缩写 & 引用
- RDO: rate-distortion optimization
- PS: performance sensitivity
Computation-performance optimization of convolutional neural networks with redundant kernel removal 2018 ISCAS
ARM-Software. (2018). Systolic CNN Accelerator Simulator (SCALE Sim). [Online]. Available: https://github.com/ARM-software/SCALE-Sim
2 abstract & introduction & related work
这篇论文是受图像和视频编码的rate-distortion优化启发,去除了冗余的卷积核,应用于CNN相关的超分辨率和图像分类
本篇论文的主要贡献:
- 探索卷积层的冗余性和敏感性
- 提出了系统的方法剪枝CPO
- 将CPO应用于超分辨率和图像分类应用
相关工作
- Incremental Network Quantization
把一层的权重分成不同的组,每一组的权重量化成2的指数或0
Incremental network quantization: Towards lossless CNNs with low-precision weights 2017 arxiv - QCNN:量化后最小化每一层的估计误差
Quantized convolutional neural networks for mobile devices 2016 CVPR
4 提出的方法
输入是精度下降的限度,每次剪枝完都会经历性能评估
算法的终止条件有三个:
- 精度下降超过阈值
- 敏感度大于阈值
- 这一层的filter都没了
第1、3条好理解敏感度的定义,第2条敏感度的定义:
D是精度,
Δ
D
\Delta D
ΔD指精度下降,
r
i
r_i
ri是reducing factor,
Δ
r
i
\Delta r_i
Δri指reducing factor的变化量,敏感度PS很大指的是减枝减掉一点点,精度就下降很大
reducing factor即 r i r_i ri的变化有点像二分查找,0.5->0.75->0.875,如果不满足条件,则回溯一步0.5->0.75->0.625类似这样