【李沐深度学习笔记】矩阵计算(2)

news2025/4/17 19:31:55

课程地址和说明

线性代数实现p4
本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。
本节是第二篇

矩阵计算

矩阵的导数运算

此处参考了视频:矩阵的导数运算
为了方便看出区别,我将所有的向量都不按印刷体加粗,而是按手写体在向量对应字母上加箭头的方式展现。

标量方程对向量的导数

在一元函数中,求一个函数的极值点,一般令导数为0(该点切线斜率为0),求得驻点,最后通过极值点定义或推论判断其是否为极值点,也就是如下过程:

求多元函数极值的方法如下:

(这个图中给的自变量记成了 y y y,实际上记成 x x x更顺眼)

  • 假设这个多元函数有 m m m个变量,即 f ( x 1 , x 2 , . . . , x m ) f(x_{1},x_{2},...,x_{m}) f(x1,x2,...,xm),那么求其极值的偏导数方程组中的方程就有 m m m个,这样写起来有一些麻烦,于是我们将用一种简洁的方式表达它,我们将所有这 m m m个变量写成一个列向量的形式即 x → = [ x 1 x 2 ⋮ x m ] m × 1 \overrightarrow x=\begin{bmatrix} x_{1}\\ x_{2}\\ \vdots \\ x_{m} \end{bmatrix}_{m\times 1} x = x1x2xm m×1,此时我们将多元函数 f ( x 1 , x 2 , . . . , x m ) f(x_{1},x_{2},...,x_{m}) f(x1,x2,...,xm)转化为一个自变量是一个向量的方程即 f ( x → ) f(\overrightarrow x) f(x )
    【注意】此处 x → \overrightarrow x x 是一个由多个自变量汇总而成的 m m m列向量 m × 1 m\times 1 m×1),而 f ( x → ) f(\overrightarrow x) f(x )是函数值,是一个标量,所以对其求偏导数就是标量对向量求导。

  • 此时我们可以定义标量方程对向量的偏导数形式(有两种)为:
    (1)分母布局(Denominator Layout):
    ∂ f ( x → ) ∂ x → = [ ∂ f ( x → ) ∂ x 1 ∂ f ( x → ) ∂ x 2 ⋮ ∂ f ( x → ) ∂ x m ] m × 1 \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} =\begin{bmatrix} \frac{\partial {f(\overrightarrow x)}}{\partial{x_{1}}}\\ \frac{\partial {f(\overrightarrow x)}}{\partial{x_{2}}}\\ \vdots \\ \frac{\partial {f(\overrightarrow x)}}{\partial{x_{m}}} \end{bmatrix}_{m\times 1} x f(x )= x1f(x )x2f(x )xmf(x ) m×1
    其中, ∂ f ( x → ) ∂ x → \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} x f(x ) m × 1 m\times 1 m×1的列向量。
    (2)分子布局(Numerator Layout):
    ∂ f ( x → ) ∂ x → = [ ∂ f ( x → ) ∂ x 1 , ∂ f ( x → ) ∂ x 2 , … , ∂ f ( x → ) ∂ x m ] 1 × m \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} =\begin{bmatrix} \frac{\partial {f(\overrightarrow x)}}{\partial{x_{1}}},& \frac{\partial {f(\overrightarrow x)}}{\partial{x_{2}}},& \dots, & \frac{\partial {f(\overrightarrow x)}}{\partial{x_{m}}} \end{bmatrix}_{1\times m} x f(x )=[x1f(x ),x2f(x ),,xmf(x )]1×m
    其中, ∂ f ( x → ) ∂ x → \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} x f(x ) 1 × m 1\times m 1×m的行向量。
    不同的资料采用的布局不一样,分子布局与分母布局互为转置,虽然在李沐老师的课程中标量对向量的导数采用了分子布局,但是为了方便推导一些结论,我们采用分母布局,注意分母布局和分子布局的结论互为转置

  • 【例】已知 f ( x 1 , x 2 ) = x 1 2 + x 2 2 f(x_{1},x_{2})=x_{1}^{2}+x_{2}^{2} f(x1,x2)=x12+x22,其中 x → = [ x 1 x 2 ] \overrightarrow x=\begin{bmatrix} x_{1}\\ x_{2} \end{bmatrix} x =[x1x2],求 ∂ f ( x → ) ∂ x → \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} x f(x )
    【答】 ∂ f ( x → ) ∂ x → = [ ∂ f ( x → ) ∂ x 1 ∂ f ( x → ) ∂ x 2 ] = [ 2 x 1 2 x 2 ] \frac{\partial {f(\overrightarrow x)}}{\partial\overrightarrow x} =\begin{bmatrix} \frac{\partial {f(\overrightarrow x)}}{\partial{x_{1}}}\\ \frac{\partial {f(\overrightarrow x)}}{\partial{x_{2}}} \end{bmatrix}=\begin{bmatrix} 2x_{1}\\ 2x_{2} \end{bmatrix} x f(x )=[x1f(x )x2f(x )]=[2x12x2]

