学习到机器学习线性回归和逻辑回归时遇到了梯度下降算法,然后顺着扯出了一堆高数的相关概念理论:导数、偏导数、全微分、方向导数、梯度,重新回顾它们之间的一些关系,从网上和教材中摘录相关知识点。

这段是我的简单总结,如果看不懂没关系,先看下面的定义

  1. 通过函数的极限定义出导数(以一元函数为例)
  2. 函数f(x)在点x0可微的充分必要条件是函数f(x)在点x0处可导
  3. 扩展到多元函数时,衍生出偏导数

请参考马同学的这个回答: https://www.zhihu.com/question/26966355 ,他这篇文章还是较为适合有一定基础的人看的,我推荐先将我所有的内容看完再去看这篇文章才能get到一些点。

从上面这个公式可以看出z是一个二元函数,如果不加下面的2个条件,那么z是没有全导数的。但是如果加了下面2个条件,则z就存在全导数,这时称 z关于t的导数就是全导数。可以看出他本质上就是一个一元函数, 因此全导数只是针对真正的一元函数而言,也就是z中所有的变量x和y都可以用同一个t来表示。对于真正的多元函数是没有全导数这一说的,只有偏导数、偏微分和全微分。

我将全导数放在分割线前是由于全导数对t求导数时,它实际上就是一个一元函数,那么就应该被分到一元函数的区间内。

全导数和全微分是完全不同,全微分是针对多元函数的。

这里往上是 单变量(即一元函数) 导数和微分

导数 本质是一种极限,实际场景中表示切线斜率;

微分 本质是“以值代曲,线性逼近”,让本来对曲线进行运算的操作,转化成对直线进行操作,简化了难度。

单变量(即一元函数)的导数和微分的 关系

我认为这两个的出发点是不一样的,导数是为了求斜率,就是该点的瞬间变化情况;微分是为了将问题简化,用直线代替曲线,线性逼近,毕竟对直线(或线段)的研究是相对容易的,而曲线就相对较难。

单变量导数 <=> 单变量微分(即单变量导数和单变量微分互为 充分必要 )。

---------------------------------------------------------这里是一道华丽的分割线--------------------------------------------------------

这里往下是 多变量 导数和微分 (涉及概念: 偏导数,偏微分,全微分,方向导数,梯度 ):

偏导数 其实和导数一样,仅仅是进行了一个扩展,从原来的一元函数扩展到多元函数,这时就有了偏导数的概念。偏导数和导数一样都是表示切线的斜率。 偏导数只是针对变元(这里的变元是指多元函数中的某一元)的导数。 这时就需要引出一个方向导数了,我们用一个实例还说明为什么需要方向导数。比如一个二元函数,具体公式如下所示,

具体的形状如图所示:

其中A点可以有在xy平面内的(为啥是xy平面呢,我还没有找到一个合理的解释,让我再想想)任意方向的导数。其中有一个方向的导数是变化是最快的,那么这个方向就是梯度的方向,模长就是 梯度 大小。

偏微分和偏导数的出发点不同,偏导数是变化率,偏微分是某一变元的增量给z带来的变化,只不过在某一变元的增量特别小时,可以借用导数的计算方法,但并不是导数。

全微分是针对所有变元的增量给z带来的变化,是从偏微分拓展而来。

梯度是向量,微分是一个数值。

设u=u(x,y,z),首先三维中梯度的定义是gradu=iðu/ðx+jðu/ðy+kðu/ðz,它是一个向量,而全微分du=(ðu/ðx)dx+(ðu/ðy)dy+(ðu/ðz)dz,是用坐标的微小增量dx、dy、dz表示函数u的增量,是一个表达式,和矢量无关,也和切线无关。

