经典核密度估计(Kernel Density Estimation):从直觉到数学

经典核密度估计(Kernel Density Estimation):从直觉到数学

作为一名在大模型时代进入深度学习领域的研究者,你可能对 Transformer、扩散模型等现代技术驾轻就熟。然而,在阅读一些生成模型的文献(如 Explicit Score-Matching)时,你可能会遇到一些“古典”概念,比如“经典核密度估计”(Classical Kernel Density Estimation, KDE)。这个方法虽然看似古老,但在理解概率分布估计和生成模型(如 Score-Matching 和扩散模型)的理论基础时非常重要。本篇博客将面向具有大模型理论基础的研究者,介绍核密度估计的直觉、数学定义及其在现代深度学习中的意义,帮助你快速补齐这一知识点。

什么是核密度估计?

核密度估计是一种非参数的概率密度估计方法,用于从有限的数据样本中估计数据的概率密度函数 ( p ( x ) p(x) p(x) )。在深度学习中,我们通常假设数据分布是某种已知形式(比如高斯分布),然后用神经网络去拟合参数。但在现实中,真实数据分布 ( p ( x ) p(x) p(x) ) 往往是未知且复杂的。KDE 的目标就是不假设分布的具体形式,而是直接从数据样本中“平滑”地构建一个近似分布。

假设我们有一个数据集 ( X = { x ( 1 ) , x ( 2 ) , … , x ( M ) } X = \{x^{(1)}, x^{(2)}, \dots, x^{(M)}\} X={x(1),x(2),,x(M)} ),包含 ( M M M ) 个样本。KDE 定义了一个分布 ( q h ( x ) q_h(x) qh(x) ) 来近似真实分布 ( p ( x ) p(x) p(x) ):
q h ( x ) = 1 M ∑ m = 1 M 1 h K ( x − x ( m ) h ) q_h(x) = \frac{1}{M} \sum_{m=1}^M \frac{1}{h} K\left( \frac{x - x^{(m)}}{h} \right) qh(x)=M1m=1Mh1K(hxx(m))
其中:

  • ( K ( ⋅ ) K(\cdot) K() ) 是核函数(Kernel Function),通常是一个对称的概率密度函数(如高斯核)。
  • ( h ) 是带宽(Bandwidth),一个超参数,控制平滑程度。
  • ( x ( m ) x^{(m)} x(m) ) 是第 ( m m m ) 个训练样本。
直觉理解

想象你有一堆离散的数据点(比如 ( x ( 1 ) , x ( 2 ) , … x^{(1)}, x^{(2)}, \dots x(1),x(2), )),你想估计这些点背后的连续分布。一种简单的方法是用直方图,但直方图的问题是它依赖于分箱的选择,结果可能不平滑。KDE 的思路是为每个数据点 ( x ( m ) x^{(m)} x(m) ) 放置一个“核”(一个小的概率密度函数),然后把所有核加起来,得到一个平滑的整体分布。

  • 核函数 ( K ( ⋅ ) K(\cdot) K() ):可以看作是一个“模板”,决定了每个数据点对周围区域的贡献。例如,高斯核 ( K ( u ) = 1 2 π e − u 2 2 K(u) = \frac{1}{\sqrt{2\pi}} e^{-\frac{u^2}{2}} K(u)=2π 1e2u2 ) 会生成一个钟形曲线。
  • 带宽 ( h h h ):控制核的宽度。( h h h ) 越大,核越宽,分布越平滑;( h h h ) 越小,核越窄,分布更贴近数据点。

用一个比喻来说,KDE 就像在每个数据点上放一个“水滴”,水滴的大小由 ( h h h ) 决定,所有水滴叠加后形成一个平滑的“水面”,这就是 ( q h ( x ) q_h(x) qh(x) )。

数学推导与形式化

