详解统计信号处理之克拉美罗界

2024-08-29 02:08

本文主要是介绍详解统计信号处理之克拉美罗界,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

各种研究领域(包括无线定位方向)都会碰到参数估计的问题,这时常常会看到克拉美罗界 (Cramér–Rao bound) 这个东西。很多随机信号的书都会介绍什么是克拉美罗界,但初学者学起来往往很吃力,本文从直观上简单讨论一下克拉美罗界的各个方面。

什么是参数估计问题

  假设一种最简单的情况:

    一个物理量为技术分享,我们使用某种方式去观测它,观测值为技术分享,由于存在噪声,此时技术分享技术分享为高斯噪声,技术分享

这种情况下,我们自然会直接使用观测值技术分享去估计技术分享,这时就会存在估计的误差,直观地理解,噪声的方差技术分享越大,估计就可能越不准确。

为什么要讨论克拉美罗界

  讨论克拉美罗界就是为了使用这个标准来衡量无偏估计量的性能。

  采用上面的方式,使用技术分享去估计技术分享,这个估计值会在真实值附近波动(看作随机变量)。我们需要使用一些标准来衡量这种估计的好坏,一个标准是估计值的平均,这里的这个估计量是无偏估计量。另一标准是这个估计值波动的剧烈程度,也就是方差。上面这个问题中,克拉美罗界就等于这个方差。

  可是为什么不直接讨论方差而要去计算克拉美罗界呢,因为方差是针对某一种特定的估计量(或者理解为估计方式)而言的,在上面的例子中,方差是估计量技术分享的方差(技术分享)。对于稍微复杂一点点的问题,对技术分享的可以有各种不同的估计量,它们分别的方差是不同的。显然,对于无偏估计量而言,方差越小的估计方式性能越好,但是这个方差有一个下界,就是我们的克拉美罗界。

直观地理解克拉美罗界

  克拉美罗界本身不关心具体的估计方式,只是去反映:利用已有信息所能估计参数的最好效果。

  还是上面那个参数估计问题,当我们观察到技术分享的时候,我们可以知道真实值技术分享的概率密度分布是以技术分享为均值,技术分享为方差的正态分布,即:

技术分享

                  技术分享技术分享

上图给出了两个似然函数的例子,直观地看,似然函数的“尖锐”性决定了我们估计位置参数技术分享的精度。这个“尖锐”性可以用对数似然函数峰值处的负的二阶导数来度量,即对数似然函数的曲率(对数似然函数就是在似然函数的基础山加一个自然对数,这样有利于计算)。计算过程我就不写了,有兴趣的可以自己算算,算完之后结果为:技术分享,是噪声的方差的倒数,也就是噪声越小,对数似然函数越尖锐。

  所以,可以这样理解,似然函数的“尖锐”程度,或者,符合似然函数分布的这组数据的方差,就是克拉美罗界。

不同的估计量(估计方式)是什么意思

  让我们来分析一个稍微复杂一点点的参数估计问题:

    一个物理量为技术分享,我们使用某种方式去观测它,观测值为技术分享技术分享,这是两个不同时刻的观测结果,一样的高斯噪声技术分享

  这种情况下,我们要估计技术分享,正常人可能会采用估计量技术分享,即前后两个观测的平均,也有人可能觉得这样计算量有点大,于是总是直接使用技术分享去估计技术分享,也有人觉得第二个观测值可能会受到系统影响而不准确,他更相信前面的观察值,于是总采取这样的估计量技术分享。这三个估计量都是无偏的:

  估计量技术分享的方差为:技术分享

  估计量技术分享的方差为:技术分享

  估计量技术分享的方差为:技术分享

  比较上面的三种估计量,第一种的方差最小,它的估计效果较好。实际上,如果第二个观测值真的不太准确,也就是后一个高斯噪声较大,这样的话也许第二个估计量就比较合适了。

  因此,不同的考虑方式可以产生各种不同的估计算法,这些不同的估计量都是在真实值附近波动的随机变量(有的有偏,有的无偏),它们分别的方差也是不一样的,但是数学家们证明了:任何无偏估计量的方差必定大于等于克拉美罗界。

 克拉美罗界的基本计算

  我们假设这两次观察互相独立,仅受相同的高斯白噪声影响,那么根据已有的信息,真实值技术分享的似然函数为两个正态的概率密度分布相乘:(注意:pdf实际上应该再进行归一化处理,但是我们之后使用对数似然函数,乘不乘归一化系数都无所谓,对数之后变成了常数,求导的时候就没了)

技术分享

与之前一样,可以计算出对数似然函数的二阶导数,得到结果为:技术分享。实际上,当观测数目为技术分享的时候,这个值将会是技术分享。也就是说,使用多个观测值的信息时,对数似然函数越“尖锐”。这个二阶导数(曲率)更一般的度量是(下面用技术分享来表示要估计的参数技术分享):

技术分享

