当前位置: 首页 > article >正文

NAS-FCOS论文总结

文章目录

  • 基于强化学习的神经架构搜索(NAS)策略解析
    • 1. 引入强化学习进行 NAS 搜索
      • 1.1 强化学习(RL)与 LSTM 控制器
        • 工作流程:
      • 1.2 加速搜索的渐进式搜索策略
        • 渐进式搜索步骤:
        • 优势:
    • 2. 数据集划分与搜索加速技巧
      • 数据集随机划分
      • 加速搜索技术
    • 3. 负损失和作为奖励信号
      • 为什么要引入负损失?
      • 定义负损失和形式
      • 优势:
    • 4. FPN 与预测头搜索空间设计
      • 基于NAS的FPN和预测头搜索空间设计解析
    • 📌 背景:FPN 和预测头的角色
      • **FPN(特征金字塔网络)**
      • **预测头(Prediction Head)**
    • 🛠️ FPN 搜索空间设计
      • 🔍 **搜索空间的定义**
        • 1. 初始化特征空间
        • 2. FPN 搜索路径
        • 3. 层级信息交互机制
      • 🔧 **候选操作集**
    • 🛠️ 预测头搜索空间设计
      • 🔍 **预测头的搜索目标**
        • 搜索空间内容
    • 🔗 FPN 与 预测头之间的关联
    • 📊 总结
      • 🔹 **FPN 搜索空间关键点**
      • 🔹 **预测头搜索空间关键点**

基于强化学习的神经架构搜索(NAS)策略解析

