【论文阅读笔记】BinaryConnect:Training Deep Neural Networks with binary weigts during propagations

全文概括

  本文将权重量化为 { − 1 , 1 } \{-1,1\} {1,1}, 能让硬件计算从乘法变成加法。提出在前向和反向使用二值权重代替浮点全精度权重,但反向传播用全精度。

  量化成二值权重的可行性,就像Dropout、Dropconnect一样,给权重添加噪声,可能不是一件坏事。


BinaryConnect方法

  两种量化方式:

  1. 确定式量化(sign函数) w b = { + 1 i f   w ≥ 0 − 1 o t h e r w i s e w_b=\begin{cases}+1 & if\ w \geq0 \\ -1 & otherwise\end{cases} wb={+11if w0otherwise
  2. 随机性量化(概率性) w b = { + 1 w i t h   p r o b a b i l i t y   p = σ ( w ) − 1 w i t h   p r o b a b i l i t y   1 − p w_b=\begin{cases}+1 & with\ probability\ p=\sigma(w) \\ -1 & with\ probability\ 1-p\end{cases} wb={+11with probability p=σ(w)with probability 1p  其中, σ \sigma σ是 “hard sigmoid”函数: σ ( x ) = c l i p ( x + 1 2 , 0 , 1 ) = m a x ( 0 , m i n ( 1 , x + 1 2 ) ) \sigma(x)=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))  引入 hard sigmoid 而不是 soft sigmoid,是因为这样计算成本低,也能对应ReLU的有界形式。

在这里插入图片描述

  从上图展示的算法流程可以看出:forward 和 backward 时用的是量化权重,而更新权重时用的是全精度权重,这是因为梯度是微小且需要累积的。同时,在更新权重时,应用了 clip函数,这是防止损失过大,而导致的剧烈变化,从而来回振荡。

  在训练时,使用随机离散可以抵消彼此带来的量化(离散)误差;而在预测时,使用确定性量化,从而保持结果一致性。

  一些训练的 tricks : 使用BN,一来能加速收敛,二来能减少权重缩放带来的总体影响;使用 ADAM 的优化方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值