向量与矩阵微分基础
1 简介
对于可导实函数f在某点x处的导数,有
从形式上,则有:
本文将对向量和矩阵微分进行基础性的介绍,补充机器学习中所需要的微分计算基础。
2 f:Rn→R 函数的微分
2.1 微分形式
对于从向量到标量实数的映射 f:Rn→R
若
f
为可微的,则存在
其中 oh→0(h) 为 h 的高阶无穷小量。
示例:对于
因此可得:
进而可得:
2.2 梯度形式
对于2.1中的例子,同样的可导出
2.3 偏导数
定义:
针对2.1中的例子有:
3 推广到 f:Rn∗m→R
可以将
Rn∗m
的矩阵写作
Rnm
的一维向量,然后应用第2节中的公式,因此有:
对其进行重排为n行m列的矩阵:
4 推广到 f:Rn→Rm ,Jacobian
对于
x∈Rn
函数
f(x)=⎛⎝⎜⎜⎜f1(x)⋮fm(x)⎞⎠⎟⎟⎟
,定义函数的导数为Jacobian矩阵:
当m=1时,梯度计算如第2节中的方法。
当m=2时,对于函数
f([y1,y2,y3]T)=[y1+2y2+3y3,y1y2y3]T
有:
6 推广到 f:Rn∗p→Rm
函数的导数矩阵J为m*n*p的三维矩阵,有
7 链式法则
对于函数
f:Rn→Rm
与
g:Rp→Rn
,可以计算
h=f(g(y))
复合函数的导数。使用链式法则,借助于Jacobian矩阵,有
下面以函数 f([x1,x2]T)=3x1+x22 与 g([y1,y2,y3]T)=[y1+2y2+3y3,y1y2y3]T 为例计算f(g(y))的梯度。
分别计算两个函数的梯度:
Jh(y)=[3,2(y1y2y3)]⋅[1y2y32y1y33y1y2]=[3+2y1y22y23,6+2y2y21y23,9+2y3y21y22]T
8 常见一元函数导数
线性法则:
(af+bg)′=af′+bg′
乘法定则:
(fg)′=fg′+f′g
除法定则:
(fg)′=f′g−fg′g2
倒数定则:
(1g)′=−g′g2
复合函数:
f′(g(x))=f′(g(x))g′(x)
代数函数的导数:
(xn)′=nxn−1
|x|′=sgnx
指对数函数的导数:
(ex)′=ex
(ax)′=axlna
(lnx)′=x−1
logax=(xlna)−1
三角函数的导数:
(sinx)′=cosx
(cosx)′=−sinx
(tanx)′=sec2x
(cotx)′=−csc2x
(secx)′=secxtanx
(cscx)′=−cscxcotx
反三函数的导数:
(arcsinx)′=11−x2√
(arccosx)′=−11−x2√
(arctanx)=11+x2
(arccotx)=−11+x2
(arcsecx)′=1x2−1√
(arccscx)′=−1x2−1√
双曲函数的导数
其他函数的导数
sigmod′(x)=sigmod(x)[1−sigmod(x)]