Fisher信息与Fisher信息矩阵

Fisher信息:

作用:
  度量随机变量 X 所含有的关于其自身随机分布函数的未知参数 θ 的信息量。Fisher信息越大,Score function的方差越大,代表的信息越多,对参数估计的准确度越高。<所以可以用作一种衡量指标判别模型或算法>

定义: 等同于KL散度的负二阶导数

  1. 假设观察到 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;θ)
  2. 取其一阶导数: 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)。
  3. 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()

Fisher信息与Fisher信息矩阵_第1张图片

你可能感兴趣的:(python,机器学习)