发现自己看完paper,总是很快就会被大脑删档,特此进行专栏记录,希望能够持续更新---
Robust Quantization: One Model to Rule Them All paper code **
针对于目前的qat等方法所得到的模型对于不同的量化参数设置太敏感的问题,提出训练一个足够robust的模型,能够普适地用于不同场景下的不同量化超参。文中证明了uniform的权重分布相比于一般的normal的权重分布更加robust更加抗噪,提出通过引入 KURE(KUrtosis REgularization) 的loss,能够使得网络参数向着uniform distribution的方向学习,从而获得更加robust的模型。实验证明对于PTQ和QAT都极大提高了鲁棒性,但在最高精度上并不占优。
Fully Quantized Network for Object Detection. paper *
本文主要研究方向是全量化的检测模型,主要针对目前的有些量化方法未考虑网络中所有层的量化操作而导致的精度和速度方面的影响,以及目前检测任务在较大压缩比(4bit)时的不稳定和不收敛问题。文章通过监测4bit 量化后ft过程中w/a的数据分布,发现不稳定问题主要是来源于BN等层的影响,和部分aactivation中的离散值影响,以及layer-wise量化对不同channel的不友好。因此提出了一些改进方法,例如在ft中冻结BN的参数,对activation进行normalize,丢弃异常值,channel-wise量化等操作。文章整体更像是工程改进,但对于数据分布的分析及结论还是比较有意义的。
Differentiable Soft Quantization: Bridging Full-Precision and Low-Bit Neural Networks paper github **
本文考虑到qat训练中(尤其像2-bit)量化操作所带来的大面积的不可导问题,而导致的训练不稳定,精度下降等问题。同时考虑对于量化操作中rounging和clipping操作进行平衡。文中提出了一种可微的量化近似函数DSQ, 通过对tanh函数的形变,模拟了uniform/binary 阶梯量化函数。同时设计了一种evolution机制,通过控制DSQ函数中的控制参数,在训练过程中渐变地控制DSQ函数向阶梯函数逼近。由于该函数能够降低量化误差,同时使低度平滑可微,因此能够较好的保证网络训练的稳定性及最终精度。
Training Quantized Neural Networks with a Full-precision Auxiliary Module. paper ***
本文目标解决的依旧是低位宽网络中的梯度传播问题。本文提出了一种新颖的采用混合精度网络优化来训练量化网络的方法,通过向低比特网络加入全精度的辅助模块,通过类似于蒸馏的方法将每一个量化模块的输出进行全精度映射并组成了一个float的分支,从而为量化网络模块引入了新的梯度传播路径。在训练中优化整体的混合精度网络,在推理时只使用量化网络。该文章实现了4bit检测模型不掉点,非常推荐。
Adaptive Loss-aware Quantization for Multi-bit Networks. paper *
本文是一篇混合精度的 Multi-bit Network 量化文章。文中提出了一种Adaptive Loss-aware Quantization(ALQ)的模块,通过直接优化量化所带来的error来实现无损bit化,同时还引入了pruning的操作,来裁剪部分不重要的权重。ALQ无需梯度近似,同时也能够量化首尾两层。最后结果平均bit数低于1bit,但精度比较可观。
Distance-aware Quantization. paper **
本文首先提出一种思路:量化操作被作为一种距离(全精度数和定点数之间的距离)分配问题进行建模。文中提出了一种DAQ(Distance-Aware Quantization)的方法,加入了gumbel-softmax来近似量化中rounding操作,解决了原本rounding操作的梯度求导问题,同时通过一种distance相关的温度系数来自适应地调节函数从而消弭梯度近似中训练和测试过程的gap问题。在ResNet系列网络上进行了低比特(2-4)的量化实验,部分结果优于Auxiliary。
ADQ: Towards Accurate Quantized Object Detection. paper. code **
本文目标解决更低bit(2bit)下的全网络目标检测问题。本文提出对所有层都采用定点数运算,包括卷积,BN,shortcut等(看描述,不是使用常规qat中的伪量化数,而是完全模拟硬件上的定点数计算流)。同时提出,在更低比特下的精度降低问题,主要是因为batch statistics不够准确,因此提出了一种新的 multi-level BN来更精确地获取batch统计数据,从而很大程度提高了低bit下检测问题的精度。实验结果显示,在2-bit情况下,在Retina/FCOS上精度接近于全精度结果。
Once Quantization-Aware Training: High Performance Extremely Low-bit Architecture Search. paper. code. ***
本文提出了一种Quantization-Aware NAS框架,将量化感知与结构搜索相结合,获得一系列不同FLOPs的不同bit下对于量化更加友好的模型。不同于一般Quantization-Aware NAS方法,本文着重提出了Once的概念,通过不同bit间的step size参数继承,来实现一次性搜索的不同bit下的较优模型,此外,为了方便搜索,还在NAS过程中采用了同一层不同subnet之间的step_size共享。最后针对于该范式所搜索出来的一系列量化友好模型架构分析,本文给出了一些量化友好模型设计的可能靠谱的准则,例如2-bit量化更favor层数较浅的模型;相同计算量之下,层数浅分辨率大的模型量化更友好;相同精度下,更宽的模型对量化可能更包容等。
LEARNED STEP SIZE QUANTIZATION paper. code ***
本文提出了一种直接针对于量化操作中的“scale”(或称 step size)参数进行建模学习的QAT方法。文中主要贡献有两点:1、将scale作为可学习参数进行更新,文中所给出的sacle的梯度计算公式,相比于其他相关工作(QIL, PACT)更加稳健,在各个点具备有意义的梯度;2、为了平衡scale参数和weight参数的学习,文中给出了一种scale的梯度缩放方法,能够有效提高模型的收敛性。
WRPN: Wide Reduced-Precision Networks. paper *
这是比较早期的一篇qat文章,在大部分量化工作还只集中在只针对权重进行量化的时候,本文提出对于激活值(activation)也进行低比特的量化。为了弥补低bit网络所造成的精度损失,文中提出了扩大filters数量来恢复精度的想法。例如说,对一个32位的全精度卷积层,将其filter扩充为2倍,则计算量增大了4x;同时将其将为4bit,计算效率则能提升8x,同时保持精度与float类似。
GDP: Stabilized Neural Network Pruning via Gates with Differentiable Polarization paper ***
本文是一篇采用sampling操作来解决基于稀疏训练方法中权值分布密集的问题。主要采用了一种可微的极化门函数,通过对普通卷积(不对depth卷积使用)的通道的开合情况进行控制,该门函数在0和1的位置较为稳定,而其他部分的梯度下降会向着0和1的方向更新。因此在训练结束后,可以使得门函数值要么是0,要么接近于1。然后直接裁剪掉0所对应的通道,而将接近1的值作为比例因子吸收到对应权重中。
DDR-Net for real-time Semantic Segmentation paper code **
文中提出了一种实时的语义分割模型,可以在Cityscapes上达到102FPS/77.4%的结果。本文是一种基于双支路结构的分割模型,两个从1/8分辨率开始分出两个branch,其中一个branch分辨率不变保持细节,另一路降低分辨率获取更高级别的语义信息;同时两个支路进行了多次的双边信息融合。同时文中还提出了一种新的文本提取模块 DAPPM,通过多尺度pooling支路的concat融合获取丰富的信息。文中对于目前real time的分割网络进行了较好的总结。
BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation paper code ***
Changqian大佬出品,Real-time语义分割任务中的经典之作,目前在Cityscape Real-time竞赛中,很大部分的工作都是基于BiSeNet/v2及其他改进之作。对于语义分割任务,丰富的低维空间信息和高维语意信息同样重要,但是在传统的FCN网络中,这两者是鱼与熊掌不可兼得的。尤其是在实时场景中,为了满足速度的要求,很多工作选择对图像进行切割或者resize,或者是对网络channel/block进行裁;也有的选择使用U-shape的网络。但这些工作基本都是为了速度而牺牲了精度,或者是顾及了精度但速度却并不达标。为此文中基于U-shape提出了一种新的2-path网络:Spatial Path 和 Context Path。前者使用3层网络,保留了1/8分辨率的高空间信息;后者采用轻量级网络backbone,提取更高维度的语意信息。同时为了进一步提升网络精度,还提出了ARM模块来增强Context Path的信息输出,同时提出FFM模块对两条路进行更有机的融合。作为较早期的一篇文章,在速度和精度上都达到了很高的标准。