它度量了对数似然函数的平均曲率(很多情况下曲率与技术分享的值有关,取数学期望使得它仅为技术分享的函数),被称为数据技术分享的Fisher信息技术分享,直观地理解,信息越多,下限越低,它具有信息测度的基本性质(非负的、独立观测的可加性)。一般来说,Fisher信息的倒数就是克拉美罗界了,任何无偏估计量技术分享的方差满足:

技术分享

大多情况下,这个不等式的右边(克拉美罗界)是技术分享的函数。

克拉美罗界的标准定义

   (定理:Cramer-Rao下限----标量参数)

  假定PDF 技术分享满足“正则”条件(对于所有的技术分享):

技术分享

其中数学期望是对技术分享 求取的。那么,任何无偏估计量技术分享的方差必定满足:

技术分享

其中导数是在技术分享的真值处计算的,数学期望是对技术分享求取的。而且,对于某个函数技术分享技术分享,当且仅当

技术分享

时,对所有技术分享达到下限的无偏估计量就可以求得。这个估计量是技术分享,它是MVU估计量(最小方差无偏估计),最小方差是技术分享

总结

  估计一个参数,根据已有信息得到了似然函数(或者pdf),这个pdf的“尖锐”性,或者,符合似然函数分布的这组数据的方差,就是克拉美罗界,它可以通过对对数似然函数求二阶导再取倒数得到。克拉美罗界的计算不依赖具体的估计方式,它可以用来作为一个衡量估计方式好坏的标准,及估计量的方差越靠近克拉美罗界,效果越好。

 https://en.wikipedia.org/wiki/Cramér–Rao_bound

(注:本文主要参考《统计信号处理基础-估计与检测理论》-国外电子与通信教材系列)

 

在参数估计和统计中,Cramer-Rao界限(Cramer-Rao bound, CRB)或者Cramer-Rao下界(CRLB),表示一个确定性参数的估计的方差下界。命名是为了纪念Harald Cramer和Calyampudi Radhakrishna Rao。这个界限也称为Cramer-Rao不等式或者信息不等式。

它的最简单形式是:任何无偏估计的方差至少大于Fisher信息的倒数。一个达到了下界的无偏估计被称为完全高效的(fully efficient)。这样的估计达到了所有无偏估计中的最小均方误差(MSE,mean square error),因此是最小方差无偏(MVU,minimum variance unbiased)估计。

给定偏倚,Cramer-Rao界限还可以用于确定有偏估计的界限。在一些情况下,有偏估计方法的结果可能方差和均方差都小于无偏估计的Cramer-Rao下界。

标量情形

标量的无偏情形

假设是一个位置确定性参数。我们需要从观察变量估计它。而它们满足一个概率密度函数。任何的无偏估计的方差的下界为Fisher信息的倒数: 


其中Fisher信息定义为 

其中 表示求期望。

无偏估计的效率描述估计的方差有多接近下限,定义为 


显然有 

标量的一般情形

更一般的情况是考虑参数的无偏估计。这里的无偏性理解为。这种情况下,方差的下界为 


其中 表示 关于 的导数, 仍然是Fisher信息。

有偏估计的界限

考虑估计,设其偏倚,令。利用上式,任何期望为的无偏估计的方差都大于等于。于是 


,上式退化为无偏估计得方差界限。当估计 退化为常数(概率密度函数为脉冲函数),则方差退化为0。

从上式,利用标准分解可以推出有偏估计的均方误差下界为 


注意,如果 ,那么上式右端的下界可能小于Cramer-Rao下界。例如,当

多元变量的情形

定义向量,它的概率密度函数为满足后面的两个正则化条件。Fisher信息矩阵是一个的矩阵,元素定义为 

为一个向量函数的估计,,记它的期望向量。Cramer-Rao下界认为T(X)的协方差矩阵满足 


其中

  • 矩阵大于等于符号表示是一个半正定矩阵;
  • 是雅克比矩阵,它的第个元素为

的无偏估计(例如),则Cramer-Rao法则退化为 

两个正则化条件

边界依赖两个关于的弱正则化条件:

  • Fisher信息矩阵总是存在。等价地说,对于所有,如果,则存在并且有限。
  • 的积分和对的微分可以交换顺序。也就是说,在下式右侧有限时,有 

上述条件通常可以通过以下任意一个条件来确认:

  1. 函数中有边界支持,并且边界不依赖于
  2. 函数有有限的支持,连续可微,并且对于所有积分收敛。

标量情形的证明

假设是一个的无偏估计,且。目标是证明,对于所有, 

为随机变量,且概率密度函数为为统计量,且作为的估计。定义为概率密度函数关于的偏导数 


可以发现, 的概率密度函数也是 。利用第二个正则化条件,可以得到 的期望为0。即 

因为 ,由协方差定义式可以推出 。展开可以得到 

由柯西-施瓦茨不等式可得 

因此 

参考文献

https://en.wikipedia.org/wiki/Cram%C3%A9r%E2%80%93Rao_bound#Regularity_conditions

 

作者: rubbninja
出处: http://www.cnblogs.com/rubbninja/
版权声明:本文版权归作者和博客园共有,转载请注明出处。

这篇关于详解统计信号处理之克拉美罗界的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116540

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |