第八章 目标检测
Two Stage 目标检测模型(效果好,但速度相对慢):
- R-CNN:R-CNN系列的第一代算法,结合了传统的“计算机视觉”知识;将预训练模型(比如CNN)的隐藏层输出作为图像特征,特征输入支持向量机用于预测分类,图像特征+候选边界框输入线性回归模型用于预测真实边界框
- Fast R-CNN:基于R-CNN和SPPnets进行的改进;1. 只对整幅图像进行一次特征提取,避免R-CNN中的冗余特征提取 2. 用RoI pooling(兴趣区域池化)层替换最后一层的max pooling层, 并引入目标候选框 3. 端到端训练,同时输出分类和回归结果 4. SVD 分解减少计算量
- Faster R-CNN:提出RPN(region proposal network)网络替代之前复杂的目标候选框的搜索过程,在保证目标检测精度的同时,减少目标候选框的生成量
- FPN:在Faster R-CNN网络上加上了额外的跨层连接,每一层的 feature map 都融合了不同分辨率、不同语义强度的特征;提高了针对小物体(small object)的检测性能
- Mask R-CNN:Backbone 是 ResNeXt-101+FPN;提出了RoI Align层以取代Faster R-CNN的RoI pooling层,更好地保留特征图上的空间信息,从而更适于像素级预测
- DetNet:针对检测专用的backbone做一些讨论和研究
- CBNet:经典网络(ResNet,ResNeXt等)的多模型特征融合
One Stage 目标检测模型(速度快,但效果一般):
- SSD:使用 VGG16 网络作为特征提取器(和 Faster R-CNN 一样),将后面的全连接层替换成卷积层,最后直接采用卷积进行目标检测(预测类别和边界框)
- DSSD:将 Backbone 替换为 ResNet网络来增强特征提取能力;利用 Deconvolution结构来关联不同层级之间的图像语义,解决SSD算法检测小目标困难的问题
- YOLO v1:One Stage 的开山之作,将目标检测任务直接当作回归问题
- YOLO v2:在 YOLO v1 的基础上引入了联合训练算法(引入两种数据集分别进行分类和位置预测的学习)、批量归一化(BN)、高分辨率图像微调、预设尺寸组的锚框、多尺度图像训练等技巧,在精准度和运行效率方面均有显著提高
- YOLO 9000:在YOLOv2的基础上的联合训练,可以检测超过9000个类别
- YOLO v3:使用残差模型(DarkNet-53),进一步加深了网络结构;使用FPN架构从不同尺度提取图像特征;用逻辑回归替代softmax作为分类器
- RetinaNet:提出 Focal Loss 解决类别不平衡问题,聚焦困难样本(hard examples)上的训练
- RFBNet:通过多尺度的多分支卷积+空洞卷积,平衡轻量级模型的运行速度和精度
- M2Det:提出多层次特征金字塔网络(MLFPN)来构建特征,适用于检测不同尺度的对象
目标检测的常用数据集:PASCAL VOC(20类别)、MS COCO(80类别)、Google Open Image(190W+600类别)、ImageNet(1400w+2w类别)、DOTA(遥感航空图像)
目标检测常用标注工具:LabelImg、labelme、Labelbox、RectLabel、CVAT、VIA
第九章 图像分割
- FCN与CNN的区别在于把最后的全连接层换成卷积层(局部连接+参数共享),后接 softmax 层获得每个像素点的分类信息,从而解决了分割问题
- DeepLab v1:结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)
- DeepLab v2:使用空洞卷积取代部分下采样,改善特征的分辨率;多个 MLP 结合多尺度特征来多识别物体的多尺度;采样全连接的 CRF 来增强模型捕捉细节的能力
- DeepLab v3:采用多比例的带孔卷积级联或并行来捕获多尺度背景
其他:略(部分内容和上一章重合)
第十章 强化学习
- 除了上述深度强化学习算法,还有深度迁移强化学习、分层深度强化学习、深度记忆强化学习以及多智能体强化学习等算法。
第十一章 迁移学习
本章绝大部分内容均来自《迁移学习简明手册》
迁移学习的核心是:找到源领域和目标领域之间的相似性,并加以合理利用
源域 (Source domain):已有知识的域;目标域 (Target domain):要进行学习的域
迁移学习的分类:
- 按特征空间分类
- 同构迁移学习(Homogeneous TL): 源域和目标域的特征空间相同,$D_s=D_t$
- 异构迁移学习(Heterogeneous TL):源域和目标域的特征空间不同,$D_s\ne D_t$
- 按迁移情景分类
- 归纳式迁移学习(Inductive TL):源域和目标域的学习任务不同
- 直推式迁移学习(Transductive TL):源域和目标域不同,学习任务相同
- 无监督迁移学习(Unsupervised TL):源域和目标域均没有标签
- 按迁移方法分类
- 基于实例的迁移 (Instance based TL):通过权重重用源域和目标域的样例进行迁移
- 基于特征的迁移 (Feature based TL):将源域和目标域的特征变换到相同空间
- 基于模型的迁移 (Parameter based TL):利用源域和目标域的参数共享模型
- 基于关系的迁移 (Relation based TL):利用源域中的逻辑网络关系进行迁移
负迁移(Negative Transfer):在源域上学习到的知识,对目标域上的学习产生负面作用
迁移学习的基本方法:
- 基于样本的迁移学习方法:根据一定的权重生成规则,对数据样本进行重用,来进行迁移学习(从动物识别到猫狗识别->增大猫狗的样本权重)
- 基于特征的迁移方法:通过特征变换的方式互相迁移来减少源域和目标域之间的差距;或者将源域和目标域的数据特征变换到统一特征空间,然后通过机器学习方法进行分类识别
- 基于模型的迁移方法:从源域和目标域中找到他们之间共享的参数信息,以实现迁移(假设条件: 源域中的数据与目标域中的数据可以共享一些模型的参数)
- 基于关系的迁移学习方法:关注源域和目标域的样本之间的关系(上课 vs 开会)
SGF 流形迁移学习:
- 把源域和目标域分别看成高维空间 (即Grassmann流形)中的两个点,在这两个点的测地线距离上取d个中间点,然后依次连接起来。这样源域和目标域就构成了一条测地线的路径
- 核心思想:只需要找到合适的每一步的变换,就能从源域变换到目标域
- 技巧1:通过核学习的方法利用路径上的无穷个点的积分,确定中间点的个数d
- 技巧2:提出Rank of Domain度量,找出跟目标域最近的源域(多个源域的选择)