背景知识:

Zeroshot Learning,零次学习。

模型 对于 训练集没有出现过 类别,能自动创造出相应的映射: X→Y。

Low/Few-shot Learning、One-shot Learning,少/一次学习。

训练集中,每个类别 都有样本,但都只是 少量样本 (甚至只有一个)。

摘要:

提出了一个Low-Shot Transfer Detector (LSTD),利用丰富的源领域(Source Domain)知识来构建一个高效的目标域(Target Domain)检测器(几乎不需要训练样例)。

主要贡献:

  1. 设计了一个灵活的LSTD深层架构,以缓解Low-Shot检测中的tranfer困难。同时,该架构结合了SSD和Faster RCNN各自的优势。
  2. 其次,提出了一种新的 transfer learning framework,其中包括 Transfer Knowledge (转移指数 TK)和 Background Depression (背景抑制 BD)正则化方法,可以分别从源域和目标域利用目标知识,加强fine-tune 。

以前的解决方法:

  1. weakly/semi-supervised. 引入额外的易于注释的标签图像。缺点:由于训练集的缺乏监督,检测器的效果往往受限。 弱监督:有标签没有框;半监督:有标签,部分有框。
  2. 对深度模型进行迁移学习。缺点:(1)当目标检测数据集很小的时候,对目标检测使用一般的迁移策略是不适用的(例如,简单的使用预训练的深度分类模型来初始化深度检测模型)。在很小的数据集上进行微调时,通常很难分辨检测和分类之间的区别。(2)在迁移学习中,深度检测模型比深度分类模型更容易出现过拟合。(3)简单的微调通常会降低可转移度(经常会忽略源域和目标域都具有的重要的目标知识)。

TK和BD的主要作用:

TK:对每一个目标域的 proposal 迁移源域目标标签知识,使得能够在目标域中泛化Low-shot Learning。

BD:在目标域图片的特征图上加入bounding box knowledge来做额外监督,使得模型在transferring中能够抑制背景的干扰,专注于目标。

网络的基本结构:

图1

First, we design bounding box regression in the fashion of SSD.

利用SSD设计bounding box regression。每一卷积层都有默认的候选框,每一层都用smooth L1来对框的回归进行训练。

  • 训练数据:large-scale source domain
  • 训练目的:为了学习尺度的多样性(少样本缺少的信息),避免重新初始化bbox回归,减少target domain时的fine-tuning负担

Second, we design object classification in the fashion of Faster RCNN.

用Faster RCNN设计object classification。这里就是将原始Faster RCNN的框的回归换成了SSD的多尺度框的回归,原始的RoI层中的特征层用SSD的卷积的中层特征代替。

实现流程如下:

  • 根据SSD部分的objects的分数排序,选出region proposals筛选作为RPN的结果
  • 使用ROI pooling层的middle-level卷积层,为每个proposal产生固定大小的卷积特征cube
  • 不使用原有的faster rcnn的全连接层,而是在ROI pooling layer使用两个卷积层,用于K+1分类。

优势:

  • 当参数较少时,减少了过拟合。
  • 与直接的K+1类分类相比,粗到细分类,减少了迁移学习的训练难度。
  • 相较于背景来说,source 和 target中的物体共享一些相同的特性(例如清晰的边缘,均匀的质地)。

Regularized Transfer Learning for LSTD

图2

  1.  train the source-domain LSTD with a large-scale source data set.
  2. initialize the target-domain LSTD using the pretrained source-domain LSTD.
  3. use the small-scale target data to fine-tune the target-domain LSTD with the proposed low-shot detection regularization.

具体来说,首先用大量的source data 训练图1中的模型,得到pretained source-domain LSTD;然后用该模型初始化 target-domain LSTD;最后用文章提出的正则化方法在target-domain中fine-tune经过初始化的target-domain LSTD。

fine-tune过程中总的损失函数如下:

