Low-rank Compression of Neural Nets:Learning the Rank of Each Layer 阅读笔记
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=σ(Wkzk−1), 其中
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)表示**函数,
z
k
z_k
zk是
k
k
k层的输入(
x
=
z
0
和
y
=
z
K
x=z_0和y=z_K
x=z0和y=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=ak−1。因此,本文章提出的目标函数是优化损失函数和代价函数
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)
Rk≤min(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,⋯,αK≥0的常数,从优化的角度看,
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)=rk≤Rk,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=1∑K∣∣Wk−Θk∣∣2
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)=rk≤Rk,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μ∑K∣∣Wk−Θk∣∣2。优化
Θ
\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−Θk∣∣2
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)=rk≤Rk
假设
a
k
≥
b
k
a_k \ge b_k
ak≥bk 和
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),s1≥⋯≥sbk≥0。则目标函数等价于:
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+1∑Rkski2,s.t.rk∈{0,1,…,Rk}
具体的算法流程图如下:
3. 文章总结
本文章的主要出发点是从分类损失函数和权重的代价函数两个角度出发构建目标函数,同时使用秩对权重的代价函数进行限制。