- 预训练:
使用数据集ImageNet 1000-class competition dataset。
欲训练网络为下图中的前20层卷积层+一个average-pooling层+一个full connected全连接层

花费时间约一周
达到精度为在ImageNet 2012 validation set上的top-5精度为88%

在所有训练和inference过程中使用的框架为Darknet
- 随后使用预训练model进行检测
基于Ren.etal所述,增加卷积层和全联接层可以提高网络检测效果,因此,作者在预训练model上增加了随机权重的4层卷积层和2层全连接层。并且由于引入网络后需要更多特征,从而把输入图像大小从224*224调整到448*448
网络最后输出类别概率和boundingbox坐标。并根据image的宽高将b-box的宽高归一化到0-1之间,根据b-box相对于grid cell的位置,将box坐标归一化到0-1之间。(这里使用的是leakly relu进行归一化,下图为使用函数参数,当x>0时,x为x,x<=0时,输出为0.1x)

【leakly relu和relu具体参考:https://blog.csdn.net/qq_37342061/article/details/99090590】
【relu是神经网络中最常用的激活函数,收敛速度快,但在负向传播时,由于此时输入为负,输出始终为0,梯度完全为0,神经元不能参与权重更新,relu作用失效,也就是神经元不学习了,这种现象叫“Dead Neuron” 神经元die了。leakly relu就是为了改进这点,通过将x的非常小的分量(0.1x)给予负输入来调整负值的零梯度问题】

![]()
- model优化:
1.
使用sum_square error(平方和误差)作为优化目标,虽然其易于优化,但用在这里并不太合适,因为它将定位误差和分类误差给予相同的权重,同样,将没有包含obj的cell和包含obj的cell给予相同的权重。这样的设置,会使这些置信度为0的cell的梯度以压倒性的优势超过包含obj的cell的梯度(不包含obj的cell比包含obj的cell多得多),这样会造成model的不稳定,且在早期训练中容易发散。

因此我们在优化时,
增加了b-boxes定位预测误差的权重(λcoord =5),减少了不包含obj的cell的置信度的权重(λnoobj =0.5)

2.
sum_squared error(平方和误差)还将大box和小box的loss同等对待,但是显而易见,误差偏移相同时,在小box上更加明显,因此我们最后不直接输出b-box的宽高,而是其宽高的平方根。
3.
YOLO会对每个grid cell预测多个b-box,在训练时,我们希望每个obj只由一个b-box负责预测,基于最高IOU,实现b-box和obj的“绑定”,这种方式下,b-box对预测大小、宽高比、类别的效果更好、
- loss function

其中
判断第i个grid cell是否含有obj,
判读是cell i中,第j个b-box是否负责这个obj的预测
前两项是b-box的coordinate误差,分别是坐标x、y的误差和box宽高的误差,第三项为不含有obj的b-box置信度误差,第四项为含有obj的b-box置信度误差,最后一项为识别类别的误差(classificattion error)。
loss function仅仅当obj存在于这个grid cell时会“penalizes”分类误差。
loss function仅仅当这个predictor负责预测这个obj时会“penalizes”定位误差(coordinate error)。
训练过程:

训练、测试集来自PASCAC VOC2007和2012,在2012上测试时,训练集包含了2007的测试集。
batch_size大小为64,momentum为0.9,decay学习率衰减因子为0.0005。
Learning Rate设置:
- 第一轮,缓慢地将学习率从0.001提高到0.001,如果一开始的学习率过高,会导致梯度不稳定而使模型发散
- 75轮使用0.001的Learning Rate
- 30轮使用0.001的Learning Rate
- 最后30轮使用0.0001的LearningRate
为了避免overfitting(过拟合),采取了以下措施:
- dropout技术。放在第一个全连接层后面。dropout技术是在训练过程中随机屏蔽或忽略(文中是以0.5的rate)一些神经元,相当于每次形成的网络结构、更新的权重都不一样,因此最后预测结果类似于多个model融合的结果。
- extensive data augmentation 数据增强。引入(最高为原图20%的)随机缩放和平移,以及(最高1.5倍)随机调整曝光和饱和度。
【overfitting过拟合:随着model的training,神经元的权重会和整个网络的上下文匹配,会针对某些特征进行调优,会产生一些特殊化,而这种特殊化会导致泛化能力很差,模型将会变得脆弱不堪,这种现象称为overfitting过拟合。】
- inference:
- 【机器学习中的inference和prediction:举个例子,如房屋价格受到诸如犯罪率、区位因素、空气质量、学区等因素影响,把所有的这些因素整体作为输入得到房屋价格则是prediction,而求解“学区”这一因素对房价的影响则是inference】
在PASCAC VOC上,每张照片预测98个b-box及每个box的类别概率,与基于分类器的一些方法相比,单个网络结构的YOLO非常快。
对于一些大的objs和一些靠近多个cell边缘的objs,可能被多个cell定位,此时我们用NMS非最大值抑制的方法。进行去重,提高mAP2-3%。
【mAP:mean average precision平均精确度的平均,参考博客: https://blog.csdn.net/qq_40765537/article/details/106394103】
浙公网安备 33010602011771号