精华内容
下载资源
问答
  • 偏导数的泰勒公式
    千次阅读
    2021-02-05 03:52:19

    §1 -7 高阶偏导数及泰勒公式 一、高阶偏导数设z = f ( x, y )的偏导数为 f x′( x, y ), f y′ ( x, y ). 由于它们还是 x, y 的函......

    2524人阅读|33次下载 隐函数的求导方法_工学_高等教育_教育专区。高等数学重难点解析 考研复习 第七节 隐函数的求导方法一、一个方程所确定的隐函数 及其导数二......

    人阅读|次下载 第七节多元隐函数求偏导_数学_自然科学_专业资料。第七节 第七章 多元隐函数求偏导 一、 一元隐函数求导 二、 二元隐函数求偏导 三、隐函数......

    (x 2) 2 4 即 目录 上页 下页 返回 结束 练习:求由方程 确定的隐函数 的一阶导数 二阶导数 解: 方程两边对 x 求导,得 dy 2 dx 2 cos y d( 2 ......

    多元微分(06级)隐函数的高阶偏导数解读_中职中专_职业教育_教育专区。多元微分(06级)隐函数的高阶偏导数解读 文档贡献者 三年五年158 贡献于2018-09-27 ......

    0 在点(0,1)的某一邻域内能唯一确定一个单值且有连续导 数、当 x =0 时, y 1的隐函数 y f (x) ,并求这函数的一阶和二阶导数在 x =0 的值。...

    解: (1)先求一阶偏导. 方程两边对x 求偏导. 注意, u, v 看作 x, y 的函数. 得 1 u x v x 0 2 x 2u u 2v v 0 即, ux vx 1 uux ......

    隐函数求导方法: 设方程F(x, y)=0 确定 y 是 x 的函数并且可导, 利用复合函数求导公式可以求出隐函数 y 对x的导数. 具体求法: 对方程 两边关于 x ......

    1 ) 的某邻域内能 唯一确定一个单值可导、 唯一确定一个单值可导、且x = 0 时 y = 1 的隐函数 y = f ( x ) ,并求这函数的一阶和二阶导数在x......

    2 2. x +y ?y 注 这组公式不太好记,具体做题时应 这组公式不太好记, 用的是其基本思想 关于隐函数求二阶偏导数为例, 主要有三种方法: 以 F ( x ......

    设 有连续的一阶偏导数 , 又函数 分别由下列两式确定 : ? exy ? xy ? 2 , ex ? x?z sin t d t , 0t 解: 两个隐函数方程两边对 x 求导, 得......

    2 d2y 例4 求由方程 x ? y ? sin y ? 0 所确定的隐函数的二阶导数 2 . dx 解 由隐函数的求导法,得 于是 1 ? y? ? cos y ? y? ? 0, ......

    0 时 y ? 1的隐函数 y ? f ( x) , 求这函数的一阶和二阶导数在 x ? 0 的值. 证令 F ( x, y) ? x2 ? y 2 ?1, 则 Fx ? 2 x, Fy......

    0 时 y ? 1 的隐 函数 y ? f ( x ) ,并求这函数的一阶和二阶导数在 x ? 0 的值 . 解令 F ( x , y) ? x 2 ? y 2 ? 1, 则 Fx ?...

    的导数和高阶导数 主要任务:熟练掌握隐函数求法, 主要任务:熟练掌握隐函数求法, 了解高阶导数的概念, 了解高阶导数的概念,熟练掌握初 等函数的高阶导数的求 ......

    y2 1 0 在点(0,1)的某一邻域内能唯一确定一个单值且有连续 导数、当 x=0 时,y 1 的隐函数 y f(x),并求这函数的一阶和二阶导数在 x=0 的值。...

    ( u, y ) Gu Gv 二、隐函数的求导法 下面,总假设隐函数存在且可导, 在此前提下来讨论求隐函数的导数或偏导数的方法。 1、一个方程的情形 (1) F ( x......

    例1 设方程 x2 y2 1 0在点(0,1)的某邻域内 能唯一确定一个可导、且 x 0时 y 1的隐函数 y f ( x),求这函数的一阶和二阶导 数在 x 0的值.......

    高数 隐函数偏导数的求法及其应用_理学_高等教育_教育专区 7066人阅读|371次下载 标签: 理学| 隐函数| 偏导数| 高数|高数 隐函数偏导数的求法及其应用_......

    多元复合函数的一阶`二阶偏导数的求法课程名称 高等数学 授课周次 第 15 周第 2 次 授课方式 课堂讲授 第六章、第六节 复合函数与隐函数的微分法(1) 2 ......

    更多相关内容
  • 最小二乘和回归线、拉格朗日乘数、二元泰勒多项式、带约束变量的偏导数33.1 最小二乘和回归线33.2 拉格朗日乘数(寻找受约束函数的极值)33.3 带两个约束条件的拉格朗日乘数33.4 二元泰勒多项式(为二元函数提供所有...

    33. 最小二乘和回归线、拉格朗日乘数、二元泰勒多项式、带约束变量的偏导数

    33.1 最小二乘和回归线

    33.2 拉格朗日乘数(寻找受约束函数的极值)

    有时我们需要找到一个函数的极值,这个函数的定义域被限定在平面的某个特定子集内,例如,一个圆形区域,一个封闭的三角形区域,或者沿着一条曲线。


    例1:



    例2:

    33.3 带两个约束条件的拉格朗日乘数

    许多问题要求我们找到可导函数 f ( x , y , z ) f(x,y,z) f(x,y,z) 的极值,这个可导函数受两个约束条件:
    g 1 ( x , y , z ) = 0 、 g 2 ( x , y , z ) = 0 g_1(x,y,z)=0、g_2(x,y,z)=0 g1(x,y,z)=0g2(x,y,z)=0


    例子:

    33.4 二元泰勒多项式(为二元函数提供所有阶的多项式逼近)

    二阶导数判别法的推导

    33.5 线性估计的误差公式


    例子:

    33.6 带约束变量的偏导数

    决定哪些变量是自变量,哪些变量是因变量

    例子:

    当函数 w = f ( x , y , z ) w=f(x,y,z) w=f(x,y,z) 中的变量被另一个方程约束时,如何找到 ∂ w ∂ x \frac{\partial w}{\partial x} xw

    例1:

    例2:

    展开全文
  • 美好的目标函数求未知数的偏导数是一个漂亮表达式,会让你惊叹到数学如此婀娜多娇。    如果有人能够求得未知变量的解析表达式,那该是多么幸福的事情,现实是残酷的。(我知道你想说伪逆是最小二乘的解析表达式...

    前记

       无论是机器学习还是深度学习,都是构造目标函数,这个目标函数内部有很多未知变量,我们的目标就是求得这些未知变量。
       那么如何构造目标函数?这是一个非常优美的话题(本文未讲,先欠着)。美好的目标函数求未知数的偏导数是一个漂亮表达式,会让你惊叹到数学如此婀娜多娇。
       如果有人能够求得未知变量的解析表达式,那该是多么幸福的事情,现实是残酷的。(我知道你想说伪逆是最小二乘的解析表达式,然后呢……难道你就打算只学会一个最简单的最小二乘吗?)。为此大部分都是采用梯度下降(那些别的神奇的算法都是基于梯度下降),那何为梯度下降?
       如: L = f ( x ) L=f(x) L=f(x),采用泰勒(不认识泰勒,就假装不存在这两个字)一阶导数展开:
    f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) f(x) = f(x_0)+f^{'}(x_0)(x-x_0) f(x)=f(x0)+f(x0)(xx0)
       想求得 f ( x ) f(x) f(x)的最小值,我先蒙一个 x 0 x_0 x0,然后我就拼命的更新 x n e w x^{new} xnew,令每次更新的差值为 Δ x = x n e w − x 0 \Delta x = x^{new}-x_0 Δx=xnewx0,则:
    f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) = f ( x 0 ) + f ′ ( x 0 ) Δ x f(x) = f(x_0)+f^{'}(x_0)(x-x_0)= f(x_0)+f^{'}(x_0)\Delta x f(x)=f(x0)+f(x0)(xx0)=f(x0)+f(x0)Δx
    Δ x = − η ⋅ f ′ ( x 0 ) ( η > 0 ) \Delta x = -\eta \cdot f^{'}(x_0) (\eta>0) Δx=ηf(x0)η>0时,
    f ( x ) = f ( x 0 ) − η ⋅ f ′   2 ( x 0 ) f(x) = f(x_0) - \eta \cdot f^{'^~2}(x_0) f(x)=f(x0)ηf 2(x0)
       至少我每次 f ( x n e w ) f(x^{new}) f(xnew)总比我之前 f ( x 0 ) f(x_0) f(x0) 要减少一点点 η ⋅ f ′   2 ( x 0 ) \eta \cdot f^{'^~2}(x_0) ηf 2(x0)吧(此话不严谨,因为学习率很大的时候,你就会筐瓢)。那个 η \eta η就是梯度学习率。
       如果你觉得不够精确,我要在二阶泰勒展开,那就是“牛顿法”。
       本文通篇就是在围绕着如何求一阶导数展开。

    如何求解一阶导数

       学习数学,总是在学习的时候很痛苦,这个鬼画符得出的结论要表达什么?我学了有什么用?用起来的时候发现“数学真香”。所以本文尽量每讲一个知识点时都拼凑深度学习或者机器学习中的知识点。
       先刷一个链式法则:
       所谓的链式法则,其实就是把一个个好大巴大的函数当做一个整体,求全微分,然后逐步肢解一个个内部函数。
    在这里插入图片描述
       如图所示, J = F ( f ( x ) , g ( x ) ) J = F(f(x),g(x)) J=F(f(x),g(x));
       求全微分:
    Δ J = F f ′ ⋅ Δ f + F g ′ ⋅ Δ g \Delta J = F^{'}_{f}\cdot \Delta f + F^{'}_{g}\cdot \Delta g ΔJ=FfΔf+FgΔg
       又因为: Δ f = f ′ ⋅   Δ x ; Δ g = g ′ ⋅   Δ x \Delta f = f^{'}\cdot\ \Delta x;\Delta g = g^{'}\cdot\ \Delta x Δf=f ΔxΔg=g Δx从而:
    Δ J = F f ′ ⋅ f ′ ⋅   Δ x + F g ′ ⋅ g ′ ⋅   Δ x \Delta J = F^{'}_{f}\cdot f^{'}\cdot\ \Delta x+ F^{'}_{g}\cdot g^{'}\cdot\ \Delta x ΔJ=Fff Δx+Fgg Δx
    写成链式:
    ∂ J ∂ x = ∂ J ∂ f ⋅ ∂ f ∂ x + ∂ J ∂ g ⋅ ∂ g ∂ x \frac{\partial J}{\partial x} = \frac{\partial J}{\partial f}\cdot\frac{\partial f}{\partial x}+\frac{\partial J}{\partial g}\cdot\frac{\partial g}{\partial x} xJ=fJxf+gJxg
      总结一下链式法则,总是需要找到变量至目标的路径,然后依次从后往前展开。

    1.实数对向量求偏导

    f ( x ) = a T x = x T a f(x) = \bm{a}^T\bm{x}= \bm{x}^T\bm{a} f(x)=aTx=xTa
    其中 x = [ x 1 , x 2 , x i , . . .   , x n ] T , a = [ a 1 , a 2 , a i , . . .   , a n ] T \bm{x}=[x_1,x_2,x_i,...\ ,x_n]^T,\bm{a}=[a_1,a_2,a_i,...\ ,a_n]^T x=[x1,x2,xi,... ,xn]T,a=[a1,a2,ai,... ,an]T
    ∵ f ( x ) = ∑ i = 1 n a i x i \because f(x) = \sum\limits_{i=1}^n a_ix_i f(x)=i=1naixi
    ∂ f ∂ x i = a i \frac{\partial f}{\partial x_i} = a_i xif=ai
    ∴ ∂ f ∂ x = [ a 1 , a 2 , a i , . . .   , a n ] T = a \therefore\quad\frac{\partial f}{\partial \bm{x}} =[a_1,a_2,a_i,...\ ,a_n]^T=\bm{a} xf=[a1,a2,ai,... ,an]T=a
      一个实数对一个列向量求导数,结果还是一个列向量。其实记忆起来就按照 f ( x ) = a ⋅ x , ( a , x 为 实 数 ) f(x) =a\cdot x,(a,x为实数) f(x)=axa,x来记忆,只是结果必须要与维度对齐。
      个人建议所有的导数在不太熟悉的情况下,对向量以及矩阵求导都要带上维度
      比如 f ( x ) = x T a f(x) = \bm{x}^T\bm{a} f(x)=xTa, f ( x ) f(x) f(x)对x求导数立马想到 f ( x ) = a ⋅ x f(x)=a\cdot x f(x)=ax,这个肯定知道一元函数的导数: f ′ ( x ) = a f'(x)=a f(x)=a,但是还在犹豫当对向量求偏导数时,结果为 a a a还是 a T a^T aT ?显然对列向量偏导数应该还是为列向量,因此:
    f ′ ( x ) n × 1 = a n × 1 \mathop{f'(x)}\limits_{n\times1}=\mathop{\bm{a}}\limits_{n\times1} n×1f(x)=n×1a
      现在就可以轻松应对机器学习中的LR(逻辑斯蒂回归)分析(仅考虑一个样本样本,该样本的信息为 x \bm{x} x向量,标签为y取值等于0或者等于1)。
    z = ω T x z = \bm{\omega}^T\bm{x} z=ωTx
    a = f ( z ) = 1 1 + e − z a = f(z)=\frac{1}{1+e^{-z}} a=f(z)=1+ez1
    损 失 函 数 : J = − y l n ( a ) − ( 1 − y ) l n ( 1 − a ) 损失函数:J=-yln(a)-(1-y)ln(1-a) :J=yln(a)(1y)ln(1a)
    求得 ∂ J / ∂ z = ( ∂ J / ∂ a ) ⋅ ( ∂ a / ∂ z ) = ( a − y ) \partial J/\partial z =(∂J/∂a)\cdot(∂a/∂z)= (a-y) J/z=(J/a)(a/z)=(ay)
    由实数对向量求偏导的结论, ∂ z / ∂ ω = x \partial z/\partial\bm{\omega} = \bm{x} z/ω=x
    ∂ J / ∂ ω = ( ∂ J / ∂ z ) ⋅ ( ∂ z / ∂ ω ) = ( a − y ) ⋅   x \partial J/\partial \bm{\omega} =(∂J/∂z)\cdot(∂z/∂\bm{\omega})= (a-y)\cdot \ \bm{x} J/ω=(J/z)(z/ω)=(ay) x
      是不是发现 b b b不见了,将 x \bm{x} x扩展为 [ x ; 1 ] [\bm{x};1] [x1], ω \bm{\omega} ω扩展为 [ ω ; b ] [\bm{\omega};b] [ωb]即可。

    2.向量对向量、矩阵求偏导

      先给出多层全连接神经网络并经过 s o f t m a x softmax softmax进行m个分类的结构图。
    在这里插入图片描述
      目的是求得所有层之间的V和b参数,因为所有的 z i → a i z^i\to a^i ziai为非线性函数,且未含有任何需要辨识的参数。除了最后的 s o f t m a x softmax softmax,甚至所有的非线性函数都是单输入单输出函数。

    2.1从后往前递推,先求 ∂ J / ∂ z L \partial J/\partial z^L J/zL,其结论为:

    ∂ J / ∂ z L = a L − y \partial J/\partial z^L=a^L-\bm{y} J/zL=aLy
      似曾相识,和LR中 ∂ J / ∂ z = ( ∂ J / ∂ a ) ⋅ ( ∂ a / ∂ z ) = ( a − y ) \partial J/\partial z =(∂J/∂a)\cdot(∂a/∂z)= (a-y) J/z=(J/a)(a/z)=(ay)型式相同,这就是前记中描述的,构造较好的目标函数能够得到漂亮的数学型式。
      关于 s o f t m a x softmax softmax层的偏导数求法,本文不做进一步分析,搜索“softmax反向传播”,都有详细的推导。只说一下思路,以对 z i L z^L_i ziL一个元素求偏导为例,先要 J J J对所有的 a j L a^L_j ajL求偏导,因为 a L a^L aL层所有元素都与 z i L z^L_i ziL有关系,而且当 j ≠ i j \not= i j=i时, a j L a^L_j ajL仅有分母中含有 z i L z^L_i ziL j = i j=i j=i时, a j L a^L_j ajL分子、分母中含有 z i L z^L_i ziL(这就是上图中softmax层我将水平连接线画成了虚线,以与 j ≠ i j \not= i j=i区别开)。

    2.2继续求 ∂ J / ∂ a L − 1 \partial J/\partial a^{L-1} J/aL1

      上面已经求得 ∂ J / ∂ z L \partial J/\partial z^L J/zL,现在找其与 ∂ J / ∂ a L − 1 \partial J/\partial a^{L-1} J/aL1的关系。
    z L = V L ⋅   a L − 1 z^L = V^L\cdot \ a^{L-1} zL=VL aL1
    ∴ Δ z L ⟹ V L ⋅   Δ a L − 1 \therefore \Delta z^L \Longrightarrow V^L\cdot \ \Delta a^{L-1} ΔzLVL ΔaL1
    Δ J ⇒ ( ∂ J ∂ z L ) T ⋅ Δ z L ⇒ ( ∂ J ∂ z L ) T ⋅   ( V L ⋅   Δ a L − 1 ) ⇒ ( ∂ J ∂ z L ) T ⋅   V L ⋅ Δ a L − 1 ⇒ ( ( V L ) T ⋅ ∂ J ∂ z L ) T ⋅ Δ a L − 1 \begin{aligned} \Delta J & \Rightarrow (\frac{\partial J}{\partial z^L})^T\cdot\Delta z^L\\ & \Rightarrow (\frac{\partial J}{\partial z^L})^T\cdot\ (V^L\cdot \ \Delta a^{L-1}) \\ &\Rightarrow (\frac{\partial J}{\partial z^L})^T\cdot\ V^L\cdot\Delta a^{L-1}\\ &\Rightarrow ((V^{L})^T\cdot\frac{\partial J}{\partial z^L})^T\cdot\Delta a^{L-1}\\ \end{aligned} ΔJ(zLJ)TΔzL(zLJ)T (VL ΔaL1)(zLJ)T VLΔaL1((VL)TzLJ)TΔaL1
      同时:
    Δ J ⇒ ( ∂ J ∂ a L − 1 ) T ⋅ Δ a L − 1 \Delta J \Rightarrow (\frac{\partial J}{\partial a^{L-1}})^T\cdot\Delta a^{L-1} ΔJ(aL1J)TΔaL1
      与上面的“等式”对比可知:
    ∴ ∂ J ∂ a L − 1 = ( V L ) T ⋅ ∂ J ∂ z L (1) \therefore\frac{\partial J}{\partial a^{L-1}} = (V^{L})^T\cdot\frac{\partial J}{\partial z^L} \tag{1} aL1J=(VL)TzLJ(1)

       “ ⇒ ” “\Rightarrow” 这个符号在本文中意味着啥?先别急,你就当做一个等于号来看待最后再解释。

    2.3继续求 ∂ J / ∂ V L \partial J/\partial V^{L} J/VL

      这次打算从最基本的 V L V^L VL矩阵单个元素 V i j L V^L_{ij} VijL处理开始,然后逐步分析行 V i 行 L V^L_{i行} ViL,然得出整个矩阵的偏导数 ∂ J / ∂ V L \partial J/\partial V^{L} J/VL
    ∵ ∂ z i L ( z i L = V i 行 ⋅ a L − 1 ) ∂ V i j = a j L − 1 \because \frac{\partial z^L_i(z^L_i = V_{i行}\cdot a^{L-1})}{\partial V_{ij}} =a^{L-1}_j VijziL(ziL=ViaL1)=ajL1
    ∴ ∂ J ∂ V i j = ∂ J ∂ z i L ⋅ ∂ z i L ∂ V i j = ∂ J ∂ z i L ⋅ a j L − 1 (对单个元素求偏导) \therefore \frac{\partial J}{\partial V_{ij}} = \frac{\partial J}{\partial z^L_i} \cdot \frac{\partial z^L_i}{\partial V_{ij}} = \frac{\partial J}{\partial z^L_i}\cdot a^{L-1}_j \tag{对单个元素求偏导} VijJ=ziLJVijziL=ziLJajL1()
    ∴ ∂ J ∂ V i 行 = ∂ J ∂ z i L ⋅ ( a L − 1 ) T (对行求偏导) \therefore \frac{\partial J}{\partial V_{i行}} = \frac{\partial J}{\partial z^L_i}\cdot (a^{L-1})^T \tag{对行求偏导} ViJ=ziLJ(aL1)T()
      扩展至对矩阵求偏导:
    ∴ ∂ J ∂ V = [ ∂ J ∂ z 1 L ⋅ ( a L − 1 ) T ⋮ ∂ J ∂ z m L ⋅ ( a L − 1 ) T ] = ∂ J ∂ z L ⋅ ( a L − 1 ) T (2) \therefore \frac{\partial J}{\partial V} =\left[ \begin{matrix} \frac{\partial J}{\partial z^L_1}\cdot (a^{L-1})^T \\ \vdots \\ \frac{\partial J}{\partial z^L_m}\cdot (a^{L-1})^T \end{matrix} \right] = \frac{\partial J}{\partial z^L}\cdot (a^{L-1})^T \tag{2} VJ=z1LJ(aL1)TzmLJ(aL1)T=zLJ(aL1)T(2)
      关于对 V V V的偏导数求法是按照定义,一五一十一板一眼的求,后面在解释" ⇒ \Rightarrow "符号时,会进一步通过矩阵的方法来获得相同的表达式。

    继续求 ∂ J / ∂ z L − 1 \partial J/\partial z^{L-1} J/zL1

      以图中 a L − 1 = δ ( z L − 1 ) a^{L-1} = \delta(z^{L-1}) aL1=δ(zL1)为例,显然: ∂ a i L − 1 / ∂ z i L − 1 = δ ( z i L − 1 ) ⋅ ( 1 − δ ( z i L − 1 ) ) \partial a^{L-1}_i/\partial z^{L-1}_i = \delta(z^{L-1}_i)\cdot(1-\delta(z^{L-1}_i)) aiL1/ziL1=δ(ziL1)(1δ(ziL1))
    ∴ ∂ J / ∂ z = ∂ J ∂ a ⊙ ∂ a ∂ z = ∂ J ∂ a ⊙ δ ( z L − 1 ) ⊙ ( 1 − δ ( z L − 1 ) ) \therefore \partial J/\partial z =\frac{\partial J}{\partial a} \odot \frac{\partial a}{\partial z}= \frac{\partial J}{\partial a} \odot \delta(z^{L-1})\odot(1-\delta(z^{L-1})) J/z=aJza=aJδ(zL1)(1δ(zL1))
      检查一下这个表达式中,所有 ⊙ \odot 两边的表达式都为 k × 1 k\times1 k×1维的列向量。个人感觉上式凭直觉是显而易见的,下面开始推导:
    ∂ J ∂ a ⊙ Δ a ⇒ ∂ J ∂ a ⊙ [ δ ( z L − 1 ) ⊙ ( 1 − δ ( z L − 1 ) ) ⊙ Δ z ] ⇒ [ ∂ J ∂ a ⊙ δ ( z L − 1 ) ⊙ ( 1 − δ ( z L − 1 ) ) ] ⊙ Δ z \begin{aligned} \frac{\partial J}{\partial a} \odot \Delta a &\Rightarrow\frac{\partial J}{\partial a}\odot [\delta(z^{L-1})\odot(1-\delta(z^{L-1}))\odot \Delta z] \\ &\Rightarrow [\frac{\partial J}{\partial a} \odot\delta(z^{L-1})\odot(1-\delta(z^{L-1}))]\odot \Delta z\end{aligned} aJΔaaJ[δ(zL1)(1δ(zL1))Δz][aJδ(zL1)(1δ(zL1))]Δz
      上式为左右两个列向量"相等",代表 两个列向量所有元素对应相等,那两边向量元素和也必然相等
    Δ J ⇒ ( ∂ J ∂ a ) T ⋅ Δ a ⇒ [ ∂ J ∂ a ⊙ δ ( z L − 1 ) ⊙ ( 1 − δ ( z L − 1 ) ) ] T ⋅   Δ z \Delta J \Rightarrow(\frac{\partial J}{\partial a})^T \cdot \Delta a \Rightarrow [\frac{\partial J}{\partial a} \odot\delta(z^{L-1})\odot(1-\delta(z^{L-1}))]^T\cdot\ \Delta z ΔJ(aJ)TΔa[aJδ(zL1)(1δ(zL1))]T Δz
      同时: Δ J ⇒ ( ∂ J ∂ z L − 1 ) T ⋅ Δ z L − 1 \Delta J \Rightarrow(\frac{\partial J}{\partial z^{L-1}})^T\cdot\Delta z^{L-1} ΔJ(zL1J)TΔzL1
       ∴ ∂ J / ∂ z L − 1 = ∂ J ∂ a L − 1 ⊙ δ ( z L − 1 ) ⊙ ( 1 − δ ( z L − 1 ) ) (3) \therefore\partial J/\partial z^{L-1} =\frac{\partial J}{\partial a^{L-1}} \odot\delta(z^{L-1})\odot(1-\delta(z^{L-1})) \tag{3} J/zL1=aL1Jδ(zL1)(1δ(zL1))(3)
      老实说,公式(3)的推导我也不知道是不是在画蛇添足……
      先将第2节内容《向量对向量、矩阵求偏导》做个总结:
      公式1,对向量的偏导数传递至向量的偏导数;两个向量关系为矩阵相乘。
      公式2,对向量的偏导数传递至矩阵的偏导数;
      公式3,对向量的偏导数传递至向量的偏导数;两个向量之间元素为一一对应的函数关系。
      有了以上公式三联,就可以通过梯度下降实现全连接神经网络多分类的参数辨识。2.1节能够得到对 z L z^L zL的偏导数,然后通过公式(2)得到 L L L层的参数 V L V^L VL,结合公式(1)(3)即可往前推进一层至 L − 1 L-1 L1层,依次类推(本文没有考虑偏置项 b b b,原理类似)。

    3.Hadamard积求偏导

      其实上述2.3节里面就有hadamard积的微分,这里还是单独陈列出来。
      已知: z = x ⊙ y ; J = f ( z ) ; z=x \odot y;J=f(z); z=xy;J=f(z);各个变量的维度: z [ m × 1 ] , x [ m × 1 ] , y [ m × 1 ] , J [ 1 × 1 ] z[m\times1],x[m\times1],y[m\times1],J[1\times1] z[m×1],x[m×1],y[m×1],J[1×1]
    求: ∂ J / ∂ x ? \partial J/\partial x? J/x?
    ∂ J / ∂ x = [ ∂ J ∂ x 1   ⋮ ∂ J ∂ x m ] = [ ∂ J ∂ z 1 ⋅ y 1   ⋮ ∂ J ∂ z m ⋅ y m ] = ∂ J ∂ z ⊙ y = y ⊙ ∂ J ∂ z (4) \partial J/\partial x = \left[ \begin{matrix} \frac{\partial J}{\partial x_1}\ \\ \vdots \\ \frac{\partial J}{\partial x_m} \end{matrix} \right] =\left[ \begin{matrix} \frac{\partial J}{\partial z_1}\cdot y_1\ \\ \vdots \\ \frac{\partial J}{\partial z_m}\cdot y_m \end{matrix} \right]= \frac{\partial J}{\partial z}\odot y=y \odot \frac{\partial J}{\partial z}\tag{4} J/x=x1J xmJ=z1Jy1 zmJym=zJy=yzJ(4)
      可我还是喜欢上面画蛇添足的思路。

    4.所有偏导推导思路

      4.1当仅有华山一条道,且仅改变单个变量时,可以有如下表达式:
    Δ J = ( ∂ J / ∂ f ) T ⋅ Δ f = ( ∂ J / ∂ x ) T ⋅ Δ x (I) \Delta J = (\partial J/ \partial f)^T\cdot \Delta f= (\partial J/ \partial x)^T\cdot \Delta x \tag{I} ΔJ=(J/f)TΔf=(J/x)TΔx(I)
    其中维度: f [ m × 1 ] , x [ k × 1 ] , J [ 1 × 1 ] f[m\times1],x[k\times1],J[1\times1] f[m×1],x[k×1],J[1×1]
      何为华山一条道?以全微分图为例,你会发现上式是不对的,但是如果去掉 g g g路径则没有问题。
      何为仅改变单个变量?以 z L = V L ⋅   a L − 1 z^L = V^L\cdot \ a^{L-1} zL=VL aL1为例,实则:
    Δ z L = Δ V L ⋅   a L − 1 + V L ⋅ Δ a L − 1 \Delta z^L = \Delta V^L\cdot \ a^{L-1}+V^L\cdot \Delta a^{L-1} ΔzL=ΔVL aL1+VLΔaL1
      但是如果仅考虑对单个变量 a L − 1 a^{L-1} aL1求偏导(即认为别的变量为常量,如 V L V^L VL变量),是可以认为:
    Δ J = ( ∂ J / ∂ z L ) T ⋅ Δ z L ⇒ ( ∂ J / ∂ a L − 1 ) T ⋅ Δ a L − 1 \Delta J =(\partial J/ \partial z^L)^T\cdot \Delta z^L \Rightarrow (\partial J/ \partial a^{L-1})^T\cdot \Delta a^{L-1} ΔJ=(J/zL)TΔzL(J/aL1)TΔaL1
      这也是为什么之前说" ⇒ \Rightarrow “符号直接当作等号”="来看。有了4.1则公式(1)的推导手到擒来。
      在满足4.1的条件下,矩阵偏导数全微分表达式又是如何呢?
      4.2矩阵偏导数全微分表达式
      显然不是 Δ J = ( ∂ J / ∂ V ) T ⋅ Δ V \Delta J = (\partial J/ \partial V)^T\cdot \Delta V ΔJ=(J/V)TΔV,维度对不上,正确的表达式应该是:
    Δ J = T r ( ( ∂ J / ∂ V ) T ⋅ Δ V ) (II) \Delta J = Tr((\partial J/ \partial V)^T\cdot \Delta V)\tag{II} ΔJ=Tr((J/V)TΔV)(II)
      其中 T r ( ) Tr() Tr()为矩阵的迹,矩阵的迹有性质: T r ( A ⋅ B ) = T r ( B ⋅ A ) Tr(A\cdot B)=Tr(B\cdot A) Tr(AB)=Tr(BA)。公式(II)看起来很复杂实则就是两个表达式的对应元素相乘的和。
      为此,再把公式(2)用4.2的知识推导一遍:
    Δ J = ( ∂ J / ∂ z ) T ⋅ Δ z ( ∵ Δ z ⇒ Δ V ⋅ a ) = ( ∂ J / ∂ z ) T ⋅ ( Δ V ⋅ a ) ( ∵ 行 向 量 乘 以 列 向 量 等 于 列 向 量 乘 以 行 向 量 的 迹 ) = T r ( ( Δ V ⋅ a ) ⋅ ( ∂ J / ∂ z ) T ) = T r ( Δ V ⋅ a ⋅ ( ∂ J / ∂ z ) T ) = T r ( Δ V ⋅ ( ∂ J / ∂ z ⋅ a T ) T ) = T r ( ( ∂ J / ∂ z ⋅ a T ) T ⋅ Δ V ) \begin{aligned} \Delta J & =(\partial J/ \partial z)^T\cdot \Delta z \qquad (\because\Delta z \Rightarrow \Delta V \cdot a)\\ & = (\partial J/ \partial z)^T\cdot (\Delta V \cdot a)\\ & (\because 行向量乘以列向量等于列向量乘以行向量的迹)\\ & =Tr( (\Delta V \cdot a)\cdot (\partial J/ \partial z)^T) \\ & =Tr( \Delta V \cdot a\cdot (\partial J/ \partial z)^T) \\ & =Tr( \Delta V \cdot (\partial J/ \partial z\cdot a^T)^T)\\ & =Tr((\partial J/ \partial z\cdot a^T)^T \cdot \Delta V) \end{aligned} ΔJ=(J/z)TΔz(ΔzΔVa)=(J/z)T(ΔVa)()=Tr((ΔVa)(J/z)T)=Tr(ΔVa(J/z)T)=Tr(ΔV(J/zaT)T)=Tr((J/zaT)TΔV)
      与公式(II)对比便知: ∂ J / ∂ V = ∂ J / ∂ z ⋅ a T \partial J/ \partial V = \partial J/ \partial z\cdot a^T J/V=J/zaT,可见利用4.1以及4.2的知识,可以相对较为轻松的完成公式(1)(2)的推导。
      关于hadamard积的微分求导,也可以利用4.1,4.2的知识(再次重复公式(3))。
    ∂ J / ∂ z ⊙ Δ z = ∂ J / ∂ z ⊙ ( y ⊙ Δ x ) = ( ∂ J / ∂ z ⊙ y ) ⊙ Δ x \partial J/ \partial z\odot\Delta z = \partial J/ \partial z\odot (y\odot\Delta x)=(\partial J/ \partial z\odot y)\odot\Delta x J/zΔz=J/z(yΔx)=(J/zy)Δx
      等式左右两个向量相等则其所有元素之和相等。
    ( ∂ J / ∂ z ) T ⋅ Δ z = ( ∂ J / ∂ z ⊙ y ) T ⋅ Δ x (\partial J/ \partial z)^T\cdot\Delta z =(\partial J/ \partial z\odot y)^T\cdot\Delta x (J/z)TΔz=(J/zy)TΔx
    ∴ ∂ J / ∂ x = ∂ J / ∂ z ⊙ y \therefore \partial J/ \partial x = \partial J/ \partial z\odot y J/x=J/zy
      实际上, a T ⋅ ( b ⊙ c ) = ( a ⊙ b ) T ⋅ c a^T\cdot(b\odot c) = (a\odot b)^T\cdot c aT(bc)=(ab)Tc(凭直觉该式应该是没错的, 到底有没有这个性质我也没去查)
    ( ∂ J / ∂ z ) T ⋅ Δ z = ( ∂ J / ∂ z ) T ⋅ ( y ⊙ Δ x ) = ( ∂ J / ∂ z ⊙ y ) T ⋅ Δ x (\partial J/ \partial z)^T\cdot\Delta z = (\partial J/ \partial z)^T\cdot (y\odot\Delta x)=(\partial J/ \partial z\odot y)^T\cdot\Delta x (J/z)TΔz=(J/z)T(yΔx)=(J/zy)TΔx
      通过总结再回过来看偏微分的链式表达式,似乎能够闭卷了,可是如果纯粹靠推导难免有点容易出错。此时想起来高中数学的对联“奇变偶不变,符号看象限”。如果用这种型式描述偏微分就是:“型式由原式决定,左右转置看维度”。"型式由原式决定”:比如hadamard积的微分传递还是hadamard积的形式; z = V ⋅ a z=V\cdot a z=Va微分传递后还是矩阵相乘的形式,“左右转置看维度”: ∂ J / ∂ a \partial J/\partial a J/a ∂ J / ∂ z \partial J/\partial z J/z定相差一个 V T V^T VT,,至于该转置应该左乘还是右乘 ∂ J / ∂ z \partial J/\partial z J/z则看维度匹配。 ∂ J / ∂ a \partial J/\partial a J/a维度为 [ k × 1 ] [k\times 1] [k×1], ∂ J / ∂ z \partial J/\partial z J/z维度为 [ m × 1 ] [m\times 1] [m×1], V V V维度为 [ m × k ] [m\times k] [m×k],在维度匹配上, [ k × 1 ] = [ m × k ] T ⋅ [ m × 1 ] [k\times 1] = [m\times k]^T\cdot [m\times 1] [k×1]=[m×k]T[m×1]
    ∴ ∂ J / ∂ a = V T ⋅ ∂ J / ∂ z \therefore \partial J/\partial a=V^T\cdot\partial J/\partial z J/a=VTJ/z

    5.展望

      这篇文章写完也算给自己对反向传播的一个总结吧,也是对自己的一个交代。还有卷积神经网络中对卷积内核的偏导数求导和层之间偏导链式没有写,也不晓得要哪天才会再来写,毕竟敲公式太遭罪了,还是一笔一纸的流畅。
      真理总是越辩越明,如果觉得以上博文有任何问题欢迎留言。

    展开全文
  • 深度之眼(十八)——偏导数与矩阵的求导

    一、偏导数

    在这里插入图片描述
    在这里插入图片描述

    对某个变量求偏导,则其余变量看成常数


    在这里插入图片描述

    可以直接认为成立,不必拘泥条件

    二、多元复合函数的求导法则,链式求导法则

    在这里插入图片描述

    这里举了一个不错的技巧,可以看z到t有几条路径
    在这里插入图片描述
    对多元时求偏导的方法
    比如对x求偏导,就看到x的路径,有几条,分别经过什么

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    关键是画准链式关系

    三、方向导数与梯度及其应用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    举例

    在这里插入图片描述

    在这里插入图片描述
    梯度的正方向,是梯度增长最快的方向。
    梯度的负方向,是梯度减小最快的方向

    四、多元函数泰勒公式与海森炬阵

    一般用到二阶

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    海森矩阵是个对称矩阵

    五、多元角数的极值

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    六、距阵的求导

    在这里插入图片描述
    在这里插入图片描述

    f(x)对其求偏导,就是个列向量,有几个变量,就有行
    右值都是看成实数

    在这里插入图片描述

    对x求偏导
    对x求偏导
    对x求偏导
    对a求偏导
    fx = Ax
    A
    fx = x^Tx
    Ax+A^Tx
    fx = a^Tx
    a
    x

    解释之前的J

    在这里插入图片描述
    在这里插入图片描述

    所以Ja求偏导等于0,过程在上面

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    七、矩阵的求导在深度学习中的应用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 我们接触到的很多数学公式涉及到偏导数,那么图像的偏导数怎么求呢? 我们可以认为:图像就是一个复杂的曲面,我们要想得到曲面点的梯度,就需要对该点求偏导。 求偏导的输入:附近点的灰度值 求偏导的输出:一个数 ...
  • 公式定义如下: 再强调一遍,导数f’(x)f’(x)f’(x)是函数f(x)f(x)f(x)在xxx轴上某一点处沿着xxx轴正方向的变化率。 直观地看,也就是在xxx轴上某一点处,如果f’(x)>0f’(x)>0f’(x)>0,说明f(x)f(x)f(x...
  • 一元泰勒公式的几个变体很重要
  • 雅可比矩阵,海塞矩阵,牛顿法泰勒公式,雅可比矩阵,海塞矩阵,牛顿法泰勒公式是一个在函数上取某点的近似值,如果函数足够平滑的话,在已知函数在某一点的各阶数值的情况之下,泰勒公式可以用这些数值做系数...
  • 二元函数二阶混合偏导数的近似计算式与误差阶推导 问题 引理一: 引理二: 引理三: 引理四: 命题 数值实验 函数一 函数二 结论 问题 假设 f(x,y)f(x,y)f(x,y)在全平面内存在且足够的光滑,求 fxy(x0,y0)f_{xy}(x_0...
  • 泰勒公式与极值

    千次阅读 2019-10-23 14:31:25
    n阶混合偏导类似,只需在某点存在到n阶的连续混合偏导数,那么在这点m阶混合偏导数都与求导顺序无关中值定理 混合偏导交换顺序 fxy(x,y),fyx(x,y)f_{xy}(x,y),f_{yx}(x,y)fxy​(x,y),fyx​(x,y)都在(x0,y0)(x_0,y_0...
  • 泰勒公式和海森矩阵(Hessian-matrix)

    千次阅读 2019-11-06 18:02:05
    这个公式来自于微积分的泰勒定理(Taylor’s theorem),泰勒定理描述了一个可微函数,如果函数足够光滑的话,在已知函数在某一点的各阶数值的情况之下,泰勒公式可以用这些数值做系数构建一个多项式来近似函数...
  • 人工智能之数学基础篇—泰勒公式与拉格朗日乘子法1 泰勒公式出发点2 泰勒公式和麦克劳林公式3 阶数和阶乘的作用4 麦克劳林展开式的应用5 拉格朗日乘子法6 求解拉格朗日乘子法   在数学领域,为了便于研究,一些较...
  • 线性化_泰勒级数_泰勒公式
  • 泰勒公式与极值问题的知识点总结

    千次阅读 2020-05-10 22:11:46
    具体函数求所有二阶偏导数: 这个就很烦,一个比较靠谱的方法就是硬算,先求fx,fyf_x,f_yfx​,fy​,再求fxx,fxy,fyyf_{xx},f_{xy},f_{yy}fxx​,fxy​,fyy​ 注意了,fxy=fyxf_{xy}=f_{yx}fxy​=fyx​的条件是累次...
  • 偏导数 f x ( x 0 , y 0 ) f_x(x_0,y_0) fx​(x0​,y0​)就是曲面被平面 y = y 0 y=y_0 y=y0​所截的曲线在 M 0 M_0 M0​处切线 M 0 T x M_0T_x M0​Tx​对 x x x轴的斜率 偏导数 f y ( x 0 , y 0 ) f_y(x_0,y_0) ...
  • 泰勒公式和Gamma函数

    2020-11-28 12:47:10
    如果函数足够平滑的话,在已知函数在某一点的各阶数值的情况之下,泰勒公式可以用这些数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差泰勒公式,...
  • 泰勒公式

    千次阅读 2016-06-12 14:57:14
    如果函数足够平滑的话,在已知函数在某一点的各阶数值的情况之下,泰勒公式可以用这些数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。 泰勒...
  • 二元函数泰勒公式.pdf

    2021-01-14 15:37:50
    §9.9 二元函数泰勒公式一、问题的提出一元函数的泰勒公式:f (x ) = f (x ) + f ¢(x )(x - x )0 0 0f ¢¢(x ) 2 f ( n ) (x ) n0 0+...
  • 写在前面:重温XGBoost的时候,发现很多基本的数学知识已经忘得差不多了。借温习XGBoost的机会,就重新走一遍与XGBoost...泰勒公式 定义:泰勒公式是一个用函数在某点的信息描述其附近取值的公式。 基本形式: ...
  • 假设有一实值函数 ,如果 的所有二阶偏导数都存在并在定义域内连续,那么函数 的黑塞矩阵为: 或使用下标记号表示为 3 泰勒展开公式 泰勒公式(英语:Taylor's Formula)是一个用函数在某点的信息描述其附近取值的...
  • 黑塞矩阵 泰勒展开公式 设n是一个正整数。如果定义一个包含 a a a的区间上的...黑塞矩阵是由目标函数 f ( X 0 ) f(X_0) f(X0​)在点 X X X处的二阶偏导数组成的 n × n n \times n n×n阶对称矩阵。 百度百科-黑塞矩阵
  • 第二章____一元函数微分学

    千次阅读 多人点赞 2021-04-02 09:38:16
    2.1 导数与微分的概念 2.2 导数公式及求导法则 2.3 高阶导数
  • SymPy 是一个由 Python 语言编写的符号计算库。我将在本文中简要地介绍如何利用 SymPy 进行符号计算。在介绍 SymPy 之前,我们首先要明确何谓符号计算?计算机代数系统又是什么?什么是符号计算 ?......
  • 《三体》读后思考-泰勒展开/维度打击/黑暗森林

    万次阅读 多人点赞 2017-07-22 16:35:48
    有了这个走势信息,我们就能预测在稍微理原点时,函数曲线的大致走向了,这就使得对整个 y = s i n ( x ) y=sin(x) 的画像向前又描了一笔。事实上, y = x y=x 这条直线就是 y = s i n ( x ) y=sin(x) 在原点处的...
  • Hessian)是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵,此函数如下: 如果  f  所有的二阶导数都存在,那么  f  的海森矩阵即: H ( f ) ij ( x )  =  DiDjf ( x ) ...
  • 一元和二元的泰勒展开式

    万次阅读 2018-09-22 22:00:49
    一元函数的泰勒展开式 由高等数学知识可知,对于一元函数f(x)f(x)f(x) 在kkk点,即x=x(k)x=x(k)x=x^{(k)}的泰勒展开式为: f(x)=f(x(k))+f′(x(k))(x−x(k))+12!f′′(x(k))(x−x(k))2+⋯+1n!f(n)(x(k))(x−x(k...
  • ++仅标头库,用于实现3D方向表示及其一阶偏导数(又称Jacobian)之间的转换。 使用Jacobian进行以下直接转换: AA ----- UQ \ / \ / R | | Euler 在哪里 AA:角轴 UQ:单元四元数 R:旋转矩阵 欧拉:任意欧拉角序列 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,267
精华内容 1,306
热门标签
关键字:

偏导数的泰勒公式

友情链接: jxsp.zip