思想的由来:观察的重要性在此体现的玲离尽致。微软那一拨人观察发现DNN模型参数权值很大比例(近70%)小于0.1。有了这个观察结果,他们就开始思考着把这些过小的权值直接置零会如何,如果性能没有太大损失,那就太好了。实验一跑,果不其然。
Sparseness DNN: 大部分参数权值为0的DNN模型;Sparseness DNN优化目标有两个,目标一,最小化交叉熵,目标二,最小化非零参数个数;可以将多目标问题转换为带约束条件的凸优化问题,约束条件就是非零参数个数小于预先设置的阈值。
模型训练:
step1. 正常的CE准则训练(该步之后,权值趋于稳定,简单来说就是幅值大的依然大,幅值小的依旧小)
step2. 基于step1获得的最终模型,设置每层的置零率,如60%,即60%的参数置零;确定每层的置零率后,统计每层的权值门限值,权值在门限值以下置零
step3. 继续进行CE准则训练,并且保持step2制定的sparseness pattern;如何保持?方法一,直接掩蔽为零的权值,即不更新;方法二,将权值在
(0,min{θ/2,0.02})
范围的置0,其中
θ
为step2计算的权值门限值。