[剪枝]Channel Pruning for Accelerating Very Deep Neural Networks
[ICCV2017] Channel Pruning for Accelerating Very Deep Neural Networks
- arxiv
//arxiv.org/abs/1707.06168
- github
//github.com/yihui-he/channel-pruning
序言
最近在系统学习DL的相关理论知识,猛然看到无监督学习中关于“稀疏编码”
的内容回想yihui-he的这篇通道裁剪方法可能其灵感就来源于这里(注:可能就照搬)。
训练方法
先上paper中的公式:
arg min β , W 1 2 N ∥ Y − ∑ i = 1 c β i X i W i ⊤ ∥ F 2 + λ ∥ β ∥ 1 subject to ∥ β ∥ 0 ≤ c ′ , ∀ i ∥ W i ∥ F = 1 \begin{array}{l}{\underset{\boldsymbol{\beta}, \mathrm{W}}{\arg \min } \frac{1}{2 N}\left\|\mathrm{Y}-\sum_{i=1}^{c} \beta_{i} \mathrm{X}_{\mathrm{i}} \mathrm{W}_{\mathrm{i}}^{\top}\right\|_{F}^{2}+\lambda\|\boldsymbol{\beta}\|_{1}} \\ {\text { subject to }\|\beta\|_{0} \leq c^{\prime}, \forall i\left\|\mathrm{W}_{\mathrm{i}}\right\|_{F}=1}\end{array} β,Wargmin2N1∥∥Y−∑i=1cβiXiWi⊤∥∥F2+λ∥β∥1 subject to ∥β∥0≤c′,∀i∥Wi∥F=1
优化就是固定权值 W W W优化通道选择参数 β \beta β:
β ^ L A S S O ( λ ) = arg min β 1 2 N ∥ Y − ∑ i = 1 c β i Z i ∥ F 2 + λ ∥ β ∥ 1 subject to ∥ β ∥ 0 ≤ c ′ \begin{array}{l}{\hat{\boldsymbol{\beta}}^{L A S S O}(\lambda)=\underset{\boldsymbol{\beta}}{\arg \min } \frac{1}{2 N}\left\|Y-\sum_{i=1}^{c} \beta_{i} \mathrm{Z}_{\mathrm{i}}\right\|_{F}^{2}+\lambda\|\boldsymbol{\beta}\|_{1}} \\ {\text { subject to }\|\boldsymbol{\beta}\|_{0} \leq c^{\prime}}\end{array} β^LASSO(λ)=βargmin2N1∥Y−∑i=1cβiZi∥F2+λ∥β∥1 subject to ∥β∥0≤c′
然后再反过来固定 β \beta β优化选择出来的权值 W ′ W^{\prime} W′:
arg min W ′ ∥ Y − X ′ ( W ′ ) ⊤ ∥ F 2 \underset{\mathrm{W}^{\prime}}{\arg \min }\left\|\mathrm{Y}-\mathrm{X}^{\prime}\left(\mathrm{W}^{\prime}\right)^{\top}\right\|_{F}^{2} W′argmin∥∥∥Y−X′(W′)⊤∥∥∥F2
再看看稀疏编码的训练方法:
给定一组 N N N个输入向量 x ( 1 ) , ⋯ , x ( N ) \mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(N)} x(1),⋯,x(N),需要同时学习基向量 A A A以及每个输入样本对应的稀疏编码 z ( 1 ) , ⋯ , z ( N ) \mathbf{z}^{(1)}, \cdots, \mathbf{z}^{(N)} z(1),⋯,z(N)。
稀疏编码的训练过程一般用交替优化
的方法进行(交替优化就是这篇论文中的方法):
- 固定基向量 A A A,对每个输入 x ( n ) {x}^{(n)} x(n),计算其对应的最优编码
min x ( n ) ∥ x ( n ) − A z ( n ) ∥ 2 − η ρ ( z ( n ) ) , ∀ n ∈ [ 1 , N ] \min_{\mathbf{x}^{(n)}}\left\|\mathbf{x}^{(n)}-A \mathbf{z}^{(n)}\right\|^{2}-\eta \rho\left(\mathbf{z}^{(n)}\right), \forall n \in[1, N] x(n)min∥∥∥x(n)−Az(n)∥∥∥2−ηρ(z(n)),∀n∈[1,N] - 固定上一步得到的编码 z ( 1 ) , ⋯ , z ( N ) \mathbf{z}^{(1)}, \cdots, \mathbf{z}^{(N)} z(1),⋯,z(N),计算其最优的基向量
min A ∑ n = 1 N ( ∥ x ( n ) − A z ( n ) ∥ 2 ) + λ 1 2 ∥ A ∥ 2 \min _{A} \sum_{n=1}^{N}\left(\left\|\mathbf{x}^{(n)}-A \mathbf{z}^{(n)}\right\|^{2}\right)+\lambda \frac{1}{2}\|A\|^{2} Aminn=1∑N(∥∥∥x(n)−Az(n)∥∥∥2)+λ21∥A∥2
其中第二项为正则化项,λ 为正则化项系数。
是不是和上面优化参数非常的像,基向量 A A A对应权重 W W W,编码 z ( 1 ) , ⋯ , z ( N ) \mathbf{z}^{(1)}, \cdots, \mathbf{z}^{(N)} z(1),⋯,z(N)对应通道选择参数 β \beta β,正则化项就是一个稀疏性评价函数。
还没有评论,来说两句吧...