一、微积分基础
微积分
在机器学习(或者深度学习)中,绝大部分任务是构建一个损失函数,然后去最小化它,这个优化过程使用的就是微分
f(x) -- 损失函数
微分 -- 求导
pytorch 等会自动微分,不需要人为的去求导/微分,实现这些过程,但是需要理解这些概念
(一)导数的概念
导数是函数,完整地叫应该是“导函数”,通常习惯叫“导数”,它是依附于原函数存在的函数
当无法获取到精确的结果时,可以通过更小的范围获取更接近的结果
\[\frac{\Delta x}{\Delta t} = \frac{dx}{dt} \quad \text{==> 瞬时变化率}
\]
拉格朗日表示法:
\[f'(x)
\]
莱布尼茨表示法:
\[\frac{d}{dt}f(x)
\]
导数表示函数的变化趋势:
- 既可以表示函数整体的变化趋势
- 也可以表示部分的变化趋势
- 还可以表示某个点的变化趋势
导数也可以粗糙地理解为“函数在某处的切线的斜率”
(二)斜率的极值和极小值
对于函数来说,距离最近/最远的点往往导数(斜率)等于 0 的点
斜率的极值 -- 斜率函数在局部取得的极大值或极小值
斜率的极小值 -- 特指其中斜率取得局部最小值的那个极值点
(三)常见的导数
1. 常数的导数
\[(C)' = 0
\]
2. 线性函数的导数
\[(ax+b)' = \frac{(a(x+{\Delta x})+b)-(ax+b)}{x+{\Delta x}-x} = a
\]
3. 幂指函数
\[(x^n)' = n x^{n-1}
\]
\[(\sqrt{x})' = \frac{1}{2\sqrt{x}}
\]
\[\left(\frac{1}{x}\right)' = -\frac{1}{x^2}
\]
\[(e^x)' = e^x
\]
\[(a^x)' = a^x \ln a \quad (a>0, a \neq 1)
\]
3. 对数函数的导数
\[(\ln x)' = \frac{1}{x}
\]
\[(\log_a x)' = \frac{1}{x \ln a} \quad (a>0, a \neq 1)
\]
4. 三角函数的导数
\[(\sin x)' = \cos x
\]
\[(\cos x)' = -\sin x
\]
\[(\tan x)' = \sec^2 x = \frac{1}{\cos^2 x}
\]
\[(\cot x)' = -\csc^2 x = -\frac{1}{\sin^2 x}
\]
\[(\sec x)' = \sec x \tan x
\]
\[(\csc x)' = -\csc x \cot x
\]
5. 反三角函数的导数
\[(\arcsin x)' = \frac{1}{\sqrt{1 - x^2}}
\]
\[(\arccos x)' = -\frac{1}{\sqrt{1 - x^2}}
\]
\[(\arctan x)' = \frac{1}{1 + x^2}
\]
\[(\text{arccot } x)' = -\frac{1}{1 + x^2}
\]
(四)不可微函数
如果一个点存在导数,那么该点的函数会被该点微分
也就是说:如果要使函数在整个区间内保持微分,则该区间中的每个点都必须存在导数
实际上,并不是所有的函数在每个点都可以找到导数,这些函数称为:不可微函数
\[f(x) = |x|
\]

在(0,0)点有无数个切线,即x=0,导数不存在
\[f(x) = x^{\frac{1}{3}}
\]

在(0,0)点切线与y轴重合,无穷大,无法微分。
(五)导数的性质
1. 乘以标量
函数乘以标量,该函数的导数也会乘以这个标量
2. 加和法则
各自求导并相加
3. 乘法法则
\[\begin{gathered}
\begin{aligned}
\frac{\Delta f(t)}{\Delta t} &= \frac{\Delta g(t)h(t) + g(t)\Delta h(t) + \Delta g(t)\Delta h(t)}{\Delta t} \\
\\
&= \frac{\Delta g(t)}{\Delta t}h(t) + \frac{\Delta h(t)}{\Delta t}g(t) + \frac{\Delta g(t)\Delta h(t)}{\Delta t}
\end{aligned} \\
\\
\downarrow \\
\\
f'(t) = g'(t)h(t) + g(t)h'(t) + 0
\end{gathered}
\]
(六)切平面和偏导数
1. 认识偏导
一个输入一个输出

两个输入一个输出

当把其中一个变量,例如y当成常数时,那么公式:
\[f(x,y)=x^2+y^2
\]
就只有一个变量了:
\[当 y=4 时,f(x,y)=x^2+4^2
\]
那么在红色抛物线上找到一条线可以求得斜率,这条线的斜率就是偏导数

2. 偏导公式
公式:
\[f(x,y)=x^2+y^2
\]
的偏导如下:
\[f_x = \frac{\partial f}{\partial x} \quad 和 \quad f_y = \frac{\partial f}{\partial y}
\]
求 x 的偏导,将 y 当作常数;求 y 的偏导,将 x 当作常数
(七)梯度
1. 概念
梯度 -- 偏导的集合,带方向的斜率
\[\begin{gathered}
f_x = \frac{\partial f}{\partial x}, \quad f_y = \frac{\partial f}{\partial y} \\
\Downarrow \\
\begin{bmatrix} 2x \\ 2y \end{bmatrix}
\end{gathered}
\]
即,梯度为:
\[\begin{gathered}
\nabla f = \begin{bmatrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{bmatrix}
\end{gathered}
\]
本文来自博客园,作者:桑年,转载请注明原文链接:https://www.cnblogs.com/clover-1105/p/23522385

浙公网安备 33010602011771号