(转载)数学-矩阵计算 矩阵函数微积分前奏

本文来自 仙守 的CSDN 博客
https://blog.csdn.net/shouhuxianjian/article/details/46624207?utm_source=copy


Notes on Matrix Calculus

矩阵微积分会涉及到对矩阵函数操作的规则。例如,假设将一个m×n 的矩阵 X 映射到一个p×q 的矩阵 Y 中。而我们期望获得的导数表达式如下:



对于所有的 i,j 和k,l 来说,这里主要的困难在于如何将对矩阵内的元素对应的求导,我们在矩阵计算(1)中最后有关矩阵对矩阵的求导,可是如果矩阵过大,那就非人力可以为之了,所以,为了更好的计算,就需要将矩阵的求导上升到一个较高的抽象的层面。

在矩阵微积分中,最常用的就是vec操作和Kronecker乘积:vec操作就是会将一个矩阵按照它的列进行向量化(因为习惯上使用列为主,而不是行为主)。例如:向量化下面的矩阵:


得到的vec操作结果为:

而两个矩阵的Kronecker乘积为:矩阵A,B,这里A是m×n大小的,而B是p×q大小的,那么定义的乘积为:

也就是得到的结果为mp×nq大小的矩阵。而在vec操作和Kronecker乘积之间有个很重要的关系就是:

在求导矩阵微积分结果中,该式子发挥着举足轻重的作用。(个人:按照矩阵乘法规则,这里的X应该是个n×p 的矩阵)
另一个需要用到的矩阵操作和vec操作的联系很紧密,定义

为将

转换成

的矩阵:

这里
矩阵的大小为mn×mn。
具有一些特别的属性,首先是它的定义:如果
应用在了一个m×n矩阵的vec操作的结果上,然后在上面再加一个
应用,那么原始向量化的矩阵的结果为:

所以:

也就是说:

这是很直观的结果,不过也可以理解成:

也就是说其实这里
是一个正交矩阵。矩阵操作

其实是一个置换矩阵(permutation matrix),即它是由0 和1 组成的,在每一行每一列只有一个1。当左乘另一个矩阵的时候,它会将那个矩阵的行进行重排序(或者
和其右乘来重排矩阵的)。该转置矩阵同样与Kronecker乘积相关联,假设矩阵A,B 如上面一样的定义:

这可以通过引入一个任意n×q矩阵C来验证:
这里暗示着
。因为C是一个任意矩阵,所以必须要适应任意的情况。
通过上面的结论,立即得到下面的结果:

这里有个技巧,可以发现:
。所以如果A 是一个1×n 的矩阵,那么

。当涉及到标量的导数的时候,该结果可以进一步简化。
现在说回正题,定义一个函数导数的映射
作为一个m×n 矩阵的偏导:

例如,最简单的导数为:

使用这个定义,当遵守矩阵的一致性原则的时候,通常针对导数的规则也是适用的。得到下面这个加法规则:

这里


都是标量。当满足一致性原则的时候,链式规则也适用于矩阵乘法。给定两个函数:



,该复合函数的导数为:

这里满足矩阵乘法一致性,因而表达式

表示为一个n×p的矩阵右乘一个m×n的矩阵(原句:postmultipy an n × p matrix by an m×n matrix)。为了定义一个乘积规则,考虑表达式

,这里

。导数通过下面的式子得到的结果为一个1×n的向量:

注意除了

乘以



乘以

之外,没有其他方式可以确保一致性(个人:不懂这句的话,那就忽略它)。一个更通用的乘积规则定义如下。
该乘积规则对于二次函数来说会很有用的:

当A是对称矩阵的时候,可以得到结果为:

。上面这些规则是定义向量的导数的,定义矩阵关于矩阵的导数是通过将矩阵向量化来完成的。所以

也就等于

。所以这里就需要用到vec操作和Kronecker乘积了。考虑

关于A(而不是上面关于x 的)的微分:


接下来可以定义一个更通用的乘法规则。假设



,那么

。使用vec操作和Kronecker乘积的关系得到下面的式子:

从而写成更通用的形式:

当A为m×n 的矩阵的时候,

的导数为:

所以,结果为:

接着,可以进一步简化,注意到:

