目标检测
目标检测,不仅要识别目标是什么(分类),还要知道目标的具体位置(可以当作回归来做)。
RCNN
Selective Search 算法获得候选框,Alexnet提取特征,SVM对每个候选框区域打分。对于重叠的区域,通过计算IoU和非极大值抑制,剔除重叠的区域。imagenet到VOC的迁移学习,VOC只有21个类,其中一类是背景。
YOLO
you only look once,属于one stage检测,因为不需要提前使用其他的算法获得候选区域。虽然不是显式地找候选框,隐式的也是少不了的。YOLO把图像均匀分成SxS的格子,每个格子预测B个候选框,一般取S=7,B=2,这样得到98个候选框。虽然有这么多BBox,但是有些是没有意义的,因为其对应的格子就不包含object。不包含object的cell肯定不予考虑,那么包含着object的呢,也要打分排序:与groundtruth的IoU越高,得分也越高,这个得分叫做置信度confidence。更进一步,即便有一些cell的置信度都很高,得分都一样,但是他们的重要程度可能还是不一样的:那些object的中心落在哪个cell中,哪个cell的重要性更高,可以为这个object负责。这个重要程度以条件概率的形式给出,即这个cell是属于某个object的前提下,属于class i的概率。
YOLO v1 的模型结构受 GoogLeNet 启发。但是,有少许不同。YOLO 采用了 1x1 和 3x3 的序列组合替代 Inception 模块。YOLO 模型的最后一层是一个 7x7x30 的 tensor,怎么理解呢?7x7自然对应的是空域中的均匀分割,每一个cell对应2个BBox,每个BBox对应两个内容,一个是空间位置(中心点坐标x,y,长宽w,h,通道数c),一个是对应各个类别的概率(20类,长度20),所以最终的输出就是7x7x((2+2+1)*2+20))
AlenNet
成功使用了Relu,成功使用了Dropout,成功使用了重叠的最大池化(最大池化相比于平均池化,避免了模糊效应;而重叠的是通过步长小于池化核,使得输出之前有重叠,提升了特征的丰富性)。注意这里都是“成功应用”,而不是提出,AlenNet提出的贡献是LRN。
local response normalization
这里的作用也是避免过拟合,提升泛化能力。思路是为局部神经元创建竞争机制,模拟生物学中的“侧抑制“,反馈大的被激活,反馈小的被抑制。
vgg
inception
Inception是GoogleNet中的一个模块。这个词的本意是开端,同时也作为《盗梦空间》的英文名。模块起这个名字正是为了像盗梦空间一样进入更深的“梦境”。在更深之前,首先是更宽。既然卷积核的大小有限制,太大不行,太小也不行,那就用多个不同尺寸的卷积核,不同卷积核的输出不再是对应像素相加,而是级联起来,送入下一层。
那么,Inception具体选取了哪几个尺寸的卷积核呢。1x1,3x3和5x5,还有一个最大池化层,相当于Inception模块不仅要帮助你决定卷积核的尺寸,还要决定是否使用池化层。1x1卷积和其他卷积其实本质是一样的,都是跨通道的线性组合,只不过它没有改变特征图的分辨率,所以可以认为是在通道维度降低了维度(当然也可以升维,与滤波器个数有关)。既然1x1卷积可以降维,那么就可以在Inception中的卷积之前,池化之后加一步1x1卷积,降低计算量,这就是Inception V1。
网络更宽了,就可以更深吗?我们知道,更深的话容易遇到梯度消失的问题,其实在这里这个问题依然存在。为了解决这个问题,GoogleNet额外增加了两个辅助的softmax。具体做法是对其中的两个Inception模块,他们的输出一方面进入下一个Inception,一方面会在平均池化后使用1x1降维,再经过全连接,进入softmax激活层。
ResNet
既然梯度消失是层层累积造成的现象,那么我们可不可以让某些层跳过之前的几层,得到梯度消失之前的信息?ResNet就是这样做到,同时给这种短路机制的想法赋予了一个更高大上其实也更合理的解释:这种结构不再是让网络直接学习目标值,而是让接下来的网络学习之前学习的结果与目的的差值。在不断减小残差的同时,也得到了更加准确的预测。当残差为0时,这一模块即为恒等映射
事实上,ResNet作为2016年的最佳CVPR论文,在ImageNet分类竞赛中,将DNN的深度从VGG的16层提升到了152层。对于更深的DNN,每个Res模块的深度也可以从两层增加到三层:
ResNet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度。对于短路连接,当输入和输出维度一致时,可以直接将输入加到输出上。但是当维度不一致时(对应的是维度增加一倍),这就不能直接相加。有两种策略:(1)采用zero-padding增加维度,此时一般要先做一个downsamp,可以采用strde=2的pooling,这样不会增加参数;(2)采用新的映射(projection shortcut),一般采用1x1的卷积,这样会增加参数,也会增加计算量。短路连接除了直接使用恒等映射,当然都可以采用projection shortcut。https://zhuanlan.zhihu.com/p/31852747
DenseNet
mobile net
https://blog.csdn.net/briblue/article/details/82012575
https://www.cnblogs.com/dengshunge/p/10808191.html