百科问答小站 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 网友的相关建议: 
      

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




  

相关话题

  CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别? 
  为什么说大模型训练很难? 
  为什么中文 NLP 数据集这么少? 
  人工智能的意义和价值是什么? 
  有哪些比较好的元学习(meta learning)领域的学习资源? 
  大牛Bengio 团队最新的研究和我自己之前的研究成果重复了,应该怎么办? 
  如何将某个分布作为机器学习的特征? 
  寒武纪神经网络处理器效能如何 ? 
  生成式对抗网络GAN有哪些最新的发展,可以实际应用到哪些场景中? 
  如何评价各种关联因素分析算法,尤其是在算法效果对比方面? 

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





© 2025-03-26 - tinynew.org. All Rights Reserved.
© 2025-03-26 - tinynew.org. 保留所有权利