Fisher矩阵与自然梯度法

文章目录

    • Fisher矩阵及自然梯度法
      • Fisher矩阵
      • 自然梯度法
      • 总结
      • 参考链接

Fisher矩阵及自然梯度法

自然梯度法相比传统的梯度下降法具有以下优势:

更好的适应性:自然梯度法通过引入黎曼流形上的梯度概念,能够更好地适应参数空间的几何结构。这使得自然梯度法在求解具有复杂几何结构的参数优化问题时具有更高的效率。
更高的收敛速度:由于自然梯度法考虑了参数空间的几何结构,因此它在参数更新过程中能够更准确地找到下降方向。这有助于加快算法的收敛速度,提高优化效率。
避免局部最优解:自然梯度法通过调整参数空间的几何结构,有助于避免陷入局部最优解。这使得自然梯度法在求解全局优化问题时具有更好的性能。

Fisher矩阵

我们使用迭代法求解问题时,计算每个参数相对于损失函数的导数,即雅可比矩阵。这些导数表示可以更新参数,以获得损失函数最大变化的方向,称为梯度。

得到梯度后,我们在梯度方向的负方向上,更新参数,从而减少损失函数。但是由于参数所带的噪声的不同,不同的参数应该据此调整步长。

在这里插入图片描述
在这里插入图片描述
如上两个图,同样的期望差异,但是明显参数的差异对符合第二图中的分布的函数影响更大。

因此,定义Fisher矩阵用来衡量参数空间的曲率,即参数对函数模型的敏感性。

定义一个最大似然问题: max ⁡ p ( x ∣ θ ) \max p(x|\theta) maxp(xθ)

再设立一个得分函数 s ( θ ) s(\theta) s(θ),定义为似然函数的对数梯度,
s ( θ ) = ∇ θ log ⁡ p ( x ∣ θ ) s(\theta)=\nabla_\theta\log p(x\mid\theta) s(θ)=θlogp(xθ)
用来评估我们最大化似然函数的好坏以及参数对似然函数的敏感度。其期望值为0, E p ( x ∣ θ ) [ s ( θ ) ] = 0 \mathbb{E}_{p(x|\theta)}[s(\theta)]=0 Ep(xθ)[s(θ)]=0,证明过程见参考文献。

Fisher矩阵定义为函数 s ( θ ) s(\theta) s(θ)的方差: F ( θ ) = E p ( x ∣ θ ) [ ( s ( θ ) − 0 ) ( s ( θ ) − 0 ) T ] = E p ( x ∣ θ ) [ ∇ θ log ⁡ p ( x ∣ θ ) ∇ θ log ⁡ p ( x ∣ θ ) T ] F(\theta) =\mathbb{E}_{p(x|\theta)}\left[(s(\theta)-0)(s(\theta)-0)^\mathrm{T}\right] =\mathbb{E}_{p(x|\theta)}\left[\nabla_\theta\log p(x\mid\theta)\nabla_\theta\log p(x\mid\theta)^\mathrm{T}\right] F(θ)=Ep(xθ)[(s(θ)0)(s(θ)0)T]=Ep(xθ)[θlogp(xθ)θlogp(xθ)T]

= E [ ( ∂ log ⁡ p ( x , θ ) ∂ θ ) ( ∂ log ⁡ p ( x , θ ) ∂ θ ) T ] = E\left[\left(\frac{\partial \log p(x, \theta)}{\partial \theta}\right)\left(\frac{\partial \log p(x, \theta)}{\partial \theta}\right)^{\rm T} \right] =E[(θlogp(x,θ))(θlogp(x,θ))T]

其中 E E E表示期望操作。Fisher矩阵可以帮助我们理解参数对模型的影响,以及在优化过程中如何调整参数以更有效地学习函数。

自然梯度法

同样使用传统的Euclidean 距离来衡量参数的差异时,参数的噪声分布并未被考虑。使用KL散度用来衡量,然而,同样观察文中的两图,如果我们只在参数空间中工作,我们就不能考虑关于参数实现的分布的这些信息。但在分布空间中,即当我们考虑高斯的形状时,第一和第二图像中的距离是不同的。在第一幅图像中,KL散度应该更低,因为这些高斯之间有更多的重叠。因而,我们使用KL散度来衡量参数的正确性:
D K L ( p ∥ q ) = ∑ i = 1 n p ( x i ) log ⁡ ( p ( x i ) q ( x i ) ) D_{KL}\left(p\|q\right)=\sum_{i=1}^{n}p\left(x_{i}\right)\log\left(\frac{p(x_{i})}{q(x_{i})}\right) DKL(pq)=i=1np(xi)log(q(xi)p(xi))

