网络结构
特征
1、分而治之的思想,划分单元格来检测。
2、Leaky Relu作为激活函数,斜率是0.1。
3、端到端训练,一个loss function((x,y)、(w,h)、class、confidence四个损失相加,其中(w,h)用差方,其他用二值交叉熵)搞定训练,只需要关注输入/输出端。
4、BN层接在每次卷积层后面,作为正则化、加速收敛、避免过拟合的方法。
5、多尺度训练,在速度和准确率之间权衡。
6、没有池化层和全连接层。通过改变卷积核的步长来实现张量的尺寸变换。
7、3个不同尺度的feature map,深度都是255((x、y、w、h、confidence五个基本参数+80个类别概率)*3(每个网格预测预测3个box)=255),边长规律是13、26、52。用K-means聚类得到先验框的尺寸,YOLO3延续了这种方法,为每种下采样尺度设定3种先验框,总共聚类出9种尺寸的先验框。在最小的13*13特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326),适合检测较大的对象。中等的26*26特征图上(中等感受野)应用中等的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。较大的52*52特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象。
8、使用logistic的输出进行预测。
9、DBL=卷积层+BN层+LeakyRelu激活层
10、BN层:解决在训练过程中,中间层数据分布发生改变的情况。为了防止普通的归一化破坏特征分布,引入变换重构,引入了可学习参数γ、β。作用是:解决梯度消失和梯度爆炸(经过全连接或者卷积层时,也要乘以权重w,如果w都比较大,大过sigmod造成的减小,这样越往前误差就越来越大,梯度爆炸);允许更大学习率,提高速度;减少对初始化的强依赖;改善正则化策略;可以把训练数据彻底打乱。
注——感受野:卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。