赞
踩
1.首次使用GPU加速网络训练
2.ReLU激活函数
关于Sigmod,ReLU,LeakyReLU激活函数的比较
3.使用LRN局部响应归一化
4.在全连接层的前两层中使用了 Dropout 随机失活神经元操作,以减少过拟合
*Note:
经
过
卷
积
后
的
矩
阵
尺
寸
大
小
计
算
公
式
为
:
N
=
W
−
F
+
2
P
S
+
1
输
入
图
片
大
小
:
W
×
W
卷
积
核
尺
寸
:
F
×
F
步
长
s
t
r
i
d
e
:
S
p
a
d
d
i
n
g
值
:
P
经过卷积后的矩阵尺寸大小计算公式为:\\ N=\frac{W-F+2P}{S}+1\\ 输入图片大小:W \times W \quad 卷积核尺寸:F \times F \quad 步长stride:\ S \quad padding值:P
经过卷积后的矩阵尺寸大小计算公式为:N=SW−F+2P+1输入图片大小:W×W卷积核尺寸:F×F步长stride: Spadding值:P
–VERY DEEP CONVOLUTIONAL NETWORKS–
通过堆叠多个3x3的卷积核来替代大尺度卷积核 (减少所需参数)
可以通过堆叠两个3x3的卷积核替代5x5的卷积核,堆叠三个3x3的卷积核替代7x7的卷积核,它们拥有相同的感受野(receptive field).。
感
受
野
计
算
公
式
:
F
(
i
)
=
(
F
(
i
+
1
)
−
1
)
×
S
t
r
i
d
e
+
K
s
i
z
e
感受野计算公式:F(i)=(F(i+1)-1)\times Stride+Ksize
感受野计算公式:F(i)=(F(i+1)−1)×Stride+Ksize
2.通过堆叠3x3的卷积核减少了模型参数
3.LRN对模型效果没有改善
1.引入了Inception结构(融合不同尺度的特征信息)
2.使用1x1的卷积核进行降维以及映射处理
3.添加两个辅助分类器帮助训练
4.丢弃全连接层,使用平均池化层(大大减少模型参数)
**Question:**Is learning better networks as easy as stacking more layers?
Anwser:如图 所示,在训练集上,传统神经网络越深效果不一定越好。而 Deep Residual Learning for Image Recognition 这篇论文认为,理论上,可以训练一个 shallower 网络,然后在这个训练好的 shallower 网络上堆几层 identity mapping(恒等映射) 的层,即输出等于输入的层,构建出一个 deeper 网络。这两个网络(shallower 和 deeper)得到的结果应该是一模一样的,因为堆上去的层都是 identity mapping。这样可以得出一个结论:理论上,在训练集上,Deeper 不应该比 shallower 差,即越深的网络不会比浅层的网络效果差。但为什么会出现图 中 这样的情况呢,随着层数的增多,训练集上的效果变差?这被称为退化问题(degradation problem),原因是随着网络越来越深,训练变得原来越难,网络的优化变得越来越难。理论上,越深的网络,效果应该更好;但实际上,由于训练难度,过深的网络会产生退化问题,效果反而不如相对较浅的网络。而残差网络就可以解决这个问题的,残差网络越深,训练集上的效果会越好。(测试集上的效果可能涉及过拟合问题。过拟合问题指的是测试集上的效果和训练集上的效果之间有差距。)
文中对比了VGG19、34-layer plain(没有residue模块)、34-layer residual模型
1.超深的网络结构
->梯度消失或梯度爆炸问题
->退化问题Degration Problem:
2.提出residual模块
目的:使一批feature map满足均值为0,方差为1的分布规律
Input:
V
a
l
u
e
s
o
f
x
o
v
e
r
a
m
i
n
i
−
b
a
t
c
h
:
B
=
{
x
1...
m
}
;
P
a
r
a
m
e
t
e
r
s
t
o
b
e
l
e
a
r
n
e
d
:
γ
,
β
Output:
{
y
i
=
B
N
γ
,
β
(
x
i
)
}
μ
B
←
1
m
∑
i
=
1
m
x
m
/
/
m
i
n
i
−
b
a
t
c
h
m
e
a
n
σ
B
2
←
1
m
∑
i
=
1
m
(
x
i
−
μ
B
)
2
/
/
m
i
n
i
−
b
a
t
c
h
v
a
r
i
a
n
c
e
x
i
^
←
x
i
−
μ
B
σ
B
2
+
ϵ
/
/
n
o
r
m
a
l
i
z
e
y
i
←
γ
x
i
^
+
β
≡
B
N
γ
,
β
(
x
i
)
/
/
s
c
a
l
e
a
n
d
s
h
i
f
t
\textbf{Input:}Values\ of\ x\ over\ a\ mini-batch:B=\{ x_{1...m}\}; \\Parameters\ to\ be\ learned:\gamma,\beta\\ \textbf{Output:}\{y_i=BN_{\gamma,\beta}(x_i)\}\\ \mu_B \leftarrow \frac {1}{m} \sum_{i=1}^m x_m \qquad //mini-batch\ mean\\ \sigma_B^2 \leftarrow \frac{1}{m} \sum_{i=1}^m(x_i-\mu_B)^2 \qquad //mini-batch\ variance\\ \hat{x_i} \leftarrow \frac {x_i-\mu_B}{\sqrt{\sigma_B^2+\epsilon}} \qquad //normalize \\ y_i \leftarrow \gamma \hat{x_i}+\beta \equiv BN_{\gamma,\beta}(x_i) \qquad //scale\ and\ shift
Input:Values of x over a mini−batch:B={x1...m};Parameters to be learned:γ,βOutput:{yi=BNγ,β(xi)}μB←m1i=1∑mxm//mini−batch meanσB2←m1i=1∑m(xi−μB)2//mini−batch variancexi^←σB2+ϵ
xi−μB//normalizeyi←γxi^+β≡BNγ,β(xi)//scale and shift
我们给一个网络不论在中间还是末尾加上一个残差块,并给残差块中的 weights 加上 L2 regularization(weight decay),这样F(x)=0 是很容易的。这种情况下加上一个残差块和不加之前的效果会是一样,所以加上残差块不会使得效果变得差。如果残差块中的隐藏单元学到了一些有用信息,那么它可能比 identity mapping(即 F(x)=0)表现的更好。
*Note:–迁移学习–
优势:
常见的迁移学习方式
一张图像生成1000~2000个候选区域(Proposals),采用Selective Search方法
对每个候选区域,使用深度网络提取特征
特征送入每一类的SVM分类器,判别是否属于该类
将2000×4096的特征矩阵与20个SVM组成的权值矩阵4096×20
相乘,获得2000×20的概率矩阵,每一行代表一个建议框归于每个
目标类别的概率。分别对上述2000×20维矩阵中每一列即每一类进
行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一
些建议框。
使用回归器精细修正候选框位置
论文指出了R-CNN存在的问题
测试速度慢:测试一张图片约53s(CPU)。用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征操作冗余;训练速度慢;训练所需空间大。
Fast_RCNN的主要贡献:
一次性计算整张图像特征
训练数据的采样(计算Loss时正、负样本选取)
损失函数 Multi-task loss
L
(
p
,
u
,
t
u
,
v
)
=
L
c
l
s
(
p
,
u
)
+
λ
[
u
≥
1
]
L
l
o
c
(
t
u
,
v
)
p
是
分
类
器
预
测
的
s
o
f
t
m
a
x
概
率
分
布
p
=
{
p
0
,
.
.
.
,
p
k
}
u
对
应
目
标
真
实
类
别
标
签
分
类
损
失
:
L
c
l
s
(
p
,
u
)
=
−
l
o
g
p
u
边
界
框
回
归
损
失
:
L
l
o
c
(
t
u
,
v
)
=
∑
i
∈
{
x
,
y
,
w
,
h
}
s
m
o
o
t
h
L
1
(
t
i
u
−
v
i
)
s
m
o
o
t
h
L
1
(
x
)
=
{
0.5
x
2
i
f
∣
x
∣
<
1
∣
x
∣
−
0.5
o
t
h
e
r
w
i
s
e
L(p,u,t^u,v)=L_{cls}(p,u)+\lambda[u\ge1]L_{loc}(t^u,v) \\p是分类器预测的softmax概率分布p=\{p_0,...,p_k\} \\u对应目标真实类别标签 \\分类损失:L_{cls}(p,u)=-log\ p_u \\边界框回归损失:L_{loc}(t^u,v)=\sum_{i\in \{x,y,w,h \}}smooth_{L_1}(t_i^u-v_i) \\ smooth_{L_1}(x)= \left\{
对于一张1000x600x3的图像,大约有60x40x9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。
正负样本选取
RPN损失函数
L ( p i , t i ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) p i 表 示 第 i 个 a n c h o r 预 测 为 真 实 标 签 的 概 率 p i ∗ 当 为 正 样 本 时 为 , 当 为 负 样 本 时 为 0 t i 表 示 预 测 第 i 个 a n c h o r 的 边 界 框 回 归 参 数 t i ∗ 表 示 第 i 个 a n c h o r 对 应 的 G T B o x 的 边 界 回 归 参 数 N c l s 表 示 一 个 m i n i − b a t c h 中 的 样 本 数 量 256 N r e g 表 示 a n c h o r 位 置 的 个 数 , 约 2400 L({p_i},{t_i})=\frac {1}{N_{cls}}\sum_i L_{cls}(p_i,p_i^*)+\lambda \frac {1}{N_{reg}}\sum_i p_i^* L_{reg}(t_i,t_i^*) \\p_i表示第i个anchor预测为真实标签的概率 \\p_i^*当为正样本时为,当为负样本时为0 \\t_i表示预测第i个anchor的边界框回归参数 \\t_i^*表示第i个anchor对应的GTBox的边界回归参数 \\N_{cls}表示一个mini-batch中的样本数量256 \\N_{reg}表示anchor位置的个数,约2400 L(pi,ti)=Ncls1i∑Lcls(pi,pi∗)+λNreg1i∑pi∗Lreg(ti,ti∗)pi表示第i个anchor预测为真实标签的概率pi∗当为正样本时为,当为负样本时为0ti表示预测第i个anchor的边界框回归参数ti∗表示第i个anchor对应的GTBox的边界回归参数Ncls表示一个mini−batch中的样本数量256Nreg表示anchor位置的个数,约2400
Two_stages典型框架
简介:SSD网络是作者Wei Liu在ECCV 2016上发表的论文。对于输入尺寸300x300的网络使用Nvidia Titan X在VOC 2007测试集上达到74.3%mAP以及59FPS,对于512x512的网络,达到了76.9%mAP超越当时最强的Faster RCNN(73.2%mAP)。真正的实时
Faster RCNN存在的问题
One_stage
在不同特征尺度上预测不同尺度的目标
Default Box 的scale以及aspect设定
Predictor的实现
正负样本的选取
表现:mAP:63.4% 45FPS 448x448
将一幅图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object
每个网格要预测B个bounding box,每个bounding box除了要预测位置之外,还要附带预测一个confidence值。每个网格还要预测C个类别的分数
YOLOv2的尝试:
Batch Normalization
High Resolution Classifier
Convolutional With Anchor Boxes
Dimension Clusters聚类
Direct location prediction
Fine-Grained Features
引入passthrough layer,将低层的feature与高层的进行拼接
Multi-Scale Training
每经过10个batches网络会随机选择新的图像输入尺寸,增加了网络在处理不同尺寸大小图片时的鲁棒性。
Mosaic图像增强
SPP模块
CIOU Loss
一个优秀的回归定位损失应该考虑到3种几何参数:
重叠面积 中心点距离 长宽比
C
I
o
U
=
I
o
U
−
(
ρ
2
(
b
,
b
g
t
)
c
2
+
α
v
)
v
=
4
π
2
(
arctan
w
g
t
h
g
t
−
arctan
w
h
)
2
α
=
v
(
1
−
I
o
U
)
+
v
L
C
I
o
U
=
1
−
C
I
o
U
C I o U=I o U-\left(\frac{\rho^{2}\left(b, b^{g t}\right)}{c^{2}}+\alpha v\right) \\v=\frac{4}{\pi^{2}}\left(\arctan \frac{w^{g t}}{h^{gt} }-\arctan \frac{w}{h}\right)^{2} \\\alpha=\frac{v}{(1-I o U)+v} \\L_{CIoU}=1-CIoU
CIoU=IoU−(c2ρ2(b,bgt)+αv)v=π24(arctanhgtwgt−arctanhw)2α=(1−IoU)+vvLCIoU=1−CIoU
Focal Loss
Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重
二
分
类
交
叉
熵
损
失
:
C
E
(
p
,
y
)
=
{
−
log
(
p
)
if
y
=
1
−
log
(
1
−
p
)
otherwise
为
了
方
便
,
用
p
t
表
示
样
本
为
t
r
u
e
c
l
a
s
s
的
概
率
则
p
t
=
{
p
if
y
=
1
1
−
p
otherwise
C
E
(
p
,
y
)
=
C
E
(
p
t
)
=
−
log
(
p
t
)
引
入
调
制
系
数
(
1
−
p
t
)
γ
F
L
(
p
t
)
=
−
(
1
−
p
t
)
γ
log
(
p
t
)
二分类交叉熵损失:\mathrm{CE}(p, y)=\left\{
两个重要性质:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。