【论文阅读8】Constrained Center Loss:给特征中心加个“紧箍咒”与解析解更新

🏗️ 论文题目:《Constrained Center Loss for Convolutional Neural Networks》

目录

[前言:Center Loss 的"自由散漫"](#前言:Center Loss 的“自由散漫”)

[🎯一、 给中心立规矩:球面约束定义](#🎯一、 给中心立规矩:球面约束定义)

[1. 核心优化目标](#1. 核心优化目标)

[💡二、 告别 SGD:中心更新的"一步到位"](#💡二、 告别 SGD:中心更新的“一步到位”)

[2. 解析更新公式 (Analytical Solution)](#2. 解析更新公式 (Analytical Solution))

[✨三、 理论升华:分类权重就是类中心](#✨三、 理论升华:分类权重就是类中心)

[3. 权重与中心的对偶性](#3. 权重与中心的对偶性)

[📝四、 终极形态:去掉分类层的联合训练](#📝四、 终极形态:去掉分类层的联合训练)

[4. 统一损失函数 (Unified Objective) => 就是论文中提到的SCCL](#4. 统一损失函数 (Unified Objective) => 就是论文中提到的SCCL)

[🚀五、 总结](#🚀五、 总结)


前言:Center Loss 的"自由散漫"

在人脸识别领域,Center Loss 是一个里程碑。它通过拉近同类样本与类中心(Center)的距离,让特征更紧凑。

但在实际训练中,Center Loss 有两个让人头疼的"臭毛病":

  1. 中心乱跑 :类中心 没有约束,模长(Norm)忽大忽小,导致特征空间尺度不统一。

  2. 更新太慢 :中心点需要通过 SGD(梯度下降)一点点挪动,还得多调一个学习率参数

今天我们要讲的 Constrained Center Loss (CCL),就是为了解决这两个问题而生的。它给中心点戴上了一个"紧箍咒",并用一套"解析解"瞬间算出最优中心。


🎯一、 给中心立规矩:球面约束定义

为了防止特征中心在空间中无限发散,CCL 首先做了一件事:制定规则

它不再允许类中心出现在空间的任意位置,而是强制要求它们必须落在一个半径为 的超球面上

1. 核心优化目标

  • :我们要训练的图像特征。

  • :图像所属类别的中心。

  • s.t. :这就是"紧箍咒"。它规定:无论怎么优化,所有类中心的长度必须严格等于

小贴士:中心不就是个点吗,哪来的长度?

很多同学可能会困惑:中心 c 不就是空间里的一个坐标点吗?

其实,在特征空间中,每一个点都可以看作是从原点出发的一个向量(Vector)

  • 当我们说"中心的长度"时,指的就是这个点距离原点有多远(即向量的 L2 范数)。

  • Constrained Center Loss 的精髓就在于:它不再在一个平坦的操场上随便插旗子(找中心),而是强制把所有旗子插在一个固定半径的圆环上。这样,所有的中心"地位平等",模型学习起来更加公平、高效。


💡二、 告别 SGD:中心更新的"一步到位"

这是 CCL 最精彩的部分:

传统的 Center Loss 像个盲人,通过梯度下降一点点摸索中心的位置。而 CCL 利用数学推导,直接算出了满足上述约束的最优解

2. 解析更新公式 (Analytical Solution)

这个公式通俗怎么理解?

不需要迭代,不需要学习率,找中心只需三步走:

  1. 求和 (分子):把当前 Batch 里所有属于第 类的样本特征 加起来,得到一个总方向。

  2. 归一化(分母):除以这个总向量的长度,把它变成单位向量(只保留方向)。

  3. 缩放 (乘 ):把它拉长到半径 ,钉在球面上。

:这种更新方式极度稳定,因为它利用了 Batch 内的全局信息,而不是局部梯度的盲目指引。

【补充】:

1. 是什么?

别被这个希腊字母吓到了,它在编程里其实就是一句简单的 if 判断

  • :我们当前正在计算的那个类别(比如我们在算"猫"这一类的中心)。

  • :第 张图片的真实标签(比如这张图是"狗")。

它的逻辑是:

  • 如果 (我们要算的类 == 这张图的类),结果就是 1

  • 如果 (不是同一类),结果就是 0

2. 放在公式里起什么作用?

让我们回到 CCL 的中心更新公式:

它的作用是"过滤":

公式里的求和符号 是要把这一个 Batch 里所有的 张图都过一遍。

但是,我们算"猫"的中心时,不能把"狗"的特征加进来啊!

所以 就起作用了:

  • 遇到"猫"的图,,特征 被保留,加进总和里。

  • 遇到"狗"的图,,特征 ,直接被"消音",不参与计算。

一句话总结给读者:

"这个符号保证了我们在计算第 k 类的中心时,只累加属于第 类的样本,自动忽略其他类别的干扰。"

通过上述内容:CCL的损失函数可以表示为:


✨三、 理论升华:分类权重就是类中心

在传统网络中,我们有一个全连接分类层(权重 ),还有一个 Center Loss 维护的中心 。大家通常觉得它们是两码事。

但在 CCL 的框架下,作者推导出了一个惊人的结论:

3. 权重与中心的对偶性

这个公式揭示了人脸识别的本质:

  • :分类器的权重向量。

  • :归一化后的类中心(单位向量)。

结论: 分类器的权重 ,本质上就是指向类中心 的方向向量!

这完美统一了"分类"(寻找决策边界)和"聚类"(寻找特征中心)这两个任务。


📝四、 终极形态:去掉分类层的联合训练

既然 就是 那我们为什么还需要单独保存一份全连接层参数 呢?

直接把 扔掉,用中心 来代替!

作者将 代入原始的 Softmax 公式,得到了 CCL 的最终总损失函数

4. 统一损失函数 (Unified Objective) => 就是论文中提到的SCCL

基于中心的分类损失 CCL聚类损失

深度解析:

  • 左半部分(分类)

    • 原本的 变成了

    • 这意味着我们直接用"特征与中心的余弦相似度"来做分类概率计算。

    • 在这里充当了类似 Temperature 的缩放因子。

  • 右半部分(聚类)

    • 显式地拉近特征与中心的欧氏距离。
  • 整体效果

    • 模型一边通过 Softmax 学习如何把不同类的中心推开(让方向更准);

    • 一边通过 CCL 把同类的特征往中心拉(让分布更紧)。


🚀五、 总结

Constrained Center Loss (CCL) 并不是简单的"Center Loss + 约束",它是一次底层逻辑的重构

  1. 几何上 :通过 ,把战场从无限的欧氏空间转移到了单位超球面上。

  2. 优化上 :用解析解公式取代了 SGD,解决了中心更新难的问题。

  3. 架构上 :证明了 的等价性,简化了网络结构,实现了分类与聚类的大一统

相关推荐
剑穗挂着新流苏31217 分钟前
203_深度学习的第一步:线性回归模型与 SGD 优化算法实战
人工智能·深度学习·机器学习
是枚小菜鸡儿吖31 分钟前
卷不动了?带你拆解 2026 深度学习核心版图:CNN、Transformer 与扩散模型的实战进化
深度学习·cnn·transformer
靴子学长1 小时前
Decoder only 架构下 - KV cache 的理解
pytorch·深度学习·算法·大模型·kv
刘简爱学习1 小时前
弱监督互斥多类脑肿瘤图像分割的类间可分离性损失
人工智能·深度学习·计算机视觉
bug大湿2 小时前
语音模型流式结构修改要点
深度学习·自然语言处理·语音识别
独隅2 小时前
PyTorch 模型性能优化:图像分类与 NLP 模型实战指南
pytorch·性能优化·分类
AI-Ming2 小时前
程序员转行学习 AI 大模型: 踩坑记录:服务器内存不够,程序被killed
服务器·人工智能·python·gpt·深度学习·学习·agi
龙腾AI白云2 小时前
如何利用知识图谱实现推理和计算
人工智能·深度学习·语言模型·自然语言处理·数据分析
Narrastory3 小时前
明日香 - Pytorch 快速入门保姆级教程(九)
人工智能·pytorch·深度学习
Hello.Reader4 小时前
深度学习 三次浪潮、三大驱动力与神经科学的恩怨(二)
人工智能·深度学习