这篇文章提出了两个二进制类的网络模型,一个叫做Binary-Weighted-Networks,一个叫做XNOR-Net。其中BWN只有filter是二进制的表达,而XNOR-Net在input和filter上都是二进制的表达。其中指出二进制的表达XNOR-Nets在执行卷积运算时能够提升58×的速度,而可以节省32×的内存空间,这为XNOR-Nets在CPU上运行提供了可能性。
Binary-Weighted-Networks
在进行卷积运算的时候,可以将乘法改成加法和减法,这可以提高2×左右的运行效率。BWNs已经可以嵌入更小、便携式的硬件中去了。
XNOR-Nets
当input和filter的输入都是二进制的时候,可以使用XNOR(异或)运算来代替乘法的运算,这使得XNOR-Nets近似的CNNs比起高精度的CNNs有了58×的速度提升,这使得XNOR-Nets能够高效地在CPU上进行实现。
1 Binary Convolutional Neural Networks
一些数学符号的意义直接贴图了......
1.1 Binary-Weighted-Neural-Networks
为了用二进制的filter去最好地近似高精度的filter,采用了一个非常直观的近似方法,为每一个filter找一个scaling factor: