留个笔记自用
Creating Something from Nothing:Unsupervised Knowledge Distillation for Cross-Modal Hashing
做什么
Cross-Modal Hashing跨模态哈希算法
这个领域可以看作是cross-modal retrieval领域的扩展,也可以看作是image retrieval hashing领域的扩展,大概意思就是说,将一种类型的数据作为查询去检索另一种相关类型的数据,例如图中,给出一段话后找到带有文字里面内容的图像
做了什么
这里就展示了本文方法和其他方法的区别,首先是WL,也就是不需要标签的无监督,ER表示结构使用了强相关信息而不仅仅是成对信息,KD表示这里使用了知识蒸馏。
首先需要了解一下 knowledge distillation即KD知识蒸馏,一句话总结,就是用teacher network的输出作为soft label来训练一个student network
首先先训练一个复杂的网络甚至可能是多输入的网络Teacher网络,然后将teacher网络在训练集上对数据的预测结果当成soft label。比如在分类应用中,teacher网络给出了一个soft label结果,这里假设为q
然后将teacher网络参数固定,对某张图片进行teacher预测得到q,👆是一个softmax的soft版本,因为teacher模型可能对分类结果会有一个特别大的置信度,即0.99999而其他类的置信度就会很小,为了使student网络能学到teacher网络包含的可能其他信息(如该置信度较大类与其他类相似,与其他某类不共存),采用soft softmax。
然后对student网络训练LOSS
这里的y是GT(one-hot),p是student网络预测的结果,q是teacher网络预测的结果,这里的student网络可以和teacher同构也可以和teacher异构
怎么做
首先是整体结构的输入,假设这里的输入全是成对数据,总共有N对,每对包含了VI图片和VT两个,D即为整个训练集的标识,假设DI是图片提取特征结果的维度,DT是文本提取特征结果的维度
整体结构分为两个模块,teacher模块和student模块,反过来先理解student模块
student模块分为两步,Supervised and Unsupervised Baselines部分和Unsupervised Knowledge Distillation部分
首先是Supervised and Unsupervised Baselines部分
该部分得到了图片特征提取的结果VI和文本提取特征的结果VT后,将两者映射到同一维度下,再对其加一层sgn激活函数(正为1负为-1)
这里的两个θ就是训练参数,b就是哈希索引的结果
接下来要考虑的就是在于识别哪些图像-文本数据对在语义上相关,而其他的不相关,因此模型可以学习在公共空间中拉近相关对的特征。一个简单的想法是将所有成对的图像和文本实例定义为相关的,而其他的都不相关。然而,这种策略会产生一个非常小的正集和一个非常大的负集,这通常会导致训练阶段的数据不平衡
所以这里定义了一个相似矩阵S,这里的S是由teacher模块得到的
其中Si,j=1仅当i和j是正对,其实这样的话就会使得初始的S为单位矩阵,其他均为0,这种定义方法虽然死板但好理解,这样就可以定义训练的LOSS
然后是结构的第二部分Unsupervised Knowledge Distillation蒸馏部分,这里为什么使用了无监督呢,因为原文说收集label太l累了,很真实,还有就是其实这里的监督算法中模型是不需要真正的监督的,即手动标记图片和文本的label,而只需要知道任何一对数据之间的相似性,即矩阵S中的元素,所以这里可以使用无监督的方法
因为没有使用具体的训练label,定义S的方法就需要有所改变,在对角矩阵的前提下,对S中每个元素进行非0定义
文章采用的是最后一行的定义方法,其实也可以理解成为一种soft定义的方法,那么接下来就需要的是student模块所需要的这个相似矩阵S,有了这个S就能对student模块进行训练,而这个S则由训练好的teacher模块来得到
首先先是这里展示的两个黑盒,图像特征提取网络和文本特征提取网络
首先是图像特征提取网络,这部分是由一个VGG19作为baseline,最后一层接上一层将特征映射到海明空间
然后是文本特征提取网络,这部分是借鉴的SSAH的结构模型,由多个平均池化和1×1卷积组成,最后一层也接上一层将特征映射到海明空间
得到两个特征后接下来就是相似度矩阵S计算了
这里采用的模块借鉴的UGACH
这里我就不做细致理解了因为这完全用到的是另外一篇论文。。只懂了这里的teacher网络能得到一个相似矩阵S的结果,利用这个S作为student网络的soft label来进行训练。
总结
1.知识蒸馏的方法非常火且非常好用,毕竟轻量谁不爱呢,但在我理解中只要蒸馏成立,说明存在着小型更合理的网络能代替大网络且效果相似,然后就想到了NAS似乎就有找优秀网络结构的效果,然后就去查了下有没这种可能性,NAS+知识蒸馏还真找到了这种知乎,然后看到了第一条评论“200个TPU跑5天”
2.这里无监督的方法感觉可以和Learning Temporal Co-Attention Models for Unsupervised Video Action Localization进行对比,假若能知道text中所有单词的数量N,是否可以使用聚类方法将所有图片聚类成N类来当soft label