一句话:Backbone(主干网络)是深度学习模型里负责把原始输入(像素、文字)逐层加工成「通用特征」的那部分主体网络,通常参数最多、最通用,也是迁移学习时被反复复用的那一段。
打个比方:一家公司里,Backbone 像受过完整通识训练的老员工,看得懂图、读得懂话、抓得住重点;它后面接的那一小截叫 Head(任务头),像岗位说明书——负责把「看懂了什么」翻译成「这次要交什么答案」。同一批老员工,配不同的岗位说明书,就能干分类、检测、分割、检索这些完全不同的活。
举个文本的例子:一段话进模型,Backbone(比如 Transformer 编码器)把它压成一串语义向量;接分类头就是情感判断,接序列标注头就是抽人名地名,接句向量头就是做检索匹配。图像侧同理:同一个 Backbone,接分类头回答「这是什么」,接检测头回答「在哪、有几个」。
微调时到底动哪块?
- 全量微调(full fine-tuning):Backbone 和 Head 的参数都更新,最贵,也最灵活。
- 冻结 Backbone、只训 Head(linear probing,线性探测):主干参数设成不更新,只训最后那一小截。数据少、算力紧时常用,因为 Backbone 已经「会看」了,只需要教它「怎么答」。
- 参数高效微调(如 LoRA 一类方法):主干权重整体冻住,只在旁边挂一小组可训练的小矩阵。
所谓「冻结」(freeze),说穿了就是把这部分参数从优化器的更新名单里划掉——前向照样算,反向不再改它。
| Backbone | Head | |
|---|---|---|
| 作用 | 提取通用特征 | 映射到具体任务输出 |
| 参数量 | 大,占大头 | 小 |
| 换任务时 | 常常复用、少改 | 通常直接换掉重训 |
| 微调策略 | 全量 / LoRA / 冻结 | 基本都全量训练 |
和相邻概念的区别:Backbone 不等于整个模型。检测模型常写成 Backbone–Neck–Head 三段式,Neck(如特征金字塔)负责融合多层特征,Head 出最终结果。常说的「换个头就能换任务」,底气就来自 Backbone 学到的是通用表征,而不是某个任务的答案。
实际意义:选模型时先问一句「它的 Backbone 是不是在大规模数据上预训练过」——预训练主干加小数据、只训头,往往是性价比最高的起点;数据够多、任务又离通用领域很远,再考虑全量微调。对普通职场人来说,这也解释了为什么同一个基础模型稍作调整就能写文案、做客服、读表格:底子是共用的,换的只是那截任务头。具体选型与接口以官方页面为准。
