(笔记)细颗粒度的三值网络Ternary Neural Networks with Fine-Grained Quantization

  • 原文链接
  • 摘要
  • 方法
  • 实验效果

原文链接

https://arxiv.org/abs/1705.01462

摘要

提出一种三值化方法,激活函数是8/4bit的,不需要训练,对N个权重量化到三值 ,N=2,4,8,16等等。当N=4时,ResNet-101和ResNet-50的Top1准确率分别下降3.7%和4.2%。

方法

目的:不训练地,把32bit浮点权重 W W 量化为 {α,0,α} { − α , 0 , α }
基于阈值 Δ Δ ( Δ>0 Δ > 0 ), Wi^=sign(Wi),if|Wi|>Δ;0,otherwise W i ^ = s i g n ( W i ) , i f | W i | > Δ ; 0 , o t h e r w i s e ,定义误差函数 E(α,Δ)=||WαW^||2F E ( α , Δ ) = | | W − α W ^ | | F 2 。那么目标函数如下式:
这里写图片描述
3.1分析怎么分组最好。
3.2说3.1的分组太复杂了,不利于软硬件实现,所以还是相邻的分到一组。最终用的是沿输入通道进行分组。
举个例子,3*3的卷积,N=4,每4个3*3得到一个3*3的三值量化,就是每4个数共享一个三值量化。如下图。
(笔记)细颗粒度的三值网络Ternary Neural Networks with Fine-Grained Quantization_第1张图片

实验效果

N=4,激活函数分别是4bit和8bit,和其它量化方法的比较。包括ResNet-101,ResNet-50和AlexNet。
(笔记)细颗粒度的三值网络Ternary Neural Networks with Fine-Grained Quantization_第2张图片
N取各种值的对比(a)。以及N=64时,训练带来的提升(b)。
(笔记)细颗粒度的三值网络Ternary Neural Networks with Fine-Grained Quantization_第3张图片

你可能感兴趣的:(深度学习量化)