神经架构搜索(Neural Architecture Search, NAS)是一种自动化设计神经网络架构的技术,近年来广泛应用于目标检测、分类、分割等任务。然而,传统的 NAS 搜索过程通常面临计算资源消耗大、时间开销高等挑战。本文将详细解析一种结合 强化学习(RL) 策略的 NAS 搜索过程(NAS-FCOS,论文地址:https://arxiv.org/abs/1906.04423),探讨其核心搜索策略、加速技巧、权重共享机制,以及重点关注 FPN(特征金字塔网络)预测头(Prediction Head) 的搜索空间设计。


1. 引入强化学习进行 NAS 搜索

1.1 强化学习(RL)与 LSTM 控制器

为了实现自动化的神经网络架构搜索,采用 强化学习(RL) 作为搜索策略,具体利用 LSTM 控制器 来预测整个网络的架构配置,从而实现高效的搜索。

工作流程:
  1. LSTM 控制器:作为核心搜索器,通过序列输入和决策过程逐步生成候选网络架构。
  2. 奖励机制:依赖任务性能反馈,如目标检测损失函数,调整控制器的决策。
  3. PPO 优化:采用 近端策略优化(Proximal Policy Optimization, PPO) 平稳地训练和更新 LSTM 控制器的策略,避免搜索过度优化或梯度爆炸。

1.2 加速搜索的渐进式搜索策略

传统 NAS 策略多采用 联合搜索(Joint Search),同时对所有组件(例如 FPN 结构和预测头)进行联合优化。这种方法会导致计算复杂度较高且时间消耗较大。因此,论文引入 渐进式搜索(Progressive Search) 策略:

渐进式搜索步骤:
  1. 搜索 FPN 结构
  2. 基于 FPN 搜索结果,再搜索预测头
优势:
  • 降低时间与计算开销。
  • 有助于逐步分解任务,逐步理解各组件影响因素。

通过这种策略,NAS 的可控性和效率得到了显著提升。


2. 数据集划分与搜索加速技巧

为了进一步提高搜索效率,本文采用了以下优化策略:

数据集随机划分

  • 将数据集分为两个部分:
    • meta-train ( D t D_t Dt):用于网络训练。
    • meta-val ( D v D_v Dv):用于验证和提供奖励信号。

加速搜索技术

  1. 固定 Backbone 并缓存特征

    • 将 Backbone 提取的特征预先缓存。
    • 优势包括消除 Backbone 深度对单次搜索训练的影响,并支持使用更复杂的 Backbone 结构。
  2. Polyak 权值平均(Polyak Weight Averaging)

    • 稳定网络参数,减少训练波动,帮助加速收敛。

这些技巧显著降低了搜索计算开销,并提高了搜索过程的质量。


3. 负损失和作为奖励信号

为什么要引入负损失?

直接使用目标检测的 平均精度(AP) 作为奖励指标存在局限性,尤其是在早期阶段 AP 通常过低,难以为网络搜索提供有效的指导信号。因此,设计了 负损失和(Negative Loss Sum) 作为替代奖励信号。

定义负损失和形式

R ( a ) = − ∑ ( x , Y ) ∈ D v ( L cls ( x , Y ∣ a ) + L reg ( x , Y ∣ a ) + L ctr ( x , Y ∣ a ) ) R(a) = - \sum_{(x, Y) \in D_v} \left( L_{\text{cls}}(x, Y | a) + L_{\text{reg}}(x, Y | a) + L_{\text{ctr}}(x, Y | a) \right) R(a)=(x,Y)Dv(Lcls(x,Ya)+Lreg(x,Ya)+Lctr(x,Ya))
其中:

  • L cls L_{\text{cls}} Lcls:分类损失。
  • L reg L_{\text{reg}} Lreg:边界框回归损失。
  • L ctr L_{\text{ctr}} Lctr:中心度损失。

优势:

  1. 提供更早期阶段的网络性能敏感反馈。
  2. 避免 AP 太低导致收敛速度变慢。

4. FPN 与预测头搜索空间设计

基于NAS的FPN和预测头搜索空间设计解析

本文重点聚焦于 FPN(特征金字塔网络)预测头(Prediction Head) 的搜索空间设计。通过分析这些设计空间的搜索策略,可以更好地理解网络自动搜索是如何提高目标检测性能的。
示意图


📌 背景:FPN 和预测头的角色

FPN(特征金字塔网络)

FPN 是一种关键的目标检测模块,用于从不同尺度的特征图中提取丰富的语义信息。它将 Backbone 提取的不同层级特征进行特征融合,使检测器能够有效地检测不同尺度的目标。

核心任务

  • 将 Backbone 提取的不同层级特征图 C = { c 3 , c 4 , c 5 } C = \{c3, c4, c5\} C={c3,c4,c5} 转换为多尺度特征金字塔 P = { p 3 , p 4 , p 5 , p 6 , p 7 } P = \{p3, p4, p5, p6, p7\} P={p3,p4,p5,p6,p7}
  • 提取不同尺度的特征信息,提高目标检测的鲁棒性。

预测头(Prediction Head)

预测头是目标检测器的关键部分,任务是将从 FPN 提取的多尺度特征图映射到检测任务的具体输出,比如分类概率、边界框回归值等。

任务

  • 将不同尺度的特征图映射为检测任务输出。
  • 保持高效性与泛化性。

FCOS 使用四个连续的 3 × 3 3 \times 3 3×3 卷积层实现从特征到预测任务的转换。论文通过 NAS 优化这些卷积层的搜索空间,以自动发现更高效的预测头。


🛠️ FPN 搜索空间设计

FPN 的设计目标是优化从 Backbone 提取的特征图 C C C 转换为目标特征金字塔 P P P 的路径,使得网络能够从不同尺度的特征信息中提取有效信息。

🔍 搜索空间的定义

FPN 的搜索目标是确定一种最优的特征映射路径 f f f。具体而言,从 Backbone 提取的特征 C = { c 3 , c 4 , c 5 } C = \{c3, c4, c5\} C={c3,c4,c5} 经过多步变换后,生成目标特征金字塔 P = { p 3 , p 4 , p 5 , p 6 , p 7 } P = \{p3, p4, p5, p6, p7\} P={p3,p4,p5,p6,p7}

1. 初始化特征空间

将 Backbone 提取的特征作为搜索起点:
X 0 = C X_0 = C X0=C

2. FPN 搜索路径

通过多个基本块 bbf_i 依次进行特征转换:
f = b b f 1 ∘ b b f 2 ∘ ⋯ ∘ b b f 7 f = bbf_1 \circ bbf_2 \circ \dots \circ bbf_7 f=bbf1bbf2bbf7
这些基本块 bbf 可以是不同的卷积操作或变换组合。最后,取出特征金字塔的关键层 p 3 , p 4 , p 5 p3, p4, p5 p3,p4,p5

3. 层级信息交互机制

为了实现跨层级信息共享,如果某些特征未被最终特征金字塔直接使用,则通过元素级求和操作进行信息交互:
p i ∗ = p i + x t p_i^* = p_i + x_t pi=pi+xt

此外,使用 双线性插值 来处理不同分辨率的特征金字塔层级。


🔧 候选操作集

FPN 的搜索空间中包含多种操作,以增强灵活性和表达能力:

  1. 卷积变体
    • 标准卷积、可分离卷积、可变形卷积。
  2. 聚合操作
    • 元素级求和。
    • 特征拼接后通过 1 × 1 1 \times 1 1×1 卷积进行融合。

FPN 的搜索空间通过组合这些操作,自动发现最优路径,从而使检测器具有更强的多尺度信息提取能力。


🛠️ 预测头搜索空间设计

预测头是从 FPN 特征金字塔映射为任务预测的重要模块。其目标是学习从不同尺度特征到分类、回归任务的映射路径。

🔍 预测头的搜索目标

FCOS 原本使用四个连续的 3 × 3 3 \times 3 3×3 卷积层,论文通过 NAS 提供更多的搜索空间,使预测头的表达能力更具灵活性。

搜索空间内容

预测头的搜索空间包含以下关键变化:

  1. 操作种类变化

    • 标准卷积(1x1、3x3)。
    • 分组卷积。
    • 替换 BatchNorm 为 GroupNorm(因预测头需要共享权重)。
  2. 卷积层数搜索

    • 搜索预测头中的卷积层数。
  3. 共享权重策略搜索

    • 预测头部分可以实现 局部独立权重全局共享权重,从而通过自动搜索找到平衡特征分辨率与泛化能力的最佳方案。

通过自动搜索,这些不同路径能够更好地从特征金字塔提取信息,提升分类与边界框回归效果。


🔗 FPN 与 预测头之间的关联

FPN 提取多尺度特征,而预测头对这些特征进行预测。因此,FPN 和预测头的搜索空间虽然相对独立,但彼此协同作用。

  • FPN 搜索目标
    优化特征融合路径,使不同尺度特征具有更好的表达能力。
  • 预测头搜索目标
    动态调整预测头的卷积层数、卷积变体及权重共享策略,以提高任务精度。

NAS 系统通过动态地并行搜索这两个空间,结合 RL 和 PPO 策略,自动发现最优的网络结构。


📊 总结

🔹 FPN 搜索空间关键点

  • 基于多个“基本块” bbf_i,组合成最优路径。
  • 候选操作包括标准卷积、可分离卷积、可变形卷积等。
  • 信息交互通过元素级求和或插值实现。

🔹 预测头搜索空间关键点

  • 扩展了标准 FCOS 设计。
  • 包括卷积数目变化、BatchNorm 替换为 GroupNorm、不同权重共享设置等选项。

这些搜索空间组合在 NAS 策略中使用 RL 和 PPO 进行搜索,从而实现自动发现最优网络架构。

通过这种自动化的搜索机制,网络可以自适应地优化 FPN 和预测头,使整个目标检测器性能大幅提升。


希望这篇博客解析对您理解 FPN 和预测头的搜索空间设计有所帮助。如果有任何疑问或讨论,欢迎留言!😊


http://www.kler.cn/a/427849.html

相关文章:

  • Flutter_学习记录_Tab的简单Demo~真的很简单
  • 【Leetcode 每日一题】541. 反转字符串 II
  • 【图床配置】PicGO+Gitee方案
  • 数据结构 前缀中缀后缀
  • DeepSeek介绍
  • chrome源码剖析—进程通信
  • 【xLSTM-Transformer序列分类】Pytorch使用xLSTM-Transformer对序列进行分类源代码
  • 【Redis集群】使用docker compose创建docker集群,并暴露外部接口
  • Android APP自学笔记
  • 一、web基础和http协议
  • Apache Doris Sql Cache
  • draggable插件——实现元素的拖动排序——拖动和不可拖动的两种情况处理
  • 第一节、电路连接【51单片机-TB6600驱动器-步进电机教程】
  • Java课程设计项目-servlet+jsp美食系统、菜品管理系统
  • 数据结构代码归纳
  • THENA大涨将对整个DeFi市场产生怎样的影响?
  • QT 左右 上下,拉伸 分配窗口大小
  • [Python | CS基础 ]Python多线程`threading`和多进程`multiprocessing`
  • 相机动态/在线标定
  • 【深度学习】分类问题代码实战之初始手写数据集
  • Qt复习学习
  • ASP.NET Core SignalR 入门
  • FastAPI中创建一个多App架构
  • 超详细!关于在Docker里安装Hadoop的详细操作(部署单点集群)
  • Python 中的魔法方法有哪些?
  • el-table expand-row-keys默认展开,数据更新后默认展开的问题