向量方程对向量的导数

设有如下函数,它本身就是一个向量,然后它的自变量也是向量(由多个自变量组成的向量),即:
f → ( x → ) = [ f 1 ( x → ) f 2 ( x → ) ⋮ f n ( x → ) ] n × 1 , x → = [ x 1 x 2 ⋮ x m ] \overrightarrow{f}(\overrightarrow x)=\begin{bmatrix} f_{1}(\overrightarrow x)\\ f_{2}(\overrightarrow x)\\ \vdots \\f_{n}(\overrightarrow x) \end{bmatrix}_{n\times 1},\overrightarrow x=\begin{bmatrix} x_{1}\\ x_{2} \\ \vdots \\ x_{m} \end{bmatrix} f (x )= f1(x )f2(x )fn(x ) n×1,x = x1x2xm
其中, f → ( x → ) \overrightarrow{f}(\overrightarrow x) f (x )是一个 n × 1 n\times 1 n×1的列向量, x → \overrightarrow x x 是一个 m × 1 m\times 1 m×1的列向量。
此时我们将其偏导数形式定义为:

  • (1)分母布局
    ∂ f → ( x → ) n × 1 ∂ x → m × 1 = [ ∂ f ( x → ) ∂ x 1 ∂ f ( x → ) ∂ x 2 ⋮ ∂ f ( x → ) ∂ x m ] = [ ∂ f 1 ( x → ) ∂ x 1 ∂ f 2 ( x → ) ∂ x 1 … ∂ f n ( x → ) ∂ x 1 ∂ f 1 ( x → ) ∂ x 2 ∂ f 2 ( x → ) ∂ x 2 … ∂ f n ( x → ) ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ f 1 ( x → ) ∂ x m ∂ f 2 ( x → ) ∂ x m … ∂ f n ( x → ) ∂ x m ] m × n \frac{\partial {\overrightarrow{f}(\overrightarrow x)}_{n\times 1}}{\partial\overrightarrow x_{m\times 1}} =\begin{bmatrix} \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{1}}}\\ \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{2}}}\\ \vdots \\ \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{m}}} \end{bmatrix}=\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{1}}} & \dots &\frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{1}}} \\ \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{2}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{2}}} & \dots &\frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{2}}} \\ \vdots & \vdots & \ddots &\vdots \\ \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{m}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{m}}} & \dots &\frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{m}}} \end{bmatrix}_{m\times n} x m×1f (x )n×1= x1f(x )x2f(x )xmf(x ) = x1f1(x )x2f1(x )xmf1(x )x1f2(x )x2f2(x )xmf2(x )x1fn(x )x2fn(x )xmfn(x ) m×n
    (2)分子布局
    ∂ f → ( x → ) n × 1 ∂ x → m × 1 = [ ∂ f 1 ( x → ) ∂ x → ∂ f 2 ( x → ) ∂ x → … ∂ f n ( x → ) ∂ x → ] = [ ∂ f 1 ( x → ) ∂ x 1 ∂ f 1 ( x → ) ∂ x 2 … ∂ f 1 ( x → ) ∂ x m ∂ f 2 ( x → ) ∂ x 1 ∂ f 2 ( x → ) ∂ x 2 … ∂ f 2 ( x → ) ∂ x m ⋮ ⋮ ⋱ ⋮ ∂ f n ( x → ) ∂ x 1 ∂ f n ( x → ) ∂ x 2 … ∂ f n ( x → ) ∂ x m ] n × m \frac{\partial {\overrightarrow{f}(\overrightarrow x)}_{n\times 1}}{\partial\overrightarrow x_{m\times 1}} =\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {\overrightarrow x}}\\ \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {\overrightarrow x}}\\ \dots \\ \frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {\overrightarrow x}} \end{bmatrix}=\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{2}}} & \dots &\frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{m}}} \\ \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{2}}} & \dots &\frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{m}}} \\ \vdots & \vdots & \ddots &\vdots \\ \frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{2}}} & \dots &\frac{\partial {{f_{n}}(\overrightarrow x)}}{\partial {x_{m}}} \end{bmatrix}_{n\times m} x m×1f (x )n×1= x f1(x )x f2(x )x fn(x ) = x1f1(x )x1f2(x )x1fn(x )x2f1(x )x2f2(x )x2fn(x )xmf1(x )xmf2(x )xmfn(x ) n×m

  • 【例】已知 f → ( x → ) = [ f 1 ( x → ) f 2 ( x → ) ] = [ x 1 2 + x 2 2 + x 3 x 3 2 + 2 x 1 ] 2 × 1 \overrightarrow{f}(\overrightarrow x)=\begin{bmatrix} f_{1}( \overrightarrow {x})\\ f_{2}( \overrightarrow {x}) \end{bmatrix}=\begin{bmatrix} x_{1}^{2}+x_{2}^{2}+x_{3} \\ x_{3}^{2}+2x_{1} \end{bmatrix}_{2\times 1} f (x )=[f1(x )f2(x )]=[x12+x22+x3x32+2x1]2×1 x → = [ x 1 x 2 x 3 ] \overrightarrow {x}=\begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \end{bmatrix} x = x1x2x3 ,求 ∂ f → ( x → ) ∂ x → \frac{\partial {\overrightarrow{f}(\overrightarrow x)}}{\partial\overrightarrow x} x f (x )
    【答】按分母布局: ∂ f → ( x → ) ∂ x → = [ ∂ f ( x → ) ∂ x 1 ∂ f ( x → ) ∂ x 2 ∂ f ( x → ) ∂ x 3 ] = [ ∂ f 1 ( x → ) ∂ x 1 ∂ f 2 ( x → ) ∂ x 1 ∂ f 1 ( x → ) ∂ x 2 ∂ f 2 ( x → ) ∂ x 2 ∂ f 1 ( x → ) ∂ x 3 ∂ f 2 ( x → ) ∂ x 3 ] = [ 2 x 1 2 2 x 2 0 1 2 x 3 ] \frac{\partial {\overrightarrow{f}(\overrightarrow x)}}{\partial\overrightarrow x}=\begin{bmatrix} \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{1}}}\\ \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{2}}}\\ \frac{\partial {{f}(\overrightarrow x)}}{\partial {x_{3}}} \end{bmatrix}=\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{1}}} \\ \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{2}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{2}}} \\ \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{3}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{3}}} \end{bmatrix}=\begin{bmatrix} 2x_{1} &2 \\ 2x_{2} & 0\\ 1 &2x_{3} \end{bmatrix} x f (x )= x1f(x )x2f(x )x3f(x ) = x1f1(x )x2f1(x )x3f1(x )x1f2(x )x2f2(x )x3f2(x ) = 2x12x21202x3
    按分子布局: ∂ f → ( x → ) ∂ x → = [ ∂ f 1 ( x → ) ∂ x → ∂ f 2 ( x → ) ∂ x → ] = [ ∂ f 1 ( x → ) ∂ x 1 ∂ f 1 ( x → ) ∂ x 2 ∂ f 1 ( x → ) ∂ x 3 ∂ f 2 ( x → ) ∂ x 1 ∂ f 2 ( x → ) ∂ x 2 ∂ f 2 ( x → ) ∂ x 3 ] = [ 2 x 1 2 x 2 1 2 0 2 x 3 ] \frac{\partial {\overrightarrow{f}(\overrightarrow x)}}{\partial\overrightarrow x} =\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {\overrightarrow x}}\\ \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {\overrightarrow x}} \end{bmatrix}=\begin{bmatrix} \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{2}}}& \frac{\partial {{f_{1}}(\overrightarrow x)}}{\partial {x_{3}}}\\ \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{1}}}& \frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{2}}}&\frac{\partial {{f_{2}}(\overrightarrow x)}}{\partial {x_{3}}} \\ \end{bmatrix}=\begin{bmatrix} 2x_{1} & 2x_{2} & 1\\ 2 & 0 &2x_{3} \end{bmatrix} x f (x )=[x f1(x )x f2(x )]=[x1f1(x )x1f2(x )x2f1(x )x2f2(x )x3f1(x )x3f2(x )]=[2x122x2012x3]

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

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