θ \theta θ为参数期望, θ ′ \theta' θ为参数估计,则定义其损失函数(KL散度)如下:
L ( θ ) = K L [ p ( x ∣ θ ) ∥ p ( x ∣ θ ′ ) ] = E ⁡ p ( x ∣ θ ) [ log ⁡ p ( x ∣ θ ) ] − E ⁡ p ( x ∣ θ ) [ log ⁡ p ( x ∣ θ ′ ) ] \mathcal{L}(\theta)=\mathrm{KL}\left[p(x\mid\theta)\|p\left(x\mid\theta^{\prime}\right)\right]=\underset{p(x\mid\theta)}{\operatorname*{\mathbb{E}}}\left[\log p(x\mid\theta)\right]-\underset{p(x\mid\theta)}{\operatorname*{\mathbb{E}}}\left[\log p\left(x\mid\theta^{\prime}\right)\right] L(θ)=KL[p(xθ)p(xθ)]=p(xθ)E[logp(xθ)]p(xθ)E[logp(xθ)]

Fisher信息矩阵 F F F等同于两个分布 p ( x ∣ θ ) p(x|\theta) p(xθ p ( x ∣ θ ′ ) p(x|\theta') p(xθ)之间关于 θ ′ \theta' θ的KL散度的Hessian矩阵。 证明过程见参考文献

算法伪代码:

自然梯度下降循环:
  对我们的模型进行正向传递,并计算损失 L ( θ ) \mathcal{L}(\theta) L(θ)
  计算梯度 ∇ θ L ( θ ) \nabla_\theta \mathcal{L}(\theta) θL(θ)
  计算Fisher信息矩阵 F F F或其经验版本。
  计算自然梯度 ∇ ~ θ L ( θ ) = F − 1 ∇ θ L ( θ ) \tilde{\nabla}_\theta\mathcal{L}(\theta)=\mathrm{F}^{-1}\nabla_\theta\mathcal{L}(\theta) ~θL(θ)=F1θL(θ)
  更新参数: θ = θ − α ∇ ~ θ L ( θ ) \theta = \theta - \alpha\tilde{\nabla}_\theta\mathcal{L}(\theta) θ=θα~θL(θ),其中 α \alpha α是学习率。
  直到收敛。

总结

Fisher矩阵和自然梯度法是机器学习中重要的概念和方法,用于优化问题的求解。Fisher矩阵可以帮助我们理解参数空间的曲率,而自然梯度法则利用Fisher矩阵的信息来更好地学习函数。通过结合这两个概念,我们可以更有效地优化模型参数,并提高学习的效率和性能。

参考链接

Fisher矩阵 https://agustinus.kristia.de/techblog/2018/03/11/fisher-information/
自然梯度法 https://agustinus.kristia.de/techblog/2018/03/14/natural-gradient/
自然梯度法 https://kvfrans.com/what-is-the-natural-gradient-and-where-does-it-appear-in-trust-region-policy-optimization/
https://zhuanlan.zhihu.com/p/546885304

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/428838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

向上生长笔记

第一章 成为一个很厉害的人(持续输入,反复练习) 为什么要学习及如何学习 1、自毁趋势(熵增),故需要能量输入(负熵流) //引申:水往低处流是趋势,学习是逆趋势。 2、持续输入能量(物质和信息),…

BUUCTF---[ACTF2020 新生赛]BackupFile1

1.题目描述 2.题目提示backup file ,是备份文件的意思。点开链接,页面提示 3.查看源码没有什么有用信息,也没有登录界面,所以也不会用到蚁剑链接来找备份文件,所以大概率就是通过构造playload来查找备份文件。 4.备份…

vue+element ui上传图片到七牛云服务器

本来打算做一个全部都是前端完成的资源上传到七牛云的demo,但是需要获取token,经历了九九八十一难,最终还是选择放弃,token从后端获取(springboot)。如果你们有前端直接能解决的麻烦记得私我哦!…

详解自动化测试框架特点和原理

【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试) 今天捡一些比较典型的工具型自动化框架来介绍,主要围绕历史、特点和原理来讲解,至于使用教程…

MYSQL07高级_Hash结构、平衡二叉树、B树、B+树介绍

文章目录 ①. 全表遍历②. Hash结构③. 平衡二叉搜索树(AVL)④. B树⑤. B树⑥. 时间复杂度 选择的合理性 磁盘的I/O操作次数对索引的使用效率至关重要查找都是索引操作,一般来说索引非常大,尤其是关系型数据库,当数据量比较大的时候,索引的大小有可能几个G甚至更多,为了减少索引…

BUUCTF---[BJDCTF2020]藏藏藏1

1.题目描述 2.下载附件,解压之后是一张图片和一个文本 3.把图片放在winhex,发现图片里面包含压缩包 4.在kali中使用binwalk查看,然后使用foremost分离,在使用tree查看分离出来的文件,最后将zip文件使用unzip进行解压。步骤如下 5.…

分巧克力 刷题笔记

/* 分巧克力 解题思路 二分 直接检查看答案是否符合题目条件 对于一块边长分别为x 和y的巧克力\\ 假设我们输入检查的数为k 其能分割成的 k*k 的巧克力的块数为 (x/k)*(y/k) 因为c里面的除法是下取整的所以我们不用考虑奇偶数 是否能整除 将每一块巧克力能分成的k*k的巧克力…

镭速:推动工业设备数据高效汇聚的关键力量

在工业4.0时代,智能制造和工业自动化的快速发展使得工业设备数据汇聚、采集、传输变得尤为重要。这些数据,包括设备运行状态、生产效率、能耗等关键信息,对于企业优化生产流程、提升产品质量、降低成本具有至关重要的作用。然而,在…

jsp阿帕奇安装教程

1.将压缩包解压,存放在自己所知道的位置 2.将软件文件夹打开 使用winr ,输入cmd运行打开 输入Java或者Javac,出现一大串之后表明成功 接着在所解压的软件中点开bin这个文件夹,找到startup.bat点击 点击之后会出现黑框&#xff0c…

Mint_21.3 drawing-area和goocanvas的FB笔记(三)

一、改变goocanvas线条自动画线时间间隔 通过系统SIGALRM信号触发,每秒画一条线对于慢温湿度等慢变信号可以应付,但对于快速信号1秒的间隔就太慢了。可以改变方式,通过另外的线程,完成要做的任务。 1. 线程的回调函数 myfunc 2…

javaWebssh酒店客房管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh酒店客房管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

都2024了,软件测试真的就是简单的点点点吗???

软件测试真的就是用手点点这么简单 你的身边,是否有这样一片景象? A:写了几年代码,写不下去了,听说测试很好上手,先来做几年测试 。 B:小文员一枚,想入行 IT,听说测试入门简单,请…

SpringBoot-首页和图标定制

1.静态资源导入 SpringBoot中的静态资源,默认有以下四个路径可以访问: classpath:/META-INF/resources/ classpath:/resources/ classpath:/static/ classpath:/public/ 其中第一个路径,一般不常用,它是来获取用maven导入webj…

4.5.CVAT——视频标注的详细步骤

文章目录 1. 跟踪模式(基础)2. 跟踪模式(高级)3. 带多边形的轨迹模式 追踪模式Track mode (视频标注使用)——类似pr的动画效果 1. 跟踪模式(基础) 使用示例: 为一系列…

如何创建MinIO存储服务公网地址实现固定TCP域名异地远程访问——“cpolar内网穿透”

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统,它可以100%的运行在标准硬件上,即X86等…

Python 全栈系列231 以数据处理为核心的微服务思考

说明 最初我是专注与做数据分析和建模的,通俗点说也就是pandas和sklearn。照理来说,分析和建模作为一种分工,本身是可以独立于架构的设计和使用的。其实也就是从20年之后,我才开始花比较多的时间研究这一块。 回想了一下原因&am…

【计算机考研】408学到什么程度才能考130?

408考130要比考研数学考130难的多 我想大部分考过408的考生都是这么认为的。408的难点在于他涉及的范围太广了,首先如果你要备考408,你要准备四门课程,分别是数据结构,计算机组成原理,操作系统和计算机网络。 这四门…

Java数据结构----包装类简单认识泛型

目录 一、包装类 1.基本数据类型和对应的包装类 2.装箱和拆箱 3.自动装箱和自动拆箱 二、什么是泛型 三、引出泛型 1.语法 四、泛型类的使用 1.语法 2.示例 3 类型推导(Type Inference) 五、裸类型(Raw Type) (了解) 六、泛型如何编译…

06 - ip route和route -n的区别

1 ip route和route -n的区别 ip route 和 route -n 都是用于查看和管理Linux系统路由表的命令。但下面是它们的区别: ip route:是Linux系统中的现代工具,它属于iproute2套件;它提供了更多的选项,可以更精确地控制路由表…

反向传播算法(Back Propagation)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 反向传播算法 梯度下降和反向传播是神经网络训练过程中两个非常重要的概念,它们密切相关。梯度下降是一种常用的优化算法&#xff0…