fgg blog

knowledge_distillation2

# Generalized Knowledge Distillation (GKD)

泛化知识蒸馏是一种改进的知识蒸馏技术,旨在解决传统知识蒸馏方法在自回归序列模型中遇到的分 布不匹配问题,特别是在训练和推理阶段之间。传统的知识蒸馏方法通常基于固定的输出序列集进行, 这些序列或者是教师模型生成的,或者是基于真实数据的标签。然而,这导致学生模型在推理时生成 的序列可能与训练时见到的序列分布不同,从而影响了学生模型的泛化能力。

GKD 不再局限于固定输出序列的训练,而是允许学生模型在其自我生成的序列上进行学习,同时利用 教师模型提供的反馈。

knowledge_distillation

知识蒸馏(Knowledge Distillation)是一种机器学习技术,它通过将大型、复杂的模型(称为教师 模型,Teacher Model)的知识“蒸馏”到小型、简洁的模型(称为学生模型,Student Model)中,从 而实现模型压缩和加速,同时尽可能保持原始模型的性能。这一技术使得模型可以在资源有限的设备 上高效运行,如手机或嵌入式设备。

The method works by incorporating an additional loss into the traditional cross entropy loss, which is based on the softmax output of the teacher network. The assumption is that the output activations of a properly trained teacher network carry additional information that can be leveraged by a student network during training.

mixup_beyond_ERM

## Empirical Risk Minimazation (ERM)

经验风险最小化, Empirical Risk Minimazation principle (Vapnik, 1998)

  1. 基于ERM训练模型:亦即在训练数据集上学习以最小化其平均误差。
  2. 当前SOTA模型的参数量随着训练数据集规模增大而线性增加。

而经典VC学习理论(learning theory, Vapnik & Chervonenkis, 1971)表明:只要学习器的参数量 不随着训练样本数量增加,则基于ERM学习一定会收敛(convergence, i.e., good generalization to new data)。亦即:模型的复杂度(参数量规模)相对于训练数据规模应该是固定的或者变动不大。

what_is_Momentum

“动量”简单来说就是:移动加权平均。 $$ y_t = m \times y_{t-1} + (1 - m) \times x_t $$ where $m \in [0, 1]$.

上式就是表达了这么个意思:

当前时刻输出 $y_t$ 除了受到当前输入 $x_t$ 的影响,还有上一个时刻输出 $y_{t-1}$ 的影响, 而其影响程度由“动量 (momentum)” $m$ 来决定。则有:$m$ 趋向于1,$y_t$ 与上一个时刻相同。

大约是说,不希望当前时刻的输出完全依赖于当前时刻的输入,还希望上一个时刻的输出来凑凑热闹。