本篇文章不涉及过多理论推导。关于本篇文章,在实践中会用即可。
矩阵求导有以下9种可能情况:
| 自变量/因变量 | 标量y | 向量y | 矩阵Y |
|---|
| 标量x | dxdy | dxdy | dxdY |
| 向量x | dxdy | dxdy | dxdY |
| 矩阵X | dXdy | dXdy | dXdY |
以下分别讨论。
一阶导数
标量对标量求导
这里是最简单的情况,本篇默认读者已掌握,不再赘述。
向量对标量求导
行向量对标量求导
设行向量y=(y1,y2,⋯,yn),则有
∂x∂y=[∂x∂y1∂x∂y2⋯∂x∂yn]
列向量对标量求导
设列向量y=y1y2⋮yn,则有
∂x∂y=∂x∂y1∂x∂y2⋮∂x∂yn
矩阵对标量求导
设Y=y11y21⋮ym1y12y22⋮ym2⋯⋯⋱⋯y1ny2n⋮ymn,则有
∂x∂Y=∂x∂y11∂x∂y21⋮∂x∂ym1∂x∂y12∂x∂y22⋮∂x∂ym2⋯⋯⋱⋯∂x∂y1n∂x∂y2n⋮∂x∂ymn
标量对向量求导
标量对行向量求导
设x=(x1,x2,⋯,xm),则有
∂x∂y=[∂x1∂y∂x2∂y⋯∂xm∂y]
标量对列向量求导
设x=x1x2⋮xm,则有
∂x∂y=∂x1∂y∂x2∂y⋮∂xm∂y
标量对矩阵求导
设X=x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn,则有
∂X∂y=∂x11∂y∂x21∂y⋮∂xm1∂y∂x12∂y∂x22∂y⋮∂xm2∂y⋯⋯⋱⋯∂x1n∂y∂x2n∂y⋮∂xmn∂y
向量对向量求导
列向量对行向量求导(雅可比矩阵)
设y=y1y2⋮yn,x=(x1,x2,⋯,xm),则有
∂x∂y=∂x1∂y1∂x1∂y2⋮∂x1∂yn∂x2∂y1∂x2∂y2⋮∂x2∂yn⋯⋯⋱⋯∂xm∂y1∂xm∂y2⋮∂xm∂yn
上式也称为雅可比矩阵
行向量对列向量求导
设y=(y1,y2,⋯,yn),x=x1x2⋮xm,则有
∂x∂y=∂x1∂y1∂x2∂y1⋮∂xm∂y1∂x1∂y2∂x2∂y2⋮∂xm∂y2⋯⋯⋱⋯∂x1∂yn∂x2∂yn⋮∂xm∂yn
行向量对行向量求导
设y=(y1,y2,⋯,yn),x=(x1,x2,⋯,xm),则有
∂x∂y=[∂x1∂y∂x2∂y⋯∂xm∂y]
其中xi∂y的定义见行向量对标量求导
列向量对列向量求导
设y=y1y2⋮yn,x=x1x2⋮xm,则有
∂x∂y=∂x1∂y∂x2∂y⋮∂xm∂y
其中xi∂y的定义见列向量对标量求导
矩阵对向量求导
矩阵对行向量求导
设Y=y11y21⋮ym1y12y22⋮ym2⋯⋯⋱⋯y1ny2n⋮ymn,x=(x1,x2,⋯,xc),则有
∂x∂Y=[∂x1∂Y∂x2∂Y⋯∂xc∂Y]
其中xi∂Y的定义见矩阵对标量求导
矩阵对列向量求导
设Y=y11y21⋮ym1y12y22⋮ym2⋯⋯⋱⋯y1ny2n⋮ymn,x=x1x2⋮xr,则有
∂x∂Y=∂x1∂Y∂x2∂Y⋮∂xr∂Y
其中xi∂Y的定义见矩阵对标量求导
向量对矩阵求导
行向量对矩阵求导
设y=(y1,y2,⋯,yn),X=x11x21⋮xr1x12x22⋮xr2⋯⋯⋱⋯x1cx2c⋮xrc,则有
∂X∂y=∂x11∂y∂x21∂y⋮∂xr1∂y∂x12∂y∂x22∂y⋮∂xr2∂y⋯⋯⋱⋯∂x1c∂y∂x2c∂y⋮∂xrc∂y
其中xij∂y的定义见行向量对标量求导
列向量对矩阵求导
设y=y1y2⋮yn,X=x11x21⋮xr1x12x22⋮xr2⋯⋯⋱⋯x1cx2c⋮xrc,则有
∂X∂y=∂x11∂y∂x21∂y⋮∂xr1∂y∂x12∂y∂x22∂y⋮∂xr2∂y⋯⋯⋱⋯∂x1c∂y∂x2c∂y⋮∂xrc∂y
其中xij∂y的定义见列向量对标量求导
矩阵对矩阵求导
设Y=y11y12⋯y1ny21y22⋯y2n⋮⋮⋱⋮ym1ym2⋯ymn,X=x11x21⋮xr1x12x22⋮xr2⋯⋯⋱⋯x1cx2c⋮xrc,则有
∂X∂Y=∂x11∂Y∂x21∂Y⋮∂xr1∂Y∂x12∂Y∂x22∂Y⋮∂xr2∂Y⋯⋯⋱⋯∂x1c∂Y∂x2c∂Y⋮∂xrc∂Y
其中xij∂Y的定义见矩阵对标量求导
二阶导数
二阶导数可以视作对一阶导数的导数,从而推导出来。这里要介绍的是一个特别的导数结果,称为海森矩阵(Hessian矩阵)。
海森矩阵
设标量y和行向量x=(x1,x2,⋯,xm)。Hessian矩阵定义为y对x的二阶导(第二次求导要转置行向量x),即
H(y)=∂x2∂2y=∂x12∂2y∂x2∂x1∂2y⋮∂xm∂x1∂2y∂x1∂x2∂2y∂x22∂2y⋮∂xm∂x2∂2y⋯⋯⋱⋯∂x1∂xm∂2y∂x2∂xm∂2y⋮∂xm2∂2y