0
优势:内存节省32倍,卷积操作加快58倍。 与全精度版本相比,AlexNet的Binary-Weight版本的性能损失(前1个)仅2.9%。 输入和权重二值化XNOR-Net将差距缩小到12.5%.
当权重进行二进制卷积运算时,只能通过求和和减法来近似。 Binary-Wight网络可以在移动设备中提高到2倍的运行速度。
为了进一步实现这个想法,XNER-Net同时使用二进制权重和输入,并且当权重和输入都为二进制时,与XNOR和位计数操作进行卷积。 这样既可以进行CPU时间推断,也可以训练最新的模型。
下面是关于将模型压缩为较小尺寸的总结:
浅层网络——使用信息提取等不同方法,用较浅的架构估算深层模型。
压缩网络——压缩大型网络。
- 权重衰减
- 最佳Brain Damage
- 最佳Brain Surgeon
- 深度压缩
- HashNets
设计 compact layers——从一开始就使网络最小化
- 将3×3层分解为2个1×1层
- 用1×1层替换3×3层,从而减少50%的参数。
参数的量化—深度网络中,对于好的结果而言,高精度并不是那么重要[29]
- 8位值而不是32位浮点加权值
- 三进制权重和3位激活
- 具有L2损耗的量化层
网络二值化——
- 期望反向传播
- 二进制连接
- BinaryNet
- 保留预训练的模型
Binary-Weight-Net(二进制权重网络)
Binary-Weight-Net定义为实值层的近似值,例如
其中,ɑ 是比例因子,且取值[+1,-1].
由于值是二进制的,我们只需加减法就可以执行卷积运算。
原论文给出了详细说明:
且
Binary-Weights-Net的训练包括3个主要步骤; 前向,后向,参数更新。 在前向和后向阶段,权重都被二值化,但是对于参数更新而言,使用实际值权重来保持小的更改已经足够有效。
XNOR网络
这部分,通过使用二进制运算XNOR和位计数,对输入值进行了二值化处理,降低了卷积运算成本。输入值基本上二进制化为用于权重值的形式。 符号运算用于值的二进制映射,并且按输入值的L1范数估计比例值。
其中,γ是比例向量,C是卷积后特征映射的二进制映射。
收藏