【知识蒸馏】透彻理解soft target、hard target

问题引入

知识蒸馏中用soft target代替hard target,那么soft target、hard target到底是什么?对他们该如何理解?
下面做一个简单快速的说明

理解soft target、hard target

首先:都是概率分布

首先,hard target、soft target都是标签(Labels)的概率分布。

以手写数字识别任务为例

样本

训练集中的某个样本

标准答案(ground truth)

ground truth / hard label y y y :2

hard target、soft target的不同

0123456789
hard target0010000000
soft target0.020.0350.60.20.0050.020.020.030.040.03

或者看下面这张直方图,更直观地体现了hard target和soft target的区别

也许这张图还不足以让我们感受到soft target的优势,那么下面这张图就更好地说明了soft target优于hard taget的地方:携带更多 Teacher Model 学到的有用信息
解释:第一个“2”与“3”更像,则预测结果中3的概率(相比其他数字)显然变大了;第二个“2”与“7”更像,则预测结果中p(label=7)显然变大了。而这两个样本的hard target完全一样
“ 能携带更多信息 ”, Hinton 在知识蒸馏鼻祖论文(Distilling the Knowledge in a Neural Network)中的描述是:

One of our main claims about using soft targets instead of hard targets is that a lot of helpful information can be carried in soft targets that could not possibly be encoded with a single hard target.

实验结果也表明:使用soft target得到的Student Model拥有更好的拟合能力。
在这里插入图片描述

如何soft(软化)

温度T

上面说明了soft target比hard target好在哪,那么知识蒸馏是怎么得到soft target的呢?
答案:引入温度T。

回顾
化学蒸馏:A+B的混合物,想要分离A、B。已知 T A 沸点 < T B 沸点 T_{A沸点}<T_{B沸点} TA沸点<TB沸点。那么就能通过蒸馏的方式:当 T A 沸点 < T 蒸馏 < T B 沸点 T_{A沸点}<T_{蒸馏}<T_{B沸点} TA沸点<T蒸馏<TB沸点,A被
“蒸” 出去了,瓶子里留下的是B,且能在另一端收集到A——达到了分离的目的。

知识蒸馏:
q i = s o f t m a x ( z i ) = e x p ( z i / T ) ∑ j e x p ( z j / T ) q_i=softmax(z_i)=\frac{exp(z_i/T)}{\sum_jexp(z_j/T)} qi=softmax(zi)=jexp(zj/T)exp(zi/T)

Using a higher value for T produces a softer probability distribution over classes.

在这里插入图片描述
soft target就是上图中的soft labels。

步骤

S1: 得到训练好的Teacher Model(训练数据为hard labels)
S2:
Teacher Model(T=t)得到soft targets
S3:
Student Model(T=t)、Student Model(T=1)分别得到soft predictions、hard predictions。
Distillation Loss: 将上一步得到的soft targets与soft predictions作交叉熵
Student Loss: hard predictions与hard labels作交叉熵

总的损失函数是这两部分的加权,分别赋予权重 β 、 α \beta、\alpha βα
在这里插入图片描述
S3: 最后作测试令Student Model(T=1)


关于梯度下降更新logits的部分可后续更新,但我自己已经推好了😁

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Zookeeper是一种分布式协调服务,而Paxos算法则是一种分布式一致性算法,Zookeeper使用Paxos算法来实现分布式数据一致性。下面是Paxos算法的原理及过程: 1. 提议阶段: Paxos算法的核心是通过多个节点之间的协商达成一致。一个节点想要在分布式系统中提交一个提议,首先需要向其他节点发送一个提议请求。每个节点收到提议请求后,会进行如下处理: a. 如果该节点没有收到过任何提议,则该节点会接受该提议。 b. 如果该节点已经收到过提议,但是该提议的编号小于当前提议的编号,则该节点会拒绝该提议,并回复当前提议的编号。 c. 如果该节点已经收到过提议,并且该提议的编号大于等于当前提议的编号,则该节点会接受该提议。 2. 学习阶段: 如果一个提议被超过一半的节点接受,则该提议成为了一个已经被接受的提议。如果一个节点收到了一个已经被接受的提议,则该节点会更新自己的状态,并通知其他节点该提议已经被接受。 3. 冲突处理: 如果两个节点同时向其他节点发送了提议请求,则会发生冲突。为了解决冲突,Paxos算法会在提议中增加一个唯一标识符,例如一个时间戳。这样,即使两个节点同时发送了提议请求,它们的提议也会有不同的编号和唯一标识符,从而避免冲突。 总体来说,Paxos算法通过多个节点之间的协商,实现了分布式系统中的数据一致性。Zookeeper使用Paxos算法来实现分布式数据一致性,从而保证了分布式系统中数据的正确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值