矩阵函数如何求导?
我们可以连结一个多元函数对其所有变量的偏导数,以得到该函数的梯度(gradient)向量。 具体而言,设函数f:Rn→R的输入是一个n维向量x=[x1,x2,...,xn]T,并且输出是一个标量。 函数f(x)相对于x的梯度是一个包含n个偏导数的向量:
∇xf(x)=[∂x1∂f(x),∂x2∂f(x),...,∂xn∂f(x)]T
假设x为n维向量,在微分多元函数时经常使用以下规则:
- 对于所有A∈Rm∗n,都有∇xAx=AT
- 对于所有A∈Rn∗m,都有∇xxTA=A
- 对于所有A∈Rn∗n,都有∇xxTAx=(A+AT)x
- ∇x∣∣x∣∣2=∇xxTx=2x
同样,对于任何矩阵X,都有∇X∣∣X∣∣F2==2x。 正如我们之后将看到的,梯度对于设计深度学习中的优化算法有很大用处。