带你理解对比学习损失函数的性质以及温度系数的作用(二)

简介: 带你理解对比学习损失函数的性质以及温度系数的作用(二)

三、均匀性-容忍性困境



基于对温度系数作用的探索,作者进而指出了对比学习存在的潜在问题,即均匀性-容忍性的困境。


对于温度系数来说,更小的温度系数更加关注困难样本,因此更容易形成均匀的表示空间,均匀的特征对于表示学习是十分重要的,具体可以见ICML2020的论文 <> 。但是另一方面,由于无监督学习中没有真正的类别标签,对比学习普遍将除本样本以外的所有其他样本作为负样本。


在这种情况下,与正样本相似度极高的负样本往往很可能是潜在的正样本。例如,与当前的苹果图片相似度最高的图片往往是另一个苹果,此时如果太注重困难负样本则会破坏网络经过一定训练后已经学到的语义信息,这种情况在训练后期尤其明显。随着训练的进行,网络获取到的信息越来越接近真实语义特性,那么此时的负样本更有可能是潜在的正样本,因此一个启示是可以随着迭代的次数增多而增大温度系数,这可能是作者以后的工作。于是作者认为,一个好的温度系数,应该是均匀性和容忍性的折衷。


34f60807e219b824ed6938be3d4fef63.png


作者对不同温度系数下的均匀性-容忍性进行了量化并可视化如上图。


四、实验验证



下图是实验对温度系数的验证,红色的box是正样本的相似度,而横坐标往右依次是与相似度最大的10个样本的相似度分布。可以发现,温度系数越小,正样本和最困难的负样本之间的相似度gap越大,这说明了越小的温度系数越倾向于把最困难的负样本分开。该实验支撑了之前的理论分析。


0b40d76a94c1505d805c80570754d156.png


另一方面,作者也对不同的数据集的最优温度系数进行了验证,下图绿色的柱子为对比损失随着温度系数的性能表现。此外,作者也验证了采取显式困难样本发现的对比损失,采取了显示的困难样本挖掘算法后,性能表现与温度系数的关联弱化,当温度系数高于一个合适的值时,该损失产生的模型性能基本保持稳定。


b05dc31b12438ab5349460d8ca91d732.png


五、总结



在本文中,作者试图了解无监督对比损失的一些具体的性质和行为。作者们首先分析出了对比损失是一种困难样本感知的损失函数。并且验证了困难样本感知的性质是对比损失的不可或缺的性质。不具备这种性质的损失函数,即使负样本非常多,性能还是会退化严重。此外作者们也深入研究了温度系数的作用,发现温度系数控制着对负样本感知程度。并接着提出了Uniformity-Tolerance Dilemma。总体来说,论文揭示了一些对比学习有用的性质和现象,相信本文会启发更多的研究者设计更好的损失以及算法。


相关文章
|
NoSQL Java 关系型数据库
蚂蚁金服+拼多多+抖音+天猫(技术三面)面经合集助你拿大厂offer
很多Java开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。针对这些的读者朋友,小编整理了一些知名大厂的面经,在这分享给读者朋友们参考,让即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试时都喜欢问那些问题。
|
人工智能 数据可视化 数据挖掘
AI竟能独立完成顶会论文!The AI Scientist-v2:开源端到端AI自主科研系统,自动探索科学假设生成论文
The AI Scientist-v2 是由 Sakana AI 等机构开发的端到端自主科研系统,通过树搜索算法与视觉语言模型反馈实现科学假设生成、实验执行及论文撰写全流程自动化,其生成论文已通过国际顶会同行评审。
1375 34
AI竟能独立完成顶会论文!The AI Scientist-v2:开源端到端AI自主科研系统,自动探索科学假设生成论文
|
云安全 人工智能 自然语言处理
|
机器学习/深度学习 监控 Linux
ollama+openwebui本地部署deepseek 7b
Ollama是一个开源平台,用于本地部署和管理大型语言模型(LLMs),简化了模型的训练、部署与监控过程,并支持多种机器学习框架。用户可以通过简单的命令行操作完成模型的安装与运行,如下载指定模型并启动交互式会话。对于环境配置,Ollama提供了灵活的环境变量设置,以适应不同的服务器需求。结合Open WebUI,一个自托管且功能丰富的Web界面,用户可以更便捷地管理和使用这些大模型,即使在完全离线的环境中也能顺利操作。此外,通过配置特定环境变量,解决了国内访问限制的问题,例如使用镜像站来替代无法直接访问的服务。
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】39. 梯度下降优化之动量法介绍及其Pytorch实现
【从零开始学习深度学习】39. 梯度下降优化之动量法介绍及其Pytorch实现
|
存储 并行计算 算法
R语言性能优化:提升代码运行速度的技巧
【8月更文挑战第28天】R语言的性能优化是一个复杂而细致的过程,需要综合考虑数据结构、算法、并行计算、编译以及内存管理等多个方面。通过应用上述技巧,你可以在不牺牲代码可读性和灵活性的前提下,显著提高R代码的执行效率。记住,优化是一个迭代的过程,需要不断地测试、分析和调整你的代码。
1342 6
|
消息中间件 SQL Rust
为什么选择 Kotlin 重写后端服务?
为什么选择 Kotlin 重写后端服务?
1167 0
为什么选择 Kotlin 重写后端服务?
|
SQL 数据库连接 API
SqlAlchemy 2.0 中文文档(二十八)(5)
SqlAlchemy 2.0 中文文档(二十八)
799 0
|
Python Windows
怎么将 Python 项目打包成 exe?
这篇内容是一个关于使用Python和相关工具创建GUI应用并打包成Windows安装程序的教程摘要: - **环境**:Python 3.8,Tkinter(内置GUI库),PyInstaller 6.3.0,Inno Setup Compiler(用于创建安装包)。 - **基本流程**:在conda环境中创建一个独立的虚拟环境,编写一个使用Tkinter的GUI应用,添加图标,用PyInstaller将应用打包成单个可执行文件(exe),最后用Inno Setup Compiler将exe和相关文件打包成安装程序。
891 0
|
传感器 Web App开发
示例七、超声波传感器测距
示例七、超声波传感器测距
884 1