style: html to md syntax
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
既然有了上面这个发现,那么作者想我能不能把分类任务推到极致呢?
|
||||
|
||||
于是他们<strong>把每一个图片当作一个类别</strong>,去跟其他的图片做对比,具体模型如下
|
||||
于是他们**把每一个图片当作一个类别**,去跟其他的图片做对比,具体模型如下
|
||||
|
||||

|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
|
||||
2.后面接了一个 Non-param Softmax(非参数 softmax),其实就是一个不被训练的,把所有特征投射到超球面上的一个分类头(把所有特征模长变为 1)。
|
||||
|
||||
3.后面的<strong>Memory Bank</strong>是这篇文章的<strong>重点</strong>,它是一个<strong>动态字典</strong>。我们把每一个图片抽取出来的特征存入 memory bank,每次计算时抽取其中部分作为一个 batch 进行对比学习,把更新后的模型得到的特征替换 memory bank 里原先的特征。
|
||||
3.后面的**Memory Bank**是这篇文章的**重点**,它是一个**动态字典**。我们把每一个图片抽取出来的特征存入 memory bank,每次计算时抽取其中部分作为一个 batch 进行对比学习,把更新后的模型得到的特征替换 memory bank 里原先的特征。
|
||||
|
||||
4.具体损失函数用的是一个叫 NCEloss 的损失,它把多分类问题分为<strong>若干个二分类问题</strong>,<strong>是</strong>与<strong>不是</strong>,每个 batch 中只有一个的 ground truth 是’yes‘,其余都是’no‘
|
||||
4.具体损失函数用的是一个叫 NCEloss 的损失,它把多分类问题分为**若干个二分类问题**,**是**与**不是**,每个 batch 中只有一个的 ground truth 是’yes‘,其余都是’no‘
|
||||
|
||||
在训练的时候,相当于是有一组以前的编码器抽取的特征 A,B,C,D...,一组当前编码器抽取的特征 a,b,c,d...,对它们进行对比学习。对 a 来说,A 是正样本,其他都是负样本,同理类推。
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
|
||||
用动量更新的方法去更新 memory bank 中的特征
|
||||
|
||||
也就是让特征的变化<strong>不那么剧烈</strong>
|
||||
也就是让特征的变化**不那么剧烈**
|
||||
|
||||
原因:如果一直保持更新,<strong>特征总体的变化就会比较大</strong>,而我们在大数据集上训练的时候,等第二次调用一个特征时,它跟现在的特征分布已经大相径庭,那就不好训练了,也就是<strong>特征缺乏一致性</strong>。因此我们引入动量更新来确保特征进行平稳的改变,而非突变。
|
||||
原因:如果一直保持更新,**特征总体的变化就会比较大**,而我们在大数据集上训练的时候,等第二次调用一个特征时,它跟现在的特征分布已经大相径庭,那就不好训练了,也就是**特征缺乏一致性**。因此我们引入动量更新来确保特征进行平稳的改变,而非突变。
|
||||
|
||||
#### 关于动量的小拓展
|
||||
|
||||
@@ -60,4 +60,4 @@ m 表示动量,k 是新的特征,q 是上一个特征,只要设置小的
|
||||
|
||||
总体来说,Inst Disc 把对比学习成功引入了 CV 领域,核心思想是构建动态字典进行对比学习
|
||||
|
||||
<strong>PS:若无特殊说明,最后保留下来去做下游任务的模型只有编码器,其他都删除了。</strong>
|
||||
**PS:若无特殊说明,最后保留下来去做下游任务的模型只有编码器,其他都删除了。**
|
||||
|
||||
Reference in New Issue
Block a user