Relationship between the Hessian and Covariance Matrix for Gaussian Random Varia

原文:https://onlinelibrary.wiley.com/doi/pdf/10.1002/9780470824566.app1
考虑一个高斯随机变量θ、平均值θ´、协方差矩阵∑θ,的联合概率分布为
在这里插入图片描述

目标函数可以定义为上式的负对数(我们无非就是要找概率最大的点嘛)
在这里插入图片描述

它是线性微分方程中各分量的二次函数。通过对 θl 和 θl* 求部分偏导,可以得到在(l,l*)上的Hessian矩阵(只和最后一部分有关,那好比对1/2x^2求二阶导,出来就是“1”,也就是这里的协方差矩阵的逆,Hessian矩阵)
在这里插入图片描述

所以海森矩阵等于协方差矩阵的逆
在这里插入图片描述

对于高斯随机分布,由于其目标函数为θ的二次函数,所以其二阶导数为常数。因此Hessian矩阵的计算并不需要平均值θ*。
Hessian矩阵中的元素携带随机向量的条件信息,因为它们是通过固定所有其他参数获得的。对角元素是目标函数在相应方向上的曲率。这些对角元的倒数即是非确定参数的条件方差。However, 协 方差 矩阵 的 对角 元素 θ parameters. 边际 差异 的
在许多应用中,目标函数是隐式已知的,因此Hessian矩阵的分量必须通过数值计算,例如,通过有限差分法,对角元素由(连续的问题化成数值形式表达)
在这里插入图片描述

△θ为只有第l为不为0的向量:
在这里插入图片描述

进一步,非对角元素可计算如下:
在这里插入图片描述

这里同上,△θl与△θl‘只有第l和l’为不为0的向量

以均值为μ,方差为σ的高斯随机分布为例:
在这里插入图片描述
取负对数
在这里插入图片描述

假设目标函数是已知的,所以有限差分方法用于估计Hessian,因此,该随机变量的方差。通过
(A.5)式中,Hessian可以在任意点上求值:
在这里插入图片描述

显然,上式结果并不依赖于估计点θ与步长△θ。
然而,对于其他概率分布,方程(a .4)是不正确的,但如果不确定性很小,它提供了一个很好的近似。然而,有限差分法计算的海森矩阵依赖于估计点和步长。估计点可以固定在最可能的分布值和步长的选择必须小心处理。这将在下一个示例中讨论。

以伽玛随机分布为例:
假设正值随机变量为带形状参数α>0及逆尺度参数β>0的伽玛分布,由以下单位给出的PDF:
在这里插入图片描述

Γ(a)为伽玛函数。方差和均值分别由αβ与αβ²给出。如果α=1,那么此分布为指数分布,θ的近似值为0(应该是这样翻译吧)。如果α>1,则θ的近似值为
在这里插入图片描述

目标函数可定义为:
在这里插入图片描述

同样,我们假设目标函数是隐式已知的。由方程(A.5)计算:
在这里插入图片描述

与高斯随机变量相反,这种解决方案依赖于估计点还有有限差分步长。(对比A.10)
对于具有较小不确定性的随机变量,其方差可近似为H(θ*)的逆。为了演示这一点,令 (A.11) 中α=μ/β,则均值为μ,方差是μβ。对于很小的β,Hessian矩阵可用有限差分法估计,可以近似为
在这里插入图片描述

因此, Hessian 估计方差提供了一个很好的近似: H(θ)−1 ≈ μβ。接下来,展示的两案例,它们对应一个大的方差和一个小的方差。
案例1:α= 10和β= 0.1
这个分布对应于图A1中比较离散的概率密度函数。这里是均值为αβ = 1方差为αβ² = 0.1,因此,变量系数(又称离散系数,标准差/均值)为1/√10≈32%,表示不确定性较大的情况。通过使用公式(A.14),图A.2显示了在0.5以内的不同有限差分步长的Hessian和估计方差。可以清楚地看到,估计依赖于步长。方差的正确值是0.1,但是这个变异系数很大的随机变量的估计值是10%
在这里插入图片描述在这里插入图片描述

案例 2: α = 100 and β = 0.01
这个分布对应A1中比较集中的概率密度函数。这里是均值为αβ = 1,方差为αβ² = 0.01,变异系数为10%。这个随机变量的均值和案例1相同但方差更小。图A3显示了使用不同有限差分步长估计的Hessian和方差。同样,估计取决于步长。在步长较小时,方差的正确值为0.01,估计误差约为1%。
一般来说,有限差分估计方差对于分布的变异系数较小更准确,因为在这种情况下,PDF的局部拓扑更能代表全局分布。这个例子表明,这个近似是可接受的,变异系数为10%。

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的hessian_matrix函数是在scikit-image库中的skimage.feature.corner模块中实现的。该函数用于计算给定图像的Hessian矩阵。 在计算Hessian矩阵时,hessian_matrix函数主要经历了以下三个步骤: 1. 调用scipy.ndimage.gaussian_filter函数对输入图像进行高斯滤波。在这一步中,可以通过调整参数sigma、mode和cval来控制高斯滤波的效果。 2. 使用numpy.gradient函数计算经过高斯滤波后图像的一阶梯度。这一步返回的结果是图像的Iy和Ix。 3. 对第二步得到的梯度图像Iy和Ix再次计算梯度,即求二阶梯度。函数中的order参数决定了二阶梯度的顺序。 下面是一个使用hessian_matrix函数的例子: ```python import numpy as np from skimage.feature import hessian_matrix square = np.zeros([5,5]) square = 4 Hxx, Hxy, Hyy = hessian_matrix(square, 0.1, order='rc') fy, fx = np.gradient(square) fyy, fyx = np.gradient(fy) fxy, fxx = np.gradient(fx) ``` 值得注意的是,除了scikit-image库之外,还有其他库也提供了计算Hessian矩阵的函数,比如numdifftools和AlgoPy。但在此问题中,我们只关注scikit-image库中的hessian_matrix函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [skimage.feature.hessian_matrix源码分析](https://blog.csdn.net/weixin_42694889/article/details/116978554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [中心差分法的MATLAB代码-numdifftools:解决一个或多个变量的自动数值微分问题](https://download.csdn.net/download/weixin_38554193/18972082)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值