IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> (论文解读)Towards Accurate One-Stage Object Detection with AP-Loss -> 正文阅读

[人工智能](论文解读)Towards Accurate One-Stage Object Detection with AP-Loss

论文解读之:

Towards Accurate One-Stage Object Detection with AP-Loss

这篇论文是关于one-stage目标检测的一篇论文,作者通过提出一种AP损失,直接对评价指标构成的损失函数进行训练。
在这里插入图片描述

写在前面

在目标检测领域,有着两种主要的思路:One-stage与Two-stage。其中,one-stage的目标检测是同时进行目标的定位与识别,而two-stage是分为两步,首先生成一系列候选框,然后对其进行识别分类。one-stage方法包括YOLO、SSD等常见网络,而two-stage方法包括Faster RCNN等常见网络。
两种目标检测的思路各有利弊,one-stage的方法效率高,但是准确率不如two-stage。这篇文章的作者研究了one-stage的问题。在one-stage目标检测中,一个重要的问题就是锚点数量过大,导致了前背景极度不平衡。
在目标检测中,常用的评价指标包括mean AP、IoU等。其中AP是不可微的,且是非凸的,所以如果使用传统的梯度下降方法无法进行优化。所以之前的方法都是构造其他损失函数,而我们能不能把AP构造成能学习的损失函数呢?如果可以的话,从评价指标的角度看这样的学习更直接。
另外,还有一个很尴尬的情况,就是由于正负样本不均衡的原因,导致检测的结果很垃圾但是分类准确率依然很高,如下图所示:
在这里插入图片描述
本文的作者提出了一种使用AP loss的学习方法,根据论文中的说法,本篇论文的贡献如下:

贡献

  • 提出了一种新的one-stage目标检测框架,该框架采用排序损失来处理不平衡问题。
  • 提出了一种误差驱动学习算法,通过理论和实验验证,该算法能够有效地优化不可微且非凸的基于AP的损失函数。
  • 在不改变模型结构的情况下,对于不同类型的分类损失,文章提出的方法性能能达到先进水平。

作者主要提出了AP损失,并创造了学习这种不可微损失的学习方法。其中AP损失是通过将分类问题替换为排序问题设计出来的。所以理解本文主要分为两个部分:损失函数设计与训练方法。

AP损失函数

首先,在传统检测器特征提取后,每个anchor box将产生K+1维的得分,分别对应K个类别和背景。为了便于后面排序,作者将每个anchor box复制K个,每个anchor box在特征提取阶段仅得到一个得分,用于代表对应的某一个类的得分。
B B B为anchor box集合, b i b_i bi?为第 i i i个anchor box。在检测器提取特征后,每一个anchor box得到一个得分 s i s_i si?和一个二进制标签 t i t_i ti?,这个标签指示这个anchor box是前景还是背景,前景取1,背景取0。
然后计算差分,将 s i s_i si?转为 x i j x_{ij} xij?,其中 θ \theta θ为特征提取过程中CNN的参数。
在这里插入图片描述
这个 x i j x_{ij} xij?就指示了 s i s_i si?的排序,如果 x i j > 0 x_{ij}>0 xij?>0说明 s i s_i si?排在 s j s_j sj?后面。所以可以想到,统计对于同一个 i i i时,所有 j j j x i j > 0 x_{ij}>0 xij?>0的个数,就得到了 s i s_i si?的排序。
接着,作者将 t i t_i ti?转化为了 y i j y_{ij} yij?
在这里插入图片描述
即只有当 i i i为前景, j j j为背景时, y i j y_{ij} yij?取1。
接着就能得到当前排序在总体中的占比,其中分母上加一表示加上 k = i k=i k=i的那一个:
在这里插入图片描述
其中 H ( . ) H(.) H(.)为阶跃函数:
在这里插入图片描述
P \mathcal P P表示前景anchor box,即正样本, N \mathcal N N表示背景anchor box,即负样本。
最终AP损失可以表示为:
在这里插入图片描述
其中 r a n k ( i ) rank(i) rank(i)为第 i i i个anchor box在所有anchor box中的排序, r a n k + ( i ) rank^+(i) rank+(i)表示第 i i i个anchor box在正样本中的排序。在正样本中的排序肯定小于总的排序,当所有正样本都排在负样本前面时,这个分式值为1,即是最大值,所以这样设计是合理的,最终的 L A P L_{AP} LAP?越小越好,所以优化目标可以写为:
在这里插入图片描述
由于函数 L ( . ) L(.) L(.)是不可微的,所以不能用梯度下降来学习,需要新的学习策略,这就是作者在下文中提出的学习策略。

