Open egolearner opened 5 years ago
2016 ICLR https://arxiv.org/abs/1510.00149
深度学习部署到端上的两大挑战:模型大小(App大小)和耗电。移动端的耗电主要由访问内存决定。
为了减小模型,论文思路为先对网络剪枝,去掉冗余的连接,只保留最有信息的连接;然后对权重做量化,多个连接可以共享相同权重;最后用霍夫曼编码来利用有效权重的有偏分布。 剪枝和训练量化不会互相干扰,可以共同使用来达到惊人的高压缩率。
剪枝对于AlexNet和VGG-16分别减少了9到13倍。 论文的主要目标是减少模型大小,因此用compressed sparse row(CSR)或CSC来存储稀疏模型权重,需要2a+n+1个数,其中a为非零元素个数,n为列数或行数。为了进一步减少大小,存储相邻下标的差,而非绝对值。卷积层和全连接层分别用8位和5位来存储下标差。如果下标差超过位数,则补0。
将权重量化成n个桶,相同桶共享相同的权重值,对每个权重只需要存储到共享权重表中的小下标。模型训练时,所有的梯度按桶分组加在一起,乘以学习率,然后从上一迭代的矩心(centroid)中减去。
论文使用k均值聚类来确定每层网络的权重,不同层不会共享权重。将n个原始权重W = {w1, w2, ..., wn}分到k个聚类C = {c1, c2, ..., ck},要求
论文分析了3种初始化方式:
实验表明第3种方式效果最好,论文的解释是大权重比小权重作用更大,前两种初始化方式有很少的矩心有大的权重绝对值,而线性初始化从min到max平均分布,有利于保留大的权重。
使用霍夫曼对下标差编码,进一步节省20-30%的存储。
AlexNet
2016 ICLR https://arxiv.org/abs/1510.00149
1. 介绍
深度学习部署到端上的两大挑战:模型大小(App大小)和耗电。移动端的耗电主要由访问内存决定。
为了减小模型,论文思路为先对网络剪枝,去掉冗余的连接,只保留最有信息的连接;然后对权重做量化,多个连接可以共享相同权重;最后用霍夫曼编码来利用有效权重的有偏分布。 剪枝和训练量化不会互相干扰,可以共同使用来达到惊人的高压缩率。
2. 网络剪枝
剪枝对于AlexNet和VGG-16分别减少了9到13倍。 论文的主要目标是减少模型大小,因此用compressed sparse row(CSR)或CSC来存储稀疏模型权重,需要2a+n+1个数,其中a为非零元素个数,n为列数或行数。为了进一步减少大小,存储相邻下标的差,而非绝对值。卷积层和全连接层分别用8位和5位来存储下标差。如果下标差超过位数,则补0。
3. 训练量化和权重共享
将权重量化成n个桶,相同桶共享相同的权重值,对每个权重只需要存储到共享权重表中的小下标。模型训练时,所有的梯度按桶分组加在一起,乘以学习率,然后从上一迭代的矩心(centroid)中减去。
权重共享
论文使用k均值聚类来确定每层网络的权重,不同层不会共享权重。将n个原始权重W = {w1, w2, ..., wn}分到k个聚类C = {c1, c2, ..., ck},要求
8 在训练模型之前根据hash随机确定权重共享,不能反映模型和训练数据的特点,而本论文在训练模型后权重共享,共享权重近似于原始网络。
共享权重初始化
论文分析了3种初始化方式:
实验表明第3种方式效果最好,论文的解释是大权重比小权重作用更大,前两种初始化方式有很少的矩心有大的权重绝对值,而线性初始化从min到max平均分布,有利于保留大的权重。
4. 霍夫曼编码
使用霍夫曼对下标差编码,进一步节省20-30%的存储。
结果
AlexNet