结果为;

该乘法规则同样可以用于矩阵逆的求导:

因为

的结果等于

,所以它的导数等于0,因此:

对于一个行列式的导数来说,也能找到个合适的表达式。假设A 是一个nn 的矩阵,其中

。该行列式可以写成A矩阵的伴随矩阵,

,的第 i 行乘以A 的第i 列的形式:

因为

的第 i 行的元素不会受到A的第i 列的影响,所以可以得到:

为了得到关于A的所有元素的导数,可以将关于A的每一列的偏导数连接起来:

下面得到的就是一个直接结果(个人:这里用到了高数的求导法则,有兴趣可以回去看看对lnx 的求导):

矩阵分化的结果可以使我们能够计算某一类平衡问题的解的导数。例如,假设x 为一个线性互补问题(a linear complementarity problem,LCP(M,q))的解:

x 的第 i 个元素既可以等于0,又可以等于

的第 i 个元素。定义一个对角矩阵D ,使得:

接着,该解可以写成

,这里

。从而:

而且:

在矩阵求导中,Kronecker乘积使用是十分广泛的,所以如何计算Kronecker乘积自身的导数也是个不容跨过的问题,即:



。因为Kronecker乘积的每个元素都涉及到A矩阵中的一个元素乘以B矩阵中另一个元素,所以

的导数必须是由0和以某种方式重排序的B 的元素组成的。相似的,导数

也是由0和以某种方式重排序的A 的元素组成的。

可以写成如下形式:

这里:

写成更紧凑的形式为:

相似的,

可以写成如下形式:

这里:

写成更紧凑的形式为:

注意到,如果A是一个行向量(m=1)或者说B 是一个列向量(q=1),那么

,所以可以忽略掉。 为了说明这些关系的用处,考虑

关于x (一个n 维向量)的二阶导数:

所以:

另一个例子是:

通常来说,特别是在统计应用中,遇到的矩阵都是对称的。所以,当想要求关于一个对称矩阵的第 (i,j )个元素的导数,而刚好第(j,i)个导数是常量的时候是没有意义的。通常来说,我们更喜欢先将对称矩阵的对角线上部或者下部删除(个人:因为对称的话一半是重复的),然后对其进行向量化,最后再对其进行处理。vech操作通常是删除上部,然后逐列进行向量化的:

或者可以表示成通过对

元素的选择的形式,所以可以写成:

这里

是一个

矩阵,其中都是0和1,在每一行中只有一个1。vech操作同样可以用在下三角矩阵;不需要去求关于下三角矩阵的上部的导数(因为可以通过一个上三角矩阵的转置来完成)(个人:这句话有点不理解,略过不影响全文理解)。vech操作在对称和三角矩阵的计算机存储方面也是很重要的。为了说明在矩阵微积分应用中的vech操作,考虑一个n
n的对称矩阵C ,然后定义成下三角形式,L:

使用之前类似的方法,可以得到:

使用链式规则:

反转这个表达式就能得到

。和矩阵求导相关的问题就是矩阵映射到矩阵的函数的泰勒展开的问题。一种考虑矩阵求导的方式是使用多维数组的形式。一个nmpq矩阵可以同样被认为是一个mnpq 的4维数组。在MATLAB中的“reshape”函数就是执行这样的转换的。其中各个元素的顺序并没有变,只是元素的索引方式变了。
关于函数



上的第d 阶的泰勒展开式可以以下面的形式计算得到:

到目前为止介绍的技术可以用来计算普通的”特殊“函数的导数。首先,考虑一个方阵A 的非负整数幂

。使用链式规则来进行递归求导:

这里同样可以表示成 i 项的和:

该结果可以用来计算矩阵指数函数的导数,将其表示成泰勒展开式的形式:

所以:

同样,可以用来计算矩阵的自然对数:

几个操作的总结:

假设A 是mn的矩阵,B是pq 的矩阵,X 以适当形式定义(原文:X is defined comformably。个人:就是主要关注的是A B ,X只是形式,怎么符合常规的矩阵计算,就怎么定义)


微分结果的总结:

假设A 是mn的矩阵,B是pq 的矩阵,x 是n*1 的向量,X 合适的定义:



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容