Fisher散度

2024-06-17 11:44
文章标签 fisher 散度

本文主要是介绍Fisher散度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Fisher散度(Fisher Divergence)是概率分布相似性或差异性的一种量度,它基于概率分布的对数似然函数的一阶导数(梯度)。Fisher散度是用来量化一个概率分布在参数空间的局部变化情况的,它是Fisher信息矩阵的一部分。

更具体地说,Fisher散度是指概率模型中,真实数据分布 p ( x ) p(x) p(x) 和模型分布 q θ ( x ) q_{\theta}(x) qθ(x)之间的差异,它可以定义为真实分布 p ( x ) p(x) p(x) 下,模型分布 q θ ( x ) q_{\theta}(x) qθ(x) 对数似然梯度的方差:

J ( θ ) = E x ∼ p ( x ) [ ( ▽ θ log ⁡ q θ ( x ) ) 2 ] J(\theta) = \mathbb{E}_{x \sim p(x)} \left[ \left( \bigtriangledown_{\theta} \log q_{\theta}(x) \right)^2 \right] J(θ)=Exp(x)[(θlogqθ(x))2]

其中, ▽ θ log ⁡ q θ ( x ) \bigtriangledown_{\theta} \log q_{\theta}(x) θlogqθ(x) 是对数似然函数 log ⁡ q θ ( x ) \log q_{\theta}(x) logqθ(x) 关于参数 θ \theta θ 的梯度, E x ∼ p ( x ) \mathbb{E}_{x \sim p(x)} Exp(x) 表示相对于真实数据分布 p ( x ) p(x) p(x) 的期望。

Fisher散度的一个重要特性是,如果模型分布 q θ ( x ) q_{\theta}(x) qθ(x) 是真实分布 p ( x ) p(x) p(x) 的准确表示(即两者匹配),则此时的Fisher散度为零。因此,Fisher散度可以作为模型拟合优度的一个指标

在实践中,由于真实数据分布 p ( x ) p(x) p(x)通常是未知的,Fisher散度很难直接计算。但是,它在理论分析中非常有用,特别是在自然梯度下降和其他基于信息几何学的优化算法中,因为Fisher信息矩阵(Fisher散度的矩阵形式)可以用来调整参数更新的方向和步长,以更自然地通过参数空间移动,从而提高学习效率。

Fisher散度本身是一个比较抽象的概念,它通常不直接用于数据分析的实际操作,但它的概念和衍生工具(如Fisher信息和自然梯度)在机器学习中有广泛的应用。下面通过一个简化的例子来说明Fisher散度的一个概念性应用。

假设我们有一个简单的概率模型,这个模型是一维高斯分布,参数为 θ = ( μ , σ 2 ) \theta = (\mu, \sigma^2) θ=(μ,σ2),即均值和方差。模型的概率密度函数为:

q θ ( x ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) q_\theta(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) qθ(x)=2πσ2 1exp(2σ2(xμ)2)

我们想要评估模型 q θ ( x ) q_\theta(x) qθ(x)在参数 θ \theta θ 附近对数据的拟合度。为此,我们可以计算模型分布关于参数的对数似然函数的梯度,即:

▽ θ log ⁡ q θ ( x ) = ( ∂ ∂ μ log ⁡ q θ ( x ) , ∂ ∂ σ 2 log ⁡ q θ ( x ) ) \bigtriangledown_{\theta} \log q_\theta(x) = \left( \frac{\partial}{\partial \mu} \log q_\theta(x), \frac{\partial}{\partial \sigma^2} \log q_\theta(x) \right) θlogqθ(x)=(μlogqθ(x),σ2logqθ(x))

对于高斯分布,这些偏导数具体为:

∂ ∂ μ log ⁡ q θ ( x ) = x − μ σ 2 \frac{\partial}{\partial \mu} \log q_\theta(x) = \frac{x - \mu}{\sigma^2} μlogqθ(x)=σ2xμ
∂ ∂ σ 2 log ⁡ q θ ( x ) = ( x − μ ) 2 σ 4 − 1 2 σ 2 \frac{\partial}{\partial \sigma^2} \log q_\theta(x) = \frac{(x-\mu)^2}{\sigma^4} - \frac{1}{2\sigma^2} σ2logqθ(x)=σ4(xμ)22σ21

然后,我们可以通过取这些梯度的平方,然后计算这个平方值的期望来计算Fisher散度。在理想情况下,如果我们使用的是真实数据分布 p ( x ) p(x) p(x) 下的样本,这个期望可以写成:

J ( θ ) = E x ∼ p ( x ) [ ( x − μ σ 2 ) 2 ] J(\theta) = \mathbb{E}_{x \sim p(x)} \left[ \left( \frac{x - \mu}{\sigma^2} \right)^2 \right] J(θ)=Exp(x)[(σ2xμ)2]
J ( θ ) = E x ∼ p ( x ) [ ( ( x − μ ) 2 σ 4 − 1 2 σ 2 ) 2 ] J(\theta) = \mathbb{E}_{x \sim p(x)} \left[ \left( \frac{(x-\mu)^2}{\sigma^4} - \frac{1}{2\sigma^2} \right)^2 \right] J(θ)=Exp(x)[(σ4(xμ)22σ21)2]

