线性代数之七:矩阵的微分

向量与矩阵微分基础


1 简介

对于可导实函数f在某点x处的导数,有

f(x)=limh0f(x+h)f(x)h

从形式上,则有:
f(x)hf(x+h)f(x)

本文将对向量和矩阵微分进行基础性的介绍,补充机器学习中所需要的微分计算基础。

2 f:RnR函数的微分

2.1 微分形式

对于从向量到标量实数的映射f:RnR

f为可微的,则存在xRn 以及极小值hRn,使得

dxf,h=f(x+h)f(x)+oh0(h)

其中oh0(h)h的高阶无穷小量。

示例:对于R2R的函数f([x1,x2]T)=3x1+x22,对于固定点[a,b]和无穷小量[h1,h2],有:

f([a+h1,b+h2]T)=f([a,b]T)+3h1+2bh2+h22

因此可得:
dxf,h=dxf(h)=3h1+2bh2

进而可得:
d[a,b]f=[3,2b]T

2.2 梯度形式

xf,h=f(x+h)f(x)+oh0(h)

对于2.1中的例子,同样的可导出
[a,b]f=[3,2b]T

2.3 偏导数

定义:

fxi=limh0f(x1,..,xi1,xi+h,xi+1,xn)f(x1,...xn)h

针对2.1中的例子有:

[a,b]f=fx1([a,b])fx2([a,b])=[3,2b]T

3 推广到f:RnmR

可以将Rnm的矩阵写作Rnm的一维向量,然后应用第2节中的公式,因此有:

xf=fx1fxnm

对其进行重排为n行m列的矩阵:
xf=fx11fx1mfxn1fxnm

4 推广到f:RnRm,Jacobian

对于xRn函数f(x)=f1(x)fm(x),定义函数的导数为Jacobian矩阵:

J(x)=f1x1fmx1f1x2fmx2f1xnfmxn

当m=1时,梯度计算如第2节中的方法。
当m=2时,对于函数f([y1,y2,y3]T)=[y1+2y2+3y3,y1y2y3]T有:

J(y)=[1y2y32y1y33y1y2]

6 推广到f:RnpRm

函数的导数矩阵J为m*n*p的三维矩阵,有

Jijk=fixjki=1..m,j=1..n,k=1..p

7 链式法则

对于函数f:RnRmg:RpRn,可以计算h=f(g(y))复合函数的导数。使用链式法则,借助于Jacobian矩阵,有

Jh(y)=Jf(g(y))Jg(y)

下面以函数f([x1,x2]T)=3x1+x22g([y1,y2,y3]T)=[y1+2y2+3y3,y1y2y3]T为例计算f(g(y))的梯度。

分别计算两个函数的梯度:

Jf(x)=xfT=(32x2)

Jg(y)=[1y2y32y1y33y1y2]

Jh(y)=[3,2(y1y2y3)][1y2y32y1y33y1y2]=[3+2y1y22y23,6+2y2y21y23,9+2y3y21y22]T

8 常见一元函数导数

线性法则:(af+bg)=af+bg
乘法定则:(fg)=fg+fg
除法定则:(fg)=fgfgg2
倒数定则:(1g)=gg2
复合函数:f(g(x))=f(g(x))g(x)

代数函数的导数:
(xn)=nxn1
|x|=sgnx

指对数函数的导数:
(ex)=ex
(ax)=axlna
(lnx)=x1
logax=(xlna)1

三角函数的导数:
(sinx)=cosx
(cosx)=sinx
(tanx)=sec2x
(cotx)=csc2x
(secx)=secxtanx
(cscx)=cscxcotx

反三函数的导数:
(arcsinx)=11x2
(arccosx)=11x2
(arctanx)=11+x2
(arccotx)=11+x2
(arcsecx)=1x21
(arccscx)=1x21

双曲函数的导数

其他函数的导数
sigmod(x)=sigmod(x)[1sigmod(x)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值