自监督学习之对比学习:MoCo模型超级详解解读+总结
文章目录
一、MoCo简介
1.1 整体思想
1.2 动量
1.3 正负样本如何选取
二、动态字典
2.1 query和key
2.2 字典特点
三、编码器的动量更新
3.1 编码器的更新规则
3.2 使用动量更新的原因
四、实验过程
4.1 目标函数:infoNCE
4.1.1 softmax
4.1.2 交叉熵损失
4.1.3 交叉熵损失函数和softmax的关系
4.1.4 为什么使用NCE loss
4.2 前向传播过程
4.2.1 模型图
4.2.2 伪代码
学习资料: MOCO论文精读-哔哩哔哩
一、MoCo简介
动量对比学习方法做无监督表征学习。 使用动量的方式更新编码器,使用队列的方法存储memory bank这个字典,从而获得一个又大又一致的字典。
1.1 整体思想
把memory bank这个字典当做一个队列进行维护
1.2 动量
加权移动平均。让当前输出不完全依赖于当前输入,而是也取决于前一时刻的输出。
y t = m ∗ y t − 1 + ( 1 − m ) ∗ x t y_t = m*y_{t-1}+(1-m)*x_t yt=m∗yt−1+(1−m)∗xt
y t − 1 y_{t-1} yt−1 :上一时刻的输出
y t y_t yt:这一时刻想要改变的输出
x t x_t xt:当前时刻的输入
m m m:动量,超参数,介于0-1之间
当 m m m趋近于1的时候, y t y_t y