【Compressing Deep Convolutional Networks using Vector Quantization 】论文笔记

论文链接:https://arxiv.org/abs/1412.6115
这篇论文对通过对权重矩阵进行量化编码来实现网络压缩,不涉及到网络加速,所以重点针对全连接层进行操作,因为全连接层的参数占网络参数的90%以上。文章主要对不同的矢量量化方法进行了评估。

压缩方法

文章中给出了压缩密集连接层中参数的两类方法:矩阵分解,矢量量化

SVD矩阵分解

给定一个权重矩阵W,可以将其分解为:
这里写图片描述
其中U和V是两个正交矩阵,S是对角矩阵。为了用两个更小的矩阵来近似W,选择U和V中具有S中对应特征值的前k个奇异向量来重构W:
这里写图片描述
其中U^和V^是对应于U和V中的前k个奇异向量的两个子矩阵。S^中的对角元素对应于最大的k个奇异值。

二值量化

量化规则:
这里写图片描述

K-means聚类

对W矩阵进行K均值聚类,W中每一个元素都可以用距离其最近的聚类中心表示,最后只需要存储K个聚类中心以及对应包含的索引。

Product Quantization(PQ)

PQ的基本思想是将向量空间划分为许多不相交的子空间,并在每个子空间中执行量化。 其假设每个子空间中的矢量都是非常冗余的,通过在每个子空间中执行量化能够更好地探索冗余结构。 给定矩阵W,将它逐列分成几个子矩阵,然后对每个子矩阵分别进行K均值聚类。

残差量化

基本思想是首先将矢量量化为k个中心,然后递归地量化残差。首先使用kmeans聚类将W矩阵量化为k个不同的向量Wz,每个Wz由距其最近的中心Cj表示。计算Wz中所有数据点和对应聚类中心之间的残差,然后将残差矢量继续进行Kmeans量化,一直重复上述过程。
执行t次迭代后,Wz可以表示为多个聚类中心之和:
这里写图片描述

你可能感兴趣的:(网络量化,网络压缩,论文笔记)