关于repVGG的量化问题的一些思考
本文主要记录在repVGG问题上的一些浅显的看法。
做过工程化的同学应该都遇到过,repVGG量化过后性能大幅下降,在QArepVGG这篇论文中,揭示重参数化架构量化中性能崩溃的根本原因。
简单来说,假设这三个分支的参数符合正态分布(如下图),均值相同但方差不同,分支合并后会导致方差增大,不适合量化(方差越小对量化越友好)
还有可能是均值和方差均不同,合并后呈现多个峰的情况,这种参数分布会导致更严重量化问题,不管是对称还是非对称量化均不能适应此情况,其分布本身就是对量化不友好的。
所以怎么解决呢?可以从两个方面来思考
从量化友好的参数分布来看,可以尝试使参数分布更合理,即QArepVGG的做法。
从量化的角度来解决,可以尝试对参数进行划分,采用两组量化参数对模型参数进行精细划分,即粗+细粒度权重划分量化RepVGG-A1
个人的脑洞:
既然这种在我们看来不合理的分布,对任务有效。那么是不是可以在预训练模型的模型架构上新增分支,并冻结主分支参数,仅训练辅助分支的参数呢?这是否可以进一步提高模型精度?对迁移学习是否有益呢?
后续有时间会尝试进行实验,并补充实验结果。。。