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

《机器学习数学基础》补充资料:矩阵运算技巧和矩阵指数

在《机器学习数学基础》第 2 章的 2.1.3 节、2.1.4 节和 2.1.5 节分别介绍了矩阵的加(减)法、数量乘法和矩阵乘法,这些构成了矩阵的基本运算,并且列出了矩阵的所有运算性质。在手工计算或者原理证明中,这些计算性质会经常用到。

本文作为上述章节内容拓展阅读。

运算技巧

A \pmb{A} A B \pmb{B} B n × n n\times n n×n 阶矩阵,且 A + B \pmb{A} + \pmb{B} A+B 是可逆的,则:

A ( A + B ) − 1 B = B ( A + B ) − 1 A \pmb{A}(\pmb{A}+\pmb{B})^{-1}\pmb{B}=\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{A} A(A+B)1B=B(A+B)1A
上述运算技巧来自参考文献 [1]。

证明:

因为 A + B \pmb{A}+\pmb{B} A+B 可逆,所以 ( A + B ) ( A + B ) − 1 = I (\pmb{A}+\pmb{B})(\pmb{A}+\pmb{B})^{-1}=\pmb{I} (A+B)(A+B)1=I ,即:

A ( A + B ) − 1 + B ( A + B ) − 1 = I A ( A + B ) − 1 = I − B ( A + B ) − 1 \begin{split} \pmb{A}(\pmb{A}+\pmb{B})^{-1}+\pmb{B}(\pmb{A}+\pmb{B})^{-1}=\pmb{I} \\\pmb{A}(\pmb{A}+\pmb{B})^{-1}=\pmb{I}-\pmb{B}(\pmb{A}+\pmb{B})^{-1} \end{split} A(A+B)1+B(A+B)1=IA(A+B)1=IB(A+B)1
计算:

A ( A + B ) − 1 B − B ( A + B ) − 1 A = ( I − B ( A + B ) − 1 ) B − B ( A + B ) − 1 A = B − B ( A + B ) − 1 B − B ( A + B ) − 1 A = B − B ( A + B ) − 1 ( B + A ) = B − B ( ∵ A + B 可逆 ) = 0 \begin{split}\pmb{A}(\pmb{A}+\pmb{B})^{-1}\pmb{B}-\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{A}&=(\pmb{I}-\pmb{B}(\pmb{A}+\pmb{B})^{-1})\pmb{B}-\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{A}\\&=\pmb{B}-\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{B}-\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{A}\\&=\pmb{B}-\pmb{B}(\pmb{A}+\pmb{B})^{-1}(\pmb{B}+\pmb{A})\\&=\pmb{B}-\pmb{B}\quad(\because\pmb{A}+\pmb{B}可逆)\\&=0\end{split} A(A+B)1BB(A+B)1A=(IB(A+B)1)BB(A+B)1A=BB(A+B)1BB(A+B)1A=BB(A+B)1(B+A)=BB(A+B可逆)=0
所以: A ( A + B ) − 1 B = B ( A + B ) − 1 A \pmb{A}(\pmb{A}+\pmb{B})^{-1}\pmb{B}=\pmb{B}(\pmb{A}+\pmb{B})^{-1}\pmb{A} A(A+B)1B=B(A+B)1A

证毕。

矩阵指数

本内容来自参考资料 [2] 。

定义和性质

对于 n × n n\times n n×n 矩阵 A \pmb{A} A 可以定义矩阵指数(matrix exponential)。

设指数函数: e x = 1 + x + x 2 2 ! + x 3 3 ! + ⋯ e^x = 1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\cdots ex=1+x+2!x2+3!x3+

若将 x x x 替换为矩阵 A \pmb{A} A ,常数 1 1 1 用单位矩阵 I \pmb{I} I 代替,则:

e A = I + A + A 2 2 ! + A 3 3 ! + ⋯ e^{\pmb{A}}=\pmb{I}+\pmb{A}+\frac{\pmb{A}^2}{2!}+\frac{\pmb{A}^3}{3!}+\cdots eA=I+A+2!A2+3!A3+
上述指数矩阵也收敛。

