百科问答小站 logo
百科问答小站 font logo



为什么 larger batch size 对对比学习的影响比对监督学习的影响要大? 第1页

  

user avatar   huo-hua-de-41 网友的相关建议: 
      

可能是因为logK诅咒,其中K是batch size。softmax后的交叉熵损失函数可以写成:

其中, 是正样本的分数, 是负样本的分数。

因为对比学习的正负样本差别是挺大的, 的分数很快就会趋近于0,此时损失函数的数值将趋近于 ,其中 可以简单理解为所有负样本 分数的平均值。当batch size比较小的时候,可以理解为 的值也会比较小,接近于0,这个时候浮点误差就会对计算结果造成比较大的影响,最后使得梯度变成随机噪音,使得模型无法进一步收敛。

以上分析来自于下面这篇FlatNCE的论文,详细地分析可以自己看下。

所以避免这个问题,最简单的解法就是使用比较大的batch size。或者改造一下损失函数,这也是FlatNCE的目的和贡献。


user avatar   wang-feng-98-82 网友的相关建议: 
      

supervised training的batch size不能简单地从字面上理解,最后一层fc的weight可以理解为每一类的template,它们代表了大量的负样本。

而contrastive learning的样本都是要过一整个网络的,负样本多少直接取决于batch size大小。


user avatar   feng-xia-chong-90 网友的相关建议: 
      

TL,DR:Batch越大,负例越多,可以缓解表示坍塌。补充 @Gordon Lee

资料来源于:


user avatar   gordon-lee 网友的相关建议: 
      

我的理解是这样的,不对的地方请指正:

对比学习一般是自监督学习的方式,相比于supervised方法,它的监督信号是自己构造的,也就是自己和自己的augmentation被认为是正例,负例是in batch的其他样本。

1.相比supervised使用来自数据集的监督信号,对比学习用自监督的方式需要更多的训练steps来收敛。

2.对比学习的一般做法就是拉齐正样本,排开负样本,实际上正样本很好拉齐,你可以用mse,或者cross entropy都可以。关键在于,怎么保证拉齐的同时,保持一个好的uniform。这时候负样本的采样就成了关键。之所以要更大的batch size,就是因为in batch的其他样本作为负样本,充当了防止表征崩塌的角色,batch size越大,用于对比的负样本越多,效果就越好。

3.也可以想象一个极端的场景。对比学习最终理想状态是,数据集里的每个样本都和它自己的augmentation接近,和其他所有样本都远离。要实现和其他所有样本都远离的话,那么batch size就要等于数据集的大小。但实际情况并不能做到这点,那只有尽量越大越好了。


user avatar   tylin98 网友的相关建议: 
      

女王:求求题主放过我,我可不敢有什么政绩。。。




  

相关话题

  wasserstein 距离的问题? 
  image caption这个方向更偏向NLP还是CV? 
  能否使用神经网络来判断奇偶数? 
  现大二,准备做大学生创新创业项目计划 ,目前定的方向是深度学习+畜牧业/养殖业,有什么建议给我们吗? 
  能否使用区块链的算力来解决深度学习训练? 
  如何评价AWS的图神经网络框架DGL? 
  为什么CV能做到让一幅人脸图动了笑了,而NLP的text-style-transfer进展貌似一般? 
  请解释下variational inference? 
  神经网络为什么可以(理论上)拟合任何函数? 
  土木和机器学习/深度学习/算法的交叉岗位在哪里找呀? 在哪找都找不到招聘公司? 

前一个讨论
怎么计算某一年的干支所表示的是一甲子中的第几年?
下一个讨论
澳洲的护理本科有多难学?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利