2023-简单点-机器学习中矩阵向量求导

机器学习中矩阵向量求导的概念是什么?

在机器学习中,矩阵向量求导的概念主要涉及对函数中的矩阵或向量参数进行求导运算。这种求导运算可以帮助我们了解函数值随参数的变化情况,进而应用于优化算法中。具体来说,当损失函数是一个关于模型参数(通常表示为矩阵或向量)的函数时,我们需要计算损失函数关于模型参数的导数,即梯度。这个梯度可以用来更新模型参数,使得损失函数值降低,从而提高模型的性能。

矩阵向量求导可以分为多种类型,包括向量对标量的求导、向量对向量的求导、以及矩阵对矩阵的求导等。每种类型都有其特定的定义和计算规则。例如,向量对标量的求导实际上是对向量中的每个分量分别对标量进行求导,并将结果按向量形式排列。而矩阵对矩阵的求导则更为复杂,涉及到矩阵间的逐元素求导和排列方式等问题。

在机器学习的实际应用中,我们通常使用数值方法来计算雅可比矩阵和梯度等,例如使用有限差分法或反向传播算法等。这些方法可以帮助我们有效地计算梯度并更新模型参数,从而实现模型的优化和训练。

求导的布局?

矩阵求导的两种布局分别是分子布局(Numerator Layout)和分母布局(Denominator Layout)。

大牛链接
在这里插入图片描述

全文就这句最重要
总而言之,所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,方便表达与计算,更加简洁而已。

所有的都可对标量的求导,然后根据布局构成最终的结果。

对标量求导

  • 分子布局,我们求导结果的维度以分子为主,对于标量求导,结果的维度和分子的维度是一致的。也就是说,如果向量y是一个m维的列向量,那么求导结果也是一个m维列向量。如果如果向量y是一个m维的行向量,那么求导结果也是一个m维行向量。
  • 分母布局,我们求导结果的维度以分母为主,对标量求导,如果向量y是一个m维的列向量,那么求导结果是一个m维行向量。如果如果向量y是一个m维的行向量,那么求导结果是一个m维的列向量向量.

上面的是对标量的求导,那么对向量的求导呢?

对向量求导

在这里插入图片描述
参考

如何记住这么多的求导?如何推到没见过的呢?

有三种方法

1 定义法

逮着向量中的标量进行求导:

这里是引用

总结一下, 转化为对每一标量求导,然后进行布局

这里是引用
大家自己推一推

巩固一下
在这里插入图片描述

常见的规则

在这里插入图片描述

2 微分法

这个就有点不显而易见了

这里是引用

涉及到 trace了,背景知识如下

这里是引用

举例背诵

这里是引用

终于背完了,那么开始

这里是引用

自己趁热打铁一下:

这里是引用

3 链式法则法

这里是引用

在这里插入图片描述
趁热打铁一下:

这里是引用
下面的也可自己推导一下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch知识体系详解

1.介绍 ElasticSearch是基于Lucene的开源搜索及分析引擎,使用Java语言开发的搜索引擎库类,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。 它可以被下面这样准确的形容: 一个分布式的实时文档存储&#xf…

图解java.util.concurrent并发包源码系列——深入理解定时任务线程池ScheduledThreadPoolExecutor

深入理解定时任务线程池ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor作用与用法ScheduledThreadPoolExecutor内部执行流程DelayedWorkQueueScheduledFutureTask源码分析任务提交ScheduledFutureTask的属性和方法delayedExecute(t) 任务执行ScheduledFutureTask.su…

软件测试计划书

测试计划书 1.测试参考文档和测试提交文档 2.测试进度计划 3.测试资源 4.系统风险、优先级 5.测试策略 6.缺陷管理 7.测试停止标准 软件开发全文档下载进入主页。

Elasticsearch 如何处理 Aggs 顺序中的大写字母和小写字母?

Elasticsearch 排序允许你根据特定条件对搜索结果进行排序。 然而,在排序时处理区分大小写时,Elasticsearch 将大写和小写字母视为不同的字符,分别对它们进行排序。 这是因为 ASCII 表顺序是从大写 A 到小写 z。 默认情况下,Elas…

微信小程序 地图撒点

1. 微信小程序 地图撒点 1.1 说明 首先使用微信小程序自带标签,并且设置好宽高让地图显示,用longitude和latitude表示中心点。   (1)show-location 显示带有方向的当前定位点,本项目不需要不添加。   (2&#xff…

基于机器深度学习的交通标志目标识别

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 智能交通系统(ITS),包括无人驾驶车辆,尽管在道路…

Unittest单元测试之unittest用例执行顺序

unittest用例执行顺序 当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例&a…

SHAP(三):在解释预测模型以寻求因果见解时要小心

SHAP(三):在解释预测模型以寻求因果见解时要小心 与 Microsoft 的 Eleanor Dillon、Jacob LaRiviere、Scott Lundberg、Jonathan Roth 和 Vasilis Syrgkanis 合作撰写的关于因果关系和可解释机器学习的文章。 当与 SHAP 等可解释性工具配合…

CSS 多主题切换思路

前言 本篇仅提供多主题切换思路,示例简单且清晰。 实现 步骤一:多主题(颜色)定义 定义根伪类 :root,代码第 2 和 7 行。分别定义了默认和带参数的伪类;定义 CSS 变量,注意变量名需要以两个减号(--&…

时间戳转换为日期格式(封装)

在前端开发中,后端有时候传过来的数据为时间戳的格式 而我们又需要将其转换为时间格式来回显。所以需要一个可以转换时间戳的工具。 封装函数 构建一个函数,传入我们的时间戳和我们想要的时间格式,通过JavaScript的时间对象方法,…

JavaFramework JDK Version Test

测试JDK8 JDK17编译包 当前环境JDK8 CASE 1: /*** * author ZengWenFeng* email 117791303QQ.com* mobile 13805029595* date 2023-08-07*/ package zwf;import a.T; import ce.pub.util.GUID;/*** 测试高版本JDK编译JAR,低版本错误** author ZengWenF…

【Python表白系列】如何实现爱心光波的表白效果(完整代码)

文章目录 爱心光波环境需求完整代码详细分析系列文章爱心光波 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://w…