让我们更正式地理解 KDE。假设核函数 ( K ( u ) K(u) K(u) ) 满足:
∫ K ( u ) d u = 1 , ∫ u K ( u ) d u = 0 , ∫ u 2 K ( u ) d u < ∞ \int K(u) \, du = 1, \quad \int u K(u) \, du = 0, \quad \int u^2 K(u) \, du < \infty K(u)du=1,uK(u)du=0,u2K(u)du<
这保证了 ( K ( ⋅ ) K(\cdot) K()) 是一个有效的概率密度函数,且对称(均值为 0)。

对于每个样本 ( x ( m ) x^{(m)} x(m) ),项 ( 1 h K ( x − x ( m ) h ) \frac{1}{h} K\left( \frac{x - x^{(m)}}{h} \right) h1K(hxx(m))) 是一个以 ( x ( m ) x^{(m)} x(m) ) 为中心的缩放核,缩放因子 ( 1 h \frac{1}{h} h1 ) 确保其积分为 1:
∫ 1 h K ( x − x ( m ) h ) d x = ∫ K ( u ) d u = 1 \int \frac{1}{h} K\left( \frac{x - x^{(m)}}{h} \right) \, dx = \int K(u) \, du = 1 h1K(hxx(m))dx=K(u)du=1
因此,( q h ( x ) = 1 M ∑ m = 1 M 1 h K ( x − x ( m ) h ) q_h(x) = \frac{1}{M} \sum_{m=1}^M \frac{1}{h} K\left( \frac{x - x^{(m)}}{h} \right) qh(x)=M1m=1Mh1K(hxx(m)) ) 是一个合法的概率密度函数,满足:
∫ q h ( x ) d x = 1 \int q_h(x) \, dx = 1 qh(x)dx=1

KDE 的可视化
  • 单点贡献:每个 ( 1 h K ( x − x ( m ) h ) \frac{1}{h} K\left( \frac{x - x^{(m)}}{h} \right) h1K(hxx(m)) ) 是一个以 ( x ( m ) x^{(m)} x(m) ) 为中心的平滑“峰”。
  • 整体估计:所有 ( M M M ) 个核的平均值 ( q h ( x ) q_h(x) qh(x) ) 形成一个连续的密度曲线。
  • 直方图对比:相比直方图的阶梯状,KDE 提供了一个平滑的估计,更接近真实分布的形状。
在深度学习中的意义

作为大模型研究者,你可能好奇 KDE 为什么会在现代生成模型(如 Score-Matching 或扩散模型)中出现。以下是它与你熟悉的领域之间的联系:

  1. 分布近似
    在 Score-Matching 中,我们需要估计数据分布 ( p ( x ) p(x) p(x) ) 的梯度(即分数函数 ( ∇ x log ⁡ p ( x ) \nabla_x \log p(x) xlogp(x)))。但 ( p ( x ) p(x) p(x) ) 通常未知,KDE 提供了一种基于样本的近似 ( q h ( x ) q_h(x) qh(x) ),可以用作替代目标。

  2. 平滑性
    大模型(如扩散模型)依赖于连续的概率密度假设。KDE 的平滑特性使其成为理论分析和损失函数设计的基础。

  3. 非参数方法
    与深度学习中的参数化分布(如高斯混合模型)不同,KDE 不假设分布形式,这与生成模型追求灵活性的目标一致。

例如,在 Explicit Score-Matching 中,有文献使用 KDE 定义 ( q h ( x ) q_h(x) qh(x) ) 来近似 ( p ( x ) p(x) p(x)),然后基于此训练一个网络 ( s θ ( x ) s_\theta(x) sθ(x) ) 来匹配分数函数。这种方法避免了直接访问真实分布的需求。

优缺点
  • 优点
    • 非参数化,无需假设分布形式。
    • 平滑且直观,易于理解和实现。
  • 缺点
    • 计算复杂度高:对于 ( M M M ) 个样本,评估 ( q h ( x ) q_h(x) qh(x) ) 需要 ( O ( M ) O(M) O(M) ) 次计算。
    • 带宽 ( h h h ) 的选择敏感:( h h h ) 过大导致过平滑,( h h h ) 过小则过拟合。
总结

