动机
人群密度算法一直是CV领域的主线任务,现在我们知道ViT等利用注意力机制的新算法几乎主宰了这个领域,但在彼时的2022年,实际上存在几个问题:
- 贝叶斯损失的负定性------贝叶斯损失存在一种情况,即完全不同的人群分布给出了相同的损失结果,他是负定的
- P2Pnet和OT算法这类点对点监督学习"挂尿袋"的问题,不管是匈牙利算法还是sinkhorn算法,他们的计算效率都非常低下,严重拖累了算法本身的计算效率。要知道,在P2Pnet的官方算法中,匈牙利算法的匹配甚至是借助CPU完成的,很难利用GPU并行。
在这个背景下,作者考虑使用密度图进行估计,以免去"挂尿袋"这种尴尬的情况。天下没有免费的午餐,挂尿袋是为了点对点付出的代价,去除了这些冗杂的外置算法,自然就无法进行点对点预测,作者使用了频域进行损失监督,其目的就是为了弥补单纯密度图监督的不足。
出于写作的考虑,作者有些事情不会明说,在这里我可以明确的告诉你,即使使用了频域监督,依旧是有代价的。
首先,频域监督在数学上好像非常完美,它能够表达任意子区间的计数误差,但这在计算机上是无法实现的,因为计算机不知道何为"无限大",作者主动选择了截断,截断高频的代价就是,对于小子区间,我们只能得到模糊的信息。这里就引出第二个代价,作者实际上主动使用高斯模糊模糊掉了具体的点信息,虽然他在定理提出的时候没有说,这毫无疑问是一种信息损失。
但是这篇文章依旧是很有建设性的,这也是首次在频域内有人做这件事情,其对loss函数的改造可以在很多算法框架中进行使用或者改良,本文为了对比的一致性,使用VGG19作为框架,作为读者的我们大可不必受此限制。
数学定义
我尽量说的简洁一些,抛去测度论等晦涩的数学概念
定义1:测度:测度是一个定义在可测空间(Ω, F)上的集合函数m,具有非负性和可加性
定义 2:密度图:人群计数中的密度图是在欧式空间上定义的有限测度
定义 3:分布的特征函数 是一个定义在 Rn上的复值函数
φd(t)=EX∼dei⟨t,X⟩,
这个特征函数是从概率论拿过来的,所以后面的数学性质也是同概率论,作者额外提出是因为概率论仅对测度1成立,无法直接对测度为A的情况做推广,所以作者单独做了提出和证明。
定义 4:对于定义在 Rn上的 有限测度,他的特征函数是:
φm(t)=∫Rnei⟨t,x⟩dm(x),
特征函数的性质
性质1:唯一性,特征函数唯一确定密度图,反之亦然。
性质2:线性 m3=αm1+βm2,α,β≥0
φm3(t)=αφm1(t)+βφm2(t)
即空间域的线性组合,在频域也是特征函数的线性组合
性质 3:反演公式:特征函数存在一个反演公式可以回推测度, 例如假设我们给定边界A
m(A)=limT→∞(2π)21∫−T,T2∫Aφm(t)e−i⟨t,x⟩dxdt
性质 4:特征函数具有李普希茨连续性,这里不需要给出几阶李普希茨连续性,只需要其存在即可
特征函数的损失
损失函数: lchf(mg,mp)=∫R2∣φmg(t)−φmp(t)∣dt
其中 φmg(t)和 φmp(t)分别是密度图和预测密度图在频域的特征函数,这个损失实际上就是特征函数在频域的L1范数距离
并且作者实际使用了一个带有高斯模糊的特征函数
φmg(t)=∑j=1MφN(μj,Σj)(t)=∑j=1Mexp(iμjTt−2tTΣjt)
这个特征函数解释了损失的来源之一,他不同于我们之前定义的那个,他对原图像做了一个高斯模糊
损失函数的有效性证明
命题1:该损失不是欠定的
由于特征函数具有唯一性,所以这个损失天生不是欠定的,之所以强调这个,是因为贝叶斯损失被指出是欠定的
命题2:频域损失是时域误差的一个上限(所以他是有效的)
∣mg(A)−mp(A)∣≤(2π)−2lchf(mg,mp)L(A)
命题2证明
以下我们保留box这个原词,来表示测度论中的开矩形区域的数学概念。
在原文作者仅证明了在某一个特殊的box上,命题二成立,没有把他推广到任意的box。本文会根据作者给的补充材料给出完整证明,完整的证明大致分为两步:
第一步对特殊box的证明
设 A∈S。由于 A 的边界在 mg 和 mp 下都是零测集,补充材料中的反演公式(Property 3)可以直接用于 mg(A) 和 mp(A):
m(A)=(2π)21T→∞lim∫A∫−T,T2ϕm(t)e−i⟨t,x⟩dtdx.
分别代入 mg 和 mp,再相减,得到
∣mg(A)−mp(A)∣= (2π)21T→∞lim∫A∫−T,T2(ϕmg(t)−ϕmp(t))e−i⟨t,x⟩dtdx .
接下来对绝对值做放缩。由于复指数满足 e−i⟨t,x⟩ =1,所以
∣mg(A)−mp(A)∣≤(2π)21∫A∫R2 ϕmg(t)−ϕmp(t) dtdx.
这里补充材料里依次用了以下几个标准工具:
- 绝对值连续性,把极限移入估计过程;
- 积分不等式 ∫f ≤∫∣f∣;
- e−i⟨t,x⟩ =1;
- Fubini 定理交换积分次序;
- 单调收敛定理,把积分区域从 −T,T2 推到整个 R2。
于是可以继续化简为
∣mg(A)−mp(A)∣≤(2π)21∫A(∫R2 ϕmg(t)−ϕmp(t) dt)dx.
内层积分与 x 无关,所以它就是一个常数,也就是 lchf(mg,mp)。因此
∣mg(A)−mp(A)∣≤(2π)21lchf(mg,mp)∫Adx=(2π)21lchf(mg,mp)L(A).
这样,我们就先在特定得box A∈S 上得到了命题结论。
第二步 推广到任意开集
现在考虑任意开集 U⊂R2。
由 Lemma 6, U 可以写成 S 中一些开box的可数并;再由 Lemma 7,它还可以整理成可数个互不相交box的并:
U=j=1⋃∞Bj,Bj1∩Bj2=∅(j1=j2).
并且这些box的边界依然是零测的,因此对每个 Bj,第一步的结论都成立:
∣mg(Bj)−mp(Bj)∣≤(2π)21lchf(mg,mp)L(Bj).
接着利用测度的可列可加性,
∣mg(U)−mp(U)∣= j=1∑∞mg(Bj)−j=1∑∞mp(Bj) ≤j=1∑∞∣mg(Bj)−mp(Bj)∣≤(2π)21lchf(mg,mp)j=1∑∞L(Bj).
由于这些box互不相交,而且它们的并正好是 U,所以
j=1∑∞L(Bj)=L(U).
最终得到
∣mg(U)−mp(U)∣≤(2π)21lchf(mg,mp)L(U).
命题得证。
特征函数的实现
理论上,特征函数的损失需要在整个二维空间 R2上求连续积分,但是计算机既算不了连续积分,也不能处理全空间。因此,作者使用了两个方法:
- 截断函数:解决积分范围无限大的问题
- 黎曼和近似:解决连续积分问题
实验设置:作者将积分区域阶段在 −0.3,0.32,那么这样做真的成立吗?对于频域空间做截断积分一定会引起空间域采样的损失,作者后续在命题3给出了高频截断导致的误差的理论上限证明。
命题三及其证明
设密度图 m 是由离散点图与各向同性高斯核卷积得到的,即每个人头点都会被平滑成一个高斯分布。设高斯核带宽为 σ,总人数为 T。记 m~ 为只使用特征函数 ϕm 在圆盘 B(0,r) 内的信息重建得到的密度图。
那么对于任意非空区域 A(论文原文这里写的是 box area)且满足边界零测度条件 m(∂A)=0,都有
L(A)∣m(A)−m~(A)∣≤2πσ2Texp(−2σ2r2).
其中 L(A) 是区域面积。
这条不等式说明:如果真实密度图是由高斯核生成的,那么只保留半径为 r 的低频部分来重建密度图,所带来的区域计数误差会被一个指数衰减项控制住。也就是说,随着截断半径r变大,被丢掉的高频信息会以非常快的速度衰减,所以这个频率截断是可控的。
命题散的证明思路大致可以概括为:
先写出高斯密度图的特征函数,再说明原图和截断重建图的误差,其实只来自被截掉的那部分高频信息,最后对这部分残差做上界估计
第一步:把密度图写成高斯分布的和
假设图中一共有 T 个人头点,位置分别为 μ1,μ2,...,μT。用各向同性高斯核平滑后,密度图可以写成
m=j=1∑TN(μj,Σ),Σ=σ2I.
也就是说,整张密度图就是 T 个二维高斯分布的叠加。
二维高斯分布的特征函数是已知的,因此
ϕm(t)=j=1∑TϕN(μj,Σ)(t)=j=1∑Texp(iμj⊤t−2σ2∥t∥2).
这一步很关键,因为它告诉我们:特征函数的振幅部分是一个标准的高斯衰减项
exp(−2σ2∥t∥2).
后面所有的误差估计,本质上都落在这个衰减项上。
第二步:把重建误差写成"被截掉的频率部分"
设 m~ 是只使用圆盘 B(0,r) 内特征函数重建出的密度图。直观上, m~ 和 m 的差别,只来自圆盘外那部分没有被保留的频率。
补充材料里引入了区域
D(a)=−a,a2∖B(0,r),
并利用反演公式把区域计数误差写成
∣m(A)−m~(A)∣=a→∞lim (2π)21∫A∫D(a)e−i⟨t,x⟩ϕm(t)dtdx .
这一步的意思其实很简单:因为 m~ 已经保留了 B(0,r) 里的频率,所以两者相减后,只剩下圆盘外的积分。
接下来,用绝对值不等式放缩:
∣m(A)−m~(A)∣≤a→∞lim(2π)21∫A∫D(a) e−i⟨t,x⟩ϕm(t) dtdx.
由于 e−i⟨t,x⟩ =1,再代入上一步得到的 ϕm(t),就有
∣ϕm(t)∣= j=1∑Texp(iμj⊤t−2σ2∥t∥2) ≤exp(−2σ2∥t∥2)j=1∑T eiμj⊤t .
而每一项 eiμj⊤t =1,所以
∣ϕm(t)∣≤Texp(−2σ2∥t∥2).
于是误差可以进一步估计为
∣m(A)−m~(A)∣≤(2π)2Ta→∞lim∫A∫D(a)exp(−2σ2∥t∥2)dtdx.
因为被积函数与 x 无关,所以 ∫Adx=L(A),得到
∣m(A)−m~(A)∣≤(2π)2TL(A)a→∞lim∫D(a)exp(−2σ2∥t∥2)dt.
再由单调收敛定理,
a→∞lim∫D(a)exp(−2σ2∥t∥2)dt=∫R2∖B(0,r)exp(−2σ2∥t∥2)dt.
所以问题已经完全变成:如何计算一个二维高斯在圆盘外的尾积分。
第三步:计算圆盘外的高斯尾积分
把上式转到极坐标下,
∫R2∖B(0,r)exp(−2σ2∥t∥2)dt=∫r∞∫02πexp(−2σ2ρ2)ρdθdρ.
先对角度积分,可得
=2π∫r∞exp(−2σ2ρ2)ρdρ.
这个积分可以直接算出:
2π∫r∞exp(−2σ2ρ2)ρdρ=σ22πexp(−2σ2r2).
代回前面的估计式,
∣m(A)−m~(A)∣≤(2π)2TL(A)⋅σ22πexp(−2σ2r2).
整理后得到
∣m(A)−m~(A)∣≤2πσ2TL(A)exp(−2σ2r2).
两边同时除以 L(A),就得到命题三:
L(A)∣m(A)−m~(A)∣≤2πσ2Texp(−2σ2r2).
命题得证。
在这之后,实际上损失在数学上就成立了,后续的消融实验仅是对黎曼和超参数c大小的探索,在这里不做展示。计算机积分中采用黎曼和也是常用手法,不做过多展开。
总结以及感想
在ViT时代找到这样一篇可解释性强,数学推导严谨的论文着实不易,大有一种久旱逢甘霖的爽快感。但是抛开这一切冷静下来之后,其实这篇论文的本质也暴露无疑,不知道你发现没有,作者不知道从何时起悄悄的把原本的最基础的特征函数形式后面加上了一个高斯核。数学上这无可厚非,而且如果要做欧拉视角的人群密度做高斯模糊是一个常用手法,但是就像我在开头说的那样,这个特征函数并不是完美的,他模糊了人群个体,完全使用了欧拉视角去对人群进行计数,在这个角度来看,他把自己的算法和那些拉格朗日视角的点对点算法做对比本来就是不公平的。并且由于截断函数的影响,我们并不能对任何子区域进行密度计量,当然,从来没有完美的算法,就好像统计学领域的那句名言说的那样"all models are wrong, but some are useful"。