相关文章

MQ - 21 可观测性_消息轨迹功能的设计

文章目录 导图概述丢消息是怎么回事?消息的唯一标识唯一 ID 的生成方式消息轨迹的设计应该注意什么?消息轨迹的实现方案设计客户端轨迹数据记录服务端轨迹数据记录本地文件内置 Topic (推荐)第三方服务单机维度的存储引擎结论持久存储引擎的选择RabbitMQ 消息轨迹方案设计实…

基于时序分析及约束(1)-时序约束是什么?

首先回答标题的问题: 时序约束是什么? 简单来讲,时序约束就是你要告诉综合工具,你的标准是什么。 综合工具应该如何根据你的标准来布线,以满足所以寄存器的时序要求。 为什么要做时序约束? 这里引用特权同…

Linux 入门:基本指令

本篇文章来介绍我们在初学Linux时可以会碰倒的一些基本指令,让我们对这些指令有一个基本的了解。 目录 01. ls 指令 02. pwd 命令 03. cd 指令 04. touch 指令 05. mkdir 指令(重要) 06. rmdir指令 && rm 指令(重…

基于Yolov8的工业小目标缺陷检测(4):SPD-Conv,低分辨率图像和小物体涨点明显

💡💡💡本文改进:SPD-Conv,处理低分辨率图像和小物体等更困难的任务时效果明显。 SPD-Conv | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.679提升至0.775 收录专栏: 💡💡💡深度学习工业缺陷检测 :http://t.csdn.cn/fVSgs ✨✨✨提供工业缺陷检测性能提升…

uniapp 内容展开组件

uni-collapse折叠面板并不符合需求&#xff0c;需要自己写一个。 效果展示&#xff1a; 代码&#xff1a; &#xff08;vue3版本&#xff09; <template><view class"collapse-view"><view class"collapse-content"><swiper:autopl…

海外代理IP是什么?如何使用?

一、海外代理IP是什么&#xff1f; 首先&#xff0c;代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器&#xff0c;被称为“中介”&#xff0c;因为它位于最终用户和他们在线访问的网页之间。 海外IP代理是就是指从海外地区获取的IP地址&#xff0c;用…

YashanDB荣获“鼎新杯”数字化转型应用奖项

近日&#xff0c;深算院YashanDB 团队与深燃集团联合共建的深圳燃气集团数据库国产化建设项目&#xff0c;荣获第二届“鼎新杯”数字化转型应用大赛信息技术应用创新赛道二等奖&#xff01;此次获奖&#xff0c;彰显了崖山数据库系统YashanDB自主领先的国产数据库技术优势和优秀…

ZABBIX 6.4安装部署

ZABBIX 6.4安装部署 zabbix的主要组成&#xff1a; 1、Zabbix Server6.4&#xff1a;Zabbix 服务端&#xff0c;是 Zabbix 的核心组件。它负责接收监控数据并触发告警&#xff0c;还负责将监控数据持久化到数据库中。 2、Zabbix Agent&#xff1a;Zabbix 客户端&#xff0c;部…

好用的一站式MES系统有哪些?全面管理生产流程,实现工厂数字化转型

在现代制造业中&#xff0c;MES制造执行系统已经成为了不可或缺的信息化工具。它为企业建立了规范化、集成化的生产信息管理平台&#xff0c;通过集成管理思想&#xff0c;帮助企业优化流程管控、数字化生产车间&#xff0c;从而显著提升了生产效率。那么&#xff0c;MES系统到…

SpringBoot+Vue项目中session改变的问题解决

一&#xff0c;发现问题 项目是SpringbootVue的前后端分离项目&#xff0c;没有什么特殊的配置。在登录之后&#xff0c;会以sessionId为key存在httpSession中&#xff0c;然后后续请求就会现在Filter中看是否在HttpSession中查询到数据&#xff0c;如果查到才继续&#xff0c…

目前很火的养猫微信小程序源码带流量主+搭建教程

目前很火的养猫微信小程序源码带流量主搭建教程。 搭建教程 进入小程序我们下载开发者工具 开发者工具安装好了 我们就把前端源码导入进开发者工具中 这里的APPID我们填写自己的小程序APPID 修改siteinfo.js里的uniacid和acid 这两个ID在刚才后端添加的小程序那里看 在把…

【linux】shell脚本调试

前几天的一篇linux定时删除服务器日志 &#xff0c;有人读了&#xff0c;私信问题。说我写了脚本了&#xff0c;怎么去调试一下&#xff0c;类似于代码的debug。 那我们今天来聊聊。 执行脚本命令是&#xff1a; sh 脚本名 sh dele_log2.sh 执行并输出。 Shell 脚本调试选…

7.2、如何理解Flink中的水位线(Watermark)

目录 0、版本说明 1、什么是水位线&#xff1f; 2、水位线使用场景&#xff1f; 3、设计水位线主要为了解决什么问题&#xff1f; 4、怎样在flink中生成水位线&#xff1f; 4.1、自定义标记 Watermark 生成器 4.2、自定义周期性 Watermark 生成器 4.3、内置Watermark生…

【Java 基础篇】Java线程异常处理详解

在多线程编程中&#xff0c;异常处理是一个至关重要的方面&#xff0c;它决定了你的多线程应用程序的稳定性和可靠性。在本篇博客中&#xff0c;我们将深入探讨Java中的线程异常处理&#xff0c;包括线程抛出的异常类型、如何捕获和处理异常以及最佳实践。 异常类型 在多线程…

ps打开找不到MSVCP140.dll重新安装方法,安装ps出现msvcp140.dll缺失解决方法

在计算机中&#xff0c;我们可能会遇到许多问题&#xff0c;其中之一就是找不到msvcp140.dll文件。msvcp140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。当计算机找不到这个文件时&#xff0c;可能会导致程序无法正常运行。本文…

PostgreSQL如何支持PL/Python过程语言

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;10.4 文档用途 本文档主要介绍PostgreSQL如何支持PL/Python过程语言&#xff0c;如何创建plpython扩展。 详细信息 一、PostgreSQL支持python语言…

创建双向循环链表(不带头节点+插入删除操作)

#include<iostream> using namespace std; typedef struct list {int data;list* prior;list* next; }list,*linklist; void Createlist(linklist& l,int n)//创建&#xff08;不带头节点&#xff09;双向链表 {l new list;l->prior NULL;l->next NULL;link…

注册苹果开发者账号步骤揭秘,创建证书全攻略

​ 目录 转载&#xff1a;注册苹果开发者账号的方法 转载&#xff1a;注册苹果开发者账号的方法 在2020年以前&#xff0c;注册苹果开发者账号后&#xff0c;就可以生成证书。 但2020年后&#xff0c;因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号&…

Cortex-M4之FPU单元

最近在学习实时操作系统&#xff0c;以下是我对学习实时操作系统过程中做的一些笔记。 一、FPU单元 在 Coretex-M4 处理器中有一个可选的单精度 FPU 单元&#xff0c;一般 STM32F429 就有 FPU 单元&#xff0c; 如果使能了 FPU 单元的话就可以使用它来对单精度浮点数进行计算…

Mac配置iTerm样式终端

一、MacOs系统 MacOs中终端使用iTerm2 1. 配置oh-my-zsh oh my zsh 的地址&#xff1a; https//github.com/ohmyzsh/ohmyzsh 插件存放位置&#xff1a;~/.oh-my-zsh/plugins 下载常用的插件 git clone http://github.com/zsh-users/zsh-syntax-highlighting.git 修改配…