4.3,二值连接算法改进之前的二值连接算法只对权重进行了二值化,但是网络的中间输出值依然是单精度的,于是 Rastegari 等人对此进行了改进,提出用单精度对角阵与二值矩阵之积来近似表示原矩阵的算法,以提升二值网络的分类性能,弥补二值网络在精度上弱势 。该算法将原卷积运算分解为如下过程:
\[I \times W\approx (I \times B)\alpha\]其中 \(I\in \mathbb{R}^{c\times w_{in}\times h_{in}}\) 为该层的输入张量,\(I\in \mathbb{R}^{c\times w\times h}\) 为该层的一个滤波器,\(B=sign(W)\in \{+1, -1\}^{c \times w\times h}\)为该滤波器所对应的二值权重 。
这里,Rastegari 等人认为单靠二值运算,很难达到原单精度卷积元素的结果,于是他们使用了一个单精度放缩因子 \(\alpha \in \mathbb{R}^{+}\) 来对二值滤波器卷积后的结果进行放缩 。而 \(\alpha\) 的取值,则可根据优化目标:
\[min \left \| W -\alpha B \right \|^{2}\]得到 \(\alpha = \frac{1}{n}\left |W \right |\ell{1}\) 。二值连接改进的算法训练过程与之前的算法大致相同,不同的地方在于梯度的计算过程还考虑了 \(\alpha\) 的影响 。由于 \(\alpha\) 这个单精度的缩放因子的存在,有效降低了重构误差,并首次在 ImageNet 数据集上取得了与 Alex-Net 相当的精度 。如下图所示:

文章插图
可以看到的是
权重二值化神经网络(BWN)
和全精度神经网络的精确度几乎一样,但是与异或神经网络(XNOR-Net)相比而言,Top-1 和 Top-5 都有 10+% 的损失 。相比于权重二值化神经网络,异或神经网络将网络的输入也转化为二进制值,所以,异或神经网络中的乘法加法 (Multiplication and ACcumulation) 运算用按位异或 (bitwise xnor) 和数 1 的个数 (popcount) 来代替 。更多内容,可以看这两篇文章:
- https://github.com/Ewenwan/MVision/tree/master/CNN/Deep_Compression/quantization/BNN
- 二值神经网络(Binary Neural Network,BNN)
- 不要使用 kernel = (1, 1) 的
Convolution
(包括 resnet 的 bottleneck):二值网络中的 weight 都为 1bit,如果再是 1x1 大小,会极大地降低表达能力 - 增大
Channel
数目 + 增大 activation bit 数 要协同配合:如果一味增大 channel 数,最终 feature map 因为 bit 数过低,还是浪费了模型容量 。同理反过来也是 。 - 建议使用 4bit 及以下的
activation bit
,过高带来的精度收益变小,而会显著提高 inference 计算量
本文只简单介绍这个领域的开篇之作-Distilling the Knowledge in a Neural Network,这是蒸 "logits"方法,后面还出现了蒸 "features" 的论文 。想要更深入理解,中文博客可参考这篇文章-知识蒸馏是什么?一份入门随笔 。知识蒸馏(knowledge distillation),是迁移学习(transfer learning)的一种,简单来说就是训练一个大模型(teacher)和一个小模型(student),将庞大而复杂的大模型学习到的知识,通过一定技术手段迁移到精简的小模型上,从而使小模型能够获得与大模型相近的性能 。
在知识蒸馏的实验中,我们先训练好一个
teacher
网络,然后将 teacher
的网络的输出结果 \(q\) 作为 student
网络的目标,训练 student
网络,使得 student
网络的结果 \(p\) 接近 \(q\) ,因此,student
网络的损失函数为 \(L = CE(y,p)+\alpha CE(q,p)\) 。这里 CE
是交叉熵(Cross Entropy),\(y\) 是真实标签的 onehot
编码,\(q\) 是 teacher
网络的输出结果,\(p\) 是
经验总结扩展阅读
- 起猛了是什么意思网络用语
- 网络语自来水是什么意思?
- tensorflow-gpu版本安装及深度神经网络训练与cpu版本对比
- 土豪是什么意思?
- 咸鱼网络语是什么意思?
- 来时路一年桃花一孤独是什么歌
- none网络是什么意思
- m什么意思网络流行语
- 鱼越大鱼越小梗出自哪里
- 抽烟抽骆驼是什么梗