求导
对与矩阵 X, A, U, V
XdXT=IXTdX=IXdXTA=AXTdAX=AXdAX=ATXdXA=ATXdXTX=2XXdXTAX=(A+AT)XXXTdXTAX=dXd(dXdXTAX)=AT+A∂XT∂U=(∂X∂UT)T∂X∂UTV=∂X∂UTV+∂X∂VTUT∂X∂UVT=∂X∂UVT+U∂X∂VT∂X∂[(XU−V)T(XU−V)]=2(XU−V)UT∂X∂UTXV=UVT∂X∂UTXTXU=2XUUT
对于一个 n 维的方程组 f(x1,x2,,xn),求解它的最小值需要
∂x1∂f=0∂x2∂f=0∂xn∂f=0
所以可以定义一个矩阵方程,并且 y∈Rn×1
f(y)y=⎣⎢⎢⎢⎡x1x2yn⎦⎥⎥⎥⎤
则求导为
∂y∂f=⎣⎢⎢⎢⎢⎢⎡∂x1∂f∂xn∂f⎦⎥⎥⎥⎥⎥⎤
最终的结果的行数与分母一致,所以这种布局表达形式被称作 分母布局(Denominator Layout)
∂y∂f=[∂x1∂f∂xn∂f]
最终的结果的行数与分子一致,所以这种布局表达形式被称作 分子布局(Numerator Layout)
上述所说的求导是函数是一个 1×1 的形式的,对于 m×1 的函数来说,求导的结果为
f(y)=⎣⎢⎢⎢⎡f1f2fm⎦⎥⎥⎥⎤y=⎣⎢⎢⎢⎡x1x2yn⎦⎥⎥⎥⎤
∂y∂f=⎣⎢⎡∂x1∂f1∂xn∂fm∂x1∂fm∂xn∂fm⎦⎥⎤
最终的结果是一个 n×m 的矩阵,行数与分母一致,所以这种布局表达形式被称作 分母布局(Denominator Layout)
∂y∂f=⎣⎢⎡∂x1∂f1∂x1∂fm∂xn∂f1∂xn∂fm⎦⎥⎤
最终的结果是一个 m×n 的矩阵,行数与分子一致,所以这种布局表达形式被称作 分子布局(Numerator Layout)
不同的布局形式导致结果互为转置,计算中应当保持一种矩阵运算的形式
对于上述中求解最小/大值需要求导为 0,但是有些情况不能够实现,所以使用梯度下降法
定义梯度
▽y=∂y∂f
定义一个初始的 y=y∗,不断迭代,直到最终值满意
y∗=y∗−α▽y
其中 α 是学习率,也就是不断接近目标值的步长,而且可以是矩阵,对于不同的数据可以有不同的步长
矩阵的链式求导
函数f(y(u))∂u∂f=∂u∂y∂y∂f
迹运算
矩阵迹运算
tr ABC=trCAB=trBCAtr A=trATtr aA=a trA
矩阵的迹对矩阵求偏导
∇AtrAB=BT∇ATf(A)=(∇Af(A))T∇AtrABATC=CAB+CTABT∇A∣A∣=∣A∣(A−1)T∇AtrATB=B∇AtrATBA=(B+BT)A∇AtrABAT=A(B+BT)