文献阅读 - Binarized Neural Networks

本文深入探讨了二值化神经网络(BNNs),在推理阶段权值和激活仅限于+1或-1。研究发现,随机二值化比确定性二值化效果更优,尽管需要硬件支持。BNNs通过位操作减少内存占用和功耗,且在GPU运行时运算速度提升。实验表明,BNNs在多个基准任务上表现良好,包括多层感知器和卷积网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1


M. Courbariaux M, et al., Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1, (2016).


摘要

二值化神经网络(Binarized Neural Networks,BNNs):推理(run-time)阶段,权值(weights)和激活(activations)均为二进制数值;训练阶段:使用二进制权值和激活计算参数梯度

训练BNNs的方法

网络前馈过程(forward pass)中,BNNs减小内存占用及访问(access),且多数运算为位操作(bit-wise operations),能够有效降低功耗(power-efficiency)

引言

二值化神经网络(Binarized Neural Networks,BNNs):推理(run-time)阶段,权值(weights)和激活(activations)均为二进制数值;训练阶段:使用二进制权值和激活计算参数梯度

1 二值化神经网络

1.1 确定、随机二值化(Deterministic vs Stochastic Binarization)

训练BNN时,将权值和激活限定为 ± 1 \pm 1 ±1

二值化函数(binarization functions):

(1)确定(deterministic)二值化函数:

(1) x b = S i g n ( x ) = { + 1 if  x ≥ 0 − 1 otherwise x^b = \mathrm{Sign}(x) = \begin{cases} +1 & \text{if} \ x \geq 0 \\ -1 & \text{otherwise} \end{cases} \tag{1} xb=Sign(x)={ +11if x0otherwise(1)

(2)随机(stochastic)二值化函数:

(2) x b = { + 1 with probability  p = σ ( x ) − 1 with probability  1 − p x^b = \begin{cases} +1 & \text{with probability} \ p = \sigma(x) \\ -1 & \text{with probability} \ 1 - p \end{cases} \tag{2} xb={ +11with probability p=σ(x)with probability 1p(2)

其中, σ \sigma σ为“硬逻辑”(hard sigmoid)函数:

σ ( x ) = c l i p ( x + 1 2 , 0 , 1 ) = max ⁡ ( 0 , min ⁡ ( 1 , x + 1 2 ) ) \sigma(x) = \mathrm{clip}(\frac{x + 1}{2}, 0, 1) = \max(0, \min(1, \frac{x + 1}{2})) σ(x)=clip(2x+1,0,1)=max(0,min(1,2x+1))

随机二值化函数性能优于确定二值化函数,但需要硬件生成随机序列,因此难以应用。

1.2 梯度计算与累加(Gradient Computation and Accumulation)

权值的梯度是实数值(real-valued),通过实值变量累加计算。

随机梯度下降(Stochasic Gradient Descent,SGD)采用有噪的小步长探索参数空间,各权值的随机梯度贡献累加平滑能够消除噪声。

计算参数的梯度时,向权重和激活项中添加噪声相当于了一种正则化,有助于提高模型的泛化能力。

本文训练BNNs的方法可以视为Dropout的变体,Dropout是随机将激活置零,本文是对权值和激活二值化。

1.3 离散化梯度传播(Propagating Gradients Through Discretization)

符号函数量化(sign function quantization)

q = S i g n ( r ) q = \mathrm{Sign}(r) q=Sign(r)

假设梯度 ∂ C ∂ q \frac{\partial C}{\partial q} qC的估计量 g q g_q gq已知,则梯度 ∂ C ∂ r \frac{\partial C}{\partial r} rC的估计量(straight-through estimator)为

(4) g r = g q 1 ∣ r ∣ ≤ 1 g_r = g_q 1_{|r| \leq 1} \tag{4} gr=gq1r1(4)

上式保留了梯度信息,但当 r r r过大时,丢弃(cancel)梯度。

  • 算法1:训练BNN

C C C:迷你批次(minibatch)的损失函数
λ \lambda λ:学习速率衰减系数
L L L:网络层数
∘ \circ :元素乘法(element-wise multiplication)。

Binarize():指定权值和激活的二值化方法(确定、随机);
Clip():指定如何截断权值;
BatchNorm():指定如何对激活批量标准化;
BackBatchNorm():标准化层处,指定梯度如何反向传播;
Update():梯度已知时,如何更新参数(ADAM、AdaMax)。

在这里插入图片描述

导数 1 ∣ r ∣ ≤ 1 1_{|r| \leq 1} 1r1可视为通过“硬正切”(hard tanh)传播梯度,表示为分段线性激活函数(piece-wise linear activation function):

(5) H t a n h ( x ) = C l i p ( x , − 1 , 1 ) = max ⁡ ( − 1 , min ⁡ ( 1 , x ) ) \mathrm{Htanh}(x) = \mathrm{Clip}(x, -1, 1) = \max(-1, \min(1, x)) \tag{5} Htanh(x)=Clip(x,1,1)=max(1,min(1,x))(5)

隐层单元通过 非线性符号函数(sign function non-linearity)得到二值激活(binary activations),其权值计算分为两步:

(1)将实数权值限定在 − 1 -1 1 + 1 +1 +1之间:当权值更新使 w r w^r wr

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值