费雪信息 (Fisher information)

费雪信息 (Fisher information)——————————————————————————作者:知乎用户链接:https://www.zhihu.com/question/26561604/answer/33275982来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。——————

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

——————————————————————————

作者:知乎用户
链接:https://www.zhihu.com/question/26561604/answer/33275982
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

——————————————————————————

首先我们看一下 Fisher Information 的定义:
假设你观察到 i.i.d 的数据 X_1, X_2, \ldots X_n 服从一个概率分布f(X; \theta),\theta是你的目标参数(for simplicity, 这里\theta是个标量,且不考虑 nuissance parameter),那么你的似然函数(likelihood)就是:
L(\bold{X};\theta) = \prod_{i=1}^n f(X_i;\theta)
为了解得Maximum Likelihood Estimate(MLE),我们要让log likelihood的一阶导数得0,然后解这个方程,得到\hat{\theta}_{MLE}
这个log likelihood的一阶导数也叫,Score function :
S(\bold{X};\theta) = \sum_{i=1}^n \frac{\partial log f(X_i;\theta)}{\partial \theta}

那么Fisher Information,用I(\theta)表示,的定义就是这个Score function的二阶矩(second moment)I(\theta) = E[S(X;\theta)^2]
一般情况下(under specific regularity conditions)可以很容易地证明,E[S(\bold{X};\theta)]= 0, 从而得到:
I(\theta) = E[S(X;\theta)^2]-E[S(X;\theta)]^2 = Var[S(X;\theta)]
于是得到了Fisher Information的第一条数学意义:就是用来估计MLE的方程的方差。它的直观表述就是,随着收集的数据越来越多,这个方差由于是一个Independent sum的形式,也就变的越来越大,也就象征着得到的信息越来越多。

而且,如果log likelihood二阶可导,在一般情况下(under specific regularity conditions)可以很容易地证明:
E[S(\bold{X};\theta)^2] = -E(\frac{\partial^2}{\partial \theta^2}log L(\bold{X};\theta))
于是得到了Fisher Information的第二条数学意义:log likelihood在参数真实值处的负二阶导数的期望。这个意义好像很抽象,但其实超级好懂。
首先看一下一个normalized Bernoulli log likelihood长啥样:

费雪信息 (Fisher information)对于这样的一个log likelihood function,它越平而宽,就代表我们对于参数估计的能力越差,它高而窄,就代表我们对于参数估计的能力越好,也就是信息量越大。而这个log likelihood在参数真实值处的负二阶导数,就反应了这个log likelihood在顶点处的弯曲程度,弯曲程度越大,整个log likelihood的形状就越偏向于高而窄,也就代表掌握的信息越多。

然后,在一般情况下(under specific regularity conditions),通过对score function在真实值处泰勒展开,然后应用中心极限定理,弱大数定律,依概率一致收敛,以及Slutsky定理,可以证明MLE的渐进分布的方差是
I^{-1}(\theta),即
Var(\hat{\theta}_{MLE}) = I^{-1}(\theta), 这也就是
Fisher Information的第三条数学意义。不过这样说不严谨,严格的说,应该是
\sqrt{n}(\hat{\theta}_{MLE}-\theta) \xrightarrow{D} N(0,I^*(\theta)^{-1}), 这里
I^*(\theta)是当只观察到一个X值时的Fisher Information,当有n个 i.i.d 观测值时,
I^*(\theta) = I(\theta)/n。所以这时的直观解释就是,Fisher Information反映了我们对参数估计的准确度,它越大,对参数估计的准确度越高,即代表了越多的信息。

—————————————————————————–

作者:小Q痴子
链接:https://www.zhihu.com/question/26561604/answer/145734266
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

——————————————————————————

参数估计的本质是,假设样本的数据来自于某一个分布,然后利用样本中蕴含的信息来估计参数。一个自然的问题就是:对于分布里的未知参数,这个样本数据给出了多少信息呢?Fisher Information 就衡量了这样的“信息”。

什么样的样本给出的信息更多?直觉上思考这个问题,如果一个事件发生的概率很大,那发生这件事并不能带来太多信息;相反,如果一个事件发生的概率很小,那发生这件事可以带来比较多的信息。

现在我们再回顾一下最大似然估计(Maximum Likelihood Estimation)的基本思想。对于随机变量X \sim f(x|\theta) ,直觉上,当\theta 取到参数的真实值时,似然函数的值应该很大,最大似然估计的思想就是认为 当\theta 取到参数的真实值时似然函数的值应该取到最大值,或者(对数)似然函数的一阶导数为0。

定义对数似然函数为l (x|\theta)=\log f(x|\theta) ,从而l'(x|\theta)=\frac{\partial}{\partial \theta} \log f(x|\theta) = \frac{f'(x|\theta)}{f(x|\theta)},其中f'(x|\theta)f(x|\theta)关于\theta的导数。

