Low-rank Compression of Neural Nets:Learning the Rank of Each Layer 阅读笔记

论文地址: paper
代码地址: code

1. 论文概述

可以通过使用低秩矩阵近似逼近每层权重的方法实现神经网络的压缩,但难点在于每层的最佳秩都是一个超参搜索的问题。针对上述问题,本片文章基于秩和矩阵元素提出了一种混合离散-连续优化函数。

本文提出了一种近似解决这个问题的算法,首先针对该问题的描述建立在减小分类网络的误差和基于秩的模型选择损失,利用秩约束网络的每层卷积。然后这个问题可以通过秩和权重进行优化,交错使用SGD步骤来训练未压缩网络和确定当前最优秩和权重矩阵。

2. 问题描述

2.1 变量定义

K K K 表示网络的层数, k k k 表示网络层中第 k k k层, z k = σ ( W k z k − 1 ) z_k=\sigma(W_kz_{k-1}) zk=σ(Wkzk1), 其中 σ ( ⋅ ) \sigma(\cdot) σ()表示激活函数, z k z_k zk k k k层的输入( x = z 0 和 y = z K x=z_0和y=z_K x=z0y=zK表示网络的输入和输出), L ( W ) L(W) L(W)表示损失函数,其中 W = { W 1 , W 2 , ⋯   , W K } W=\left\{W_1, W_2, \cdots, W_K\right\} W={W1,W2,,WK}是权重矩阵, W k W_k Wk的尺寸是 a k × b k a_k \times b_k ak×bk, 其中 b k = a k − 1 b_k=a_{k-1} bk=ak1。因此,本文章提出的目标函数是优化损失函数和代价函数 C C C的和,其中限制条件是每层的秩小于最大的秩 R k R_k Rk, R k ≤ m i n ( a k , b k ) R_k \le min(a_k, b_k) Rkmin(ak,bk).
min ⁡ W L ( W ) + λ C ( W ) \min_{W}L(W)+\lambda C(W) WminL(W)+λC(W)
s . t . r a n k ( W k ) ≤ R k , k = 1 , 2 , … , K . s.t. rank(W_k) \le R_k, k=1,2,\dots, K. s.t.rank(Wk)Rk,k=1,2,,K.
其中上述约束条件等价于 W k = U k V k T W_k=U_kV_k^T Wk=UkVkT, U k U_k Uk的尺寸是 a k × b k a_k \times b_k ak×bk, V k V_k Vk的尺寸是 b k × r k b_k \times r_k bk×rk, r k ∈ { 0 , 1 , … , R k } r_k \in \left\{0,1,\dots,R_k\right\} rk{0,1,,Rk}, 但是 r k r_k rk是一个待优化的未知参数,因此上述目标函数可以转为联合优化 { W k , U k , V k , r k } k = 1 K \left\{W_k, U_k, V_k, r_k\right\}_{k=1}^{K} {Wk,Uk,Vk,rk}k=1K λ \lambda λ是分类损失函数的权重系数,代价函数 C ( W ) C(W) C(W)的定义如下:
C ( W ) = C ( r 1 , … , r K ) = C 1 ( r 1 ) + ⋯ + C K ( r K ) C(W)=C(r_1,\dots,r_K)=C_1(r_1)+\cdots+C_K(r_K) C(W)=C(r1,,rK)=C1(r1)++CK(rK)
特殊案例是 C ( W ) = α 1 r 1 + ⋯ + α K r K C(W)=\alpha_1r_1+\cdots+\alpha_Kr_K C(W)=α1r1++αKrK, 其中 α 1 , ⋯   , α K ≥ 0 \alpha_1, \cdots, \alpha_K \ge 0 α1,,αK0的常数,从优化的角度看, C C C仅取决于秩,从建模的角度看通过选择适当的系数 α k \alpha_k αk, C C C可以表示模型压缩中的代价函数。

2.2 优化策略

