文章目录
深度网络
CNN
ResNet
问题:当网络加深,学习效果很差
动机:在已存在的浅层网络上加入很多恒等映射层,这样能保证学习效果不差于千层网络,受此启发,提出ResNet
解释:(1) 保证信息流动。当网络比较深,反向传播时,不同层梯度之间的相关性下降,极端情况就是梯度变化出现随机性,近似于白噪声,这样网络的训练就很差。而当加入shortcuts,一部分梯度会直接往回传,梯度的相关性能够保持,这样也保证了梯度的信息流动。
(2) 特征的组合。不同的特征可能在不同的层出现,识别某个物体可能同时需要这些特征,残差网络能实现不同层提取特征的组合。
此外,当网络层数较少时,Residual Net提升的效果不明显,但是能加速网络的收敛。
DenseNet
优点:
- 特征复用
- 有利于梯度传播,更容易收敛
VGG
Inception
成功的关键:multi-branch feature maps和multi-scale kernel
v1: 33 和 55卷积之前加一个11, maxpooling之后加一个11,目的减少计算量
v2: 两个33代替一个55,一个nn的卷积可以用1n和n1来代替
v3: 加BN、77卷积分解成3个33
v4: 修改Stem和添加short cut结构
与Resnet的关系,11卷积的特征实际上包含了前一层的信息,相当于shortcut的作用
MobileNet v2
linear bottleneck
layer的特征mainfold of interest可以在低维空间表达,如果使用ReLU会使得信息损失较多,因此采用linear bottleneck
inverted residual block
在linear bottleneck之间加上shortcut,构成类似于residual block的结构,区别在于residual block先降维后升维,而block先升维后降维(为什么要这样,可以理解为克服ReLU低维空间下信息损失较多的缺点)
ReLU
Leaky ReLU: x<0 时斜率为固定值
PReLU: x<0时斜率为一个参数,与神经网络中的参数类似,学习出来的
RReLU: x<0时斜率在一个范围内随机选择,测试时固定
Batch Normalization
梯度弥散、梯度爆炸
梯度爆炸:从BP的反向传播解释,链式求导使得求梯度公式中有很多的权重项相乘,这样当很多大于1的权重项相乘时,会出现梯度爆炸。
解决办法:正则化(控制权重大小),ReLU(导数为1),gradient clipping (归一化误差项(gradient scaling)或者当梯度超过一定范围时进行裁剪(gradient clipping))
梯度弥散:(1) BP反向传播,同上,当很多权重小于1时,就会出现梯度弥散;(2) 使用激活函数时,当输出值位于激活函数非线性区域的饱和区时,梯度很小趋近于0,根据梯度求导公式,此时梯度也会趋近于0,梯度弥散出现。
解决办法:BN、ReLU、gradient clipping
RNN、LSTM
RNN问题:梯度弥散,RNN当前不能有长距离的依赖,这是因为long-term依赖会出现梯度弥散(参考梯度弥散产生原因);
LSTM:LSTM相比于RNN增加了cell gate,遗忘门,输入门,输出门,这些门限能够使网络去处理或解决这种long-term依赖。
BN、GN、LN、IN
BN: NHW 维度求均值
LN: C * H * W
IN: H * W
GN: C / g * H * W
目标检测
RCNN
Fast RCNN
相比于RCNN
Faster RCNN
相比于Fast RCNN
YOLO
YOLO演变:
(1) Network architecture: replace fc with conv (v2), backbone Darknet-19 (v2) to Darknet-53 (v3)
(2) Multi-scale: v1 do nothing, v2 trained on multi-scale images, v3 prediction boxes on feature maps with different resolutions.
(3) prior boxes: directly outputs boxes (v1), predict 5 boxes at each location (v2), predict 3 boxes at each location in different feature maps (v3), use k-means to preset the anchors
(4) loss function: softmax loss (v2), sigmoid loss (v3), improve bounding box regression by constrain the center parameters in (0, 1) with sigmoid function (v2).
SSD
SSD问题:为什么小目标检测效果差
(1) 语义信息与分辨率大小的矛盾,小目标物体一般需要大分辨率的feature,但这样语义信息不够;
(2) 小物体与anchor匹配的数量少,导致关注不够,得不到足够的小物体训练样本
anchor选择
通过该公式
s
k
s_k
sk 和
s
k
+
1
s_{k+1}
sk+1作为第k个feature map的min和max尺寸,default boxes主要分成三个部分:
- 以min为边的正方形;
2)以sqrt(min*max)作为边的正方形;
3)以min作为面积,根据设置的不同比例计算框的height和width.
小目标检测
三个方面展开:
(1) 从augment角度:一是对含有小目标的样本重采样,二是对样本中的小目标进行重采样(如1个球变成多个球);
(2) 从特征提取的角度考虑:Deformable Convolutional Networks、FPN;
(3) Loss:小目标regresion损失加上
(
2
−
h
×
w
)
(2-h \times w)
(2−h×w),还可以变成 (2-w*h)*1.5,性能会上涨
Anchor-free based object detection
CornerNet
- 不用设置anchor,直接预测top-left和bottom-down corners.
- 网络的输出分为三部分:heatmaps (corner位置预测)、offsets (下采样会导致精度下降,要做偏移调整)、corners match (预测两个vector,根据对应位置的距离来匹配)
- Corner pooling:包含两个分别为 top-left corner pooling 和 bottom-right corner pooling,
top-left corner pooling: 从右至左和从下至上的每个位置分别求最大值,得到两个结果求和,如下:
bottom-right corner pooling: 从左至右和从上至下的每个位置分别求最大值,得到两个结果求和,与top-left corner pooling相反