近年来,深度卷积神经网络已经深入了计算机视觉的各个任务中,并在图像识别、目标跟踪、语义分割等领域中取得了重大突破。在一些场景下,当前深度卷积网络性能已经足以部署到实际应用中,这也鼓舞着人们将深度学习落地到更多的应用中。
然而,深度卷积网络在实际部署时面临着参数量和时间复杂度等两方面的问题,一方面是深度网络巨大的参数量会占用大量的硬盘存储和运行内存,这些硬件资源在一些移动和嵌入式设备中往往是很有限的;另外一方面就是深度网络的计算复杂度较高,这会使得网络推理速度很慢,同时会增加移动设备的电量消耗。
为了解决此类问题,人们提出了很多网络加速和压缩方法,其中网络参数二值化是一种将网络参数表示为二值参数的方法。由于二值网络中参数只有+1 和-1 两种值,乘法运算就可以被加法运算替代。由于乘法运算比加法运算需要更多的硬件资源和计算周期,使用加法运算替代乘法运算能够实现网络加速的目的。另一方面,原始网络参数的存储格式是 32 位浮点数,二值参数网络只使用 1 位来表示+1 或者-1, 达到了 32 倍的压缩目的。但是将参数从 32 位量化到 1 位会导致较大的量化损失,当前的二值网络训练方法往往会导致较大的网络精度下降,如何学习二值的网络参数同时又不带来较大的精度下降是一个问题。
自动化所程健研究员团队的胡庆浩等人最近提出了一种基于哈希的二值网络训练方法,揭示了保持内积哈希(Innerproduct Preserving Hashing)和二值权重网络之间的紧密关系,表明了网络参数二值化本质上可以转化为哈希问题。
给定训练好的全精度浮点 32 位网络参数 W,二值权重网络(BWN)的目的是学习二值网络参数 B 并维持原始网络精度。学习二值参数 B 的最朴素的方式就是最小化 B 与二值参数 B 之间的量化误差,但是这种量化误差和网络精度之间存在着一定的差距,最小化量化误差并不会直接提高网络精度,因为每一层的量化误差会逐层积累,而且量化误差会受到输入数据的增幅。
一种更好的学习二值参数 B 的方式是最小化内积相似性之差。假设网络某一层输入为 X,X^TW是原始的内积相似性,则 X^TB 是量化之后的内积相似性,最小化 X^TW 与 X^TB 之间的误差可以学习到更好的二值参数 B。从哈希的角度来讲,X^TW 代表着数据在原始空间中的相似性或者近邻关系,X^TB 则代表着数据投影到汉明空间之后的内积相似性。而哈希的作用就是将数据投影到汉明空间,且在汉明空间中保持数据在原始空间中的近邻关系。至此,学习二值参数 B 的问题就转化成了一个在内积相似性下的哈希问题,该哈希主要是将数据投影到汉明空间并保持其在原始空间中的内积相似性。
团队首先在 VGG9 小网络上对方法进行验证,并且在 AlexNet 和 ResNet-18 上超过当前的二值权重网络。特别的,在 ResNet-18 上,该方法比当前最好方法的精度提高了 3 个百分点。获得了较好的实验结果。
参考资料:
[1] Qinghao Hu, Peisong Wang, Jian Cheng. From Hashing to CNNs: Training Binary Weight Networks via Hashing. AAAI 2018 (本文论文)
[2]Dasgupta S, Stevens C F, Navlakha S. A neural algorithm for a fundamental computing problem. Science, 2017, 358(6364): 793-796.