当前位置: 首页 > news >正文

机器学习笔记(8): 矩阵求导

根据神秘言论:

这种情况下讨论推导没什么意义,还不如按惯例来介绍。
总结了几个结论:

  1. 标量函数求导,使用的是分母布局(分母可能是向量、矩阵,维度较高);
  2. 向量、矩阵函数对标量求导,使用的是分子布局(分子为向量、矩阵,维度较高);
  3. 向量对向量求导,没有断论一定是分子还是分母布局,也不存在什么向量对什么向量求导违规情况。
  • 注:参考链接1认为列向量对列向量求导是不规范写法,实际上是受到国外教材分子/分母布局定义的影响,例如分子布局被定义为\(\frac{\partial \vec{y}}{\vec{y}^{T}}\),实际上这是习惯上写法,即使是列向量对列向量写法,也可以这样表示,转置符号T不影响自变量x的身份,因为按照矩阵乘法习惯,m×1对1×n求导,得到m×n二维结果,求导上想复用这一习惯直觉而已。因为应用场景,更多文章主张统一分母、分子叫法,即列向量对列向量求导、行向量对行向量求导。
  1. 向量、矩阵对向量、矩阵求导,实际上都是先将矩阵向量化,再按向量对向量求导的形式。
  2. 矩阵对矩阵求导,按分子布局形式得到的是雅可比矩阵,按分母布局得到梯度矩阵。

  • \(\Delta \nabla\)