定义辅助变量 Θ = ( Θ 1 , … , Θ K ) \Theta=(\Theta_1, \dots, \Theta_K) Θ=(Θ1,,ΘK) 和限制条件 Θ = W \Theta=W Θ=W, 上述目标函数可以改写为:
min ⁡ W , Θ , r L ( W ) + λ C ( r ) \min_{W, \Theta, r}L(W)+\lambda C(r) W,Θ,rminL(W)+λC(r)
s . t . W k = Θ k , r a n k ( Θ k ) = r k ≤ R k , k = 1 , … , K , r = ( r 1 , … , r k ) s.t. W_k=\Theta_k, rank(\Theta_k)=r_k \le R_k, k=1,\dots,K, r=(r_1,\dots,r_k) s.t.Wk=Θk,rank(Θk)=rkRk,k=1,,K,r=(r1,,rk)

使用学习压缩策略(learning-compression, LC)对上述目标函数进行优化, 应用 quadratic-penalty 方法之后优化目标变为:
Q ( W , Θ , r ; μ ) = L ( W ) + λ C ( r ) + μ 2 ∑ k = 1 K ∣ ∣ W k − Θ k ∣ ∣ 2 Q(W, \Theta, r; \mu)=L(W)+\lambda C(r)+\frac{\mu}{2}\sum_{k=1}^{K}||W_k-\Theta_k||^2 Q(W,Θ,r;μ)=L(W)+λC(r)+2μk=1KWkΘk2
s . t . r a n k ( Θ k ) = r k ≤ R k , k = 1 , … , K s.t. rank(\Theta_k)=r_k \le R_k, k=1,\dots,K s.t.rank(Θk)=rkRk,k=1,,K

上述目标中的待优化的参数 W W W ( Θ , r ) (\Theta, r) (Θ,r)。优化 W W W的过程称为 L L L阶段,其目标函数是 min ⁡ W L ( W ) + μ 2 ∑ K ∣ ∣ W k − Θ k ∣ ∣ 2 \min_{W}L(W)+\frac{\mu}{2}\sum_{K}||W_k-\Theta_k||^2 minWL(W)+2μKWkΘk2。优化 Θ \Theta Θ r r r的过程称为 C C C阶段,目标函数如下:
min ⁡ Θ k , r k λ C k ( r k ) + μ 2 ∣ ∣ W k − Θ k ∣ ∣ 2 \min_{\Theta_k, r_k} \lambda C_k(r_k)+\frac{\mu}{2}||W_k-\Theta_k||^2 Θk,rkminλCk(rk)+2μWkΘk2
s . t . r a n k ( Θ k ) = r k ≤ R k s.t. rank(\Theta_k)=r_k \le R_k s.t.rank(Θk)=rkRk

假设 a k ≥ b k a_k \ge b_k akbk W k = U k S k V k T W_k = U_kS_kV_k^T Wk=UkSkVkT, 其中 U k U_k Uk的尺寸 a k × b k a_k \times b_k ak×bk V k V_k Vk的尺寸 b k × b k b_k \times b_k bk×bk, S k = d i a g ( s 1 , … , s b k ) , s 1 ≥ ⋯ ≥ s b k ≥ 0 S_k=diag(s_1,\dots,s_{b_k}), s_1 \ge \cdots \ge s_{b_{k}} \ge 0 Sk=diag(s1,,sbk),s1sbk0。则目标函数等价于:
min ⁡ r λ C k ( r ) + μ 2 ∑ i = r + 1 R k s k i 2 , s . t . r k ∈ { 0 , 1 , … , R k } \min_r \lambda C_k(r)+\frac{\mu}{2}\sum_{i=r+1}^{R_k}s^2_{ki}, s.t. r_k \in \left\{0,1,\dots,R_k\right\} rminλCk(r)+2μi=r+1Rkski2,s.t.rk{0,1,,Rk}

具体的算法流程图如下:
flow framework

3. 文章总结

本文章的主要出发点是从分类损失函数和权重的代价函数两个角度出发构建目标函数,同时使用秩对权重的代价函数进行限制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值