矩阵求导演示: 对log(log(det(X)))求导
对于目标函数:
f=log(log(∣X∣))f = \log (\log (\left| {\bf{X}}\right|))f=log(log(∣X∣))
目标求取其关于变量X\mathbf{X}X的梯度:
∇f=∂log(log(∣X∣))∂X(1)\nabla f= \frac{{\partial \log (\log (\left| {\bf{X}} \right|))}}{{\partial {\bf{X}}}} \tag{1}∇f=∂X∂log(log(∣X∣))(1)
其中X\mathbf{X}X是矩阵。
由微分的定义,我们有:
df=tr((∇f)TdX)(2)\mathrm{d}f = \mathrm{tr}((\nabla f)^T \mathrm{d}\mathbf{X}) \tag{2}df=tr((∇f)TdX)(2)
注意, 这里的fff可以换做任何X\mathbf{X}X的函数, (2)仍成立。 本文仍以log(log(∣X∣))\log (\log (\left| {\bf{X}}\right|))log(log(∣X∣))为例求解。
(2)式启示我们:将df\mathrm{d}fdf 化成 df=tr(GdX)\mathrm{d}f=\mathrm{tr}(\mathbf{G}\mathrm{d}\mathbf{X})df=tr(GdX)的形式, 就可以得到∇f=GT\nabla f = \mathbf{G}^T∇f=GT.
对于f=log(log(∣X∣))f = \log (\log (\left| {\bf{X}}\right|))f=log(log(∣X∣)),有:
dlog(log(∣X∣))=(a)(log(∣X∣))−1d(log(∣X∣))=(b)(log(∣X∣))−1∣X∣−1d(∣X∣)=(c)(log(∣X∣))−1∣X∣−1∣X∣tr(X−1dX)=(log(∣X∣))−1tr(X−1dX)=(e)tr((log(∣X∣))−1X−1dX)(3)\begin{array}{l} {\rm{d}}\log (\log (\left| {\bf{X}} \right|))\\ \mathop {\rm{ = }}\limits^{(a)} {{\rm{(}}\log (\left| {\bf{X}} \right|))^{ - 1}}{\rm{d(}}\log (\left| {\bf{X}} \right|))\\ \mathop {\rm{ = }}\limits^{(b)} {{\rm{(}}\log (\left| {\bf{X}} \right|))^{ - 1}}{\left| {\bf{X}} \right|^{ - 1}}{\rm{d(}}\left| {\bf{X}} \right|)\\ \mathop {\rm{ = }}\limits^{(c)} {{\rm{(}}\log (\left| {\bf{X}} \right|))^{ - 1}}{\left| {\bf{X}} \right|^{ - 1}}\left| {\bf{X}} \right|{\rm{tr(}}{{\bf{X}}^{ - 1}}{\rm{d}}{\bf{X}}{\rm{)}}\\ {\rm{ = (}}\log (\left| {\bf{X}} \right|){)^{ - 1}}{\rm{tr(}}{{\bf{X}}^{ - 1}}{\rm{d}}{\bf{X}}{\rm{)}}\\ \mathop {\rm{ = }}\limits^{(e)} {\rm{tr((}}\log (\left| {\bf{X}} \right|){)^{ - 1}}{{\bf{X}}^{ - 1}}{\rm{d}}{\bf{X}}{\rm{)}} \tag{3} \end{array} dlog(log(∣X∣))=(a)(log(∣X∣))−1d(log(∣X∣))=(b)(log(∣X∣))−1∣X∣−1d(∣X∣)=(c)(log(∣X∣))−1∣X∣−1∣X∣tr(X−1dX)=(log(∣X∣))−1tr(X−1dX)=(e)tr((log(∣X∣))−1X−1dX)(3)
- (a), (b): d(log(X))=X−1dX\mathrm{d}(\mathrm{log}(\mathbf{X}))=\mathbf{X}^{-1}\mathrm{d}\mathbf{X}d(log(X))=X−1dX。 如(a)中, 令 t=log(∣X∣)t = \log (\left| {\bf{X}} \right|)t=log(∣X∣) 即可。
- c:d(∣X∣)=∣X∣tr(X−1dX)\mathrm{d}(\left| {\bf{X}} \right|) = \left| {\bf{X}} \right|{\rm{tr(}}{{\bf{X}}^{ - 1}}{\rm{d}}{\bf{X}}{\rm{)}}d(∣X∣)=∣X∣tr(X−1dX)
- e: 注意(log(∣X∣))−1{{\rm{(}}\log (\left| {\bf{X}} \right|))^{ - 1}}(log(∣X∣))−1是个标量, 而对于标量a有atr(X)=tr(aX)a\mathrm{tr}(\mathbf{X}) = \mathrm{tr}(a\mathbf{X})atr(X)=tr(aX), 因此可以放入括号。
将(3)式最后结果:
dlog(log(∣X∣))=tr((log(∣X∣))−1X−1dX){\rm{d}}\log (\log (\left| {\bf{X}} \right|)) = {\rm{tr((}}\log (\left| {\bf{X}} \right|){)^{ - 1}}{{\bf{X}}^{ - 1}}{\rm{d}}{\bf{X}}{\rm{)}}dlog(log(∣X∣))=tr((log(∣X∣))−1X−1dX)
与 (2)比较,有:
∇f=(log(∣X∣))−1X−1)T\nabla f =(\log (\left| {\bf{X}} \right|){)^{ - 1}}{{\bf{X}}^{ - 1}})^T ∇f=(log(∣X∣))−1X−1)T
求解完毕。
矩阵求导演示: 对log(log(det(X)))求导相关推荐
- 线性代数之 矩阵求导(3)标量、向量求导的快速记忆
线性代数之 矩阵求导(3)标量.向量求导的快速记忆 前言 基本约定 引例 标量对标量求导 标量对向量求导 向量对向量求导 包含两个变量的求导 总结 扩展 前言 上一次记录了矩阵求导的基本法则和公式,并 ...
- python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵
考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...
- Eigen入门系列 —— Eigen::Matrix矩阵点乘、叉乘、转置、求逆、求和、行列式、迹、数乘
Eigen入门系列 -- Eigen::Matrix矩阵点乘.叉乘.转置.求逆.求和.行列式.迹.数乘 前言 程序说明 输出结果 代码示例 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D ...
- 算术表达式求值演示(C/C++实现)
算术表达式求值演示 问题描述:表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的典型例子.设计一个程序,演示用算符优先法对算术表达式求值的过程. 基本要求:以字符序列的形式从键盘输入语法正确的 ...
- 关于命令: nohup java -jar xxx.jar log.log 21 的解释。
举例: nohup java -jar xxx.jar >log.log 2>&1 &: 解释: 1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机 ...
- 类似echarts图的思维导图效果,用js实现xmind思维导图的效果===使用jsMind来实现
首先:我先先来看看实现的效果: 然后我再说说具体实现的步骤吧:(别急文件后面我会把百度网盘链接发出来的,除了小案例外还有jsMind的文件,案例,目前的说明文档) 第一:引入jsMind的css.js ...
- python求列表的平均值的用法_python如何求列表平均值?_后端开发
php中post和get的区别是什么?_后端开发 php中post和get的区别是:1.post更安全并且发送的数据量更大:3.post能发送更多的数据类型,get只能发送ASCII字符:4.post ...
- matlab怎么求负次幂多项式,用matlab怎么求多项式的公因式
第一类换元法,也称为凑微分法,顾名思义,就是把f[g(x)]g'(x)dx转化为f[g(x)d(g(x))的形式,所以用好这一方法的关键就是把给定的积分里的被积分式写成f[g(x)]g'(x)dx.要 ...
- c语言辗转相除法求最大公约数_趣味探究:妙法求“最大公因数”,比书上难一点,你敢挑战吗?(适合56年级)...
[题记] 宝石虽落在泥土里,仍是宝石,砂粒虽被吹到天空中,还是砂粒.--莎士比亚不是有水的地方就有青蛙,但是青蛙叫的地方必定有水.--歌德 [配合教材]本探究配合"因数与倍数".通 ...
最新文章
- DGA域名——可以每天只生成一个域名,因此最多存在365个 DGA域名;
- URAL 1993 This cheeseburger you don't need
- 微信阅读原文直接打开浏览器_微信打开网址添加在浏览器中打开提示
- 浅谈SQL Server 对于内存的管理
- zigbee 频谱波段
- 【东软实训】SQL多表链接
- JDK 8中几乎命名的方法参数
- python引用函数_python 调用函数
- 浅谈内存开辟问题和Block内存问题
- db2存储过程手动执行没有问题_轻松解决DB2创建存储过程时遇到的错误
- gimp 抠图_gimp软件如何实现抠图?
- JL杰理 蓝牙音箱 蓝牙耳机 方案 找个有经验的兄弟
- 问卷星投票如何刷投票?【请勿非法使用】
- php htmlpurifier,php – HtmlPurifier – 允许数据属性
- 迪斯尼乐拍通照片抓取
- ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing 原文翻译
- 什么是 ETL ?什么是 ELT ?
- 【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)
- buuctf - crypto - Rabbit
- android 新驱动安装教程视频教程,一教即会新人必备 adb驱动安装教程