同一张猫咪图片经过剪裁得到的另一视图被视作正样本 , 正样本与原图经过神经网络编码得到的表征应该相似;而数据集中的其余图片被视为负样本 , 经网络编码后的结果应当差异较大 。
完成正负样本的构建后 , 对比学习一般采用InfoNCE Loss来进行损失计算和模型更新 , 其形式如下:
其中
一. MoCo
MoCo是对比学习中一个非常有代表性的方法 , 其主要思想是将对比学习过程看作一个“查字典”的过程:在一个由众多样本构成的键值(key)字典中检索到与查询样本的编码结果(query)相匹配的正样本 。 为了提升对比学习的效果 , 提出两点假设:
一.键值字典的容量应该尽可能增大以提高自监督任务的难度 , 从而提升训练效果;
二.键值字典应该在训练过程中保持一定程度的一致性以保障自监督学习过程能够稳定进行 。
基于以上两点假设 , 分析了几种对比学习机制 。
1端到端训练
即对于所有的查询样本的编码结果(query)和字典键值(key)同时进行梯度传播 , 但这一方法中显存大小会极大地限制键值字典的大小 , 导致自监督任务难度降低 , 影响训练效果;
2.基于memory bank的训练方法
迭代过程中将键值编码存储到一个memory bank中 , 每轮对比学习过程中所需要的字典键值直接从memory bank 里选取 , 而梯度计算只对查询样本的编码网络分支进行 。 因为MoCo不需要对键值字典的分支进行梯度计算 , memory bank方法可以显著提升键值字典的容量 , 但是由于每个样本在memory bank中的键值在被模型重新编码时才会被更新 , 键值字典中键值间的一致性较差 , 从而降低了训练的稳定性 。
因此 , 提出一种momentum encoder来实现对键值字典的编码 。 对于查询样本 , 使用普通encoder进行编码并直接进行梯度计算;而对于键值字典 , 首先由一个动态更新的队列维护字典的输入样本 , 再使用momentum encoder将样本编码为键值 。 Momentum encoder在训练过程中不会进行梯度计算 , 而是采用动量更新的方法从encoder更新参数 , 更新方法如下:
- 集度汽车机器人概念车曝光,售价20万元以上,北京车展将亮相!
- 关机|人工智能拓展机器人的能力和功能,推动了机器对人的脑力劳动的替代
- 企业创新评测实验室|含着“金汤匙”出身的海康机器人 启动分拆上市后 能否再造一个海康?| 物流
- 机器人|人工智能越来越先进,未来这些职业或被取代
- 本文转自:视界网1月20日下午|地面整平机器人亮相!为重庆江北机场T3B航站楼建设提速
- 机器人|四轴和六轴机器人的区别是什么,看了就知道!
- 智能生产力|从“酷”到“实用”,猎户星空服务机器人上岗10000+家客户变身智能生产力
- spring|宾得的色彩很好,一机一镜配置真的很值得,性价比很高
- 家长|80后奶爸做榜样陪娃学习、一次性通过法考:孩子成绩稳居班级后半段
- 本文转自:大众网目前|神兽归笼家庭辅导又发愁?碳氧智能硬件解放家长双手让学习更有效率