下面来说明梯度为什么和切向量(一维切向量就是切线,二维切向量就是切平面)垂直,设曲线x=x(t),y=y(t),z=z(t)是曲面u(x,y,z)=c上的一条曲线(c为常数,u(x,y,z)=c表示等值面),由于该曲线在曲面上,所以x=x(t),y=y(t),z=z(t)满足方程u(x,y,z)=c,即u(x(t),y(t),z(t))=c,利用复合函数求导法则,方程两边同时对t求导数,得 (ðu/ðx)*x‘(t)+(ðu/ðy)*y‘(t)+(ðu/ðz)*z‘(t)=0,所以向量(x'(t),y'(t),z'(t))与向量(ðu/ðx,ðu/ðy,ðu/ðz)垂直。而向量(x'(t),y'(t),z'(t))表示曲线的切向量,向量(ðu/ðx,ðu/ðy,ðu/ðz)表示梯度,所以梯度和切向量垂直。函数u在一点的梯度是一个向量,它的方向是函数u在该点方向导数取得最大值时的方向,它的模等于方向导数的最大值。

全微分与偏导数、偏微分的关系

  • 全微分存在偏导数、偏微分一定存在
  • 偏导数、偏微分存在全微分不一定存在

https://www.zhihu.com/question/26966355

https://blog.csdn.net/fffupeng/article/details/73522425

https://blog.csdn.net/qq_41455420/article/details/79661885?utm_source=blogxgwz2

https://blog.csdn.net/czmacd/article/details/81178650

https://blog.csdn.net/u013066730/article/details/83151829

导数的理解: https://www.zhihu.com/question/28684811

学习到机器学习线性回归和逻辑回归时遇到了梯度下降算法,然后顺着扯出了一堆高数的相关概念理论:导数、偏导数、全微分、方向导数、梯度,重新回顾它们之间的一些关系,从网上和教材中摘录相关知识点。这段是我的简单总结,如果看不懂没关系,先看下面的定义通过函数的极限定义出导数(以一元函数为例) 函数f(x)在点x0可微的充分必要条件是函数f(x)在点x0处可导 扩展到多元函数时,衍生出偏导数...
学习到机器学习线性回归和逻辑回归时遇到了 梯度 下降算法,然后顺着扯出了一堆高数的相关概念理论: 导数 导数 微分 方向 导数 梯度 ,重新回顾它们之间的一些关系,从网上和教材中摘录相关知识点。 通过函数的极限定义出 导数 (以一元函数为例) 函数f(x)在点x0可微的充分必要条件是函数f(x)在点x0处可导 扩展到多元函数时,衍生出 导数 2.2.1 导数 首先要对 导数 有所了解。多变量的函数f(x,y) 可以是三维空间中的曲面 https://blog.csdn.net/ccnt_2012/article/details/83310653
这几天突然想到了优化理论中的 梯度 下降算法,看到了几个名词,愣了一下,虽然之前本科学过,但是好久不复习,后面就只知道概念了,细节理解需要复习呀。。 回想下海森矩阵,雅克皮比列式等,以及(多远)函数求极值,数值解析, 梯度 的意义等等,其实数学才是深度学习中最重要的。。 数学中的 微分 (方程), 导数 (公式), 微分 (方程), 梯度 导数 方向 导数 ,切线,斜率,射线,可导与连续,(多元)函数的积分与 微分 ,...
如果函数 的 导数 、 在点 连续,那么函数在该点可微。 下面来解释这个结论,并且减弱这个结论的条件。 先简单阐述下“连续”、“ 导数 ”、“可微”的意义,后面要用到。如果非常熟悉了,可以直接跳到最后一节“ 导数 连续推出可微”。 1 连续...
方向 导数 是指函数在某一点沿着某个 方向 的变化率,可以用 梯度 来计算。在Python中,可以使用NumPy库来计算 梯度 ,示例代码如下: import numpy as np def f(x, y): return x**2 + y**2 x, y = 1, 2 h = 0.01 grad_x = (f(x+h, y) - f(x-h, y)) / (2*h) grad_y = (f(x, y+h) - f(x, y-h)) / (2*h) grad = np.array([grad_x, grad_y]) print(" 梯度 :", grad) 要计算某个 方向 上的 方向 导数 ,可以将 梯度 向量与该 方向 的单位向量做点积,示例代码如下: theta = np.pi/4 direction = np.array([np.cos(theta), np.sin(theta)]) directional_derivative = np.dot(grad, direction) print(" 方向 导数 :", directional_derivative) 输出结果为: 梯度 : [2.00000001 4. ] 方向 导数 : 4.585786437626905