训练目标是得到一个样本X1和学习率lr使得模型在X1上以lr优化的结果,和在正常样本上优化的结果一样

算法简洁如下:

  1. 初始有一个估计学习率lr,蒸馏样本X1,模型参数M
  2. 用lr,X1来更新M得到M2
  3. 利用新的模型M2,计算在真实样本上的损失L1
  4. 用L1更新估计学习率lr和X1,即找到最好的lr和X1,使得第二步更新得到的M2是最优的
  5. 回到第一步

个人

我觉得,这个东西就和Adaboost差不多?类似于选了一个子集,然后给子集分配了一个权重(学习率大小)

而且咋说呢,这个东西和模型的构造都是绑定的,你用模型A和数据集N,蒸馏得到了子集M
那这个M唯一的应用就是把初始化的A快速训练回去
但是问题就在于蒸馏的时候,你就已经对整个数据集进行了遍历和优化更新,本质并没有节省计算量啊