根据上面的两段分析,如果l'(x|\theta)非常接近于0,这将是意料之中的事情,因此样本没有带来太多关于参数\theta的信息;相反,如果|l'(x|\theta)|很大,或者说[l'(x|\theta)]^2很大,那么样本就提供了比较多的关于参数\theta的信息。所以,我们可以用[l'(x|\theta)]^2来衡量X提供的信息(information)。但是X是个随机变量,于是我们就考虑[l'(x|\theta)]^2的期望值。

于是就有了Fisher Information的定义(1):
I(\theta)=E{[l'(X|\theta)^2]}=\int [l'(X|\theta)^2] f(x|\theta) dx
如果假设可以交换求导和积分的顺序,那么
\int f'(x|\theta)dx=\frac{\partial}{\partial \theta} \int f(x|\theta) dx =0
\int f''(x|\theta)dx=\frac{\partial^2}{\partial \theta^2} \int f(x|\theta) dx =0
容易看出,
E[l'(X|\theta)]=\int l'(x|\theta)f(x|\theta)dx=\int \frac{f'(x|\theta)}{f(x|\theta)}f(x|\theta)dx=\int f'(x|\theta)dx=0

所以Fisher Information的定义(1)可以改写成定义(2):
I(\theta)=Var [l'(X|\theta)]

(其中用到Var[l'(X|\theta)]=E [l'(X|\theta)]^2 - E^2 [l'(X|\theta)]。)
注意到
l''(x|\theta)=\frac{\partial}{\partial \theta} [\frac{f'(x|\theta)}{f(x|\theta)}]=\frac{f''(x|\theta)f(x|\theta)-[f'(x|\theta)]^2}{[f(x|\theta)]^2}=\frac{f''(x|\theta)}{f(x|\theta)}-[l'(x|\theta)]^2
因此
E[l''(x|\theta)]=\int [\frac{f''(x|\theta)}{f(x|\theta)}-[l'(x|\theta)]^2] f(x|\theta)dx=\int f''(x|\theta)dx - E[l'(x|\theta)]^2=-I(\theta)

至此我们有了关于Fisher Information的第(3)个表达式:
I(\theta)=-E[l''(x|\theta)]=-\int [\frac{\partial ^2}{\partial \theta ^2} \log f(x|\theta)] f(x|\theta) dx
综上所述,我们有三个办法来计算Fisher Information。实际上在大多数问题中,(3)将是最方便的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192063.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jenkins教程菜鸟_jenkins新手入门教程

    jenkins教程菜鸟_jenkins新手入门教程Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。虽然jenkins提供了Window、Linux、OSX等安装程序,但是都没有war方便。本文用的是jenkins的war包,简单、方便、快捷。一、安装jenkins1.在https://jenkins.io/下载jenkins.war;##…

  • 14种DLL注入技术

    14种DLL注入技术本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。第一种CreateRemoteThread远程线程调用DLL注入是指向某一个特定的进程空间强制插入一个特定的DLL文件映像,值得注意的是这种插入是强制性的插…

  • Java实现数组反转翻转的方法[通俗易懂]

    Java实现数组反转翻转的方法[通俗易懂]Java实现数组反转翻转的方法  【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/51112971   数组翻转的方法(java实现),数组翻转,就是将数组倒置,例如原数组为:{“a”,”b”,”c”,”d”},那么翻转后的数组为{“d”,”c”,”b”,”a”。  【方法一】使用集合个工具

  • python中的单引号和双引号的区别和用法_python中打印输出的语句

    python中的单引号和双引号的区别和用法_python中打印输出的语句python中的单引号和双引号的区别今天在码代码的过程中突然想到这个问题,于是上网浏览了一下,发现在python中两种表达方式是没有区别的,两种表达方式都可以用来表达一个字符串。但是这两种通用的表达方式,除了可以简化大家的开发,避免出错以外,还有一种好处,就是可以减转义字符的使用,使程序看起来更加简洁,更清晰。所以这里简单给大家分享一下,并举例说明。1.包含单引号的字符串假如我们想定义一个字符串my_str,其值为:I’mastudent,则可采用如下两种方式,通过转义字符“\”进行定义my_s

    2022年10月31日
  • 朴素贝叶斯分类

    朴素贝叶斯分类

  • Pycharm+Django之Django学习(1)(初学者)

    Pycharm+Django之Django学习(1)(初学者)教学属于博主的自学记录,适合刚学习Django的同学,如果比较熟的就不用look了!!!以下都是讲在windows上的部署情况;准备:1、Python+pycharm(下面是博主使用的版本,可自行安装)链接:https://pan.baidu.com/s/1th08XXTqf30Oh0-s7QgL1w密码:r6tc2、安装Django(可以到官网下载,也可使用Python自带…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号