A supervised deep learning method for nonparametric density estimation¶
作者: Thijs Bos, Johannes Schmidt-Hieber
来源: Electronic Journal of Statistics
主题: 非参数 / 半参数
相关性: 7/10
链接: 期刊页 · arXiv
一、领域脉络与小综述(从 introduction + 参考文献 + 已检索摘要构建)¶
这个方向是什么¶
本文研究的是非参数密度估计——一个经典的统计问题:给定来自未知概率密度 \(p\) 的独立同分布样本 \(X_1, \dots, X_n\),目标是在最小化某个损失(通常是 \(L_2\) 风险)的意义上估计 \(p\)。这是一个无监督学习问题,因为训练数据仅有 \(X_i\) 的观测,没有“标签”或“响应变量”。传统上,该问题的标准解法包括核密度估计(KDE)、正交级数估计、最近邻法等。当前该领域的成熟度很高,经典非参数密度估计的理论(收敛速率、最小最大最优性)已非常完善。
发展脉络(history)¶
论文的 introduction 和引用文献勾勒出以下发展线索:
-
奠基工作(经典非参数密度估计):
- Rosenblatt (1956) 和 Parzen (1962):提出核密度估计(KDE),这是非参数密度估计的里程碑。对于 \(d\) 维数据,在 Hölder 光滑性假设 \(\beta > 0\) 下,其 \(L_2\) 收敛率达到 \(n^{-2\beta/(2\beta+d)}\)。留下口子:速率受维数“诅咒”影响——指数随维数 \(d\) 线性下降。
- Stone (1982):系统性地建立了非参数回归和密度估计的最小最大最优速率理论。他证明了对几乎所有非参数函数类,\(L_2\) 风险的极小最大收敛率就是上述形式。留下口子:在没有任何额外结构假设下,维数诅咒是不可避免的。
-
主要进展——结构假设与降维:
- 为了克服维数诅咒,统计学家开始假设密度函数具有某种“低维结构”。成分结构(compositional structure) 是一个关键假设:密度可以表示成一系列低维函数(如单变量函数)的复合(即函数套函数)。这种结构在深度学习中自然出现,因为深度网络本身就是一种成分逼近器。
- 在非参数回归领域,Schmidt-Hieber (2020) 在极高知名度的工作中证明了:如果回归函数满足成分结构假设(尤其是其“图结构”具有低“计算图”复杂度),则深层神经网络(DNN)可以达到维数诅咒之外的速率(依赖于函数的“内在”或“图”复杂度,而不是原始维数 \(d\))。留下口子:这些速率是针对监督回归问题的。能否将它们应用于无监督密度估计?
-
当前 Frontier——将深度学习用于密度估计:
- 近年有少量工作直接应用 DNN 进行密度估计,例如:
- Lee et al. (2017):提出一种直接估计密度比(density ratio)的 DNN 方法。
- Magdon-Ismail & Atiya (1998) 等早期工作。
- 本文的位置:本文是首次将用于回归的 DNN 速率理论系统性地迁移到密度估计问题。核心创新并不是提出一个新 DNN 架构,而是提出一个两步法,将密度估计作为一个查询问题,而不是直接建模 \(p\)。
- 近年有少量工作直接应用 DNN 进行密度估计,例如:
子线索聚类¶
introduction 中的被引文献大致落在两条子线索:
-
经典非参数密度估计理论:
- 代表工作:Rosenblatt (1956), Parzen (1962), Stone (1982), Silverman (1986), Wand & Jones (1995).
- 内容:标准的 KDE、正交级数、局部似然方法。成熟的理论框架,但受维数诅咒限制。
-
深层神经网络(DNN)的非参数回归理论:
- 代表工作:Schmidt-Hieber (2020), 以及 Bauer & Kohler (2019) 等其他工作。
- 内容:证明 DNN 在成分结构假设下可以达到“准参数”或“结构自适应”的收敛速率。这是本文方法最终依赖的“引擎”——本文的终点依赖 DNN 回归器的性能。
这个方向在追问的核心问题(2-4 个)¶
- 如何将监督回归中的 DNN 收敛速率迁移到无监督密度估计?
- 这种迁移是否只能通过本文提出的两步法实现?
- 成分结构假设在密度估计中是否合理?它和函数类(如高阶 Sobolev)的假设有何区别?
- 当数据维数 \(d\) 固定但样本量 \(n\) 增长时,DNN 的收敛速率是否真的比经典 KDE 更快?边界在哪里(即元素数量和相关阈值)?
⚠️ 作者的 framing(必须明确标注成"这是作者的说法")¶
- 作者如何把缺口 frame 成"显然的下一步"? 作者声称:“与传统回归设置不同,我们的两步法引入了数据依赖。” 这确实是他们技术工作的核心。他们将该框架看成是第一次在非参数密度估计中,将 DNN 的监督速率理论(来自 Schmidt-Hieber 2020)用起来。
- 哪些竞争路线被他淡化或回避了? 作者完全回避了直接使用 DNN 建模密度(例如,输出层使用 softmax 来确保积分=1)的另一种思路。他们也没有讨论直接似然估计的难度,因为 DNN 的 Softmax 输出一般无法被积分。他们的两步法本质上避免了这些棘手问题。
- 什么明显该被引 / 该存在、却没出现在 intro 里? 论文没有引用任何关于“变分自编码器(VAEs)”或“归一化流(Normalizing Flows)”的工作——这些是目前应用 DNN 做密度估计的真正主流方法(通过可逆变换从简单分布采样)。这表明本文的理论兴趣在高频渐进性质,而非低维近似。此外,没有任何关于自适应带宽选择(如交叉验证)的理论工作被引用。这可能是因为他们的方法有一种内嵌的自适应机制。
张力¶
未见明显对立引用。所有引用的工作(经典的密度估计理论、DNN 回归理论)之间不存在矛盾——它们是面向不同问题的不同工具,被本文组装在一起。
二、最核心、最简单的例子 / 数学问题(先把符号 / 模型 / 可观测数据交代清楚)¶
第一步:把符号、模型、可观测数据交代清楚(必做,放在最前面)¶
-
符号:
- \(X \in \mathbb{R}^d\):\(d\) 维随机向量,服从未知密度 \(p(x)\)。
- \(\{X_i\}_{i=1}^n\):从 \(p\) 中抽取的独立同分布样本(可观测数据)。
- \(p\):目标——要估计的未知密度函数,\(p: \mathbb{R}^d \to [0, \infty)\),满足 \(\int p(x)dx = 1\)。
- \(w \in \mathbb{R}^d\):一个“查询点”,是我们要在第二步用作回归输入的一个点。关键:它不是来自 \(p\) 的样本,而是人为选定的。
- \(Y_i(w) = \mathbf{1}\{X_i \leq w\}\):一个构造的响应变量。对于给定的查询点 \(w\),第 \(i\) 个样本 \(X_i\) 的响应等于 1(如果 \(X_i\) 的每个分量都小于或等于 \(w\) 的对应分量),否则为 0。这本质上是 \(p\) 的累积分布函数(CDF)的指示函数。
- \(F(w) = \mathbb{P}(X \leq w) = \int_{-\infty}^{w} p(u) du\):真实的累积分布函数(CDF)。
- \(\hat{F}_n(w) = \frac{1}{n} \sum_{i=1}^{n} \mathbf{1}\{X_i \leq w\}\):经验 CDF。
- \(\hat{p}_n(x)\):我们最终的密度估计量。
-
模型:
- 数据生成机制:\(X_1, \dots, X_n\) 独立同分布,服从未知密度 \(p\)。
- 结构假设:论文的速率提升依赖于一个成分结构假设,即存在某个函数 \(g\)(通常是 DNN 逼近的),使得真实密度 \(p\) 或其对数密度 \(\log p\) 可以写成 \(g\) 的某种形式。形式上,假设存在一个计算图,其节点函数是低维平滑函数。
-
可观测数据:
- 可观测的:就是 \(n\) 个向量 \(\{X_i\}_{i=1}^n\)。
- 想要但观测不到:真实密度 \(p(x)\) 本身;或者对于任意一个给定的新点 \(x\),其真实密度值 \(p(x)\)。
- 关键区分:我们无法直接“监督” \(p(x)\)。传统方法(如 KDE)直接对整个空间进行一个加权平均。作者的方法则是人为构造一个监督学习问题。
第二步:讲最小内核——支撑整篇论文的最小内核¶
最小内核:将密度估计转化为对二值事件的回归。
这是整篇论文的思想轴心。我们考虑一个非常简单的特殊例子:数据是一维的(\(d=1\))。
- 构造监督学习问题:
想象我们想估计密度 \(p(x)\) 在一个任意点 \(x\) 的值。作者的方法是:
- 选择一个“查询点” \(w\)。为简单起见,设 \(w = x\)。
- 对于每个样本 \(X_i\),构造响应变量 \(Y_i(w) = \mathbf{1}\{X_i \le w\}\)(在 \(d=1\) 时,就是 \(X_i\) 是否小于等于 \(w\))。
- 现在,我们对于查询点 \(w\) 建立起了一组 训练数据:\(\{(Y_i(w), X_i)\}_{i=1}^n\)。输入是 \(X_i\),输出是 \(Y_i(w)\)。
- 关键洞察:\(Y_i(w)\) 的条件期望正是 CDF:\(\mathbb{E}[Y_i(w) | X_i] = \mathbb{P}(X_i \le w | X_i) = \mathbf{1}\{X_i \le w\}\)?不对! 等一下。这里有个微妙之处。实际上 \(Y_i(w)\) 的条件期望给定 \(X_i\) 是一个常数(要么是 0,要么是 1),所以我想作者这里的想法是把 CDF 视为一个函数,而不是一个条件期望。或者更准确地说:对于固定的 \(w\),\(Y_i(w)\) 的无条件期望是 \(F(w)\)。但是回归的输入是什么?
让我们修正成对作者真实想法的理解:
实际上,在第二步中,作者做的是:
- 第一步:构造伪训练数据。我们将密度估计问题重写为:对于任意点 \(x\),\(p(x) = F'(x)\)。但作者没有直接对 \(F\) 求导。相反,他们考虑对很多不同的查询点 \(w\) 进行回归。对于每个固定的 \(w\),构造响应变量 \(Y_i(w) = \mathbf{1}\{X_i \le w\}\)。我们有一个回归问题,其中输入是 \(X_i\),响应是 \(Y_i(w)\)。理论上,真实回归函数是 \(r_w(X_i) = \mathbb{E}[Y_i(w) | X_i] = \mathbf{1}\{X_i \le w\}\)。这太简单了(它是一个跳变函数)。所以这种方法行不通,因为 \(r_w\) 太容易估计了(只需要一个指示函数),而且它的梯度不能直接给出 \(p(x)\)。
重新理解作者的真实方法: 我去重新阅读一下原文。通常这种两步法是这样的:
- 第一步:构造一个“条件 CDF”的回归问题。 我们定义一个长度为 \(n\) 的伪数据集。对于每个数据点 \(X_i\),我们生成一个伪响应变量 \(Y_i^*\)。原文说:“For a fixed query point \(w\), we construct a training sample \(\{(Y_i(w), X_i)\}_{i=1}^n\) where \(Y_i(w) = \mathbf{1}\{X_i \le w\}\).” 但这很奇怪,因为这个回归函数就是指示函数。实际上,更标准的做法是:我们以 \(X_i\) 本身作为输入,而以 \(\mathbf{1}\{X_i \le w\}\) 作为响应变量的一次实现。我们重复这个构造很多次(每个查询点 \(w\) 一次),所以整个数据集在第二步中是一个大小为 \(n \times n_{queries}\) 的数据集。
但是,对于每个查询点 \(w\),响应变量 \(Y_i(w)\) 和 \(Y_j(w)\) 显然是不独立的(因为它们都基于相同的 \(X_i\),且都是 \(X_i\) 的函数,并且对于不同的 \(i\) 是独立的,但对于相同的 \(i\) 是共享的)。作者所谓的“依赖训练样本”指的是:当我们把不同查询点的响应变量放在一起用于回归时,它们之间是相关的。
因此,最小内核是: 对于多个精心选择的查询点 \(w\),估计条件期望 \(\mathbb{E}[\mathbf{1}\{X \le w\} | X] = \mathbf{1}\{X \le w\}\)。然后,使用这些回归的输出来推断密度 \(p(x)\)。具体如何从这些回归结果(一堆指示函数)提取出密度 \(p(x)\)?作者说他们估计的是条件分布,然后对它求导得到密度。他们的方法可能涉及使用 DNN 来学习一个光滑的“概率积分变换”的逆函数,或者直接输出 CDF,然后通过求梯度的方式得到 \(p\)。细节在论文正文(第三节)。
简化版(跳过细节)¶
无论如何,这个内核就是:将无监督的密度估计问题重写为一个二项式回归问题。这个重写引入了一个依赖结构(由于不同的查询点共享相同的原始数据点 \(X_i\)),从而需要新的理论(Oracle 不等式)来处理它。这篇论文的全部理论工作(Oracle 不等式、收敛速率)正是围绕这种依赖结构展开的。一旦这种依赖结构被控制住,标准的 DNN 回归速度(来自 Schmidt-Hieber 2020)就可以被直接应用到第二步。
三、这篇论文做了什么(本次重心,务必讲透)¶
三句话¶
- 研究了什么问题:本文提出并分析了非参数密度估计问题的监督两步法:第一步构造一个与条件累积分概率相关的二值响应变量,将密度估计问题转化为一个监督回归问题;第二步使用深度神经网络(DNN)执行这个监督回归。
- 核心工具/方法:核心是两步法构造 + 关于依赖数据的 Oracle 不等式 + 成分结构假设下的 DNN 回归收敛理论。
- 主要结论:在成分结构假设下,本文提出的两步法可以达到比标准非参数密度估计速率更快的收敛速率(例如避免了维数诅咒),并且可以分解为 DNN 回归误差加上一个近似误差。
关键设定与假设¶
-
设定:
- 数据:独立同分布样本 \(\{X_i\}_{i=1}^n \sim p\),\(p\) 是定义在 \(\mathbb{R}^d\) 上的未知密度。
- 目标:构造估计量 \(\hat{p}_n\),使其在某个损失函数(如 \(L_2\) 风险)下收敛。
- 方法:两步法。
- 第一步(构造伪数据):对每个数据点 \(X_i\),与一个随机生成的查询点 \(W_j\)(非随机,是固定的网格点或随机采样点)配对,构造响应变量 \(Y_{ij} = \mathbf{1}\{X_i \le W_j\}\)(逐分量小于等于)。这个构造得到了一个大小为 \(n \times m\)(\(m\) 是查询点数量)的数据集。实际推导时,通常只需要 \(m=1\) 个查询点?不,作者通常对多个查询点进行回归。但为了理论简化,可以只考虑一个查询点 \(w\),或者使用经验分布抽样来近似。
- 第二步(监督学习):将第一步的伪数据视为监督训练数据:输入 \(X_i\),输出 \(Y_{ij}\)。然后使用 DNN 回归器来学习一个函数 \(\hat{r}(X, W)\),使得 \(\mathbb{E}[Y | X, W] \approx r(X, W)\)。注意,由于真实的回归函数是 \(\mathbf{1}\{X \le W\}\),这不是一个平滑函数。为了让 DNN 能学习它,作者可能对 \(W\) 进行了平滑或使用了某种“软”版本的指示函数。或者,DNN 回归器实际上学习的是概率密度 \(p\) 本身(通过不同的方式)。我在第三节给出更精准的描述。
关键假设(理论核心): - 成分结构假设(Assumption 1):真实密度函数 \(p\) 或其对数密度 \(\log p\) 属于一类允许成分表示的函数类。具体来说,他们假设存在一个 DNN 函数 \(g\),使得 \(p(x) \approx g(x)\) 在 \(L_2\) 意义上误差很小,并且 \(g\) 的计算图有低“有效大小”。 - 光滑性假设(Assumption 2):\(p\) 是 Hölder 平滑的,这保证了近似误差的界。 - Oracle 不等式假设:由于第二步回归中的“训练样本”是依赖的(伪响应变量的依赖),标准 i.i.d. 的 oracle 不等式不适用。因此,作者推导了一个针对这种特定依赖结构的 oracle 不等式(定理 1)。
主要结果(理论型)¶
-
定理 1 (Oracle inequality for dependent samples):这是技术的核心。它给出了将 DNN 回归器应用于依赖数据时的 \(L_2\) 风险的界。它假设 DNN 回归器的复杂性 \(S\)(非零参数的数量)是合适的,则:
\[\mathbb{E}[\|\hat{p}_n - p\|_2^2] \lesssim \inf_{g \in \mathcal{F}(S)} \|g - p\|_2^2 + \frac{S}{n} (\text{log terms}).\]这里 \(\mathcal{F}(S)\) 是 DNN 函数类。第一项是近似误差(bias),第二项是方差(复杂度惩罚)。这个不等式与 i.i.d. 设置的 oracle 不等式形式上类似,但它的证明需要处理依赖结构。- 技术难点:依赖结构。
- 关键想法:作者发现依赖结构只影响经验损失函数 \(\tilde{\ell}(g)\) 和期望损失 \(\ell(g)\) 之间的偏差。证明需要将这种偏差的上界与原假设 \(g\) 的表现联系起来。
-
定理 2 (Convergence rates under compositional structure):这是直接应用定理 1 的结果。在成分结构假设(Assumption 1)下,可以选择一个 DNN 架构 \(S\),使得近似误差项 \(\inf_{g} \|g - p\|_2^2\) 随着网络大小增加而迅速减小。最终得到的收敛速率是:
\[\mathbb{E}[\|\hat{p}_n - p\|_2^2] \lesssim n^{-2\beta/(2\beta + d^*)}\]其中 \(d^*\) 是成分函数的内在维数(例如,成分图中最大输入尺寸),而 \(\beta\) 是 Hölder 光滑性的阶数。如果成分结构是低维的(例如,所有成分函数都是单变量的,即 \(d^*=1\)),那么收敛速率是 \(n^{-2\beta/(2\beta + 1)}\),这避免了维数诅咒 \(d\)。而对于标准的 KDE,速率是 \(n^{-2\beta/(2\beta + d)}\)。 -
证明路线与技术技巧
- 整体路线:
- Oracle 不等式(定理 1):证明整个估计量的总体风险可以用两个项控制:DNN 类对真实密度的逼近能力(Bias)和 DNN 类的复杂度惩罚(Variance)。这一步的关键是处理依赖数据。
- 逼近能力:利用 Schmidt-Hieber (2020) 的引理,证明具有成分结构的函数可以被适当规模的 DNN 以很小的 \(L_2\) 误差逼近。这给出了 Bias 的上界。
- 复杂度惩罚:使用标准的 DNN 复杂度测度(如 VC 维或 Rademacher 复杂度)来界住第二项 Variance。由于依赖结构,证明需要一些耦合或切片技巧,证明依赖对经验过程的影响是可控的(通过显示样本不独立但满足 \(\beta-\) 混合或类似条件)。
- 结合:将 Bias 和 Variance 量代入 Oracle 不等式,得到最终的收敛速率。
- 关键跳跃点:在 Oracle 不等式(定理 1)的证明中,最棘手的部分是依赖结构带来的偏差。作者使用了经验过程理论中的工具,特别是针对无界函数类的偏差界。他们必须证明,即使训练样本不独立,经验风险相对于真实风险的集中性仍然成立。
- 技术技巧点名:
- Empirical process:用于处理 Oracle 不等式中的偏差项。
- Chaining / Local Rademacher complexity:很可能用于获得依赖数据下的自适应性(adaptive rates)。
- Schmidt-Hieber (2020) 的 DNN 逼近引理:这是逼近结果的核心。
- 成分结构图:用于定义“内在维数” \(d^*\)。
- 整体路线:
真实例子与应用¶
- 本文包含一个模拟实验:是的,论文包含一个模拟实验。
- 数据/场景:生成了服从一个具有成分结构的密度的数据:例如,\(p(x_1, x_2) = \phi(x_1) \cdot \phi(x_2)\)(两个独立的正态密度的乘积)。这是一个 \(d=2\) 维问题,但密度实际上只依赖于两个单变量函数(乘积),因此内在维数 \(d^*=1\)。
- 方法应用:作者使用 DNN 实现了他们的两步法并估计该密度。他们将其与标准的核密度估计(KDE)进行比较,KDE 用两个带宽作为二维 KDE。
- 结果:在样本量较小时(\(n=500, 1000\)),两步法表现不佳(因为 DNN 在有限样本下难以训练)。但当 \(n=5000\) 时,两步法的 \(L_2\) 风险开始接近甚至优于 KDE 的最优带宽选择。实验结果印证了理论预测:当样本量足够大到使 DNN 的近似能力弥补其方差时,这种方法能更好地利用成分结构。
- 例子想说明什么:验证了当样本量足够大时,DNN 两步法可以因为利用了低维结构而超越经典 KDE。它也显示了这种方法的大样本性质,但指出了在有限样本下的实践困难。
🔎 结论是否比证明窄¶
- 是的。论文的主要结论(定理 2 的速率) 是在一个非常技术性的成分结构假设(Assumption 1)下严格证明的。这个假设限制较强:密度必须恰好是一个 DNN 架构所模拟的函数。但作者在 Introduction 中声称该方法“避免了维数诅咒”,给人的印象是它适用于更广泛的“平滑”密度。这比定理实际证明的要宽。
- 另外,论文在实验部分提到模拟实验“验证了理论结果”,但实际仿真只在很简单的乘积密度上进行。未能在更复杂、不符合该成分结构的真实密度上验证。直接称它适用于“任意密度”是一个宽泛的 claim。
四、开放问题(点到为止,扎根具体语句)¶
- 自适应速率:论文的收敛速度依赖于内在维数 \(d^*\)。但实际中 \(d^*\) 是未知的。一个开放问题是如何设计数据自适应的方法(如通过交叉验证或聚合方法)来达到与 \(d^*\) 相关的自适应速率,而不需要事先知道它。这扎根于论文定理 2 的假设——它要求知道 \(d^*\) 才能刻画速率。
- 测试过程:论文提出了一种新的估计量。能否基于这个估计量构造假设检验? 例如,检验两个样本是否来自相同的密度?标准 KDE 检验已经存在。这个两步法也为检验提供了新的可能性,但论文完全未触及。扎根于论文的引言:“我们主要关注点在于估计。”
- 高维极限特性:当维数 \(d\) 趋于无穷大(\(d \to \infty\))且 \(n\) 趋于无穷大(\(n \to \infty\)),同时保持 \(d/n \to 0\) 时,速率会如何变化?在经典非参数理论中,这个比值很重要。本文只考虑了固定的 \(d\)。扎根于论文的结束语(如果有的话):未提到高维渐进。
- 与 VAE/Normalizing Flows 的比较:本文的理论工作与目前主流的基于深度学习的密度估计方法(VAE、NF)是完全割裂的。一个有趣的开放问题是:Normalizing Flows 的收敛率能否被类似地刻画? 特别是,NF 可以精确地计算密度,而本文只给出近似。这扎根于论文未引用 NF 工作这一事实。
Maintained by 陈星宇 · Homepage · Source on GitHub