只使用视频模态、文本模态数据的情况下:
一、最开始融入品牌学习的模块后,实验结果很差(训练集上loss下降很慢,到某一个值后几乎不变化,模型没学到什么有用的表示,验证集/测试集AUC均0.48左右)。当时考虑可能是以下几个原因造成:
1、品牌表示学习原论文中使用的学习率是1,而视觉-文本网络初始学习率是1e-4。怀疑两个模型学习率上的gap导致没有办法同时学的很好?多次调整初始lr,设置lr随epoch衰减幅度,没效果。
2、batch_size过小导致在训练时陷入局部最优?调大batch_size(128->256),没效果。
3、三元组loss中超参数margin的设置不当,导致每个品牌学到的表示不具有鉴别性?调整后训练,没效果。
4、实验中对品牌表示学习网络存在问题,升维让品牌表示难以学习?去掉升维操作,没效果。
5、怀疑视觉、文本模态其中某一个特征对最终的数据特征表示形成干扰?或者两个模态特征融合的方式不对?
实验中增设允许数据最终表示只使用单模态、调整模态的最终维度再拼接(比如假设视觉、文本可能不是同等重要的,那么设置最终视觉特征dim-2048,压缩文本的表示为dim-512),感觉双模态融合的方式效果要好一些?(待补实验认证)
视觉/文本模态特征融合时,不做简单的拼接,而是再增加一个FC层,涨点3%左右,AUC到0.51,可见还是很弱。
二、
毫无思路,就想着去繁从简吧。先把各种魔幻loss砍掉,只留下triple-based loss。再一个,当时写的损失函数是用在视频-文本跨模态检索,而且是一对一检索(数据集里每个视频只有一条caption)。这个loss直接用在品牌检索应该是有些问题,之前一直没在意这个损失函数,遂根据品牌检索新任务重写loss。改完约束后,效果及其显著,训练集上仅需几个epoch后loss便可降到接近0,打印训练集上的检索结果,召回率可观且auc能到0.85左右。然鹅,验证集和测试

在视频和文本模态数据下进行品牌内容学习的实验中,遇到训练问题,如模型学习率、batch_size、margin超参数、特征表示等。通过调整学习率、增大batch_size、改变模态融合方式及优化损失函数,改善了模型表现。最终,通过随机划分数据集解决了数据分布不一致的问题,测试集AUC提升至0.67。
最低0.47元/天 解锁文章
1259

被折叠的 条评论
为什么被折叠?