性质:

  • A B = B A \pmb{AB}=\pmb{BA} AB=BA ,则 e A e B = e B e A = e A + B e^{\pmb{A}}e^{\pmb{B}}=e^{\pmb{B}}e^{\pmb{A}}=e^{\pmb{A}+\pmb{B}} eAeB=eBeA=eA+B

    根据假设:

    e A + B = ∑ k = 0 ∞ ( A + B ) k k ! = ∑ k = 0 ∞ ∑ j = 0 k ( k j ) A j B k − j k ! = ∑ k = 0 ∞ ∑ j = 0 k k ! ( k − j ) ! j ! 1 k ! A j B k − j = ( ∑ j = 0 ∞ A j j ! ) ( ∑ l = 0 ∞ B l l ! ) = e A e B = e B e A \begin{split}e^{\pmb{A}+\pmb{B}} &= \sum_{k=0}^{\infty}\frac{(\pmb{A}+\pmb{B})^k}{k!}\\&= \sum_{k=0}^{\infty}\frac{\sum_{j=0}^k\binom{k}{j}\pmb{A}^j\pmb{B}^{k-j}}{k!}\\&=\sum_{k=0}^{\infty}\sum_{j=0}^k\frac{k!}{(k-j)!j!}\frac{1}{k!}\pmb{A}^j\pmb{B}^{k-j}\\&=\left(\sum_{j=0}^{\infty}\frac{\pmb{A}^j}{j!}\right)\left(\sum_{l=0}^{\infty}\frac{\pmb{B}^l}{l!}\right)\\&=e^{\pmb{A}}e^{\pmb{B}}=e^{\pmb{B}}e^{\pmb{A}}\end{split} eA+B=k=0k!(A+B)k=k=0k!j=0k(jk)AjBkj=k=0j=0k(kj)!j!k!k!1AjBkj=(j=0j!Aj)(l=0l!Bl)=eAeB=eBeA

  • e A T = ( e A ) T e^{\pmb{A}^T} = (e^{\pmb{A}})^T eAT=(eA)T

    e A T = ∑ k = 0 ∞ ( A T ) k k ! = ( ∑ k = 0 ∞ A k k ! ) T = ( e A ) T e^{\pmb{A}^T}=\sum_{k=0}^{\infty}\frac{(\pmb{A}^T)^k}{k!}=\left(\sum_{k=0}^{\infty}\frac{\pmb{A}^k}{k!}\right)^T=(e^{\pmb{A}})^T eAT=k=0k!(AT)k=(k=0k!Ak)T=(eA)T

特征值

A x = λ x \pmb{Ax}=\lambda\pmb{x} Ax=λx ,则 A k x = λ k x \pmb{A}^k\pmb{x}=\lambda^k\pmb{x} Akx=λkx ,有: e A x = ( 1 + λ + λ 2 2 ! + λ 3 3 ! + ⋯   ) x = e λ x e^{\pmb{A}}\pmb{x}=\left(1+\lambda+\frac{\lambda^2}{2!}+\frac{\lambda^3}{3!}+\cdots\right)\pmb{x}=e^{\lambda}\pmb{x} eAx=(1+λ+2!λ2+3!λ3+)x=eλx

n n n 阶矩阵 A \pmb{A} A 的特征值为 λ i \lambda_i λi ,对应的特征向量 x i \pmb{x}_i xi ,故 e A e^{\pmb{A}} eA 特征值为 e λ i e^{\lambda_i} eλi ,对应特征向量仍然是 x i \pmb{x}_i xi

又因为:

行列式: det ⁡ ( A ) = λ 1 λ 2 ⋯ λ n \det(\pmb{A})=\lambda_1\lambda_2\cdots\lambda_n det(A)=λ1λ2λn

迹: t r ( A ) = λ 1 + λ 2 + ⋯ + λ n tr(\pmb{A})=\lambda_1+\lambda_2+\cdots+\lambda_n tr(A)=λ1+λ2++λn

所以: det ⁡ ( e A ) = e λ 1 e λ 2 ⋯ e λ n = e λ 1 + λ 2 + ⋯ + λ n = e t r ( A ) \det(e^{\pmb{A}})=e^{\lambda_1}e^{\lambda_2}\cdots e^{\lambda_n}=e^{\lambda_1+\lambda_2+\cdots+\lambda_n}=e^{tr(\pmb{A})} det(eA)=eλ1eλ2eλn=eλ1+λ2++λn=etr(A)

因为 e x ≠ 0 e^x\ne0 ex=0 ,所以矩阵指数必定可逆。

对角化

A \pmb{A} A 可对角化, A = S D S − 1 \pmb{A} = \pmb{SDS}^{-1} A=SDS1 ,则:

e A = e S D S − 1 = I + S D S − 1 + S D 2 S − 1 2 ! + S D 3 S − 1 3 ! + ⋯ = S ( I + D + D 2 2 ! + D 3 3 ! + ⋯   ) S − 1 = S e D S − 1 \begin{split}e^{\pmb{A}} &= e^{\pmb{SDS}^{-1}}\\&=\pmb{I}+\pmb{SDS}^{-1}+\frac{\pmb{SD^2S}^{-1}}{2!}+\frac{\pmb{SD^3S}^{-1}}{3!}+\cdots\\&=\pmb{S}\left(\pmb{I}+\pmb{D}+\frac{\pmb{D}^2}{2!}+\frac{\pmb{D}^3}{3!}+\cdots\right)\pmb{S}^{-1}\\&=\pmb{S}e^{\pmb{D}}\pmb{S}^{-1}\end{split} eA=eSDS1=I+SDS1+2!SD2S1+3!SD3S1+=S(I+D+2!D2+3!D3+)S1=SeDS1
其中, e D e^{\pmb{D}} eD 也是对角矩阵:

e D = [ e λ 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ e λ n ] e^{\pmb{D}}=\begin{bmatrix}e^{\lambda_1}&\cdots&0\\\vdots&\ddots&\vdots\\0&\cdots&e^{\lambda_n}\end{bmatrix} eD= eλ100eλn

应用举例

对于: e A t = I + t A + t 2 A 2 2 ! + ⋯ e^{\pmb{A}t}=\pmb{I}+t\pmb{A}+\frac{t^2\pmb{A}^2}{2!}+\cdots eAt=I+tA+2!t2A2+

求导数:

d d t e A t = A + t A 2 + t 2 2 ! A 3 ⋯ = A ( I + t A + t 2 A 2 2 ! + ⋯   ) = A e A t \begin{split}\frac{d}{dt}e^{\pmb{A}t}&=\pmb{A}+t\pmb{A}^2+\frac{t^2}{2!}\pmb{A}^3\cdots\\&=\pmb{A}\left(\pmb{I}+t\pmb{A}+\frac{t^2\pmb{A}^2}{2!}+\cdots\right)\\&=\pmb{A}e^{\pmb{A}t}\end{split} dtdeAt=A+tA2+2!t2A3=A(I+tA+2!t2A2+)=AeAt
上述结果用于求解微分方程: d u d t = A u \frac{d\pmb{u}}{dt}=\pmb{Au} dtdu=Au ,令 u ( 0 ) = c \pmb{u}(0)=\pmb{c} u(0)=c ,一般解是: u ( t ) = e A t c \pmb{u}(t)=e^{\pmb{A}t}\pmb{c} u(t)=eAtc

参考资料

[1]. 矩阵运算的基本技巧[DB/OL]. https://ccjou.wordpress.com/2010/10/04/矩陣運算的基本技巧/, 2022.3.29.

[2]. 线代启示录:矩阵指数[DB/OL]. https://ccjou.wordpress.com/2009/08/20/%e7%9f%a9%e9%99%a3%e6%8c%87%e6%95%b8/, 2022.3.29


http://www.kler.cn/a/572042.html

相关文章:

  • 如果STM32板子上晶振不是8MHz而是其他(如12MHz)怎么办?
  • 【音视频】视频基本概念
  • idea实现热部署
  • 计算机网络基础:文件共享服务器(注册表更改)
  • 【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解
  • GAN、Diffusion与美颜SDK:AI如何驱动人脸美型API进化?
  • 【菜笔cf刷题日常-1600】C. Binary String(二分求min/max)
  • 力扣977.有序数组的平方(双指针)
  • 软考中级-数据库-3.2 数据结构-数组和矩阵
  • 安当全栈式PostgreSQL数据库安全解决方案:透明加密、动态凭据与勒索防护一体化实践
  • 制造业中的“大数据”:如何实现精准决策?
  • 重生之我在异世界学编程之C语言:深入预处理篇(上)
  • 千峰React:案例二
  • 【每日学点HarmonyOS Next知识】getContext问题、清除Web缓存、弹层的点击事件透传、去除间隙、侧滑菜单设置
  • 【C++】为什么C++的构造函数不能为虚函数,折钩函数可以为虚函数
  • ChatVLA:基于视觉-语言-动作模型的统一多模态理解与机器人控制
  • python和pycharm安装教程
  • 云服数据存储接口:CloudSever
  • JavaEE_多线程(一)
  • C++中的无锁编程