Bi-Real Net: Enhancing the Performance of 1-bit CNNs With Improved Representational Capability an...

paper:https://arxiv.org/abs/1808.00278v5
code:https://github.com/liuzechun/Bi-Real-net
conference:ECCV

本片文章由香港科技大学,腾讯 AI lab,以及华中科技大学合作完成,目的是提升二值化卷积神经网络(1-bit CNN)的精度。虽然1-bit网络可以大幅提升推理速度,但是当前的二值化网络的额精度损失太大。本文在BinaryNet、XNOR-Net的基础上,利用ResNet的残差思想,将上一层输出的实数值(real)与本层输出的实数值拼接,以增加二值化后所含的信息。本文的主要贡献如下:

1. 残差结构

利用残差结构增加信息的传递


image.png

2. 使用多项式符号函数梯度逼近原始符号函数梯度

image.png

image.png

BinaryNet和 XNOR-Net直接使用下图(b)所示函数梯度替代原始符号函数梯度,即反向传播中符号函数梯度为1。本文用(c)所示多项式逼近。


image.png

3. 使用体现幅值的梯度

原文的说法如下,感觉不太严谨。

image.png

因为损失关于二值化后的梯度确实只和二值化前的浮点权值的符号有关,而不是文章说的损失关于二值化前的梯度,之和二值化前的浮点权值的符号有关。
image.png



,不明白作者这么写出来竟然也行。也可能 是我理解错了。

4. 使用clip(-1,1)激活函数预训练全精度模型

因为ReLU激活函数的输出是非负的,但是二值化中通过符号函数后的输出的-1和+1,因此使用ReLU的预训练浮点模型来训练二值化网络,初始点可能不太匹配,所以作者在浮点预训练模型中使用clip函数,这和激活函数的输出接近。

5. 实验

作者通过实验证明了上述几个方法的有效性。


image.png

image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容