美高梅官方网站3045-mgm6608美高梅app下载
CNN推理优化体系之三:Channel pruning

CNN推理优化体系之三:Channel pruning

作者:mgm6608美高梅app下载    来源:未知    发布时间:2020-01-26 20:34    浏览量:

曾在‘CNN推理优化系列之一: Filter pruning’中讲过filter pruning在CNN inference时的优化。此篇同样也是致力于减少layer计算的channels数量,但其思路又与上篇文章不同。

Approach

Given a trained CNN model, we propose an iterative two-step algorithm to effectively prune each layer, by a LASSO regression based channel selection and least square reconstruction. We alternatively take two steps. Further, we approximate the network layer-by-layer, with accumulated error accounted.

Formally, to prune a feature map with c channels, we consider applying n×c×k_h×k_w convolutional filters W on N×c×k_h×k_w input volumes X sampled from this feature map, which produces N×n output matrix Y. Here, N is the number of samples, n is the number of output channels.

To prune the input channels from c to desired c0 , while minimizing reconstruction error, we formulate our problem as follow:

图片 1

Now we solve this problem in two folds. First, we fix W, solve for channel selection. Second, we fix Β, solve W to reconstruct error.

图片 2

图片 3

We alternatively optimize (i) and (ii). In the beginning, W is initialized from the trained model, λ= 0, namely no penalty, and ||B|| = c. We gradually increase λ. For each change of λ, we iterate these two steps until ||B|| is stable.

单独考虑一个conv层的计算,即可以想着将它weight tensor里面的某些权重较轻的(L1-norm值较小)filters去掉以节省计算,也可以考虑减少输入feature maps中的若干channels信息,然后通过调整weights使整体output feature map的信息不会丢失太多。本篇即是后一种思路。

Experiment

图片 4

References:
Channel Pruning for Accelerating Very Deep Neural Networks, Yihui He, 2017, ICCV

图片 5Channel_pruning方法

假设我们想试着减少某一单独conv层的计算。已知它的如下信息:

  • Input feature map X的shape: N x c x IH X IW,其中N 为batch size,c为输入feature map数目,IH与IW分别为输入feature map的长与宽;
  • convolutional filters W的shape: n x c x Kh x Kw,其中n与c分别为此conv层输入、输出feature map channels数目,Kh与Kw则为conv kernel的长与宽;
  • Output feature map Y的shape: N X n x OH X OW,其中N为batch size,n为输入feature map数目,OH与OW分别为输出feature map的长与宽。

本文中,我们要解决的问题是如何在减少X某些channel信息的同时,保证Y的整体信息仍然不会损失太多。以下公式可表示此一优化问题。

图片 6整体优化问题

在此一l0优化问题中,我们共有两个矢量参数需要求解,其一为β,它决定了我们从c个输入channels中选择啥些input channels,进而舍弃哪些。若βi = 0,则第i个channel将被舍弃,反之若β=1,则第i个input channel feature map信息将被保留。另外一个需要考虑的参数则是W(Conv weights),显然那些被舍掉的weight信息,我们不需要再保留了,但不仅于此,我们还要考虑调整W的值使得选择后的减少的input feature map组合经过conv filter处理后依然得到与之前输出Y近似的信息即Y'。

上述讨论过的l0优化问题本质上是个NP-hard问题。我们给其多些约束,进而将它变为如下所示的l1 norm优化问题。

图片 7Channel_pruning优化问题的放松变形

首先增加了参数β的normalization factor,从而让它向着我们关心的方向寻找合适的参数集合(即让β有尽量多的0,从而pruning掉一定的input channels信息)。另外则增加了W的范数为1的强约束以让我们得到的W解不过于简单。

进而我们再将它变为两个分步骤的子优化问题,分别由以下两小节内容来概述。

首先,我们可固定W不变,寻求参数β的组合,即决定输入feature map的哪些input channels可以舍弃。这显然是个NP-hard的组合优化问题,作者使用了经典的启发式LASSO方式来迭代寻找最优的β值,如下公式所示。

图片 8子优化问题其一

然后我们再固定上面得到的β不变,再求解最优的W参数值,本质上就是求解如下的MSE问题。

图片 9子优化问题之二

上面三小节中讲了使用channel pruning方法的理论方法。在实际操作时有如下两种可循的途径。

其一:交替着优化问题一与二,即最开始的时候用trained model weights来初始化W值,并设λ为0,即不设任何normalization penality factor,而||β||则为c,即保留所有的input channels信息;然后随着迭代进行,逐渐增加λ的值;而每改变一次λ值,我们将会一直交替优化求解β与W,直至最终||β||稳定下来。等到最终||β||的值满足小于或等于c'的要求时,就停下来,然后就得到最终的W值为{βiWi}。

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有