当前位置:首页 > 技术 > 正文内容

深度学习模型架构常见术语详解

访客 技术 2026年5月26日 3

在阅读深度学习论文或技术博客时,我们经常会遇到backbone、head、neck等术语。这些概念在目标检测、图像分割等任务中非常常见,本文将对这些术语进行详细解释。

backbone(主干网络)

backbone直译为主干网络,它是整个模型架构中的核心组成部分,负责从输入图像中提取特征信息。可以将backbone理解为特征提取器,它的任务是将原始图像转换为具有丰富语义信息的特征图,供后续网络使用。

在实际应用中,backbone通常采用成熟的预训练模型,如ResNet、VGG、EfficientNet等。这是因为这些网络经过大量数据训练,已经具备了强大的特征提取能力。使用时可以直接加载官方提供的预训练权重,然后在此基础上添加自定义的网络层进行联合训练。在训练过程中,backbone的参数会进行微调,使其更好地适应特定任务。

head(检测头)

head是负责生成最终预测结果的网络层。它接收backbone提取的特征,并利用这些特征完成具体的任务,如分类、边界框回归等。head的设计取决于具体任务的需求,在目标检测中可能包括类别预测和位置回归,在语义分割中则是每个像素的类别预测。

neck(特征融合层)

neck位于backbone和head之间,起到桥梁和调节的作用。它的主要任务是更好地利用backbone提取的多尺度特征,通过特征融合的方式增强特征的表达能力。常见的neck结构包括FPN(Feature Pyramid Network)、PAN(Path Aggregation Network)等。

bottleneck(瓶颈层)

bottleneck原意为瓶颈,在深度学习中通常指输入输出维度不一致的网络层,输出维度明显小于输入维度,形成类似瓶颈的收缩结构。常见的参数设置如bottle_num=256,表示该层输出的特征维度为256,而输入维度可能是1024或更高。这种设计可以有效减少参数量和计算量。

GAP(全局平均池化)

GAP即Global Average Pooling全局平均池化,是深度学习中常用的一个操作。它的作用是将每个特征通道的所有像素值求平均,得到一个单一的数值。在PyTorch中,可以使用AdaptiveAvgPool2d(1)实现这一功能:

self.feature_pool = nn.AdaptiveAvgPool2d(1)

这种池化方式可以显著减少全连接层的参数数量,有效防止过拟合。

Embedding(嵌入向量)

Embedding是将复杂高维数据转换为低维稠密向量的过程。在深度学习中,我们通过线性和非线性变换对原始数据进行自动特征提取,最终将数据表示为向量形式。这个过程使得原始数据能够被神经网络更好地处理和理解。

pretext task和downstream task(代理任务与下游任务)

在迁移学习的框架中,用于预训练的任务称为代理任务或前置任务(pretext task),而用于实际应用的任务则称为下游任务(downstream task)。例如,使用图像旋转预测作为代理任务预训练模型,然后在具体的目标检测任务上进行微调。

temperature parameters(温度参数)

温度参数是softmax函数中的一个重要超参数,通常用τ或T表示。它用于调节softmax输出的概率分布平滑程度。下面通过代码示例说明其作用:

import torch

scores = torch.tensor([1.0, 2.0, 3.0])
base_probs = torch.softmax(scores, dim=0)
print(f"基础概率: {base_probs}")

# 温度参数较大时,分布更加平滑
smoothed_scores = scores / 2.0
smoothed_probs = torch.softmax(smoothed_scores, dim=0)
print(f"平滑后的概率 (T=2): {smoothed_probs}")

# 温度参数较小时,分布更加尖锐
sharp_scores = scores / 0.5
sharp_probs = torch.softmax(sharp_scores, dim=0)
print(f"尖锐化的概率 (T=0.5): {sharp_probs}")

运行结果:

tensor([0.0900, 0.2447, 0.6652])
tensor([0.1863, 0.3072, 0.5065])
tensor([0.0159, 0.1173, 0.8668])

当温度参数大于1时,输出的概率分布变得更加平滑,不同类别之间的差异减小;当温度参数小于1时,分布变得更加尖锐,模型对预测结果更加自信。在对比学习等场景中,合理设置温度参数对模型性能有重要影响。

热身Warm up

Warm up即学习率预热策略,指在训练初期使用较小的学习率进行几个epoch的训练,然后再恢复到正常的学习率。这是因为网络参数在随机初始化后直接使用较大的学习率容易导致训练不稳定,甚至出现数值爆炸的情况。

端到端end to end

端到端学习是指模型直接从原始输入得到最终输出,中间不需要人工设计特征或进行复杂的预处理。以图像分类为例,输入一张图片,经过特征提取、特征映射、分类器等步骤,直接输出预测类别。整个学习过程和数据处理流程都由神经网络自动完成,不需要额外的模块设计和参数调整。

domain adaptation 和domain generalization(域适应与域泛化)

域适应(Domain Adaptation)是指源域数据完全已知,目标域数据部分已知或完全未知的情况下,将知识从源域迁移到目标域的方法。域泛化(Domain Generalization)则更为挑战性,要求模型在从未见过的目标域上也能表现良好。这种设置更符合实际应用场景,因为部署时面对的数据分布往往与训练数据不同。由于目标域没有训练样本,模型无法进行微调,因此域泛化是一个更具难度的研究问题。

标签: 深度学习

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。