精华内容
下载资源
问答
  • 对向量求导的常用公式

    千次阅读 2019-05-09 15:15:15
    对向量求导的常用公式 鲁鹏 北京理工大学宇航学院 2019.05.09 最近经常会遇到常数和向量对向量求导的计算,感觉需要总结点什么了。以后,我还会在这个文档中添加新的公式。 前提和定义 首先做如下定义,已知...

    对向量求导的常用公式

    鲁鹏
    北京理工大学宇航学院
    2019.05.09

    最近经常会遇到常数和向量对向量求导的计算,感觉需要总结点什么了。以后,我还会在这个文档中添加新的公式。

    前提和定义

    首先做如下定义,已知 f ( x ) f(\boldsymbol{x}) f(x) 是关于列向量 x = [ x 1 x 2 . . . x n ] T \boldsymbol{x}= [x_{1}\quad x_{2}\quad ...\quad x_{n}]^{T} x=[x1x2...xn]T 的标量函数
    ∂ f ( x ) ∂ x = [ ∂ f ∂ x 1 ∂ f ∂ x 2 . . . ∂ f ∂ x n ] \frac{\partial f(\boldsymbol{x})}{\partial \boldsymbol{x}} = \left[\begin{matrix} \frac{\partial f}{\partial x_{1}} \\ \frac{\partial f}{\partial x_{2}} \\...\\ \frac{\partial f}{\partial x_{n}} \end{matrix}\right] xf(x)=x1fx2f...xnf

    函数 f ( x ) f(\boldsymbol{x}) f(x) x \boldsymbol{x} x 处的梯度记为 ∇ f ( x ) \nabla f(\boldsymbol{x}) f(x) ∇ f ( x ) = ∂ f ( x ) / ∂ x \nabla f(\boldsymbol{x}) = \partial f(\boldsymbol{x})/\partial \boldsymbol{x} f(x)=f(x)/x
    函数 f ( x ) f(\boldsymbol{x}) f(x) x \boldsymbol{x} x 处的Hesse矩阵是 n × n n \times n n×n 矩阵记为 ∇ 2 f ( x ) \nabla^2 f(\boldsymbol{x}) 2f(x)
    ∇ 2 f ( x ) = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 . . . ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 . . . ∂ 2 f ∂ x 2 ∂ x n . . . . . . . . . . . . ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 . . . ∂ 2 f ∂ x n 2 ] \nabla^2 f(\boldsymbol{x}) = \left[\begin{matrix} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1}\partial x_{2}} & ... & \frac{\partial^{2} f}{\partial x_{1}\partial x_{n}}\\ \frac{\partial^{2} f}{\partial x_{2}\partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & ...& \frac{\partial^{2} f}{\partial x_{2}\partial x_{n}} \\ ... & ... & ... & ... \\ \frac{\partial^{2} f}{\partial x_{n}\partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n}\partial x_{2}} & ... & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{matrix}\right] 2f(x)=x122fx2x12f...xnx12fx1x22fx222f...xnx22f............x1xn2fx2xn2f...xn22f

    已知 F ( x ) = [ f 1 ( x ) f 2 ( x ) . . . f m ( x ) ] T F(\boldsymbol{x}) = [f_{1}(\boldsymbol{x})\quad f_{2}(\boldsymbol{x})\quad ...\quad f_{m}(\boldsymbol{x})]^{T} F(x)=[f1(x)f2(x)...fm(x)]T 是关于列向量 x \boldsymbol{x} x 的向量值函数
    ∂ F ( x ) ∂ x = [ ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 . . . ∂ f 1 ∂ x n ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 . . . ∂ f 2 ∂ x n . . . . . . . . . . . . ∂ f m ∂ x 1 ∂ f m ∂ x 2 . . . ∂ f m ∂ x n ] \frac{\partial F(\boldsymbol{x})}{\partial \boldsymbol{x}} = \left[\begin{matrix} \frac{\partial f_{1}}{\partial x_{1}} & \frac{\partial f_{1}}{\partial x_{2}} &...& \frac{\partial f_{1}}{\partial x_{n}}\\ \frac{\partial f_{2}}{\partial x_{1}} & \frac{\partial f_{2}}{\partial x_{2}} &...& \frac{\partial f_{2}}{\partial x_{n}} \\ ... & ... & ... & ...\\ \frac{\partial f_{m}}{\partial x_{1}} & \frac{\partial f_{m}}{\partial x_{2}} &...& \frac{\partial f_{m}}{\partial x_{n}} \end{matrix}\right] xF(x)=x1f1x1f2...x1fmx2f1x2f2...x2fm............xnf1xnf2...xnfm

    函数 F ( x ) F(\boldsymbol{x}) F(x) 在点 x \boldsymbol{x} x 的雅克比矩阵记为 J J J,则 J = ∂ F ( x ) / ∂ x J = {\partial F(\boldsymbol{x})}/{\partial \boldsymbol{x}} J=F(x)/x,雅克比矩阵 J J J 称为向量值函数 F ( x ) F(\boldsymbol{x}) F(x) x \boldsymbol{x} x 处的导数,也记作 F ′ ( x ) F^{\prime}(\boldsymbol{x}) F(x) ∇ F ( x ) T \nabla F(\boldsymbol{x})^{T} F(x)T,其中 ∇ F = [ ∇ f 1   ∇ f 2   . . .   ∇ f m ] \nabla F = [\nabla f_{1}\ \nabla f_{2}\ ...\ \nabla f_{m}] F=[f1 f2 ... fm]
    已知向量 a = [ a 1 a 2 a 3 ] T \boldsymbol{a}= [a_{1}\quad a_{2}\quad a_{3}]^{T} a=[a1a2a3]T,则 a \boldsymbol{a} a 的叉乘矩阵 a × \boldsymbol{a}^{\times} a× 定义如下
    a × = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] \boldsymbol{a}^{\times} = \left[\begin{matrix} 0 & -a_{3} & a_{2}\\ a_{3} & 0 & -a_{1}\\ -a_{2} & a_{1} & 0 \end{matrix}\right] a×=0a3a2a30a1a2a10

    有了叉乘矩阵,向量叉乘可以像等式(1)那样表示
    a × b = a × b (1) \boldsymbol{a} \times \boldsymbol{b} = \boldsymbol{a}^{\times} \boldsymbol{b} \tag{1} a×b=a×b(1)

    常用求导公式

    在以上定义的基础上,可以总结以下常用的求导公式
    ∂ ∥ a ∥ ∂ a = ∂ a ∂ a = a a (2) \frac{\partial \lVert \boldsymbol{a}\rVert}{\partial \boldsymbol{a}} = \frac{\partial a}{\partial \boldsymbol{a}} = \frac{\boldsymbol{a}}{a} \tag{2} aa=aa=aa(2)

    ∂ a T a ∂ a = ∂ a 2 ∂ a = 2 a (3) \frac{\partial \boldsymbol{a}^{T}\boldsymbol{a}}{\partial \boldsymbol{a}} = \frac{\partial a^{2}}{\partial \boldsymbol{a}} = 2\boldsymbol{a}\tag{3} aaTa=aa2=2a(3)

    ∂ ( A x ) ∂ x = A (4) \frac{\partial(A \boldsymbol{x})}{\partial \boldsymbol{x}} = A \tag{4} x(Ax)=A(4)

    ∂ x T A x ∂ x = ( A + A T ) x (5) \frac{\partial \boldsymbol{x}^{T} A \boldsymbol{x}}{\partial \boldsymbol{x}}= (A + A^{T})\boldsymbol{x} \tag{5} xxTAx=(A+AT)x(5)

    已知 y = a × b + c \boldsymbol{y} = \boldsymbol{a} \times \boldsymbol{b}+\boldsymbol{c} y=a×b+c,则
    ∂ y ∂ b = ( a × ) T y y = − a × y y (6) \frac{\partial y}{\partial\boldsymbol{b}} = (\boldsymbol{a}^{\times})^{T}\frac{\boldsymbol{y}}{y} = -\boldsymbol{a}^{\times} \frac{\boldsymbol{y}}{y} \tag{6} by=(a×)Tyy=a×yy(6)

    ∂ α ∂ r = [ ∂ V 1 ∂ r 1 ∂ V 1 ∂ r 2 ∂ V 1 ∂ r 3 ∂ V 2 ∂ r 1 ∂ V 2 ∂ r 2 ∂ V 2 ∂ r 3 ∂ V 3 ∂ r 1 ∂ V 3 ∂ r 2 ∂ V 3 ∂ r 3 ] T [ ∂ α ∂ V 1 ∂ α ∂ V 2 ∂ α ∂ V 3 ] = ( ∂ V ∂ r ) T ∂ α ∂ V (7) \frac{\partial\alpha}{\partial\boldsymbol{r}} = \left[\begin{matrix} \frac{\partial V_{1}}{\partial r_{1}} & \frac{\partial V_{1}}{\partial r_{2}} & \frac{\partial V_{1}}{\partial r_{3}}\\ \frac{\partial V_{2}}{\partial r_{1}} & \frac{\partial V_{2}}{\partial r_{2}} & \frac{\partial V_{2}}{\partial r_{3}}\\ \frac{\partial V_{3}}{\partial r_{1}} & \frac{\partial V_{3}}{\partial r_{2}} & \frac{\partial V_{3}}{\partial r_{3}}\\ \end{matrix}\right]^{T} \left[\begin{matrix} \frac{\partial\alpha}{\partial V_{1}} \\ \frac{\partial\alpha}{\partial V_{2}} \\ \frac{\partial\alpha}{\partial V_{3}} \end{matrix}\right] = \left(\frac{\partial\boldsymbol{V}}{\partial\boldsymbol{r}}\right)^{T} \frac{\partial\alpha}{\partial\boldsymbol{V}} \tag{7} rα=r1V1r1V2r1V3r2V1r2V2r2V3r3V1r3V2r3V3TV1αV2αV3α=(rV)TVα(7)

    d ( a × b ) d t = d a d t × b + a × d b d t (8) \frac{ d(\boldsymbol{a} \times \boldsymbol{b}) }{dt} = \frac{ d\boldsymbol{a} }{dt} \times \boldsymbol{b} + \boldsymbol{a} \times \frac{ d\boldsymbol{b} }{dt} \tag{8} dtd(a×b)=dtda×b+a×dtdb(8)

    ∂ [ f ( x ) a ] ∂ x = a [ ∂ f ( x ) ∂ x ] T (9) \frac{\partial[f(\boldsymbol{x})\boldsymbol{a}]}{\partial\boldsymbol{x}} = \boldsymbol{a} \left[ \frac{\partial f(\boldsymbol{x})}{\partial \boldsymbol{x}} \right]^{T} \tag{9} x[f(x)a]=a[xf(x)]T(9)

    已知 ω = [ ω 1 , ω 2 , ω 3 ] T \boldsymbol{\omega} = [\omega_{1}, \omega_{2}, \omega_{3}]^{T} ω=[ω1,ω2,ω3]T r = [ r 1 , r 2 , r 3 ] T \boldsymbol{r} = [r_{1},r_{2},r_{3}]^{T} r=[r1,r2,r3]T I 3 I_{3} I3 3 × 3 3\times3 3×3 单位矩阵
    ∂ [ ( r T ω ) r ] ∂ r = ( r T ω ) I 3 + r ω T (10) \frac{\partial [(\boldsymbol{r}^{T} \boldsymbol{\omega}) \boldsymbol{r}]}{\partial \boldsymbol{r}} = (\boldsymbol{r}^{T} \boldsymbol{\omega})I_{3} + \boldsymbol{r}\boldsymbol{\omega}^{T} \tag{10} r[(rTω)r]=(rTω)I3+rωT(10)

    叉乘运算公式

    已知 ω = [ ω 1 , ω 2 , ω 3 ] T \boldsymbol{\omega} = [\omega_{1}, \omega_{2}, \omega_{3}]^{T} ω=[ω1,ω2,ω3]T r = [ r 1 , r 2 , r 3 ] T \boldsymbol{r} = [r_{1},r_{2},r_{3}]^{T} r=[r1,r2,r3]T
    ω × ( ω × r ) = ω × ω × r = [ − ω 2 2 − ω 3 2 ω 1 ω 2 ω 1 ω 3 ω 1 ω 2 − ω 1 2 − ω 3 2 ω 2 ω 3 ω 1 ω 3 ω 2 ω 3 − ω 1 2 − ω 2 2 ] [ r 1 r 2 r 3 ] (11) \begin{aligned} \boldsymbol{\omega} \times (\boldsymbol{\omega}\times \boldsymbol{r}) &= \boldsymbol{\omega}^{\times}\boldsymbol{\omega}^{\times}\boldsymbol{r}\\ &=\begin{bmatrix} -\omega_{2}^{2} - \omega_{3}^{2} & \omega_{1}\omega_{2} & \omega_{1}\omega_{3}\\ \omega_{1}\omega_{2} & -\omega_{1}^{2} - \omega_{3}^{2} & \omega_{2}\omega_{3} \\ \omega_{1}\omega_{3} & \omega_{2}\omega_{3} & -\omega_{1}^{2} - \omega_{2}^{2} \end{bmatrix} \begin{bmatrix} r_{1} \\ r_{2} \\ r_{3} \end{bmatrix} \end{aligned} \tag{11} ω×(ω×r)=ω×ω×r=ω22ω32ω1ω2ω1ω3ω1ω2ω12ω32ω2ω3ω1ω3ω2ω3ω12ω22r1r2r3(11)
    雅克比恒等式: a × ( b × c ) = b × ( a × c ) + c × ( b × a ) \mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = \mathbf{b}\times(\mathbf{a}\times\mathbf{c}) + \mathbf{c}\times(\mathbf{b}\times\mathbf{a}) a×(b×c)=b×(a×c)+c×(b×a)

    拉格朗日公式: a × ( b × c ) = ( a ⋅ c ) b − ( a ⋅ b ) c \mathbf{a}\times(\mathbf{b}\times\mathbf{c}) = (\mathbf{a}\cdot\mathbf{c}) \mathbf{b} - (\mathbf{a}\cdot\mathbf{b}) \mathbf{c} a×(b×c)=(ac)b(ab)c

    展开全文
  • 函数对向量求导

    千次阅读 2020-04-17 17:37:53
    我们一般函数求导,是单变量求导,但是在机器学习中,会遇到多元函数对向量求导的情况,比如: f(w⃗)=12∣∣w⃗∣∣2 f(\vec{w})=\frac{1}{2}||\vec{w}||^2f(w)=21​∣∣w∣∣2其中,w⃗=(w1,w2,⋯ ,wn)\vec{w...

    我们一般对函数求导,是对单变量求导,但是在机器学习中,会遇到多元函数对向量求导的情况,比如:
    f ( w ⃗ ) = 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 f(\vec{w})=\frac{1}{2}||\vec{w}||^2 f(w )=21w 2其中, w ⃗ = ( w 1 , w 2 , ⋯   , w n ) \vec{w}=(w_1,w_2,\cdots,w_n) w =(w1,w2,,wn)

    我们会看到在数学公式推导中会遇到函数对向量的求导:

    ∂ f ( w ⃗ ) ∂ w ⃗ = 1 2 ( w 1 2 + w 2 2 + ⋯ + w n 2 ) ∂ w ⃗ \frac{\partial f(\vec{w})}{\partial \vec{w}} = \frac{\frac{1}{2}(w^2_1+w^2_2+\cdots+w^2_n)}{\partial \vec{w}} w f(w )=w 21(w12+w22++wn2) = 1 2 ( w 1 2 + w 2 2 + ⋯ + w n 2 ) ∂ ( w 1 , w 2 , ⋯   , w n ) = \frac{\frac{1}{2}(w^2_1+w^2_2+\cdots+w^2_n)}{\partial (w_1,w_2,\cdots,w_n)} =(w1,w2,,wn)21(w12+w22++wn2) = ( ∂ f ( w ⃗ ) ∂ w 1 , ∂ f ( w ⃗ ) ∂ w 2 , ⋯   , ∂ f ( w ⃗ ) ∂ w n ) =(\frac{\partial{f(\vec{w})}}{\partial{w_1}},\frac{\partial{f(\vec{w})}}{\partial{w_2}},\cdots,\frac{\partial{f(\vec{w})}}{\partial{w_n}}) =(w1f(w ),w2f(w ),,wnf(w )) = ( w 1 , w 2 , ⋯   , w n ) = w ⃗ =(w_1,w_2,\cdots,w_n)=\vec{w} =(w1,w2,,wn)=w

    所以我们可以看出,一个函数对于一个向量求导,得到一个向量,这个向量的每一维,相当于是这个函数对原始向量的每一维上的变量进行求导,本质上就是求了 f ( w ⃗ ) f(\vec{w}) f(w )关于 w ⃗ \vec{w} w 的梯度 ∇ f ( w ⃗ ) \nabla{f(\vec{w})} f(w )

    展开全文
  • 今天我们就讨论下其中的标量对向量求导,标量矩阵求导, 以及向量对向量求导这三种场景的基本求解思路。  对于本文中的标量向量或矩阵求导这两种情况,如前文所说,以分母布局为默认布局。向量对向量求导,以...

     在机器学习中的矩阵向量求导(一) 求导定义与求导布局中,我们讨论了向量矩阵求导的9种定义与求导布局的概念。今天我们就讨论下其中的标量对向量求导,标量对矩阵求导, 以及向量对向量求导这三种场景的基本求解思路。

        对于本文中的标量对向量或矩阵求导这两种情况,如前文所说,以分母布局为默认布局。向量对向量求导,以分子布局为默认布局。如遇到其他文章中的求导结果和本文不同,请先确认使用的求导布局是否一样。另外,由于机器学习中向量或矩阵对标量求导的场景很少见,本系列不会单独讨论这两种求导过程。

    1. 用定义法求解标量对向量求导

        标量对向量求导,严格来说是实值函数对向量的求导。即定义实值函数f:Rn→Rf:Rn→R,自变量xx是n维向量,而输出yy是标量。对于一个给定的实值函数,如何求解∂y∂x∂y∂x呢?

        首先我们想到的是基于矩阵求导的定义来做,由于所谓标量对向量的求导,其实就是标量对向量里的每个分量分别求导,最后把求导的结果排列在一起,按一个向量表示而已。那么我们可以将实值函数对向量的每一个分量来求导,最后找到规律,得到求导的结果向量。

        首先我们来看一个简单的例子:y=aTxy=aTx,求解∂aTx∂x∂aTx∂x

        根据定义,我们先对xx的第i个分量进行求导,这是一个标量对标量的求导,如下:

     

    ∂aTx∂xi=∂∑j=1najxj∂xi=∂aixi∂xi=ai∂aTx∂xi=∂∑j=

    展开全文
  • 向量求导方法与技巧

    千次阅读 2020-07-29 19:11:26
    这个方法是今天我在啃机器学习的时候发现了一个规律,然后一些矩阵求导例子按照这种方式求导发现以下案例而言结果是正确的,其他的求导如果出现不对的地方,还请广大网友多多指正。 ps:向量是矩阵的特殊形式,...

    求导小技巧
    对矩阵求导是学习机器学习的第一步,如果不清楚如何求导机器学习的学习过程将是非常煎熬的,下面是总结的一个小技巧。这个方法是今天我在啃机器学习的时候发现了一个规律,然后对一些矩阵求导例子按照这种方式求导发现对以下案例而言结果是正确的,对其他的求导如果出现不对的地方,还请广大网友多多指正。
    ps:向量是矩阵的特殊形式,当强调行(列)矩阵时,将其写作为向量。
    求解规律如下:
    标量/矩阵形式的求导: 将分母中的所有元素对标量依次求导,排列顺序与分母排列顺序一致。
    矩阵/矩阵形式的求导: 将分子中的元素按照行优先的顺序排列程一个标量序列,按照标量/矩阵的求导方式求解并依次排序。
    下面是一些求导实例
    文章最后又介绍到函数求解公式以及复合函数求导。
    符号说明
    如果没有特殊说明,那么 x \textbf{x} x为一个nx1的列向量, A \textbf{A} A为一个nxn的方阵。
    标量/向量
    f ( x ) f(\textbf{x}) f(x)是向量x的函数 f ( x ) = f ( x 1 , x 2 , x 3 , . . . , x d ) f(\textbf{x})=f(x_1,x_2,x_3,...,x_d) f(x)=f(x1,x2,x3,...,xd)
    x = [ x 1 x 2 x 3 ⋮ x d ] \textbf{x}=\left[ \begin{matrix} x_1\\ x_2\\ x_3\\ \vdots\\ x_d \end{matrix} \right] x=x1x2x3xd
    分子f(x)的第一个元素为标量 f ( x 1 , x 2 , x 3 , . . . , x d ) f(x_1,x_2,x_3,...,x_d) f(x1,x2,x3,...,xd),分母中所有元素对该元素求导,排列顺序与分母的排列方式一致
    d f ( x ) d x = [ d f d x 1 d f d x 2 d f d x 3 ⋮ d f d x d ] (2) \frac{df(x)}{d\textbf{x}}=\left[ \begin{matrix} \frac{df}{dx_1}\\ \frac{df}{dx_2}\\ \frac{df}{dx_3}\\ \vdots\\ \frac{df}{dx_d} \end{matrix} \right]\tag{2} dxdf(x)=dx1dfdx2dfdx3dfdxddf(2)
    与公式(2)的求解方法一样,可以得到以下常用矩阵求导结果
    d y T x d x = d x T y d x = y (3) \frac{d\textbf{y}^\textbf{T}\textbf{x}}{d\textbf{x}}=\frac{d\textbf{x}^\textbf{T}\textbf{y}}{d\textbf{x}}=\textbf{y}\tag{3} dxdyTx=dxdxTy=y(3)

    d x T Ax d x = ( A + A T ) x (4) \frac{d\textbf{x}^\textbf{T}\textbf{A}\textbf{x}}{d\textbf{x}}=(\textbf{A}+\textbf{A}^\textbf{T})\textbf{x}\tag{4} dxdxTAx=(A+AT)x(4)

    公式(3)以及公式(4)中的分子可以化成一个标量,实质上还是标量/向量的形式,求解过程略

    标量/矩阵

    f是一个标量,X是一个mxn的矩阵

    d f d x = [ d f d x 11 ⋯ d f d x 1 n ⋮ ⋱ ⋮ d f d x m 1 ⋯ d f d x m n ] (5) \frac{df}{d\textbf{x}}=\left[ \begin{matrix} \frac{df}{dx_{11}}&\cdots&\frac{df}{dx_{1n}}\\ \vdots&\ddots&\vdots\\ \frac{df}{dx_{m1}}&\cdots&\frac{df}{dx_{mn}} \end{matrix} \right]\tag{5} dxdf=dx11dfdxm1dfdx1ndfdxmndf(5)
    与(2)一样,利用分母对标量f进行求导,排列方式与分母一致

    向量/向量
    先将分子分解成一个个标量,按照标量/向量的方式求解完毕后,在排序;排序方式:若分母是行向量,那么按列排序为新的矩阵,若分母是列向量,那么按照行排列成新的矩阵。
    d Ax d x = ? \frac{d\textbf{Ax}}{d\textbf{x}}=? dxdAx=?
    A是mxd的矩阵,x是长度为d的列向量
    Ax = [ a 11 x 1 + a 12 x 2 ⋯ + a 1 d x d a 21 x 1 + a 22 x 2 ⋯ + a 2 d x d ⋮ a m 1 x 1 + a m 2 x 2 ⋯ + a m d x d ] \textbf{Ax}=\left[ \begin{matrix} a_{11}x_1+a_{12}x_2\cdots+a_{1d}x_d\\ a_{21}x_1+a_{22}x_2\cdots+a_{2d}x_d\\ \vdots\\ a_{m1}x_1+a_{m2}x_2\cdots+a_{md}x_d \end{matrix} \right] Ax=a11x1+a12x2+a1dxda21x1+a22x2+a2dxdam1x1+am2x2+amdxd
    d Ax d x \frac{d\textbf{Ax}}{d\textbf{x}} dxdAx 的求导步骤如下
    step1: 第一个元素为 a 11 x 1 + a 12 x 2 ⋯ + a 1 d x d a_{11}x_1+a_{12}x_2\cdots+a_{1d}x_d a11x1+a12x2+a1dxd,
    分母对第一个元素的求导结果为 [ a 11 a 12 ⋮ a 1 d ] \left[ \begin{matrix} a_{11}\\ a_{12}\\ \vdots\\ a_{1d} \end{matrix} \right] a11a12a1d

    step2: 第二个元素为 a 21 x 1 + a 22 x 2 ⋯ + a 2 d x d a_{21}x_1+a_{22}x_2\cdots+a_{2d}x_d a21x1+a22x2+a2dxd
    分母对第二个元素的求导结果为 [ a 21 a 22 ⋮ a 2 d ] \left[ \begin{matrix} a_{21}\\ a_{22}\\ \vdots\\ a_{2d} \end{matrix} \right] a21a22a2d

    stepm: 第m个元素为 a m 1 x 1 + a m 2 x 2 ⋯ + a m d x d a_{m1}x_1+a_{m2}x_2\cdots+a_{md}x_d am1x1+am2x2+amdxd
    分母对第m个元素的求导结果为 [ a m 1 a m 2 ⋮ a m d ] \left[ \begin{matrix} a_{m1}\\ a_{m2}\\ \vdots\\ a_{md} \end{matrix} \right] am1am2amd
    将结果按照以上求解步骤中出现的顺序排列,最终结果如下
    d Ax d x = A T (6) \frac{d\textbf{Ax}}{d\textbf{x}}=\textbf{A}^\textbf{T}\tag{6} dxdAx=AT(6)

    与公式(4)求解步骤一样,可以得到以下矩阵求解结果
    d x d x = I (7) \frac{d\textbf{x}}{d\textbf{x}}=\textbf{I}\tag{7} dxdx=I(7)

    函数求导公式在向量中的应用
    d f ( x ) g ( x ) d x = ? \frac{d{f(\textbf{x})g(\textbf{x})}}{d\textbf{x}}=? dxdf(x)g(x)=?
    在标量求导中, d f ( x ) g ( x ) d x = f ( x ) d g ( x ) d x + g ( x ) d f ( x ) x \frac{df(x)g(x)}{dx}=f(x)\frac{dg(x)}{dx}+g(x)\frac{df(x)}{x} dxdf(x)g(x)=f(x)dxdg(x)+g(x)xdf(x)
    实际上,这一规则在向量求导中也存在。
    个人常用求导经验如下:
    1.确定求导之后矩阵的排布形式
    2.每一次拆解之后,矩阵之间的乘法与加法必须符合矩阵的运算法则,反之,则需要先尝试对调位置观察是否符合矩阵运算规则,再对非导数项进行转置观察是否符合矩阵运算规则。(注意这一步必须在拆解的时候使用,对调与转置只能进行其中一个变化,对调优先级高于转置)
    3.向量求导最终都可以分解成标量/向量的形式,进而求解。

    示例1:按照乘法求导公式求解 d x T Ax d x \frac{d\textbf{x}^\textbf{T}\textbf{A}\textbf{x}}{d\textbf{x}} dxdxTAx

    step1: 确定结果排布形式,分子为 x T Ax \textbf{x}^\textbf{T}\textbf{A}\textbf{x} xTAx是一个标量,分母为 x \textbf{x} x是一个列向量,最终的求导结果为一个列向量。
    step2: 检查分解之后的公式是否符合矩阵运算规则
    d x T Ax d x = d x T d x Ax + d Ax d x x T \frac{d\textbf{x}^\textbf{T}\textbf{A}\textbf{x}}{d\textbf{x}}=\frac{d\textbf{x}^\textbf{T}}{d\textbf{x}}\textbf{A}\textbf{x}+\frac{d\textbf{A}\textbf{x}}{d\textbf{x}}\textbf{x}^\textbf{T} dxdxTAx=dxdxTAx+dxdAxxT
    加号左侧导数求解之后是一个单位矩阵,所以在左侧或者右侧都可以,但是加号右侧无法满足矩阵乘法规则
    x T \textbf{x}^T xT是一个1xn的矩阵, d Ax d x \frac{d\textbf{A}\textbf{x}}{d\textbf{x}} dxdAx是一个nxn的矩阵,需要对加号右侧两个元素对调,如下:
    d x T Ax d x = Ax d x T d x + x T d Ax d x \frac{d\textbf{x}^\textbf{T}\textbf{A}\textbf{x}}{d\textbf{x}}=\textbf{A}\textbf{x}\frac{d\textbf{x}^\textbf{T}}{d\textbf{x}}+\textbf{x}^\textbf{T}\frac{d\textbf{A}\textbf{x}}{d\textbf{x}} dxdxTAx=AxdxdxT+xTdxdAx
    但是这种方式使加法无法正常相加,再尝试转置进行解决
    d x T Ax d x = Ax d x T d x + d Ax d x x = AXE + A T x = ( A + A T ) x (9) \frac{d\textbf{x}^\textbf{T}\textbf{A}\textbf{x}}{d\textbf{x}}=\textbf{A}\textbf{x}\frac{d\textbf{x}^\textbf{T}}{d\textbf{x}}+\frac{d\textbf{A}\textbf{x}}{d\textbf{x}}\textbf{x}=\textbf{AXE}+\textbf{A}^T\textbf{x}=(\textbf{A}+\textbf{A}^T)\textbf{x} \tag{9} dxdxTAx=AxdxdxT+dxdAxx=AXE+ATx=(A+AT)x(9)
    step3: 简单验证一下,是列向量符合step1。
    可以看到结果与(4)一致。

    示例2:按照链式求导法则求解 d ( Ax ) T AX d x \frac{d{(\textbf{Ax}})^T\textbf{AX}}{d\textbf{x}} dxd(Ax)TAX
    step1: 结果是列向量。
    step2: 检查是否符合运算规则
    d ( Ax ) T AX d x = d u T u d u d u d x \frac{d{(\textbf{Ax}})^T\textbf{AX}}{d\textbf{x}}=\frac{d\textbf{u}^T\textbf{u}}{d\textbf{u}}\frac{d\textbf{u}}{d\textbf{x}} dxd(Ax)TAX=duduTudxdu
    左侧是一个nx1的列向量,右侧是一个nxn的矩阵,显然不符合矩阵运算规则
    尝试对调,并计算
    d ( Ax ) T AX d x = d u d x d u T u d u = A T 2 u = A T 2 Ax = 2 A T Ax (10) \frac{d{(\textbf{Ax}})^T\textbf{AX}}{d\textbf{x}}=\frac{d\textbf{u}}{d\textbf{x}}\frac{d\textbf{u}^T\textbf{u}}{d\textbf{u}}=\textbf{A}^T2\textbf{u}=\textbf{A}^T2\textbf{Ax}=2\textbf{A}^T\textbf{A}\textbf{x}\tag{10} dxd(Ax)TAX=dxdududuTu=AT2u=AT2Ax=2ATAx(10)
    step3: 验证一下,是列向量。

    有兴趣的网友可以利用乘法求导法则求一下示例2,可以发现结果是一致的。

    展开全文
  • 在进行对向量求导时,非常好用的三个公式 分别是 1.对于向量x求导∇xwTx=w\nabla_x w^Tx=w∇x​wTx=w 2.对向量x求导∇xxTAx=(A+AT)x\nabla_x x^TAx=(A+A^T)x∇x​xTAx=(A+AT)x其中x为向量,A为矩阵 3.对向量x求...
  • 机器学习:常用的矩阵向量求导公式

    千次阅读 2018-09-23 11:06:58
    学习机器学习的时候有很多线性代数的知识,其中有一些矩阵向量求导的东西不是很熟悉,今天查了很久决定做一个总结。 定义1.梯度(Gradient) [标量列向量微分] 设是一个变量为的标量函数,其中。那么定义...
  • 在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义中,我们讨论了定义求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦。因此我们需要其他的...
  • 矩阵向量求导(Matrix calculus)

    万次阅读 多人点赞 2017-12-23 11:54:18
    ##标量对向量求导 元素 y y y 向量 y = [ y 1 y 2 ⋮ y m ] \mathbf{y}=\left[\begin{aligned}&y_1\\&y_2\\&\vdots\\&y_m\end{aligned}\right] y = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ​ ​ y 1 ​ y 2 ​ ⋮...
  • 矩阵向量求导

    2021-01-31 00:00:00
    矩阵向量的求导在深度学习中要用到。有必要矩阵向量求导做一个介绍。在微积分里面,我们学过标量y标量x的求导:我们做一个延申,如果y是一个向量:里面每个yi都同一个x求导,那么我们称为...
  • 向量求导公式

    千次阅读 2016-12-15 16:00:01
    最近在看吴恩达的视频啊、LDA啊、PCA啊,觉得很有必要将向量求导公式复习一下,要不感觉算的时候怪怪的~
  • 在矩阵向量求导前4篇文章中,我们主要讨论了标量向量矩阵的求导,以及向量向量的求导。本文我们就讨论下之前没有涉及到的矩阵矩阵的求导,还有矩阵向量,向量矩阵求导这几种形式的求导方法。 本文所有求导...
  • 在机器学习中的矩阵向量求导(三) 矩阵向量求导之微分中,我们讨论了使用微分来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分使用起来也有些麻烦。...
  • 矩阵理论(三)向量矩阵的求导

    千次阅读 2019-09-29 14:33:41
    在各类机器学习和深度学习算法的推导过程中,尤其是通过损失函数求解参数最优解过程中,经常用到向量矩阵的求导。从本质上讲,向量矩阵求导就是将多元标量函数求导按照一定的布局排列为向量或矩阵。 按照求导中自...
  • 在之前写的上百篇机器学习博客中,不时会使用矩阵向量求导的方法来简化公式推演,但是并没有系统性的进行过讲解,因此让很多朋友迷惑矩阵向量求导的具体过程为什么会是这样的。这里准备用几篇博文来讨论下机器学习中...
  • 请思考: 维度为m的一个向量????一个标量????的求导,那么结果也是一个m维的向量:∂?...这个m维的求导结果排列成的m...为了解决矩阵向量求导的结果不唯一,我们引入求导布局。最基本的求导布局有两个:分子布局(numera
  • 本质上来说,一个函数(行)向量求导,本质上还是单独为向量的每个元素进行求导的。 比如 R n → R R^n \to R 的函数 f ( a ⃗  ) f(\vec a) ,则其导数【即梯度】为 ∇ f = [ ∂ f ∂ a 1 , ∂ f ∂ a 1 , ⋯ ...
  • 参考文档 标量向量布局原则是: 分母布局 ... 目录 标量对向量求导 标量矩阵求导 基本法则 一 标量对向量求导 1.1 , 证明: 因为 所以 1.2 证明: ...
  • 作者:七月本文的目标读者是想快速掌握矩阵、向量求导法则的学习者,主要面向矩阵、向量求导在机器学习中的应用。因此,本教程而非一份严格的数学教材,而是希望帮助读者尽快熟悉相关的求导方法并在实践中应用。另外...
  • 一直以来,空间曲面的隐函数的梯度表示法向量理解不是很深刻,感觉不如向量叉乘来的直观,本文就是利用向量叉乘表明曲面梯度为啥就是法向量

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,212
精华内容 7,284
关键字:

对法向量求导