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=∂2∫f(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)dx−E(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中查看和管理sqlite数据库

    在Android中查看和管理sqlite数据库

    2021年8月31日
  • 网络通信中 TCP 产生 RST 的三个条件分析

    网络通信中 TCP 产生 RST 的三个条件分析RST是TCP发生错误时发送的一种TCP分节(segment:传输层的PDU),可用来异常的关闭一个连接,此时客户端会返回一个ECONNREFUSED错误。它会在以下三种情况下产生:目的地为某个端口的SYN到达服务器,但并没有服务器在该端口监听。TCP想取消一个已有连接,即异常地关闭连接。TCP接收到一个根本不存在的连接上的分节。第一种情况可能有如下…

    2022年9月27日
  • 使用 HTML、CSS 和 JavaScript 的简单模拟时钟「建议收藏」

    使用 HTML、CSS 和 JavaScript 的简单模拟时钟「建议收藏」如果你想使用JavaScript制作一个模拟时钟,那么本文将对你有所帮助。我们都知道时钟有两种,一种是模拟的,一种是数字的。虽然数字时钟被广泛使用,但模拟时钟也被很多人所喜爱。????使用HTML、CSS和JavaScript的简单模拟时钟????JavaScript模拟时钟[现场演示]????使用HTML、CSS和JavaScript的简单模拟时钟????第1步:创建时钟的基本结构????第2步:在时钟上标记1到12????第3步:制作三只指针来指示

    2022年6月8日
  • 中国知网爬虫

    中国知网爬虫中国知网爬虫一、知网介绍提起中国知网,如果你曾经写过论文,那么基本上都会与中国知网打交道,因为写一篇论文必然面临着各种查重,当然翟博士除外。但是,本次重点不在于写论文跟查重上,而在于我们要爬取知网上一些论文的数据,什么样的数据呢?我们举一个例子来说,在知网上,搜索论文的方式有很多种,但是对于专业人士来说,一般都会使用高级检索,因为直接去查找作者的话,容易查找到很多重名作者,所以我们本次的爬…

    2022年7月26日
  • Java集合List用法总结

    Java集合List用法总结转自:https://www.jianshu.com/p/25aa92f8d681Java集合作为一个Developer,Java集合类是我们在工作中运用最多的、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求;Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。Java集合主要由2大体系构成,分别是Co

    2022年7月7日
  • (转)C# Assembly.Load 使用

    (转)C# Assembly.Load 使用在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系:在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系:System.Reflection命名空间(1)AppDoma

    2022年7月1日

发表回复

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

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