如果 q θ ( x ) q_\theta(x) qθ(x) p ( x ) p(x) p(x) 的准确表示,那么 μ \mu μ σ 2 \sigma^2 σ2 应该分别接近 p ( x ) p(x) p(x) 的真实均值和方差。在这种情况下,Fisher散度应该接近零,因为对数似然梯度的方差会非常小。

这个例子虽然简化了Fisher散度的使用,但它展示了如何从理论上评估一个概率分布参数化模型在局部参数变化时与真实数据分布的一致性。在实际应用中,例如在参数优化时,通常会使用Fisher信息矩阵来调整学习算法的更新步骤,以此来实现更高效的参数估计。

这篇关于Fisher散度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069345

相关文章

开关阀(3):Fisher DVC6200定位器原理及调试

Fisher DVC6200---Digital Valve Controllers( 数字阀门控制器)简写 DVC,而6200是Fisher DVC定位器发展的一个系列型号,是Fisher结合DVC2000、DVC6000系列,取其特点发展的有着高适用性和高可靠性的阀门定位器。   DVC6200 原理:(双作用) 从控制系统过来的输入控制信号(4-20mADC)经过信号线接到接线盒。

KL散度(Kullback-Leibler divergence)

K L KL KL散度( K u l l b a c k − L e i b l e r d i v e r g e n c e Kullback-Leibler\ divergence Kullback−Leibler divergence),也被称为相对熵、互熵或鉴别信息,是用来衡量两个概率分布之间的差异性的度量方法。以下是对 K L KL KL散度的详细解释: 定义 K L KL

模式识别五--PCA主分量分析与Fisher线性判别

文章转自:http://www.kancloud.cn/digest/prandmethod/102847         本实验的目的是学习和掌握PCA主分量分析方法和Fisher线性判别方法。首先了解PCA主分量分析方法的基本概念,理解利用PCA 分析可以对数据集合在特征空间进行平移和旋转。实验的第二部分是学习和掌握Fisher线性判别方法。了解Fisher线性判别方法找的最优方向与非

信息熵,交叉熵,相对熵,KL散度

熵,信息熵在机器学习和深度学习中是十分重要的。那么,信息熵到底是什么呢?   首先,信息熵是描述的一个事情的不确定性。比如:我说,太阳从东方升起。那么这个事件发生的概率几乎为1,那么这个事情的反应的信息量就会很小。如果我说,太阳从西方升起。那么这就反应的信息量就很大了,这有可能是因为地球的自转变成了自东向西,或者地球脱离轨道去到了别的地方,那么这就可能导致白天变成黑夜,热带雨林将

Fisher's exact test( 费希尔精确检验)

Fisher's exact test [1] [2] [3] is a statistical significance test used in the analysis of contingency tables. Although in practice it is employed when sample sizes are small, it is valid for al

Fisher线性判别与感知器算法Matlab实现

参考用书: 本文是在学习此书Chapter4时,跑的实验。 4.1.4 Fisher‘s Linear Discriminate [plain]  view plain copy function [w y1 y2 Jw] = FisherLinearDiscriminat(data, label)   % FLD Fisher Linear Dis

MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍: 费舍尔线性判别分析(Fisher's Linear Discriminant Analysis,简称 LDA),用于将两个类别的数据点进行二分类。以下是代码的整体思路: 生成数据: 使用 randn 函数生成随机数,构建两个类别的合成数据点。第一个类别的数据点分布在以 (2,2) 为中心的正态分布中。第二个类别的数据点分布在以 (-2,-2) 为中心的正态分布中。 计算类别均

从概率角度出发,对交叉熵和 KL 散度进行分析和推导

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 1. 定义与推导 交叉熵(Cross Entropy) 交叉熵是一个衡量两个概率分布之间差异的指标。在机器学习中,这通常用于衡量真实标签的分布与模型预测分布之间的差异。对于两个概率分布 P P P 和 Q Q Q,其中 P P P 是真实分布, Q Q Q 是模型预测分布,交叉熵的定义为:

python ERA5 画水汽通量散度图地图:风速风向矢量图、叠加等高线、色彩分级、添加shp文件、添加位置点及备注

动机 有个同事吧,写论文,让我帮忙出个图,就写了个代码,然后我的博客好久没更新了,就顺便贴上来了! 很多人感兴趣风速的箭头怎样画,可能这种图使用 NCL 非常容易,很多没用过代码的小朋友,就有点犯怵,怕 python 画起来很困难。但是不然,看完我的代码,就会发现很简单,并且也可以批量,同时还能自定义国界等shp文件,这对于发sci等国际论文很重要,因为有时候内置的国界是有问题的。 数据 本

Fisher判别示例:鸢尾花(iris)数据(R)

先读取iris数据,再用程序包MASS(记得要在使用MASS前下载好该程序包)中的线性函数lda()作判别分析: data(iris) #读入数据iris #展示数据attach(iris) #用变量名绑定对应数据library(MASS) #加载MASS程序包ld=lda(Species~Sepal.Length+Sepal.Width+Petal.Len gth+Pe