Fisher矩阵与自然梯度法

news2025/5/15 19:31:40

文章目录

    • 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.coloradmin.cn/o/1489011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes(K8S第三部分之资源控制器)

资源控制器 什么是控制器 Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为。 控制器类型 ReplicationController和ReplicaSet Deployment DaemonSet StateFulSet Job/CronJob…

javascript学习快速入门

JavaScript 基本语法 快速入门 数据类型 123 // 整数123 123.1 //浮点数123.1 1.123e3 //科学计数法-99//复数 NaN// not a numberInfinity //表示无限大注意点 NaNNaN,这个与所有的数值都不相等,包括自 己 只能通过isNaN(NaN)来判断这个数是否是Na…

Behavioral Verilog

行为Verilog Vivado synthesis支持行为Verilog硬件描述语言(VHDL),除了如另外指出的。 行为Verilog中的变量 •行为Verilog中的变量声明为整数。 •这些声明仅用于测试代码。Verilog提供诸如reg和用于实际硬件描述的导线。 •reg和wire之…

华为od机试C卷-最长表达式求值

1 题目描述 提取字符串中的最长合法简单数学表达式子串,字符串长度最长的,并计算表达式的值,如果没有返回0。简单数学表达式只能包含以下内容0-9 数字,符号* 说明: 1.所有数字,计算结果都不超过 long 2.如果有多个长…

mysql学习笔记5——对表的修改操作

对表的列进行操作 对表可以进行创建create与删除drop,同时可以对表进行修改alter 修改字段 添加字段 删除具体的某一列 添加列时可以指定添加位置 对表的数据进行操作 select查询操作可以指定查询条件 删除具体数据(而非删除表中某一列某一行&#xf…

简单聊聊http协议头参数之Content-Type和http状态码 415错误

大家好,我是G探险者。 今天聊一下http的状态码,415错误,因为项目里面使用了httpclient进行了远程服务调用,调用发送时,会有一个http header的参数设置。由于参数设置的问题经常会出现错误,导致调用失败&am…

Linux的进程的概念

目录 1.冯诺依曼体系结构(硬件) 2.操作系统(软件) 2.1概念 2.2设计os(操作系统)的目的 2.3如何理解管理 2.4系统调用和库函数概念 3.进程 3.1基本概念 3.2描述进程-PCB和组织进程 3.3ps axj指令 3.4查看进程 3.5通过系统调用获取进程表示符(P…

一篇了解电阻的使用

目录 一、电阻理论基础 1.电阻的定义 2.欧姆定律 3.电阻决定式 4.电阻的串并联​编辑 5.电阻的功率 6.温度对电阻的影响 二、电阻的选型 1.安装方式 2.电阻值 (1)电阻值的标称 (2)电阻值的确定 (3&#x…

管家婆订货易在线商城 VshopProcess 任意文件上传漏洞复现

0x01 产品简介 管家婆订货易,帮助传统企业构建专属的订货平台,PC+微信+APP+小程序+h5商城5网合一,无缝对接线下的管家婆ERP系统,让用户订货更高效。支持业务员代客下单,支持多级推客分销,以客带客,拓展渠道。让企业的生意更轻松。 0x02 漏洞概述 管家婆订货易在线商城…

Fastwhisper + Pyannote 实现 ASR + 说话者识别

文章目录 前言一、faster-whisper简单介绍二、pyannote.audio介绍三、faster-whisper pyannote.audio 实现语者识别四、多说几句 前言 最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的…

Java多态性的作用及解析

多态性是 Java 面向对象编程的一个重要特性,它的主要作用包括以下几个方面: 提高代码的可扩展性:多态性使得我们可以在不修改现有代码的情况下,通过继承和重写方法来添加新的行为。这意味着我们可以在不影响现有功能的前提下,对代码进行扩展和修改。 增强代码的可读性:使…

基础真空技术外国文献Fundamentals of Vacuum Technology

基础真空技术外国文献Fundamentals of Vacuum Technology

Maven构建MapReduce程序上传至虚拟机运行找不到jdbc.Driver

问题前置: Maven构建MapReduce程序, pom中已经写入jdbc驱动, 上传至虚拟机运行扔找不到jdbc.Driver, 具体报错:java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 第一步:确认pom…

2024022701-信息安全(二)——密码学

密码学的基本概念 密码学(Cryptology): 研究信息系统安全保密的科学。 密码编码学(Cryptography): 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) : 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用…

LeetCode第125场双周赛个人题解

目录 100231. 超过阈值的最少操作数 I 原题链接 思路分析 AC代码 100232. 超过阈值的最少操作数 II 原题链接 思路分析 AC代码 100226. 在带权树网络中统计可连接服务器对数目 原题链接 思路分析 AC代码 100210. 最大节点价值之和 原题链接 思路分析 AC代码 10023…

【动态规划】第十一届蓝桥杯省赛第二场C++ C组《数字三角形》(c++)

1.题目描述 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 …

kafka启动命令、查看topic命令、查看消息内容命令

kafka启动命令 cd /opt/kafka/kafka_2.12-3.5.1/bin ./kafka-server-start.sh ../config/server.properties Windows环境下用kafka Tool 连不上虚拟机的broker报了unable to connect broker 0, 但是zookeeper可以连接上 server.properties的listeners改为listene…

Oracle定时任务和存储过程

--1.声明定时任务 DECLAREjob NUMBER; BIGIN dbms_job.sumit(job, --任务ID,系统定义的test_prcedure(19),--调用存储过程?to_date(20240305 02:00,yyyymmdd hh24:mi) --任务开始时间sysdate1/(24*60) --任务执行周期 [每分钟执行…

1818294-46-0,马来酰亚胺-PEG8-羧酸,能够在各种酸碱条件下保持稳定的性能

您好,欢迎来到新研之家 文章关键词:1818294-46-0,马来酰亚胺-PEG8-羧酸,Mal PEG8 COOH,Maleimide PEG8 acid 一、基本信息 【产品简介】:Maleimide PEG8 acid is an excellent water-soluble compound t…