机器学习中矩阵求导规则

求导布局:

分子布局(numerator layout):

m维列向量对标量求导结果为m维列向量,标量对m*n维矩阵求导结果为n*m维,m维列向量对n维列向量求导结果为m*n维(雅克比矩阵)

分母布局(denominator layout):

m维列向量对标量求导结果为m维行向量,标量对m*n维矩阵求导结果为m*n维,m维列向量对n维列向量求导结果为n*m维(梯度矩阵)

一般规则:

向量或矩阵对标量求导一般为分子布局,标量对向量或矩阵求导一般为分母布局,向量对向量求导看具体情况。

定义法求导

标量对向量的求导

sample 1


y=a^Tx
其中x为n维列向量,则y对x的导数为:

\frac {\partial y} {\partial x}=\frac {\partial a^Tx} {\partial x}=\frac {\partial x^Ta} {\partial x}=a

sample 2

y=x^TAx
则导数为:

\frac {\partial x^TAx} {\partial x}=(A+A^T)x
其中,

\frac {\partial x^TAx} {\partial x_k}=\frac {\sum_{i=1}^n \sum_{j=1}^n x_iA_{ij}x_j} {\partial x_k}=\sum_{i=1}^nx_iA_{ik}+\sum_{j=1}^nx_jA_{kj}

标量对矩阵的求导

y=a^TXb
其中,a为m维行向量,X为m*n矩阵,b为n维行向量。
则:

\frac {\partial a^TXb} {\partial X_{ij}}=\frac {\partial \sum_{p=1}^m \sum_{q=1}^n a_pA_{pq}b_q} {\partial X_{ij}}=a_ib_j

\frac {\partial a^TXb} {\partial X}=ab^T

向量对向量的求导

设A为m*n矩阵,x为n维向量,y为m维向量,y对x的求导结果为m*n矩阵
y=Ax\\ \frac {\partial A_ix} {\partial x_j}=\frac {\partial A_{ij}x_j} {\partial x_j}=A_{ij}\\ \frac {\partial Ax} {\partial x}=A

微分法求导

标量对矩阵的微分

df=\sum_{i=1}^m\sum_{j=1}^n\frac {\partial f} {\partial X_{ij}}dX_{ij}=tr((\frac {\partial f} {\partial X})^TdX) \\ tr(A^TB)=\sum_{i,j}A_{ij}B_{ij}
标量对向量的微分也如上式。因为偏导使用分母布局,故需转置后乘以dX。

矩阵微分性质

加减法:d(X\pm Y)=dX\pm dY\\ 乘法:d(XY)=XdY+YdX\\ 转置:d(X^T)=(dX)^T\\ 微分的迹:d(tr(X))=tr(dX)\\ 哈达马乘积的微分:d(X\odot Y)=X\odot dY+dX\odot Y (哈达马乘积:相同维度矩阵对应位置元素相乘)\\ 逐元素求导:d\sigma(X)=\sigma'(X)\odot dX\\ 逆矩阵微分:dX^{-1}=-X^{-1}dXX^{-1}\\ 行列式微分:d|X|=|X|tr(X^{-1}dX)

迹的性质

