【Paper Readind】:Ternary weight networks

Ternary weight networks

2016 NIPS
中科院 Fengfu Li and Bo Zhang

摘要

本文引入了权值为+1、0和-1的三元神经网络(TWNs)。最小化全精度(float或者double)的权重与三元权重之间的欧几里得距离。此外,对基于阈值的三值化函数进行了优化,能够更快速、且更易于计算地得到近似解。TWNs比最近提出的二值网络具有更强的表达能力,并且比后者更有效。同时,TWNs可以达到16倍或32倍的模型压缩率,并且需要更少的乘法。对MNIST、CIFAR-10和大型ImageNet数据集的基准测试表明,TWNs的性能仅略低于完全精确的对等体,但比类似的二进制精确对等体要好得多。

三值神经网络(TWNs)

我们通过引入三元权重网络(TWNs)来解决有限的内存和有限的计算资源问题。它将权重限制为三值:+1,0和-1。 TWNs试图在全精度权重网络和二元权值网络之间取得平衡。详细的叙述如下:

  • 表达能力:在VGG,GoogLeNet 和残差网络等最新的网络体系结构中,最常用的卷积滤波器大小为3×3。使用二值权重,有23×3=512个模板。 然而,具有相同尺寸的三值权重拥有33×3=19683个模板,其表达能力比二值权重增强了38倍。
  • 模型压缩:在TWNs中,每一个权值需要2字节的存储空间。因此,与浮点(32位)或双精度浮点(64位)精度相比,TWN实现了高达16倍或32倍的模型压缩率。以VGG-19为例,该模型的全浮点权重版本需要约500M的存储需求,三元权值可降至约32M。因此,虽然三元权值网络的压缩率比二元权值网络的压缩率低2倍,但仍然可以压缩大多数现有的最先进的DNN模型。
  • 计算要求:与二元权值网络相比,TWNs拥有额外的0值。 但是,0值不增加任何的乘法运算。 因此,TWN中的乘法累加操作次数与二元权值网络相比保持不变。 而且,它对于专用DL硬件来训练大规模网络也更具有友好性。

问题公式化

为了提高三元权值网络的性能,我们试图通过一个非负的比例因子α来最小化全精度权值W和三元权值Wt之间的欧氏距离。公式如下:
在这里插入图片描述
n是滤波器的大小,W≈αWt,三元权值网络的前向传播如下:
在这里插入图片描述
其中,X是输入的矩阵块;*是卷积运算或内积运算;g是非线性激活函数;⨁是内积或卷积运算,无任何乘法;Xnext是输出的矩阵块,也是下一层的输入
在这里插入图片描述
α乘到前面以后,我们把复杂的乘法运算变成了简单的加法运算,从而加快了整个的训练速度。所以,在模型的前向计算中,我们要计算出α和量化后的权重Wt

基于阈值的三值化函数的近似解决方案

为了求解公式(1),常规的方法是,将J(α,Wt)展开,再求导,但这样求出的α*和Wt*是相互依赖的,没有一个很好的解决方案,为了克服这个问题,我们尝试找到一个近似最优解以阈值为基础的三值化函数。
将Wt安照以下方法来求:
在这里插入图片描述
Δ是一个正的阈值参数,原始的问题展开为:
在这里插入图片描述
在这里插入图片描述
对于给定的Δ,最优的α为:
在这里插入图片描述
将公式(5)带入(4)中,得到Δ的最优解,
在这里插入图片描述
化成这样公式也没法直接求解,提出一个近似的解决方案是,假设W是均匀分布或正态分布,假设W的值都分布在[-a,a],让量化后的权大概+1、-1、0均分,是比较合理,所以可以取Δ*=1/3 a,也就是2/3 E(|W|),为了计算方便,便取:
在这里插入图片描述
也就可以计算出最优的α。

模型训练

训练过程采用随机梯度下降算法,和BNN一样,三进制权值在前向和后向传播期间使用,但在参数更新期间不使用,参数更新采用原精度的权值。在训练中,也使用了Batch Normalization和学习率衰减。
在这里插入图片描述

实验

在这里插入图片描述
具体实验结果可以看论文,效果反正比BNN要好,比全精度要差。

结论

本文提出的三值的量化方案,我猜想他是借鉴了NOR-Net的加一个尺度因子的思想,不像BNN直接采用符号函数进行直接的量化。可以稍微减小量化中的损失,又由于是三值,所以会比NOR-Net的效果要好,但没有对激活进行量化。但还是和BNN和NOR-Net一样,文章提出的实现移动端实现,但并没有给出在移动端具体实现的效果。个人觉得二值化或者三值化的量化方案还是很有前景,能够大大减小模型的大小,减少乘法的计算,实现加速。虽然精度很有损失,但还说的过去,不是完全不能用,对于工程项目来说,实际的工程中,一般不会有ImageNet等这么多的类别来让我们分类,实际项目来说,大部分的需求可能是针对特定目标进行识别,像舰船的识别、安防中人体的识别,在这些项目中二值化网络还是有很大的应用。近几年,二值网络也是有了很多的进展,具体的还没了解,据说一些网络精度已经超过了一些的全精度的网络。

网络上一个实现BNN在移动端的例子:https://v.youku.com/v_show/id_XNDIzMzM4MTQ4NA==.html?spm=a2hbt.13141534.0.13141534

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值