矩阵求导与实例

原创 2015年11月24日 15:52:31

缘由

机器学习的很多算法表示中都采用了矩阵的形式,对算法的描述分析中就涉及到了对向量、对矩阵的求导。
比如SVM、linear regression的推导等。

布局

矩阵求导有两种布局:

  • 分子布局(numerator layout)
  • 分母布局(denominator layout)

下面用向量y对标量x求导简单说明这两种布局的区别。
我们假定所有的向量都是列向量。

y=y1y2ym

在分子布局下:

yx=y1xy2xymx

在分母布局下:

yx=[y1xy2xymx]

在下面的推导中,都将采用分母布局,也就是向量(列)对标量求导的结果都是行向量。(采用这种布局的主要原因是向量对向量的求导就是一个矩阵了)

求导的类别

求导大致分为5类:

  1. 向量对标量
  2. 标量对向量
  3. 向量对向量
  4. 矩阵对向量
  5. 向量对矩阵

矩阵求导的大致规则如下:
对标量求导结果都要转置,而标量对向量或者矩阵求导的话位置不变。
简单来说,上变下不变。

向量对标量求导:

yx=[y1xy2xymx]

标量对向量求导:

yx=yx1yx2yxm

向量对向量求导:

x=x1x2xn

y=y1y2ym

yx=y1x1y1x2y1xny2x1y2x2y2xnymx1ymx2ymxn

矩阵对标量求导:

yx=y11xy12xy1nxy21xy22xy2nxym1xym2xymnx

标量对矩阵求导:
yX=yx11yx21yxp1yx12yx22yxp2yx1qyx2qyxpq

从简单的例子说起

例子1:

y=aTx

其中,yR,aRn×1,xRn×1

属于标量对向量求导,所以有:

yx=a

例子2:

y=Ax

其中,yRm×1,ARm×n,xRn×1

属于向量对向量求导,所以有:

yx=AT

例子3:

y=Au(x)

其中,yRm×1,ARm×n,uRn×1,xRp×1

属于向量对向量的求导,所以有:

yx=uxAT

例子4:

y=a(x)u(x)

其中,yRm×1,aR,uRm×1,xRn×1

属于向量对向量的求导,所以有:

yx=uxa+axuT

假如已知:

a(x)u(x)=Bx=Cx

其中,BR1×n,CRm×n
那么,

yx=CTa+BTuT

例子5:

f=xTAy(x)

那么,
fx=Ay+yxATx

其中,xRm×1,yRn×1,ARm×n,fR

上面的式子,当y(x)=x时,也就是m=n时。

ffx=xTAx=(A+AT)x

例子6:

f=aTxxTb,a,b,xRm×1


fx=a(xTb)+b(aTx)=(abT+baT)x

实例

SVM的对偶形式转换

SVM的原形式(primary form)是:

minw,bs.t.12wTwyn(wTxn+b)1

SVM的对偶形式(dual form)是:

minw,bmaxα0maxα0minw,b12wTw+n=1Nαn[1yn(wTxn+b)]12wTw+n=1Nαn[1yn(wTxn+b)]

上升分别对w,b求导后,得到

wn=1Nαnyn=n=1Nαnynxn=0

代入原式中,有

minα12n=1Ns.t.n=1Nαnynαnm=1NαnαmynymxmTxnn=1Nαn=00

这个对偶问题,可以用相应的quadprog包求解。其中,Nn=1Nm=1αnαmynymxmTxn是矩阵αTQαynymxmTxn是矩阵中m行n列的元素。这个元素再乘以αnαm
同时,这个也是wTw的内积。可以理解为把w拆开多项,每一项分别做内积然后相加,就像多次项展开公式一样。

Soft-SVM对偶形式转换

SVM的原形式(primary form)是:

minw,b,εs.t.12wTw+Cn=1Nεnyn(wTxn+b)1εnεn0

对偶形式是:

minα12n=1Ns.t.n=1Nαnyn0αnm=1NαnαmynymxmTxnn=1Nαn=0C

线性回归

原问题是:

Ein(w)=1Nn=1N(wTxy)2=1NXWY2

当最佳值存在时:

Ein(w)=2NXT(XWY)

所以有:

WW=(XTX)1XTY=XY

logistic回归

首先,定义需要的函数:

θ(s)h(x)=es1+es=11+es=θ(wTx)

接着,根据最大似然,并且利用 1h(x)=h(x)的性质,最大化点出现的概率:
maxθ(ynwTxn)minn=1Nln(1+exp(ynwTxn))

上式对w的倒数为0,所以有:

s.t.minn=1Nln(1+exp(ynwTxn))n=1Nθ(ynwTxn)(ynxn)=0

下面,可以利用GD或者SGD求解。

GD:

Ein(wt)wt+1=1Nn=1Nθ(ynwTxn)(ynxn)=wtηEin(wt)

SGD:

wt+1=wtηθ(ynwTxn)(ynxn)

参考资料

  1. 闲话矩阵求导

通过一个例子快速上手矩阵求导

前提及说明第一次遇见矩阵求导,大多数人都是一头雾水,而搜了维基百科看也还是云里雾里,一堆的名词和一堆的表格到底都是什么呢?这里总结了我个人的学习经验,并且通过一个例子可以让你感受如何进行矩阵求导,下次...
  • nomadlx53
  • nomadlx53
  • 2016-03-10 20:46:28
  • 25464

矩阵的求导问题小结

Torch的安装和常见问题 Torch安装 http://torch.ch/docs/getting-started.html#next-steps 常见问题 https://github.c...
  • sunnyxiaohu
  • sunnyxiaohu
  • 2016-09-07 08:46:53
  • 4427

矩阵求导计算法则

转自:http://blog.sina.com.cn/s/blog_4a033b090100pwjq.html 求导公式(撇号为转置): Y = A * X --> DY/DX = A' Y =...
  • sunmenggmail
  • sunmenggmail
  • 2012-05-17 22:57:42
  • 33977

矩阵求导迹的求导技巧

矩阵的迹就是矩阵对角元素之和。有以下性质: tr(AB)=tr(BA) ∂tr(AB)∂A=BT 根据以上两个性质基本上就可以进行接下来的操作。首先利用上述性质计算...
  • hhsh49
  • hhsh49
  • 2016-11-15 10:51:49
  • 7443

闲话矩阵求导

闲话矩阵求导       本博客转载自:http://xuehy.github.io/2014/04/18/2014-04-18-matrixcalc/       矩阵求导,想必许多领域...
  • Allenlzcoder
  • Allenlzcoder
  • 2017-10-26 22:01:39
  • 372

矩阵论:向量求导/微分和矩阵微分

http://blog.csdn.net/pipisorry/article/details/68961388复杂的矩阵函数求导。著名的matrix cookbook为广大的研究者们提供了一本大字典,...
  • pipisorry
  • pipisorry
  • 2017-04-03 16:51:05
  • 6152

矩阵求导

矩阵求导问题:笔记(多元线性回归) 总结求导过程
  • ningyaliuhebei
  • ningyaliuhebei
  • 2015-06-29 10:50:02
  • 1226

闲话矩阵论

矩阵论主要研究的是线性空间以及在线性空间中的一些操作,主要是线性变换。当然书中主要是针对有限维的情况来讨论的,这样的话就可以用向量和矩阵来表示线性空间和线性变换,同其他的数学形式一样,矩阵是一种表达形...
  • faceRec
  • faceRec
  • 2007-07-06 13:50:00
  • 5585

矩阵求导简要笔记

本文介绍了矩阵求导和矩阵乘法。
  • u012151283
  • u012151283
  • 2017-05-01 15:01:10
  • 888

矩阵求导解最小二乘问题

关于最小二乘问题的求解,之前已有梯度下降法,还有比较快速的牛顿迭代。今天来介绍一种方法,是基于 矩阵求导来计算的,它的计算方式更加简洁高效,不需要大量迭代,只需解一个正规方程组。   在开始之前,首先...
  • ACdreamers
  • ACdreamers
  • 2015-03-27 00:44:12
  • 15193
收藏助手
不良信息举报
您举报文章:矩阵求导与实例
举报原因:
原因补充:

(最多只允许输入30个字)