标量的迹等于自己:tr(x)=x\\ 转置不变:tr(A)=tr(A^T)\\ 交换律(A,B^T同维度):tr(AB)=tr(BA)\\ 加减法:tr(X\pm Y)=tr(X)\pm tr(Y)\\ 矩阵乘法和迹交换(A,B,C同维度):tr((A\odot B)^TC)=tr(A^T(B\odot C))
使用微分法求导上例:
y=a^TXb\\ dy=(da^T)Xb+a^T(dX)b+a^TXdb=a^T(dX)b\\ dy=tr(dy)=tr(a^TdXb)=tr(ba^TdX)\\ 参考标量对矩阵微分式子,得:\\ (\frac {\partial y} {\partial X})^T=(ba^T)\implies \frac {\partial y} {\partial X}=ab^T
例2,y=a^Te^(Xb)\\ dy=tr(dy)=tr(a^Td\exp(Xb)=tr(a^T(\exp(Xb)\odot d(Xb)))\\ =tr((a\odot \exp(Xb))^TdXb)=tr(b(a\odot \exp(Xb))^TdX)\\ \implies \frac {\partial y} {\partial X}=(a\odot \exp(Xb))b^T

迹函数对向量矩阵的求导

由定义方法可知:
\frac {\partial tr(AB)} {\partial A}=B^T\\ \frac {\partial tr(AB)} {\partial B}=A^T\\ 如求\frac {\partial tr(W^TAW)} {\partial W}:\\ d(tr(W^TAW)=tr(dW^TAW+W^TAdW)=tr((dW)^TAW)+tr(W^TAdW)\\ =tr(W^TA^TdW)+tr(W^TAdW)(转置后迹不变)=tr(W^T(A+A^T)dW)\\ \implies \frac {\partial tr(W^TAW)} {\partial W}=(A+A^T)W\\ 同理可求:\\ \frac {\partial tr(B^TX^TCXB)} {\partial X}=(C+C^T)XBB^T

链式求导法则

向量对向量

设依赖关系为x\to y\to z,z对x的导数可以表达为:\\ \frac {\partial z} {\partial x}=\frac {\partial z} {\partial y}\frac {\partial y} {\partial x}\\

标量对多个向量链式求导

直接用链式法则会碰到维度不相容的情况,可以求其转置
假设想,x,y分别为m,n维向量:
\frac {\partial z} {\partial x}=\frac {\partial z} {\partial y}\frac {\partial y} {\partial x} \\ 上式左边为m*1维,右边第一项为n*1维,第二项为n*m维,无法相乘\\ (\frac {\partial z} {\partial x})^T=(\frac {\partial z} {\partial y})^T\frac {\partial y} {\partial x}\\ \implies \frac {\partial z} {\partial x}=(\frac {\partial y} {\partial x})^T\frac {\partial z} {\partial y}\\ 对于多个中间向量y_1\to y_2\to...\to z,有:\\ \frac {\partial z} {\partial y_1}=(\frac {\partial y_n} {\partial y_{n-1}}\frac {\partial y_{n-1}} {\partial y_{n-2}}\dots \frac {\partial y_2} {\partial y_1})^T\frac {\partial z} {\partial y_n}\\ 假设损失函数为:\\ l=(X\theta-y)^T(X\theta-y),z=X\theta-y\\ \frac {\partial l}{\partial \theta}=(\frac {\partial z}{\partial \theta})^T\frac {\partial l}{\partial z}=X^T2z=2X^T(X\theta-y)

标量对多个矩阵链式求导

假设依赖关系X\to Y\to z\\ \frac {\partial z}{\partial X_{ij}}=\sum_{k,l}\frac {\partial z}{\partial Y_{kl}}\frac {\partial Y_{kl}}{\partial X_{ij}}\\ 假设Y=AX+B\\ \frac {\partial Y_{kl}}{\partial X_{ij}}=\frac {\partial\sum_{s}A_{ks}X_{sl}}{\partial X_{ij}}=A_{ki}\delta_{lj}\\ 所以,\\ \frac {\partial z}{\partial X_{ij}}=\sum_{k}\frac {\partial z}{\partial Y_{kj}}A_{ki}\\ \implies\frac {\partial z}{\partial X}=A^T\frac {\partial z}{\partial Y}\\ 如果Y=XA+B,同理\\ \frac {\partial z}{\partial X}=\frac {\partial z}{\partial Y}A^T

矩阵对矩阵求导

一般先对矩阵向量化(列向量),使用向量对向量的求导,即
\frac {\partial F}{\partial X}=\frac {\partial vec(F)}{\partial vec(X)} \\ 求导公式为:vec(dF)=\frac {\partial vec(F)^T}{\partial vec(X)}vec(dX)

矩阵向量化的运算法则

vec(A+B)=vec(A)+vec(B)\\ vec(AXB)=(B^T\otimes A)vec(X) vec(A^T)=K_{mn}vec(A),K_{mn}是mn*mn的交换矩阵,用于列向量和行向量之间的转换。\\ vec(A\odot X)=diag(A)vec(X),其中diag(A)是mn*mn的对角矩阵

克罗内克积的运算法则

如果A是mn矩阵,B是pq矩阵,则克罗内克积为np*nq矩阵\\ A\otimes B=\begin{bmatrix} a_{11}B &\cdots & a_{1n}B\\ \vdots & \ddots &\vdots\\ a_{n1}B & \cdots & a_{nn}B \end{bmatrix}\\ (A\otimes B)^T=A^T\otimes B^T \\ vec(ab^T)=b\otimes a\\ (A\otimes B)(C\otimes D)=AC\otimes BD\\ K_{mn}=K_{nm}^T,K_{mn}K_{nm}=I
例如,
求\frac {\partial AXB}{\partial X}\\ dF=AdXB\\ vec(dF)=vec(AdXB)=(B^T\otimes A)vec(dX)\\ 因此,\frac {\partial AXB}{\partial X}=(B^T\otimes A)^T=B\otimes A^T\\ 同理,可得\\ \frac {\partial AX}{\partial X}=I_n\otimes A^T\\ \frac {\partial XB}{\partial X}=B\otimes I_m\\ \frac {\partial A\exp(BXC)D}{\partial X}=(C\otimes B^T)diag(\exp(BXC))(D\otimes A^T)

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

推荐阅读更多精彩内容