经典核密度估计是一个从数据样本直接估计概率密度的强大工具,尽管它在深度学习时代显得有些“古典”,但其思想在生成模型的理论基础中仍然发挥作用。对于熟悉大模型的你来说,KDE 可以看作是一种“前神经网络时代”的分布建模方法,它通过核函数的叠加实现了平滑估计。如今,它更多作为理论桥梁,帮助我们理解从数据到连续分布的转换过程。

后记

2025年3月7日20点04分于上海,在grok 3大模型辅助下完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon 算子 一维码检测识别、项目案例

首先我们要明白码的识别思路 把窗口全部关闭读取新的图片图像预处理创建条码模型设置模型参数搜索模型获取条码结果显示条码结果 图像预处理和条码增强 对比度太低&#xff1a; scale_image&#xff08;或使用外部程序scale_image_range&#xff09;,增强图像的对比度图像模糊…

vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结

上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目&#xff0c;因为vue2在2023年底已经不更新维护了&#xff0c;elementUI也只支持到vue2&#xff0c;然后总结了一下vue3的优势&#xff0c;最后批准升级成为了vitevue3vue-router4.5element…

SpringBoot实战(三十五)微服务集成OAuth2.0(UAA)

目录 一、知识回顾1.1 什么是 OAuth2 协议&#xff1f;1.2 OAuth2 的4个角色1.3 OAuth2 的3种令牌1.4 OAuth2 的5种认证方式1.5 OAuth2 内置接口地址 二、UAA介绍2.1 概述2.2 UAA的主要功能2.3 UAA 的应用场景 三、微服务集成3.1 集成示例介绍3.2 集成测试 一、知识回顾 在进行…

红果短剧安卓+IOS双端源码,专业短剧开发公司

给大家拆解一下红果短剧/河马短剧&#xff0c;这种看光解锁视频&#xff0c;可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码&#xff0c;这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等&#xff0c;类似红果短剧的玩法&#xff0c;可以看剧赚钱&#xff0c…

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以&#xff0c;键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手&#xff01; 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个&#xff0c;我们想到的第一个可以…

百度SEO关键词布局从堆砌到场景化的转型指南

百度SEO关键词布局&#xff1a;从“堆砌”到“场景化”的转型指南 引言 在搜索引擎优化&#xff08;SEO&#xff09;领域&#xff0c;关键词布局一直是核心策略之一。然而&#xff0c;随着搜索引擎算法的不断升级和用户需求的多样化&#xff0c;传统的“关键词堆砌”策略已经…

Python ❀ Unix时间戳转日期或日期转时间戳工具分享

设计一款Unix时间戳和日期转换工具&#xff0c;其代码如下&#xff1a; from datetime import datetimeclass Change_Date_Time(object):def __init__(self, date_strNone, date_numNone):self.date_str date_strself.date_num date_num# 转时间戳def datetime2timestamp(s…

【目标检测】【NeuralPS 2023】Gold-YOLO:通过收集与分发机制实现的高效目标检测器

Gold-YOLO&#xff1a; Efficient Object Detector via Gather-and-Distribute Mechanism Gold-YOLO&#xff1a;通过收集与分发机制实现的高效目标检测器 0.论文摘要 在过去的几年中&#xff0c;YOLO系列模型已成为实时目标检测领域的领先方法。许多研究通过修改架构、增强数…

π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践

前言 ChatGPT出来后的两年多&#xff0c;也是我疯狂写博的两年多(年初deepseek更引爆了下)&#xff0c;比如从创业起步时的15年到后来22年之间 每年2-6篇的&#xff0c;干到了23年30篇、24年65篇、25年前两月18篇&#xff0c;成了我在大模型和具身的原始技术积累 如今一转眼…

K8s 1.27.1 实战系列(六)Pod

一、Pod介绍 1、Pod 的定义与核心设计 Pod 是 Kubernetes 的最小调度单元,由一个或多个容器组成,这些容器共享网络、存储、进程命名空间等资源,形成紧密协作的应用单元。Pod 的设计灵感来源于“豌豆荚”模型,容器如同豆子,共享同一环境但保持隔离性。其核心设计目标包括…

