【论文阅读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. 架构上 :证明了 的等价性,简化了网络结构,实现了分类与聚类的大一统

相关推荐
yiyu07167 小时前
3分钟搞懂深度学习AI:梯度下降:迷雾中的下山路
人工智能·深度学习
CoovallyAIHub9 小时前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉
vivo互联网技术10 小时前
ICLR2026 | 视频虚化新突破!Any-to-Bokeh 一键生成电影感连贯效果
人工智能·python·深度学习
OpenBayes贝式计算10 小时前
边看、边听、边说,MiniCPM-0-4.5 全双工全模态模型;Pan-Cancer scRNA-Seq 涵盖三种生物学状态单细胞转录数据集
人工智能·深度学习·机器学习
CoovallyAIHub10 小时前
速度暴涨10倍、成本暴降6倍!Mercury 2用扩散取代自回归,重新定义LLM推理速度
深度学习·算法·计算机视觉
OpenBayes贝式计算10 小时前
教程上新丨基于500万小时语音数据,Qwen3-TTS实现3秒语音克隆及精细调控
人工智能·深度学习·机器学习
CoovallyAIHub13 小时前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉
CoovallyAIHub13 小时前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题
深度学习·算法·计算机视觉
Narrastory2 天前
明日香 - Pytorch 快速入门保姆级教程(一)
人工智能·pytorch·深度学习