参考内容:
(59 封私信 / 30 条消息) 知识蒸馏技术(教师学生模型) - 知乎
(59 封私信 / 30 条消息) 深度学习高温蒸馏:Softmax With Temperature - 知乎
1. Logits(未归一化;非概率):
Logits 是深度学习模型预测过程中最后一层输出的原始值。它们通常是一个未归一化的实数向量,每个值对应一个类别。Logits 的取值范围可以是正数、负数,甚至非常大或非常小的值。
Logits 是模型预测的中间结果。它们本身并非最终的预测值,而需要通过激活函数(如 Softmax)进行归一化,转化为概率分布。模型的优化目标(如交叉熵损失)直接基于 Logits 或其归一化结果进行计算。
2. softmax输出(归一化后;概率):Softmax 是一个将 Logits 转化为概率分布的激活函数
(1)常规softmax:
(2)带温度的softmax:
其中T是softmax函数的温度超参数。
引入T的原因:使用softmax会将一个差别不大的输出变成很极端的分布,引入温度系数后softmax的soft程度变成可以调节的超参数。T越高,softmax的output probability distribution越趋于平滑,其分布的熵越大,负标签携带的信息会被相对地放大,模型训练将更加关注负标签。
3. 为什么模型输出最好加上softmax,而当使用交叉熵作为损失函数时不用加:
- 不加softmax输出的不是概率,Logits数据可能为负数;
- 大多数深度学习框架(如 PyTorch、TensorFlow)中的交叉熵损失函数内部已经包含了 softmax 的计算