Fisher Information学习笔记

Fisher Information学习笔记FisherInfomation的意义FisherInformation顾名思义,就是用来衡量样本数据的信息量的,通常我们有一组样本,我们在机器学习中需要估计出样本的分布,我们是利用样本所具有的信息量来估计参数的,样本中具有的信息量越多,估计的参数越准,样本的分布估计的就越接近真实分布,这里的信息量就是用FisherInformation来表示的。什么样本信息量比较大?我们用样本发生的概率来

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

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

Fisher Infomation的意义

Fisher Information 顾名思义,就是用来衡量样本数据的信息量的,通常我们有一组样本,我们在机器学习中需要估计出样本的分布,我们是利用样本所具有的信息量来估计参数的,样本中具有的信息量越多,估计的参数越准,样本的分布估计的就越接近真实分布,这里的信息量就是用Fisher Information来表示的。

什么样本信息量比较大?

我们用样本发生的概率来衡量样本本身所携带的信息量,如果样本发生的概率比较大,那么说明我们在这个样本上可以学习到的东西不多,例如机器学习中,样本一上来概率就都是1,那么参数w就基本学习不出了,相反,如果样本发生的概率比较小,就可以认为该样本携带的信息很多。

Fisher Information目标

对于最大似然估计(Maximum Likelihood Estimation)的基本思想。对于随机变量X~f(x|w),直觉上,当参数w取到的值接近准确值时,似然函数的值应该很大,所以当参数w取到准确值时,似然函数的值应该取到最大值,或者(对数)似然函数的一阶导数为0。
我们定义对数似然函数log(x|w) = log(f(x|w)),令它的导数为0,这有公式 log(x|w)=logf(x|w)w=f(x|w)f(x|w)
根据上文,如果 log(x|w) 非常接近于0,那么我们基本学习不到太多跟参数w有关的知识,换句话说模型基本不会更新了;相反,如果 |log(x|w)| 很大,或者说 |log(x|w)2| 很大,那么样本就提供了比较多的关于参数w的信息。因此,我们可以用 |log(x|w)2| 来衡量提供的信息(information)。但是X是随机变量,所以我们就考虑 |log(x|w)2| 的期望值 E(log(x|w)2) 。 我们使用Info(w)表示Fisher Information。

Fisher Information三大定义

定义1:

综上所述,Fisher Information可以直接定义:
Info(w)=E(log(x|w)2)=log(x|w)2f(x|w)dx

定义2:

由于 f(x|w)dx=f(x|w)dx/w=0 以及 f′′(x|w)dx=2f(x|w)dx/w2=0 ,我们可以计算得到:
E(log(x|w))=log(x|w)f(x|w)dx=f(x|w)f(x|w)f(x|w)dx=f(x|w)dx=0
所以我们进一步可以得到定义2:
Info(w)=Var(log(x|w))
And Var(log(x|w))=E(log(x|w)2)E2(log(x|w))=E(log(x|w)2) ;

定义3:

log′′(x|w)=w[f(x|w)f(x|w)]=f′′(x|w)f(x|w)[f(x|w)]2f2(x|w)=f′′(x|w)f(x|w)[log(x|w)]2
然后我们求二次导数的期望:
E(log′′(x|w))=[f′′(x|w)f(x|w)[log(x|w)]2]f(x|w)dx=f′′(x|w)dxE(log(x|w)]2)=Info(w) ;
所以我们可以得到定义3:
Info(w)=E(log(x|w)]2)=2log(f(x|w))2wf(x|w)dx
在大多数的问题中,定义3最为常用,我们直接求log似然的二次导数来计算Fisher Information。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192287.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android onresume函数,android – 在Activity中重新创建后未调用onResume

    android onresume函数,android – 在Activity中重新创建后未调用onResume在应用程序设置中进行某些更改时,我在recreate的onActivityResult中调用MainActivity。重新创建后,不调用onResume。我也收到错误:E/ActivityThread:Performingpauseofactivitythatisnotresumed从this问题开始,我了解到不能从onResume调用此函数。但是我从onActivityResul…

    2022年6月2日
    108
  • JAVA静态内部类_java静态内部类实例化

    JAVA静态内部类_java静态内部类实例化写在前面  不知不觉,我正式入职到部门实习也有一周多的时间了,这段时间确实学到了不少东西。从大公司的办公、办事的流程准则,到程序员的日常研发工作和其中的注意事项,导师和同事们都很乐于帮助我融入这个新环境。  因为实习生不用加班,业余时间也比较多。便想着利用空闲时间来深入学习、总结一些平时工作中遇到的知识点和代码细节,把之前因为准备期末都快要荒废掉的写博客总结的习惯重新拾回来。fighting~!

    2022年10月10日
    2
  • Redis客户端中文乱码[通俗易懂]

    Redis客户端中文乱码[通俗易懂]Redis客户端中文乱码$redis-cliredis127.0.0.1:6379>set’name”中文’OKredis127.0.0.1:6379>get’name’"\xd6\xd0\xce\xc4"redis127.0.0.1:6379>客户端查看乱码,这个情况我们只要将修改客户端命令行就可以。redis-cli –raw$r…

    2022年5月7日
    231
  • ajaxpro 原理[通俗易懂]

    ajaxpro 原理[通俗易懂]应当承认我这人实在算不上弄潮儿,Ajax早已流行得一塌糊涂,我却始终没有来研究一下这个东东。上次做网站的时候,BOSS就跟我讲过,可以参考一下Ajax的技术,我嘴上答应,心里却不是十分的在乎。究其原因,一来是我这人比较固步自封,二来起初确实也没太相信Ajax真有BO

    2022年7月12日
    42
  • mysql清空表数据后如何让自增ID仍从1开始

    mysql清空表数据后如何让自增ID仍从1开始有2种方法:1、清空表时使用truncate命令,而不用delete命令truncatetest;使用truncate命令的好处:1)、速度快2)、可以对自增ID进行重排,使自增ID仍从1开始计算2、清空表数据后,使用alter修改表altertabletable_nameauto_increment=1;…

    2022年5月16日
    50
  • Android arm64-v8a、armeabi-v7a、armeabi详解「建议收藏」

    一、架构介绍早期的Android系统几乎只支持ARMv5的CPU架构,后面发展到支持七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPS(从2012年起),ARMv8,MIPS64和x86_64(从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口(ApplicationBinaryInterface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android系

    2022年4月15日
    1.8K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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