恒等式det(exp(A)) = exp(Tr(A)) 赏析- 科学空间

文章推薦指數: 80 %
投票人數:10人

本文的主题是一个有趣的矩阵行列式的恒等式\begin{equation}\det(\exp(\boldsymbol{A})) = \exp(\text{Tr}(\boldsymbol{A}))\... SEARCH MENU 打赏公式天象链接时光博览归档 CATEGORIES 千奇百怪天文探索数学研究物理化学信息时代生物自然图片摄影问题百科生活/情感资源共享 NEWPOSTS 生成扩散模型漫谈(九):条件控制生成结果 生成扩散模型漫谈(八):最优扩散方... 生成扩散模型漫谈(七):最优扩散方... 生成扩散模型漫谈(六):一般框架之... 生成扩散模型漫谈(五):一般框架之... 生成扩散模型漫谈(四):DDIM... 生成扩散模型漫谈(三):DDPM... 不成功的尝试:将多标签交叉熵推广到... 生成扩散模型漫谈(二):DDPM... “维度灾难”之Hubness现象浅析 COMMENTS 毛蛋:我们知道xt−1→xt代表着拆楼的一步,那么反过来xt→xt−... 苏剑林:simcse何德何能可以干掉交互式? 苏剑林:$p(\boldsymbol{x}_{t-1}|\boldsy... 苏剑林:那你是潜意识觉得经过磨皮和光滑后的人脸效果好。

事实上DDPM的... 苏剑林:是动“手”推导的,不是动“眼”推导的,所以看了半天都不懂很合理... 苏剑林:你喜欢,可以用GAU做decoder,Github上最新版本的... 苏剑林:“需要重新训练扩散模型”是指不能直接用已经训练好的无条件扩散模型。

苏剑林:对什么对,哪有什么typo。

将$\boldsymbol{x}_... 苏剑林:确实跟信息熵有关,参考我之前的推导结果:https://kex... Cantabile:比如说前两项,$(\alpha_t\cdots\alpha_1... USERLOGIN 登录 科学空间|ScientificSpaces 登录 打赏公式天象链接时光博览归档 渴望成为一个小飞侠 欢迎订阅 个性邮箱 天象信息 观测ISS LaTeX 关于博主 欢迎访问“科学空间”,这里将与您共同探讨自然科学,回味人生百态;也期待大家的分享~ 千奇百怪Everything天文探索Astronomy数学研究Mathematics物理化学Phy-chem信息时代Big-Data生物自然Biology图片摄影Photograph问题百科Questions生活/情感Life-Feeling资源共享Resources 千奇百怪天文探索数学研究物理化学信息时代生物自然图片摄影问题百科生活/情感资源共享 首页 数学研究恒等式det(exp(A))=exp(Tr(A))赏析 18 Feb 恒等式det(exp(A))=exp(Tr(A))赏析 By 苏剑林| 2019-02-18| 37206位读者 | : 本文的主题是一个有趣的矩阵行列式的恒等式 \begin{equation}\det(\exp(\boldsymbol{A}))=\exp(\text{Tr}(\boldsymbol{A}))\label{eq:main}\end{equation} 这个恒等式在挺多数学和物理的计算中都出现过,笔者都在不同的文献中看到过好几次了。

注意左端是矩阵的指数,然后求行列式,这两步都是计算量非常大的运算;右端仅仅是矩阵的迹(一个标量),然后再做标量的指数。

两边的计算量差了不知道多少倍,然而它们居然是相等的!这不得不说是一个神奇的事实。

所以,本文就来好好欣赏一个这个恒等式。

矩阵指数#当然,要欣赏这个恒等式,需要做些准备功夫。

首先是$\exp(\boldsymbol{A})$要怎么理解?一般来说,它是按照普通的$e^x$的泰勒级数展开式来定义的: \begin{equation}\exp(\boldsymbol{A})=\sum_{n=0}^{\infty}\frac{\boldsymbol{A}^n}{n!}\end{equation} 这里的$\boldsymbol{A}$是一个$k\timesk$矩阵。

可以证明,这个定义对于任意矩阵都是收敛的,因此是个好的定义。

有了这个定义,我们可以直接写出常系数微分方程组的解: \begin{equation}\frac{d}{dt}\boldsymbol{x}=\boldsymbol{A}\boldsymbol{x}\quad\Rightarrow\quad\boldsymbol{x}=\exp(t\boldsymbol{A})\boldsymbol{x}_0\end{equation} 当然,这个结果充其量也只有理论上的价值,因为实际计算的时候,你还是得苦逼地把$\boldsymbol{A}^2,\boldsymbol{A}^3,\dots$一个个算出来。

有没有什么简单一点的计算方案呢?有,假如$\boldsymbol{A}$能对角化的时候就简单一些,因为可对角化意味着 \begin{equation}\boldsymbol{A}=\boldsymbol{P}\boldsymbol{\Lambda}\boldsymbol{P}^{-1}\end{equation} 其实$\boldsymbol{P}$自然就是可逆矩阵,而$\boldsymbol{\Lambda}=\text{diag}(\lambda_1,\dots,\lambda_k)$是对角矩阵。

这种情况之所以简单,是因为 \begin{equation}\boldsymbol{A}^n=\boldsymbol{P}\boldsymbol{\Lambda}^n\boldsymbol{P}^{-1}\end{equation} 而因为$\boldsymbol{\Lambda}$是对角阵,所以$\boldsymbol{\Lambda}^n$只需要把对角线上的各个数都取$n$次方就行了。

所以 \begin{equation}\begin{aligned}\exp(\boldsymbol{A})=&\exp(\boldsymbol{P}\boldsymbol{\Lambda}\boldsymbol{P}^{-1})\\ =&\boldsymbol{P}\left(\sum_{n=0}^{\infty}\frac{\boldsymbol{\Lambda}^n}{n!}\right)\boldsymbol{P}^{-1}\\ =&\boldsymbol{P}\exp(\boldsymbol{\Lambda})\boldsymbol{P}^{-1} \end{aligned}\end{equation} 这里$\exp(\boldsymbol{\Lambda})=\text{diag}\left(e^{\lambda_1},\dots,e^{\lambda_k}\right)$。

不过要注意,虽然矩阵指数的定义照搬了实数的指数级数,但是对于任意两个矩阵$\boldsymbol{A},\boldsymbol{B}$,一般情况下 \begin{equation}\exp(\boldsymbol{A}+\boldsymbol{B})\neq\exp(\boldsymbol{A})\exp(\boldsymbol{B})\end{equation} 两者相等的充分条件是$\boldsymbol{A}\boldsymbol{B}=\boldsymbol{B}\boldsymbol{A}$,即乘法可交换。

也就是说,多个矩阵的混合运算规律,如果要照搬实数的运算公式,很多时候都需要加上可交换这个条件才能成立。

由于$\boldsymbol{A}$和$-\boldsymbol{A}$显然是可交换的,因此 \begin{equation}\boldsymbol{I}=\exp(\boldsymbol{A}-\boldsymbol{A})=\exp(\boldsymbol{A})\exp(-\boldsymbol{A})\end{equation} 也就是说$\exp(\boldsymbol{A})$总是可逆的,其逆矩阵是$\exp(-\boldsymbol{A})$。

矩阵函数#其实,通过级数的方式,可以将很多实数级数都搬到矩阵来,从而成为矩阵函数,比如 \begin{equation}\begin{aligned}\sin(\boldsymbol{A})=&\boldsymbol{A}-\frac{\boldsymbol{A}^3}{3!}+\frac{\boldsymbol{A}^5}{5!}-\frac{\boldsymbol{A}^7}{7!}+\dots\\ \cos(\boldsymbol{A})=&\boldsymbol{I}-\frac{\boldsymbol{A}^2}{2!}+\frac{\boldsymbol{A}^4}{4!}-\frac{\boldsymbol{A}^6}{6!}+\dots \end{aligned}\end{equation} 同样地,如果$\boldsymbol{A}\boldsymbol{B}=\boldsymbol{B}\boldsymbol{A}$,那么 \begin{equation}\sin(\boldsymbol{A}+\boldsymbol{B})=\sin(\boldsymbol{A})\cos(\boldsymbol{B})+\sin(\boldsymbol{B})\cos(\boldsymbol{A})\end{equation}前面讨论了指数函数,有指数自然就有对数。

矩阵对数的定义一般有两种。

第一种定义是:如果矩阵$\boldsymbol{B}$满足$\exp(\boldsymbol{B})=\boldsymbol{A}$,那么$\boldsymbol{B}$称为矩阵$\boldsymbol{A}$的对数。

但是,按照这种定义,矩阵的对数是不唯一的,哪怕仅仅是限制在实数矩阵范围内也是一样,比如对于$\boldsymbol{A}=\begin{pmatrix}\cos\alpha&-\sin\alpha\\\sin\alpha&\cos\alpha\end{pmatrix}$,任意一个$(\alpha+2\pin)\begin{pmatrix}0&-1\\1&0\end{pmatrix}$都是它的对数,其中$n$是任意整数。

另一种定义是照搬实级数的对数展开式: \begin{equation}\ln(\boldsymbol{I}+\boldsymbol{A})=\sum_{n=1}^{\infty}(-1)^{n-1}\frac{\boldsymbol{A}^n}{n}\end{equation} 这个定义简单,而且结果唯一,但是收敛条件仅为$\Vert\boldsymbol{A}\Vert_2<1$,其中$\Vert\cdot\Vert_2$为矩阵的2范数(参考《深度学习中的Lipschitz约束:泛化与生成模型》的“矩阵范数”一节)。

当约束条件满足时,这样定义出来的对数满足 \begin{equation}\exp(\ln(\boldsymbol{I}+\boldsymbol{A}))=\boldsymbol{I}+\boldsymbol{A}\end{equation} 也就是说,定义是自洽的。

前面矩阵指数讨论的对角化技巧,同样适用于任意通过级数来定义的矩阵函数,比如 \begin{equation}\ln\left(\boldsymbol{I}+\boldsymbol{P}\boldsymbol{\Lambda}^n\boldsymbol{P}^{-1}\right)=\boldsymbol{P}\ln(\boldsymbol{I}+\boldsymbol{\Lambda})\boldsymbol{P}^{-1}\end{equation} 这里$\ln(\boldsymbol{I}+\boldsymbol{\Lambda})=\text{diag}\big(\ln(1+\lambda_1),\dots,\ln(1+\lambda_k)\big)$。

det(exp(A))=exp(Tr(A))#铺了那么久垫,终于可以进入主题了。

对于恒等式$\eqref{eq:main}$,如果它是可以对角化的,那么证明不算困难。

因为 \begin{equation}\begin{aligned}\text{左端}=&\det(\exp(\boldsymbol{A}))\\ =&\det\big(\boldsymbol{P}\exp(\boldsymbol{\Lambda})\boldsymbol{P}^{-1}\big)\\ =&\det(\boldsymbol{P})\det(\exp(\boldsymbol{\Lambda}))\underbrace{\det(\boldsymbol{P}^{-1})}_{=1/\det(\boldsymbol{P})}\\ =&\det(\exp(\boldsymbol{\Lambda}))\\ =&e^{\lambda_1+\dots+\lambda_k} \end{aligned}\end{equation} 而 \begin{equation}\begin{aligned}\text{右端}=&\exp(\text{Tr}(\boldsymbol{A}))\\ =&\exp(\text{Tr}(\boldsymbol{P}\boldsymbol{\Lambda}\boldsymbol{P}^{-1}))\\ =&\exp(\text{Tr}(\boldsymbol{P}^{-1}\boldsymbol{P}\boldsymbol{\Lambda}))\quad[\text{交换顺序是因为对于方阵}\boldsymbol{A},\boldsymbol{B}\text{,有}\text{Tr}(\boldsymbol{A}\boldsymbol{B})=\text{Tr}(\boldsymbol{B}\boldsymbol{A})]\\ =&\exp(\text{Tr}(\boldsymbol{\Lambda}))\\ =&e^{\lambda_1+\dots+\lambda_k} \end{aligned}\end{equation}如果是不可对角化的矩阵呢?如果能证明全体可对角化矩阵在全体矩阵中稠密,那也可以利用极限来补充剩下部分,但这明显比较繁琐。

有没有一气呵成的证明?有!而且非常精妙,它也正是我写这篇文章的主要原因。

这个精妙的证明,是要我们去考虑带参数$t$的 \begin{equation}f(t)=\det(\exp(t\boldsymbol{A}))\label{eq:detexp}\end{equation} 然后我们去求它的导数(这里涉及到行列式的导数,求法请参考《行列式的导数》): \begin{equation}\begin{aligned}\frac{d}{dt}f(t)=&f(t)\text{Tr}\left(\exp(-t\boldsymbol{A})\underbrace{\frac{d}{dt}\exp(t\boldsymbol{A})}_{=\exp(t\boldsymbol{A})\boldsymbol{A}}\right)\\ =&f(t)\text{Tr}(\boldsymbol{A})\end{aligned}\end{equation} 注意$\text{Tr}(\boldsymbol{A})$只是一个数,所以我们得到了关于$f(t)$的一个常微分方程!!它的解是 \begin{equation}f(t)=C\exp(t\,\text{Tr}(\boldsymbol{A}))\end{equation} 从式$\eqref{eq:detexp}$可以看出$f(0)=1$,从而$C=1$,即$f(t)=\exp(t\,\text{Tr}(\boldsymbol{A}))$,于是我们证明了 \begin{equation}\det(\exp(t\boldsymbol{A}))=\exp(t\,\text{Tr}(\boldsymbol{A}))\end{equation} 取$t=1$,得到恒等式$\eqref{eq:main}$。

是不是很妙?对$\eqref{eq:main}$两边取对数,并且记$\exp(\boldsymbol{A})=\boldsymbol{B}$,那么我们可以得到它的另一个常见的形式 \begin{equation}\ln\det(\boldsymbol{B})=\text{Tr}(\ln(\boldsymbol{B}))\end{equation} 这次的赏析就到这里了~谢谢大家阅读。

参考链接: https://math.stackexchange.com/questions/1487773/the-identity-deta-exptrlna-for-a-general 转载到请包括本文地址:https://spaces.ac.cn/archives/6377 更详细的转载事宜请参考:《科学空间FAQ》 如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。

打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。

当然,如果你无视它,也不会影响你的阅读。

再次表示欢迎和感谢! 打赏 微信打赏 支付宝打赏 因为网站后台对打赏并无记录,因此欢迎在打赏时候备注留言。

你还可以点击这里或在下方评论区留言来告知你的建议或需求。

如果您需要引用本文,请参考: 苏剑林.(Feb.18,2019).《恒等式det(exp(A))=exp(Tr(A))赏析》[Blogpost].Retrievedfromhttps://spaces.ac.cn/archives/6377 @online{kexuefm-6377,         title={恒等式det(exp(A))=exp(Tr(A))赏析},         author={苏剑林},         year={2019},         month={Feb},         url={\url{https://spaces.ac.cn/archives/6377}}, } 分类:数学研究  标签:分析,矩阵,行列式 6评论 你也许还对下面的内容感兴趣 SquarePlus:可能是运算最简单的ReLU光滑近似 Dropout视角下的MLM和MAE:一些新的启发 模型优化漫谈:BERT的初始标准差为什么是0.02? CAN:借助先验分布提升分类性能的简单后处理技巧 用狄拉克函数来构造非光滑函数的光滑近似 让人惊叹的Johnson-Lindenstrauss引理:应用篇 让人惊叹的Johnson-Lindenstrauss引理:理论篇 隐藏在动量中的梯度累积:少更新几步,效果反而更好? 线性Transformer应该不是你要等的那个模型 两个多元正态分布的KL散度、巴氏距离和W距离 发表你的看法 采采流水 February19th,2019 Eq.(6)第一行的$\Lambda$应去掉n次方.挺有意思的公式欣赏.另外想起来在梁灿彬的《微分几何与广义相对论》中册的一个关于李群和李代数的附录里也提供了一个类似精简的推导. 回复评论 苏剑林发表于 February19th,2019 感谢细致阅读,已经修正~并且感谢提供参考资料,我去找找看。

回复评论 xml123 February20th,2019 其实利用Jordan标准型,可以很容易证明$\det(f(A))=\prod_if(\sigma_i(A))$,其中$\sigma_i(A)$是A的特征值。

回复评论 苏剑林发表于 February20th,2019 关键是我不懂Jordan标准型~(不及格的线性代数学生) 回复评论 ZXJ December16th,2019 请问矩阵对数函数是否有一种通用的方法求出近似? 回复评论 苏剑林发表于 December17th,2019 我没了解到。

回复评论 取消回复 你的大名 电子邮箱 个人网站(选填) 1.可以在评论中使用LaTeX代码,点击“预览效果”可即时查看效果,点击这里可以查看更多内容;2.可以通过点击评论楼层编号来引用该楼层。

内容速览 矩阵指数 矩阵函数 det(exp(A))=exp(Tr(A)) 智能搜索 支持整句搜索!网站自动使用结巴分词进行分词,并结合ngrams排序算法给出合理的搜索结果。

热门标签 模型 网站 优化 生成模型 语言模型 转载 概率 attention 天象 深度学习 积分 python 力学 微分方程 节日 几何 无监督 分析 数论 文本生成 矩阵 生活 情感 复数 梯度 随机文章 新词发现的信息熵方法与实现思考:两个椭圆片能粘合成一个立体吗?【中文分词系列】3.字标注法与HMM模型怎么会这么巧!背后的隐藏信息中国第一个诺贝尔奖得主初始化方法中非方阵的维度平均策略思考我的写论文软件组合【理解黎曼几何】1.一条几何之路简述无偏估计和有偏估计“让Keras更酷一些!”:精巧的层与花式的回调 最近评论 毛蛋:我们知道xt−1→xt代表着拆楼的一步,那么反过来xt→xt−1不就是建楼的一步?如果我们能学... 苏剑林:simcse何德何能可以干掉交互式? 苏剑林:$p(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)$指的是严格... 苏剑林:那你是潜意识觉得经过磨皮和光滑后的人脸效果好。

事实上DDPM的效果相当于“真实人脸+重度磨皮虚... 苏剑林:是动“手”推导的,不是动“眼”推导的,所以看了半天都不懂很合理。

第一行:$\boldsymbo... 苏剑林:你喜欢,可以用GAU做decoder,Github上最新版本的bert4keras已经内置cr... 苏剑林:“需要重新训练扩散模型”是指不能直接用已经训练好的无条件扩散模型。

苏剑林:对什么对,哪有什么typo。

将$\boldsymbol{x}_{t-1}$拆成$\boldsy... 苏剑林:确实跟信息熵有关,参考我之前的推导结果:https://kexue.fm/archives/7695 Cantabile:比如说前两项,$(\alpha_t\cdots\alpha_1)^2+(\alpha_t\c... 友情链接 宇宙驿站 数学研发 Seatop Xiaoxia 积分表-网络版 丝路博傲 ph4ntasy饭特稀 数学之家 有趣天文奇观 bsky TwistedW godweiyang AI柠檬 王登科-DK博客 瓦特兰蒂斯 maamx ESON 诗三百 枫之羽 Mathor'sblog 孙云增的博客 coding-zuo 博科园 申请链接 本站采用创作共用版权协议,要求署名、非商业用途和保持一致。

转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议。

©2009-2022ScientificSpaces.Allrightsreserved.Themebylaogui.PoweredbyTypecho.备案号:粤ICP备09093259号-1/2。



請為這篇文章評分?