\[\begin{aligned} \nabla_{\bf{x}} f({\bf x}) &= \frac {\partial f({\bf x})} {\partial {\bf x}} &= \left[\frac {\partial f({\bf x})} {\partial {\bf x}_i}\right]^T \\ \nabla_{\bf x} f({\bf X}) &= \frac {\partial f({\bf X})} {\partial \bf X} &= \begin{pmatrix} \frac {\partial f} {\partial x_{11}} & \frac {\partial f} {\partial x_{12}} & \cdots & \frac {\partial f} {\partial x_{1m}} \\ \frac {\partial f} {\partial x_{21}} & \frac {\partial f} {\partial x_{22}} & \cdots & \frac {\partial f} {\partial x_{2m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial f} {\partial x_{n1}} & \frac {\partial f} {\partial x_{n2}} & \cdots & \frac {\partial f} {\partial x_{nm}} \\ \end{pmatrix} \\ \nabla_{\bf X} {\bf F}({\bf X}) &= \frac {\partial {\bf F(X)}} {\partial \bf X} &= \begin{pmatrix} \frac {\partial {\bf F}} {\partial x_{11}} & \frac {\partial {\bf F}} {\partial x_{12}} & \cdots & \frac {\partial {\bf F}} {\partial x_{1m}} \\ \frac {\partial {\bf F}} {\partial x_{21}} & \frac {\partial {\bf F}} {\partial x_{22}} & \cdots & \frac {\partial {\bf F}} {\partial x_{2m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial {\bf F}} {\partial x_{n1}} & \frac {\partial {\bf F}} {\partial x_{n2}} & \cdots & \frac {\partial {\bf F}} {\partial x_{nm}} \\ \end{pmatrix} \\ \end{aligned} \]

几种法则:

\[\begin{aligned} \nabla (a f(x) + b g(x)) &= a \nabla f(x) + b \nabla g(x) \\ \nabla [f(x) g(x)] &= f(x) \nabla g(x) + \nabla f(x) g(x) & \text{需要注意无交换律} \\ \nabla \frac {f(x)} {g(x)} &= \frac 1 {g^2(x)} [\nabla f(x) g(x) - f(x) \nabla g(x)] \end{aligned} \]

\(f(x) = x^T a = a^T x \implies \nabla f(x) = a\)
证明:\(f(x) = x_1 a_1 + x_2 a_2 + \cdots + x_n a_n\),套用定义即可
补充证明:利用全微分 \(df = (\nabla_x f)^T dx = d(x^T a) = d(x^T) a + x^T da = (dx)^T a = a^T dx \implies \nabla_x f = a\)


  • \(\Delta {\mathrm {tr}}\) 只在方矩阵上有

对于两个同 \(\in {\mathbb R}^{n\times m}\) 的矩阵,\(A, B\),考虑:

\[{\rm tr}(A B^T) = {\rm tr}(B A^T) = {\rm tr}(B^T A) = {\rm tr}(A^T B) \]

前两者是根据 \({\rm tr}(A) = {\rm tr}(A^T)\),中间是根据 \({\rm tr}(AB) = {\rm tr}(BA)\) 得来的。证明一下:

\[{\rm tr}(AB^T) = \sum_{t = 1}^{n} \sum_{k = 1}^m A_{tk} B^T_{kt} = \sum_{i = 1}^n \sum_{j = 1}^m A_{ij} B_{ij} = {\rm tr}({BA^T}) \]


  • \(\Delta\) 全微分

\[{\rm d}y = {\rm d} f(x) = \frac {\partial f(x)} {\partial x} {\rm d}x \]

类似可得:

\[{\rm d} f({\bf x}) = \sum \frac {\partial f({\bf x})} {\partial {\bf x}_i} {\rm d} {\bf x}_i = (\nabla f({\bf x}))^T {\rm d} {\bf x} \]

由于 \({\rm tr} (c) = c\),所以可以在这外面套一个 \(\rm tr\),于是就可以统一形式了:

\[{\rm d} f({\bf X}) = \sum \frac {\partial f({\bf x})} {\partial {\bf x}_{ij}} {\rm d} {\bf x}_{ij} = {\rm tr}((\nabla f({\bf X}))^T {\rm d} {\bf X}) \]

至于 \({\rm d} {\bf F(X)} = \begin{pmatrix} d f_{ij}({\bf X}) \end{pmatrix}\) 大概是不会怎么用到的吧。

一点特殊的:

  • \({\rm d} (AXB) = A {\rm d} X B\)
  • \({\rm d} X^{-1} = - X^{-1} {\rm d} X X^{-1}\)

  • \(\Delta {\rm tr} + {\rm d}\)

\[{\rm d} f(x) = {\rm tr} ({\rm d} f(x)) = {\rm d} ({\rm tr} f(x)) \]

例如求 \(\frac {\partial (X^T X)} {\partial X}\),考虑:

\[\begin{aligned} {\rm d} (X^T X) &= {\rm tr(d} (X^T X)) \\ &= {\rm tr} ({\rm d} X^T X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (({\rm d} X)^T X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (X^T {\rm d} X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (2X^T {\rm d} X) \end{aligned} \]

\({\rm d} (X^T X) = {\rm tr}((\nabla_X X^T X)^T {\rm d} X)\) 对比,则:

\[\nabla_X (X^T X) = 2 X \]

例如求 \(\nabla_X \log |X|\),考虑:

\[{\rm d} (\log |X|) = {\rm tr} \left(\frac 1 {|X|} {\rm d} |X| \right) \]

对于矩阵的行列式,考虑利用 \(|X| = x_{ij} X^*_{ij}\) 则:

\[\nabla |X| = X^*_{ij} \implies {\rm d} |X| = (\nabla_X |X|)^T {\rm d} X \]

考虑利用等式 \(X X^* = |X|\),那么有:

\[{\rm d} |X| = {\rm tr}\left( (|X|(X^{-1})^T)^T{\rm d} X \right) = |X| {\rm tr} (X^{-1} {\rm d} X ) \]

于是

\[ {\rm tr} \left(\frac 1 {|X|} {\rm d} |X| \right) = {\rm tr} \left( \frac 1 {|X|} |X|X^{-1} {\rm d} X \right) = {\rm tr} (X^{-1} {\rm d}X) \]

于是得到 \(\nabla_X \log |X| = (X^{-1})^T\)


参考:

  • https://zhuanlan.zhihu.com/p/305171795
  • https://zhuanlan.zhihu.com/p/288541909
  • https://zhuanlan.zhihu.com/p/273729929
  • https://zhuanlan.zhihu.com/p/263777564
  • https://zhuanlan.zhihu.com/p/685184693
http://www.jsqmd.com/news/608491/

相关文章:

  • Excel 科普:循环引用是“错误”还是“黑科技”?
  • Nginx 学习总结犊
  • 你的英雄联盟游戏管家:League Akari 如何让游戏体验提升300%?
  • ins推广公司与代运营服务商推荐,搭配海外社媒营销,助力品牌海外曝光获客(附带联系方式) - 品牌2026
  • 企业文件共享必看:用组策略实现精细化磁盘配额管理(含客户机权限分配技巧)
  • 告别误报!用DeepAudit和本地Ollama,5分钟搭建你的私有AI代码审计红队
  • 零基础秒会CAJ转Word!4个超简单实用方法分享
  • 【免费绿色中文版】FastStone Capture下载安装保姆级教程(附安装包+图文步骤) - xiema
  • 破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
  • 越南名义雇主 EOR 服务商哪家好?Safeguard Global 适配人力资源外包需求 - 品牌2026
  • 避开ArduPilot地面无人平台调试大坑:ACRO模式下的转向速率设置详解
  • Windows本地语音转文字终极指南:让电脑自动记录一切
  • 国产 vs 进口:实验室玻璃器皿清洗机优质品牌对比,谁的性价比更高? - 品牌推荐大师1
  • MeteorSeed资
  • 从投稿到见刊:Paperxie 期刊论文智能写作,科研人发刊效率加速器
  • 2026推荐几家海外AI营销获客系统,兼顾社媒获客、整合营销,助力外贸企业出海提质增效(附带联系方式) - 品牌2026
  • 外置MOS,20VIN,单灯,XZ4058D,4.35V
  • 游戏安全社区建设终极指南:awesome-game-security 如何推动游戏安全生态发展
  • Go语言的未来发展:趋势与展望
  • Llama-3.2V-11B-cot 处理长文本与图像关联分析:技术文档智能摘要与插图匹配
  • leetcode 1637. 两点之间不包含任何点的最宽垂直区域
  • 打破B站字幕提取壁垒:BiliBiliCCSubtitle如何重构视频文字信息获取范式
  • 20254208 2025-2026-2 《Python程序设计》实验二报告
  • 上层封海外与UDP和机房封海外UDP的区别
  • 英国名义雇主 EOR 服务商哪家好?Safeguard Global 适配人力资源外包需求 - 品牌2026
  • Python与Rust混合编程实战:发挥两种语言的优势
  • Filament Shield 用户角色分配:5种高效的用户权限管理方法
  • 千问3.5-2B模型量化效果:INT4/FP16精度对比与RTX 4090 D推理速度实测
  • 抖音视频解析下载助手,支持多视频批量解析下载,操作简单高效无水印下载软件
  • JavaWeb 笔记 05 (50 - 72)