招投标网站建设开发,php网站怎么做,wordpress 加入 swf,如何建设专业化的网站一、提出背景 当前一阶的物体检测算法#xff0c;如SSD和YOLO等虽然实现了实时的速度#xff0c;但精度始终无法与两阶的Faster RCNN相比。是什么阻碍了一阶算法的高精度呢#xff1f;何凯明等人将其归咎于正、负样本的不平衡#xff0c;并基于此提出了新的损失函数Focal L…一、提出背景 当前一阶的物体检测算法如SSD和YOLO等虽然实现了实时的速度但精度始终无法与两阶的Faster RCNN相比。是什么阻碍了一阶算法的高精度呢何凯明等人将其归咎于正、负样本的不平衡并基于此提出了新的损失函数Focal Loss及网络结构RetinaNet在与同期一阶网络速度相同的前提下其检测精度比同期最优的二阶网络还要高。 为了解决一阶网络中样本的不均衡问题何凯明等人首先改善了分类过程中的交叉熵函数提出了可以动态调整权重的Focal Loss。
二、交叉熵损失
1. 标准交叉熵损失 标准的交叉熵函数其形式如式2-1所示 CE(p,y){−log(p)if(y1)−log(1−p)otherwise(2-1)CE(p,y)\left\{\begin{matrix} -log(p) if(y1) \\ -log(1-p) otherwise \end{matrix}\right.\tag{2-1}CE(p,y){−log(p)−log(1−p)if(y1)otherwise(2-1) 公式中ppp代表样本在该类别的预测概率yyy代表样本标签。可以看出当标签为1时ppp越接近1则损失越小标签为0时ppp越接近0则损失越小符合优化的方向。 为了方便表示按照式2-2将ppp标记为ptp_{t}pt pt{pif(y1)1−potherwise(2-2)p_{t}\left\{\begin{matrix} p if(y1) \\ 1-p otherwise \end{matrix}\right.\tag{2-2}pt{p1−pif(y1)otherwise(2-2) 则交叉熵可以表示为式2-3的形式 CE(p,y)CE(pi)−log(pi)(2-3)CE(p,y)CE(p_{i})-log(p_{i})\tag{2-3}CE(p,y)CE(pi)−log(pi)(2-3) 标准的交叉熵中所有样本的权重都是相同的因此如果正、负样本不均衡大量简单的负样本会占据主导地位少量的难样本与正样本会起不到作用导致精度变差。
2. 平衡交叉熵损失 为了改善样本的不平衡问题平衡交叉熵在标准的基础上增加了一个系数αt\alpha _{t}αt来平衡正、负样本的权重αt\alpha _{t}αt由超参数α\alphaα按照式2-4计算得来α\alphaα取值在[0,1]区间内。
αt{αif(y1)1−αotherwise(2-4)\alpha _{t}\left\{\begin{matrix} \alpha if(y1) \\ 1-\alpha otherwise \end{matrix}\right.\tag{2-4}αt{α1−αif(y1)otherwise(2-4) 有了αt\alpha _{t}αt平衡交叉熵损失公式如式2-5所示
CE(pt)−αtlog(pt)(2-5)CE(p_{t})-\alpha _{t}log(p_{t})\tag{2-5}CE(pt)−αtlog(pt)(2-5) 尽管平衡交叉熵损失改善了正、负样本间的不平衡但由于其缺乏对难易样本的区分因此没有办法控制难易样本之间的不均衡。
三、Focal Loss Focal Loss为了同时调节正、负样本与难易样本提出了如式3-1所示的损失函数
FL(pt)−αt(1−pt)γlog(pt)(3-1)FL(p_{t})-\alpha_{t}(1-p_{t})^{\gamma}log(p_{t})\tag{3-1}FL(pt)−αt(1−pt)γlog(pt)(3-1) 对于该损失函数又如下3个属性
与平衡交叉熵类似引入了αt\alpha_{t}αt权重为了改善正负样本的不均衡可以提升一些精度。(1−pt)γ(1-p_{t})^{\gamma}(1−pt)γ是为了调节难易样本的权重。当一个边框被误分类时ptp_{t}pt较小则(1−pt)γ(1-p_{t})^{\gamma}(1−pt)γ接近于1其损失几乎不受影响当ptp_{t}pt接近于1时表明其分类预测较好是简单样本(1−pt)γ(1-p_{t})^{\gamma}(1−pt)γ接近于0因此其损失被调低了。γ\gammaγ是一个调制因子γ\gammaγ越大简单样本损失的贡献度会越低
四、RetinaNet 为了验证Focal Loss的效果何凯明等人还提出了一个一阶物体检测结构RetinaNet其结构如图4-1所示 图4-1 RetinaNet网络结构图 在Backbone部分RetinaNet利用ResNet与FPN构建了一个多尺度特征的特征金字塔。RetinaNet使用了类似于Anchor的预选框在每一个金字塔层使用了9个大小不同的预选框。分类子网络分类子网络为每一个预选框预测其类别因此其输出特征大小为KA×W×HA默认为9K代表类别数。中间使用全卷积网络与ReLU激活函数最后利用Sigmoid函数输出预测值。回归子网络回归子网络与分类子网络平行预测每一个预测框的偏移量最终输出特征的大小为4A×W×W。与当前主流工作不同的是两个子网络没有权重的共享。