企业日常工作中常用的 Linux 操作系统命令整理

Linux 操作系统命令整理 在企业级运维、开发和日常工作中&#xff0c;Linux 命令是绕不开的核心技能。不论是日志排查、进程管理&#xff0c;还是高效运维优化&#xff0c;掌握这些命令都能让你事半功倍&#xff01;本篇文章整理了自己在日常工作中积累最常用的 Linux 命令&am…

实现NTLM relay攻击工具的Python代码示例

以下是一个实现NTLM relay攻击工具的Python代码示例&#xff0c;该工具可以完成自动扫描IP、配置相关协议、获取hash、自动化设置和执行攻击步骤等功能。 代码思路 IP扫描&#xff1a;使用scapy库进行IP扫描&#xff0c;找出活跃的IP地址。Responder配置&#xff1a;自动配置…

Kotlin和Java区别

哈哈哈&#xff0c;前段时间&#xff0c;面试的时候&#xff0c;突然问到我Kotlin和Java的区别&#xff0c;一下子把我问懵逼了&#xff0c;确实没遇到问这个的&#xff0c;想了下&#xff0c;说了下Kotlin的编译时空检查机制&#xff0c;代码更简洁&#xff0c;很多封装好的AP…

【大模型】大模型分类

大模型&#xff08;Large Models&#xff09;通常指参数量巨大、计算能力强大的机器学习模型&#xff0c;尤其在自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;等领域表现突出。以下是大模型的常见分类方式&#xff1a; 1. 按应用领域分类 …

centos中使用svn整理

centos中使用svn整理 1. 安装 SVN 客户端2. 常见 SVN 用法及示例2.1 创建 SVN 仓库2.2 检出&#xff08;Checkout&#xff09;项目2.3 添加文件到版本控制2.4 提交&#xff08;Commit&#xff09;更改2.5 更新&#xff08;Update&#xff09;本地工作副本2.6 查看文件状态2.7 查…

游戏元宇宙崛起:AI代理IP驱动虚拟世界“无限可能”​

在科技飞速发展的当下&#xff0c;游戏元宇宙正以一种前所未有的姿态崛起&#xff0c;它犹如一颗璀璨的新星&#xff0c;吸引着无数人的目光。而AI代理IP&#xff0c;正成为驱动这个虚拟世界展现“无限可能”的关键力量。 「快代理&#xff5c;11年专注企业级代理IP云服务 —…

基于Servlet + JSP 的物业管理系统

Javaweb物业管理系统&#xff5c;Java&#xff5c;Servlet | JavaWeb&#xff5c;web网站&#xff5c; 分管理员登录&#xff0c;用户登录。 一、内容 项目源码 配套文档 环境部署教程 项目运行教程 二、技术介绍 技术应用&#xff1a; Servlet JavaBean CSS JSP 开发环…

Billing的patient balance的2个例子

Billing的patient balance的2个例子 第一个例子 下面是 0852医院的00005641的计算&#xff1a; 主保险 Allowable: 78.81 Applied:61.79 CoInsurance:17.02 第二保险 Allowable: 15.76 Applied:15.76 我们在计算时是用主保险的Allowable: 78.81&#xff…

哪些培训课程适合学习PostgreSQL中级认证知识?

PostgreSQL 中级工程师 PGCP 认证培训&#xff1a;由重庆思 庄经验丰富的讲师郑全老师授课。课程内容系统全面&#xff0c;涵盖了 PostgreSQL 数据库从基础到高级的知识&#xff0c;包括数据库的安装、建库、用户与角色管理等基础内容&#xff0c;也有性能调优、索引原理与应用…

计算机二级MS之PPT

声明&#xff1a;跟着大猫和小黑学习随便记下一些笔记供大家参考&#xff0c;二级考试之前将持续更新&#xff0c;希望大家二级都能轻轻松松过啦&#xff0c;过了二级的大神也可以在评论区留言给点建议&#xff0c;感谢大家&#xff01;&#xff01; 文章目录 考题难点1cm25px…