style: html to md syntax

This commit is contained in:
Plumbiu
2023-08-24 10:31:27 +08:00
parent 229e847514
commit 0a96f3658b
88 changed files with 459 additions and 459 deletions

View File

@@ -14,9 +14,9 @@ MoCo 是 Inst Disc 的改进工作,那我们自然要先看一下 Inst Disc
## 3.NCEloss 负样本分类不合理的问题
NCE 把<strong>所有负样本都视作一样的</strong>,但实际上负样本<strong>并不能被完全归为一类</strong>
NCE 把**所有负样本都视作一样的**,但实际上负样本**并不能被完全归为一类**
举个例子:我现在的正样本是<strong>猫猫</strong>,然后有两个负样本是<strong>狗勾</strong>和<strong>汽车</strong>,那<strong>猫猫</strong>肯定跟<strong>狗勾</strong>更相近,跟<strong>汽车</strong>更不相似,也就是说<strong>狗</strong>的得分虽然低于<strong>猫</strong>,但是一定要高于<strong>汽车</strong><strong>而不是像 NCE 那样把狗和车打成一类</strong>,这样不利于模型学习。
举个例子:我现在的正样本是**猫猫**,然后有两个负样本是**狗勾**和**汽车**,那**猫猫**肯定跟**狗勾**更相近,跟**汽车**更不相似,也就是说**狗**的得分虽然低于**猫**,但是一定要高于**汽车****而不是像 NCE 那样把狗和车打成一类**,这样不利于模型学习。
并且它也不是很灵活,下文细讲
@@ -34,7 +34,7 @@ NCE 把<strong>所有负样本都视作一样的</strong>,但实际上负样
## 2.针对动量更新不能完全解决特征一致性差的问题
作者提出了一个新的<strong>动量编码器</strong>来替代动量更新。
作者提出了一个新的**动量编码器**来替代动量更新。
动量编码器是独立于原编码器的一个编码器它的参数是根据原编码器动量更新的k 和 q 就是指代全部参数了
@@ -52,9 +52,9 @@ NCE 把<strong>所有负样本都视作一样的</strong>,但实际上负样
q·k 其实就是各个特征(因为那时候用的都是 transformer 了,这里就是 trnasformer 里的 k 和 q
这里分母级数上的<strong>k 是代表负样本的个数,也就是 k=batchsize-1总样本-正样本)</strong>。其实就是<strong>对一个 batch 做 k+1 分类</strong>,并且引入了一个<strong>超参数 T</strong>。它的名字叫做<strong>温度参数</strong>,控制的是 softmax 后得分分布的平滑程度(直观理解,不是很严谨)
这里分母级数上的**k 是代表负样本的个数,也就是 k=batchsize-1总样本-正样本)**。其实就是**对一个 batch 做 k+1 分类**,并且引入了一个**超参数 T**。它的名字叫做**温度参数**,控制的是 softmax 后得分分布的平滑程度(直观理解,不是很严谨)
T 越大,损失函数就越对所有负样本<strong>一视同仁</strong>,退化为二分类的 NCElossT 越小,损失函数就<strong>越关注一些难分类的特征</strong>,但有时候会出现两张其实都是猫猫的图片,你硬要让模型说猫猫跟猫猫不一样,这也不太好,这个参数要根据数据集情况适中调整。
T 越大,损失函数就越对所有负样本**一视同仁**,退化为二分类的 NCElossT 越小,损失函数就**越关注一些难分类的特征**,但有时候会出现两张其实都是猫猫的图片,你硬要让模型说猫猫跟猫猫不一样,这也不太好,这个参数要根据数据集情况适中调整。
![](https://cdn.xyxsw.site/boxcnhuabU9XzXmVQfu0ruENs83.png)