Skip to content

Latest commit

 

History

History
278 lines (190 loc) · 18.1 KB

File metadata and controls

278 lines (190 loc) · 18.1 KB

微积分 Calculus

这篇笔记总结了微积分的一些基础知识,包括导数、偏导数、泰勒展开式、拉格朗日乘数等等的基础知识。 内容部分参考Mathematics for Machine Learning: Multivariate Calculus

Derivative 导数

导数的定义:

导数基本规则

线性法则 (Sum / Subtraction rule)

指数法则 (Power rule)

函数为

f(x) = a xb

f'(x) = ab x(b-1)

其他规则

函数 导数
f(x) = ( 1 / x ) f'(x) = - ( 1 / x2 )
f(x) = ex f'(x) = ex
f(x) = loga(x) f'(x) = ( 1 / xln(a) )
f(x) = sin(x) f'(x) = cos(x)
f(x) = cos(x) f'(x) = -sin(x)

乘积法则 (Product Rule)

函数为 f(x) · g(x) = f(x) g'(x) + f'(x) g(x),则:

需要说明上面的等式忽略了 (f(x+Δx) - f(x)) (g(x+Δx) - g(x)) ,结合下图就可以更好理解,被忽略的部分是右下角白色的小框,随着 limΔx→0 ,这部分可以忽略不计了。

链式法则 (Chain rule)

对于函数 f(g), g(x),有:

f(g(x))' = f'(g(x)) g'(x)

可以想象成两个函数分别求导,再求乘积,例子如下图

偏导数 (Partial Derivative)

定义

一个多变量的函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定。

表示为:

雅可比矩阵(Jacobians Matrix)

雅克比矩阵是一阶偏导数的排列成的矩阵。其行列式称为雅克比行列式。

假设某函数从 Rn 映射到 Rm,其雅克比矩阵是从 Rn 到 _Rm的线性映射,其意义在于它表现了一个多变量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。 假设_F : Rn → Rm 是一个从 n 维欧氏空间映射到到 m 维欧氏空间的函数。假设一个函数由 m 个实函数组成:y1(x1, x2, ..., xn), ..., yn(x1, x2, ..., xn),这些函数的偏导数可以组成 mn 列的矩阵,矩阵就是雅克比矩阵 (Jacobians Matrix):

矩阵符号写作:

JF(x1, x2, ..., xn)_,或者 ( ∂ (y1, ... , yn) / ∂ (x1, ... , xn) )

如果 _m = n_,那么 _F_ 是从 _n_ 维空间到 _n_ 维度空间的函数,它的雅克比矩阵是一个方块矩阵。

直观感受

对于下图中的函数_F_和其Jacobians矩阵,可以看出 J 的两个数值分别对应着函数 F 在 *(x, y)*的变化趋势。

把这个图画成热力图和三维形式,更容易理解:

上面只是讨论了 m = 1, n = 2 为一个函数的情况,下面看 _m = n = 2_的情况:

你会发现 Jacobians Matrix J 是从*(x, y)*空间往 (u, v) 空间变化的矩阵。

例子1

函数如下:

  • u(x, y) = x - 2y
  • v(x, y) = 3y - 2x

则Jacobians Matrix为:

例子2

函数如下:

  • x(r, θ) = r cos(θ)
  • y(r, θ) = r sin(θ)

则Jacobians Matrix为:

Jacobians Det为

|J| = r(cos2(θ) + sin2(θ)) = r

这里 _n = 2_ ,函数如下图:

回忆一下行列式的几何意义:一个 _n_维方阵对应着_n_维欧式空间到自身的一个线性变换,而这个线性变换把欧式空间的体积元变成多少倍就是它的行列式。

所以一个小的面积,沿着 _r_移动时,其体积的变化是以 r 为函数。(如下图中红色区域)

Hessian Matrix 海森矩阵

在一些情况下Jacobians Matrix没法很好的解决问题,比如对于 F

它的Jacobians Matrix可视化之后如下图:

可以看到 z(x, y) 在有很多局部最大、最小值。对于其Jacobians Matrix,你会发现有多个为0的值,但是无法判断是否是最大值或最小值。因此需要通过定义二阶导数来观察。就需要引入Hessian Matrix。

Hessian Matrix是一个以德国数学家Ludwig Otto Hesse命名的多变量实值函数的二阶偏导数组成的方块矩阵。假设_F : Rn → Rm_ 是一个从 n 维欧氏空间映射到到 m 维欧氏空间的函数。假设一个函数由 m 个实函数组成:y1(x1, x2, ..., xn), ..., yn(x1, x2, ..., xn),这些函数的二阶偏导数可以组成 mn 列的矩阵,矩阵就是Hessian矩阵:

矩阵符号写作:

HF(x1, x2, ..., xn)_,或者 (2 (y1, ... , yn) /2 (x1, ... , xn) )

如果 m = n,那么 F 是从 n 维空间到 n 维度空间的函数,它的Hessian矩阵是一个方块矩阵。

Hessian Matrix性质

  • |H| > 0
    • 如果 H[0,0] > 0,则 (x0, y0) 为局部最小值
    • 如果 H[0,0] < 0,则 (x0, y0) 为局部最大值
  • |H| < 0
    • (x0, y0) 为鞍点
  • |H| < 0
    • 二阶导数无法判断该临界点的性质,得从更高阶的导数以泰勒公式来判断

幂级数

  • g(x) = a + bx + cx2 + dx3 + ...
  • g1(x) = a + bx
  • g2(x) = a + bx + cx2
  • g3(x) = a + bx + cx2 + dx3

幂级数求导

  • g0(x) = f(0)
  • g1(x) = f(0) + f'(0)x
  • g2(x) = f(0) + f'(0)x + ( 1 / 2 )f''(0)x2
  • g3(x) = f(0) + f'(0)x + ( 1 / 2 )f''(0)x2 + ( 1 / 6 )f(3)x3
  • ...

这种级数又称为 麦克劳林级数(Maclaurin Series),实际是泰勒级数的一种特殊情况。

泰勒级数 (Taylor series)

泰勒级数

当 x = 0, 可得

其中

对于 _cos(x)_ 这样的函数泰勒级数可以很好的拟合,但是对于 _1/x_ 这样的函数拟合的很糟糕。

多变量泰勒级数 Multivariable Taylor Series

当函数有多变量时,就需要用到多变量泰勒级数,一个例子:

多变量泰勒级数的公式:

实际上:

  • 第二行可以写作 Jf Δx
  • 第三行可以写作_Δxt Hf Δx_

约束最大最小值的优化方法

牛顿-拉弗森方法 Newton-Raphson

拉格朗日乘数 Lagrange multipliers

线性回归Linear Regression

非线性回归 Non-linear Regression

快速下降法 Steepest Descent

回到顶部