费雪信息和费雪信息矩阵
最编程
2024-04-29 07:15:50
...
Fisher信息:
作用:
度量随机变量 X 所含有的关于其自身随机分布函数的未知参数 θ 的信息量。Fisher信息越大,Score function的方差越大,代表的信息越多,对参数估计的准确度越高。<所以可以用作一种衡量指标判别模型或算法>
定义: 等同于KL散度的负二阶导数
- 假设观察到 i.i.d 的数据 X 1 , X 2 , … X n X_{1}, X_{2}, \ldots X_{n} X1,X2,…Xn 服从一个概率分布 f ( X ; θ ) , θ f(X ; \theta), \theta f(X;θ),θ 是目标参数(for simplicity,这里 θ \theta θ是个标量),那么似然函数: L ( X ; θ ) = ∏ i = 1 n f ( X i ; θ ) L(\mathbf{X} ; \theta)=\prod_{i=1}^{n} f\left(X_{i} ; \theta\right) L(X;θ)=∏i=1nf(Xi;θ)。
- 取其一阶导数: S ( X ; θ ) = ∑ i = 1 n ∂ log f ( X i ; θ ) ∂ θ S(\mathbf{X} ; \theta)=\sum_{i=1}^{n} \frac{\partial \log f\left(X_{i} ; \theta\right)}{\partial \theta} S(X;θ)=∑i=1n∂θ∂logf(Xi;θ),记作Score function(性质是均值为0)。
- Fisher 信息即: I ( θ ) = E [ S ( X ; θ ) 2 ] − E [ S ( X ; θ ) ] 2 = Var [ S ( X ; θ ) ] I(\theta)=E\left[S(X ; \theta)^{2}\right]-E[S(X ; \theta)]^{2}=\operatorname{Var}[S(X ; \theta)] I(θ)=E[S(X;θ)2]−E[S(X;θ)]2=Var[S(X;θ)]
Fisher信息矩阵:
费歇耳信息矩阵是费歇耳信息量由单个参数到多个参数情形的推广,形成一个同 θ \theta θ维度一致的Fisher矩阵
KL散度和Fisher矩阵有相似性,当作指标时有时可以相互替代:
以伯努利分布(即一次二项实验)为例:
from math import log
import matplotlib.pyplot as plt
import numpy as np
def kl(p,q):
return p * log(p / q) + (1 - p) * log((1 - p) / (1 - q))
def fisher(p):
return 1 / p / (1 - p)
def fisher_kl(p,q):
return 0.5 * fisher(p) * (p - q)*(p - q)
x = np.linspace(0.1, 0.9, 20)
y1 = [kl(0.5, q) for q in x]
y2 = [fisher_kl(0.5, q) for q in x]
plt.plot(x, y1, label='kl')
plt.plot(x, y2, label='fisher_kl')
plt.legend()
plt.show()
上一篇: 了解多阶段调查数据分析中权数的使用
下一篇: 面试经典 150 个问题 - 加油站