🏗️ 论文题目:《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 有两个让人头疼的"臭毛病":
-
中心乱跑 :类中心
没有约束,模长(Norm)忽大忽小,导致特征空间尺度不统一。
-
更新太慢 :中心点需要通过 SGD(梯度下降)一点点挪动,还得多调一个学习率参数
。
今天我们要讲的 Constrained Center Loss (CCL),就是为了解决这两个问题而生的。它给中心点戴上了一个"紧箍咒",并用一套"解析解"瞬间算出最优中心。
🎯一、 给中心立规矩:球面约束定义
为了防止特征中心在空间中无限发散,CCL 首先做了一件事:制定规则。
它不再允许类中心出现在空间的任意位置,而是强制要求它们必须落在一个半径为 的超球面上。
1. 核心优化目标
-
:我们要训练的图像特征。
-
:图像所属类别的中心。
-
s.t.
:这就是"紧箍咒"。它规定:无论怎么优化,所有类中心的长度必须严格等于
小贴士:中心不就是个点吗,哪来的长度?
很多同学可能会困惑:中心 c 不就是空间里的一个坐标点吗?
其实,在特征空间中,每一个点都可以看作是从原点出发的一个向量(Vector)。
当我们说"中心的长度"时,指的就是这个点距离原点有多远(即向量的 L2 范数)。
Constrained Center Loss 的精髓就在于:它不再在一个平坦的操场上随便插旗子(找中心),而是强制把所有旗子插在一个固定半径的圆环上。这样,所有的中心"地位平等",模型学习起来更加公平、高效。
💡二、 告别 SGD:中心更新的"一步到位"
这是 CCL 最精彩的部分:
传统的 Center Loss 像个盲人,通过梯度下降一点点摸索中心的位置。而 CCL 利用数学推导,直接算出了满足上述约束的最优解。
2. 解析更新公式 (Analytical Solution)
这个公式通俗怎么理解?
不需要迭代,不需要学习率,找中心只需三步走:
-
求和 (分子):把当前 Batch 里所有属于第
类的样本特征
加起来,得到一个总方向。
-
归一化(分母):除以这个总向量的长度,把它变成单位向量(只保留方向)。
-
缩放 (乘
):把它拉长到半径
,钉在球面上。
注:这种更新方式极度稳定,因为它利用了 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 + 约束",它是一次底层逻辑的重构:
-
几何上 :通过
,把战场从无限的欧氏空间转移到了单位超球面上。
-
优化上 :用解析解公式取代了 SGD,解决了中心更新难的问题。
-
架构上 :证明了
和
的等价性,简化了网络结构,实现了分类与聚类的大一统。