矩阵求导与实例

来源:互联网 发布:java随机数求和 编辑:程序博客网 时间:2024/05/17 06:00

目录(?)[+]

  • 缘由
  • 布局
  • 求导的类别
  • 从简单的例子说起
  • 实例
    • SVM的对偶形式转换
    • Soft-SVM对偶形式转换
    • 线性回归
    • logistic回归
  • 参考资料

缘由

机器学习的很多算法表示中都采用了矩阵的形式,对算法的描述分析中就涉及到了对向量、对矩阵的求导。 
比如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. 闲话矩阵求导
0 0