矩阵的 Frobenius 范数及其求偏导法则

本文仅对https://blog.****.net/txwh0820/article/details/46392293进行重新排版供个人学习,侵删

矩阵的迹求导法则

矩阵的 Frobenius 范数及其求偏导法则

矩阵的 Frobenius 范数及其求偏导法则
矩阵的 Frobenius 范数及其求偏导法则

1. 复杂矩阵问题求导方法:可以从小到大,从scalar到vector再到matrix

矩阵的 Frobenius 范数及其求偏导法则
矩阵的 Frobenius 范数及其求偏导法则

2. x is a column vector, A is a matrix

  d(Ax)dx=A\frac{d(A∗x)}{dx}=A

  d(xTA)dxT=A\frac{d(x^T∗A)}{dx^T}=A

  d(xTA)dx=AT\frac{d(x^T∗A)}{dx}=A^T

  d(xTAx)dx=xT(AT+A)\frac{d(x^T∗A∗x)}{dx}=x^T(A^T+A)

3. Practice:

矩阵的 Frobenius 范数及其求偏导法则

4. 矩阵求导计算法则

求导公式:

  Y=AXDYDX=ATY = A * X \to \frac{DY}{DX} = A^T

  Y=XADYDX=AY = X * A \to \frac{DY}{DX} = A

  Y=ATXBDYDX=ABTY = A^T * X * B \to \frac{DY}{DX} = A * B^T

  Y=ATXTBDYDX=BATY = A^T * X^T * B \to \frac{DY}{DX} = B * A^T

乘积的导数:

  d(fg)dx=dfTdxg+dgdxfT\frac{d(f*g)}{dx}=\frac{df^T}{dx}g+\frac{dg}{dx}f^T

一些结论:

  1. 矩阵 YY 对标量 xx 求导:
    相当于每个元素求导数后转置一***意M×N矩阵求导后变成 N×MN×M

      Y=[yij]dYdx=[dyjidx]Y = [y_{ij}] \to \frac{dY}{dx} = [\frac{dy_{ji}}{dx}]

   

  1. 标量 yy 对列向量 XX 求导:
    注意与上面不同,这次括号内是求偏导,不转置,对 N×1N×1 向量求导后还是 N×1N×1 向量

      y=f(x1,x2,..,xn)dydX=(DyDx1,DyDx2,..,DyDxn)Ty = f(x_1,x_2,..,x_n) \to \frac{dy}{dX}= (\frac{Dy}{Dx_1},\frac{Dy}{Dx_2},..,\frac{Dy}{Dx_n})^T

   

  1. 行向量 YTY^T 对列向量 XX 求导:
    注意 1×M1×M 向量对 N×1N×1 向量求导后是 N×MN×M 矩阵。
    YY 的每一列对 XX 求偏导,将各列构成一个矩阵。
  重要结论:

      dXTdX=I\frac{dX^T}{dX} =I   d(AX)TdX=AT\frac{d(AX)^T}{dX} =A^T

   

  1. 列向量 YY 对行向量 XTX^T 求导:
    转化为行向量 YTY^T 对列向量 XX 的导数,然后转置。
    注意 M×1M×1 向量对 1×N1×N 向量求导结果为 M×NM×N 矩阵。

      dYdXT=(dYTdX)T\frac{dY}{dX^T} =(\frac{dY^T}{dX})^T

   

  1. 向量积对列向量 XX 求导运算法则:
    注意与标量求导有点不同。

      d(UVT)dX=(dUdX)VT+U(dVTdX)\frac{d(UV^T)}{dX} =(\frac{dU}{dX})V^T + U(\frac{dV^T}{dX})   d(UTV)dX=(dUTdX)V+(dVTdX)UT{\frac{d(U^TV)}{dX} =(\frac{dU^T}{dX})V + (\frac{dV^T}{dX}})U^T

  重要结论:

      d(XTA)dX=(dXTdX)A+(dAdX)XT=IA+0XT=A\frac{d(X^TA)}{dX} =(\frac{dX^T}{dX})A + (\frac{dA}{dX})X^T = IA + 0X^T = A

      d(AX)dXT=(d(XTAT)dX)T=(AT)T=A\frac{d(AX)}{dX^T} =(\frac{d(X^TA^T)}{dX})^T = (A^T)^T = A

      d(XTAX)dX=(dXTdX)AX+(d(AX)TdX)X=AX+ATX\frac{d(X^TAX)}{dX} =(\frac{dX^T}{dX})AX + (\frac{d(AX)^T}{dX})X = AX + A^TX

   

  1. 矩阵 YY 对列向量 XX 求导:
    YYXX 的每一个分量求偏导,构成一个超向量。
    注意该向量的每一个元素都是一个矩阵。

   

  1. 矩阵积对列向量求导法则:

      d(uV)dX=(dudX)V+u(dVdX)\frac{d(uV)}{dX} =(\frac{du}{dX})V + u(\frac{dV}{dX})   d(UV)dX=(dUdX)V+U(dVdX)\frac{d(UV)}{dX} =(\frac{dU}{dX})V + U(\frac{dV}{dX})

   

  重要结论:

      d(XTA)dX=(dXTdX)A+XT(dAdX)=IA+XT0=A\frac{d(X^TA)}{dX} =(\frac{dX^T}{dX})A + X^T(\frac{dA}{dX}) = IA + X^T0 = A

   

  1. 标量 yy 对矩阵 XX 的导数:
    类似标量 yy 对列向量 XX 的导数,
    yy 对每个 XX 的元素求偏导,不用转置。

      dydX=[DyDxij]\frac{dy}{dX} = [\frac{Dy}{Dx_{ij}} ]

  重要结论:

      y=UTXV=ΣΣuixijvjy = U^TXV= ΣΣu_{i}x_{ij}v_{j}  于是   dydX=[uivj]=UVT\frac{dy}{dX} = [u_iv_j] =UV^T

      y=UTXTXUy = U^TX^TXU  则  dydX=2XUUT\frac{dy}{dX} = 2XUU^T

      y=(XUV)T(XUV)y =(XU-V)^T(XU-V)  则

      dydX=d(UTXTXU2VTXU+VTV)dX\frac{dy}{dX} = \frac{d(U^TX^TXU - 2V^TXU + V^TV)}{dX}

        =2XUUT2VUT+0=2(XUV)UT= 2XUU^T - 2VU^T +0 = 2(XU-V)U^T

   

  1. 矩阵 YY 对矩阵 XX 的导数:
    YY 的每个元素对 XX 求导,然后排在一起形成超级矩阵。

   

  1. 乘积的导数

      d(fg)dx=(dfTdx)g+(dgdx)fT\frac{d(f*g)}{dx}=(\frac{df^T}{dx})g+(\frac{dg}{dx})f^T

  结论

      d(xTAx)=(d(xTT)dx)Ax+(d(Ax)dx)(xTT)=Ax+ATxd(x^TAx)=(\frac{d(x^{TT})}{dx})Ax+(\frac{d(Ax)}{dx})(x^{TT})=Ax+A^Tx

     (注意:TT^{TT}是表示两次转置)