优化算法

作者的方法结构如下图所示:
其中Difference Transformation就是上述 s i 、 s j s_i、s_j si?sj? x i j x_{ij} xij?的转换,Activation Function就是上述 L i j ( x ) L_{ij}(x) Lij?(x),Ranking Label Transformation就是上述 t i 、 t j t_i、t_j ti?tj? y i j y_{ij} yij?的转换。
在这里插入图片描述
由整个流程可以看出,目前损失函数AP loss由前面得出的 L i j L_{ij} Lij?产生,在反向传播的时候不可导的部分就是Activation Function。所以在这个位置设计优化算法,得到 x i j x_{ij} xij?的更新值 Δ x i j \Delta x_{ij} Δxij?,然后由这个值往前的部分用梯度下降反向传播即可。所以问题就在于求 x i j x_{ij} xij?的更新值 Δ x i j \Delta x_{ij} Δxij?
L i j L_{ij} Lij?的期望值为 L i j ? L_{ij}^* Lij??,定义近似的更新规则: Δ x i j = L i j ? ? L i j \Delta x_{ij}=L_{ij}^*-L_{ij} Δxij?=Lij???Lij?
又由于当 L i j ? y i j = 0 L_{ij}*y_{ij}=0 Lij??yij?=0的时候,AP loss达到最小值。所以当 y i j y_{ij} yij?取1时,我们使 L i j L_{ij} Lij?的期望值为0。当 y i j y_{ij} yij?取0时,我们不需要进行更新,这时 L i j L_{ij} Lij?的期望值默认设为0,上式便可以简化为:
Δ x i j = ? L i j ? y i j \Delta x_{ij}=-L_{ij}*y_{ij} Δxij?=?Lij??yij?
我们得到了 x i j x_{ij} xij?的更新方式,接下来就是得出网络权重的更新方式。我们可以将问题写成以下的优化问题,使用点积来衡量两个向量的相似度,使得更新 θ \theta θ前后 x x x的变化趋近于上面得到的 Δ x \Delta x Δx。最后再加一个L2正则项。
在这里插入图片描述
解决这个优化问题即可得到 Δ θ \Delta \theta Δθ。将 x ( θ ) x(\theta) x(θ) θ ( n ) \theta^{(n)} θ(n)处一阶展开,得到下式:
在这里插入图片描述
忽略高阶无穷小,将上式带入优化问题,可以得到:
在这里插入图片描述
这就是 θ \theta θ的更新策略。
如前面所说,这部分是可导的,所以这些推导可以忽略,直接将 x i j x_{ij} xij?的梯度设置为 Δ x i j \Delta x_{ij} Δxij?,之后用反向传播即可。

训练细节

1、minibatch
minibatch 训练准则在深度学习框架中应用广泛,比使用单个样本训练的过程更为稳定。且有助于优化方法规避 “score-shift” 情况。
AP-loss 可以从一个 batch 中获得,也可以从具有多个 anchor 的单个图像中获得。
mini-batch 训练是保证好的收敛性和准确性的重要前提。
2、分段阶跃函数
训练初期,得分 s i s_i si?之间非常接近(即几乎所有的 H ( x ) H(x) H(x)输入都接近于0),所以,输入的一个微小的改变将会带来一个大的输出改变。为了避免这个问题,将原来的阶跃函数代替为如下函数:
在这里插入图片描述

总结

这篇论文一转之前的目标识别思路,直接将评价指标作为优化目标,得到了很好的效果。在这个过程中,作者设计了AP loss,由于AP的不可导,作者又设计了专用的学习方法。同时,这个AP loss具有很好的性质,解决了样本不均衡问题。所以这个文章的方法很创新,并且效果很好。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:10:48  更:2021-07-22 14:12:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 10:22:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码