其中,L_main 指在LSTD中的多个尺度层的回归损失和微调目标分类的损失(即后面的两个卷积)。(源域与目标域相关但不同,因为low-shot旨在从少量目标数据中检测出之前没有出现过的类别)。因此在目标域中需要重新初始化,即源域训练好的用来当做目标域的初始化,然后来进行微调。

为了进一步在目标域中加强low-shot detection,加入了新的正则项:L_reg,形式如下:

其中,L_BD,L_TK分别为背景抑制和知识迁移正则项。

Background-Depression (BD) Regularization

由于复杂的背景信息会影响localization性能,所以在目标域中用object knowledge 设计了BD正则化。具体的,首先从卷积的中间层生成特征立方(candidate boxes) ,然后用groud truth bounding boxes取匹配框,去除掉这个匹配框,仅保留与背景对应的特征区域,即F_BD。最后使用L2正则化惩罚激活的F_BD。从而抑制背景信息,在仅有的target数据中更关注target的物体信息。

BD的作用:

Transfer-Knowledge (TK) Regularization

由于源域与目标域的类别不同,所以在目标域中就要微调。但是如果只用目标域的数据进行微调,就不能充分利用源域的知识。所以提出了TK正则化,它将源域的目标标签预测作为源知识去正则化目标网络。此处假设的前提是target和source的物体之间有一定的相关性。具体的步骤如下:

  1. Source-Domain Knowledge:将training图片分别喂到source-domain LSTD 和target-domain LSTD里面,然后将target-domain的proposals应用于source-domain LSTD的ROI池层,最终从源域目标分类器中生成知识向量:

    其中a_s是 pre-softmax activation vector for each object proposal,τ是参数,可以产生soften label和richer label-relation information。

  2. Target-Domian Prediction of Source-Domain Categories:将1中的target-domain LSTD微调成多任务学习框架:通过添加a source-object soften classifier at end of target-domain lSTD,然后对于每一个target proposal,该分类器会产生一个 soften prediction of source object categories:

    其中a_pre是 pre-softmax activation for each proposal.

  3. TK Regularization:计算knowledge p_ts of source-domain LSTD and the soften prediction p_pre of target-domain LSTD的交叉熵损失:

整个模型的训练过程:

参考:

1. http://blog.leanote.com/post/lilac_yue/%5BAAAI2018%5DLSTD

2. https://blog.csdn.net/u011630472/article/details/89216035

最新文章

  1. sublime text3 快捷方式汇总
  2. Add two numbers [LeetCode]
  3. HTML标签_01
  4. DKNightVersion 的实现 --- 如何为 iOS 应用添加夜间模式
  5. 《转》IIS中配置通配符应用程序映射
  6. Maya Calendar 分类: POJ 2015-06-11 21:44 12人阅读 评论(0) 收藏
  7. LintCode 子树
  8. Unity 制作RPG小地图
  9. Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署
  10. HashMap源码阅读
  11. linux C中调用shell命令和运行shell脚本
  12. C# 委托链(多播委托)
  13. Docker日志收集最佳实践
  14. 通过excel创建表
  15. mybatis映射文件#与$的使用,及参数传入规则
  16. 更改ORACLE归档路径及归档模式
  17. Hive学习笔记一
  18. 浅谈移动应用的跨平台开发工具(Xamarin和React Native)
  19. python学习之老男孩python全栈第九期_day004作业
  20. PAT 1077 互评成绩计算(20)(代码+思路)

热门文章

  1. PHP流程控制之嵌套if...else...elseif结构
  2. white-space
  3. 发布一个npm package
  4. ROS计算图级
  5. eclipse中Maven项目启动报错“3 字节的 UTF-8 序列的字节 3 无效。”
  6. P2831 愤怒的小鸟——状压
  7. P1338 末日的传说,P1372 P1414 又是毕业季——贪心
  8. Smali语法基础
  9. python eval的用法
  10. C++ 获取二维数组的一维长度