Day11 梯度下降法的基础:多变量函数的近似公式
梯度下降法是确定神经网络的一种代表性的方法。在应用梯度下降法时,需要用到多变量函数的近似公式。
单变量函数的近似公式
- 首先,对于单变量函数 y = f ( x ) y=f(x) y=f(x)。如果 x x x作微小的变化,那么函数值y将会怎样变化呢? 答案如下
f ′ ( x ) = lim △ x → 0 f ( x + △ x ) − f ( x ) △ x f^{\prime}(x)=\lim _{\triangle x\rightarrow 0}\frac{f(x+\triangle x)-f(x)}{\triangle x} f′(x)=△x→0lim△xf(x+△x)−f(x)
-
在这个定义式中, △ x \triangle x △x为“无限小的值”,不过若将它替换为“微小的值”,也不会造成很大的误差。因而,下式近似成立。
f ′ ( x ) ≐ f ( x + △ x ) − f ( x ) △ x f^{\prime}(x)\doteq \frac{f(x+\triangle x)-f(x)}{\triangle x} f′(x)≐△xf(x+△x)−f(x) -
将上式变形,可以得到以下单变量函数的近似公式。
f ( x + △ x ) ≐ f ( x ) + f ′ ( x ) △ x ( △ x 为微小的数 ) f(x+\triangle x)\doteq f(x)+f^{\prime}(x)\triangle x(\triangle x为微小的数) f(x+△x)≐f(x)+f′(x)△x(△x为微小的数)
≐ \doteq ≐ 这个符号通常表示“近似等于”或“约等于”。
在数学和物理学等领域中,当两个量或值非常接近但又不完全相等时,可以使用这个符号来表示它们之间的关系。
例1
-
当 f ( x ) = e x f(x)=e^{x} f(x)=ex时,求 x = 0 x=0 x=0附近的近似公式。
- 由于
f
′
(
x
)
=
e
x
f^{\prime}(x)=e^{x}
f′(x)=ex,得
e
x
+
△
x
≐
e
x
+
e
x
△
x
(
△
x
为微小的数
)
e^{x+\triangle x}\doteq e^{x}+e^{x}\triangle x(\triangle x为微小的数)
ex+△x≐ex+ex△x(△x为微小的数)
- 取 x = 0 x=0 x=0,将 △ x \triangle x △x替换为 x x x,可得 e x ≐ 1 + x e^{x}\doteq 1+x ex≐1+x( x x x为微小的数)。
- 由于
f
′
(
x
)
=
e
x
f^{\prime}(x)=e^{x}
f′(x)=ex,得
e
x
+
△
x
≐
e
x
+
e
x
△
x
(
△
x
为微小的数
)
e^{x+\triangle x}\doteq e^{x}+e^{x}\triangle x(\triangle x为微小的数)
ex+△x≐ex+ex△x(△x为微小的数)
-
下面的图像是将 y = e x y = e^x y=ex 与 y = 1 + x y=1+x y=1+x 画在一张图上。可以看出在 x = 0 x = 0 x=0 附近两个函数的图像重叠在一起的 ^ ^
多变量函数的近似公式
- 下面,将单变量函数的近似公式扩展到两个变量的函数。如果x、y作微小的变化,那么函数
z
=
f
(
x
,
y
)
z=f(x,y)
z=f(x,y)的值将会怎样变化呢?答案是以下的近似公式,式(1)。其中
△
x
\triangle x
△x、
△
y
\triangle y
△y为微小的数。
f ( x + △ x , y + △ y ) ≐ f ( x , y ) + ∂ f ( x , y ) ∂ x △ x + ∂ f ( x , y ) ∂ y △ y − − − − − − ( 1 ) f(x+\triangle x, y+\triangle y)\doteq f(x, y)+\frac{{\partial}f(x, y)}{\partial x}\triangle x+\frac{{\partial}f(x, y)}{\partial y}\triangle y ------(1) f(x+△x,y+△y)≐f(x,y)+∂x∂f(x,y)△x+∂y∂f(x,y)△y−−−−−−(1)
例2
- 当
Z
=
e
x
+
y
Z=e^{x+y}
Z=ex+y时,求
x
=
y
=
0
x=y=0
x=y=0附近的近似公式。
- 由
∂
z
∂
x
=
∂
z
∂
y
=
e
x
+
y
\frac{{\partial}z}{\partial x}=\frac{{\partial}z}{\partial y}=e^{x+y}
∂x∂z=∂y∂z=ex+y,可得
- e x + △ x + y + △ y ≐ e x + y + e x + y △ x + e x + y △ y ( △ x 、 △ y 为微小的数 ) e^{x+\triangle x+y+\triangle y}\doteq e^{x+y}+e^{x+y}\triangle x+e^{x+y}\triangle y (\triangle x\text{、}\triangle y\text{为微小的数}) ex+△x+y+△y≐ex+y+ex+y△x+ex+y△y(△x、△y为微小的数)
- 由
∂
z
∂
x
=
∂
z
∂
y
=
e
x
+
y
\frac{{\partial}z}{\partial x}=\frac{{\partial}z}{\partial y}=e^{x+y}
∂x∂z=∂y∂z=ex+y,可得
- 取
x
=
y
=
0
x=y=0
x=y=0,将
△
x
\triangle x
△x替换为
x
x
x,将
△
y
\triangle y
△y替换为
y
y
y,可得
e x + y ≐ 1 + x + y ( x 、 y 为微小的数 ) e^{x+y}\doteq 1+x+y (x\text{、}y\text{为微小的数}) ex+y≐1+x+y(x、y为微小的数)- 以上就是例2的回答。下面我们试着对式(1)进行化简。
- 首先定义如下的
△
z
\triangle z
△z。
△ z = f ( x + △ x , y + △ y ) − f ( x , y ) \triangle z=f(x+\triangle x, y+\triangle y)-f(x, y) △z=f(x+△x,y+△y)−f(x,y) - 上式表示当 x 、 y x\text{、}y x、y依次变化 △ x 、 △ y \triangle x\text{、}\triangle y △x、△y时函数 z = f ( x , y ) z=f(x, y) z=f(x,y)的变化,于是式(1)可以像下面这样简洁地表示。
- 首先定义如下的
△
z
\triangle z
△z。
- 以上就是例2的回答。下面我们试着对式(1)进行化简。
△ z = ∂ z ∂ x △ x + ∂ z ∂ y △ y \triangle z=\frac{{\partial}z}{\partial x}\triangle x+\frac{{\partial}z}{\partial y}\triangle y △z=∂x∂z△x+∂y∂z△y
-
通过这样的表示方式,就很容易将近似公式(1)进行推广。
- 例如,变量
z
z
z为三个变量
w
w
w、
x
x
x、
y
y
y的函数时,近似公式如下所示。
△ z = ∂ z ∂ w △ w + ∂ z ∂ x △ x + ∂ z ∂ y △ y \triangle z=\frac{{\partial}z}{\partial w}\triangle w+\frac{{\partial}z}{\partial x}\triangle x+\frac{{\partial}z}{\partial y}\triangle y △z=∂w∂z△w+∂x∂z△x+∂y∂z△y
- 例如,变量
z
z
z为三个变量
w
w
w、
x
x
x、
y
y
y的函数时,近似公式如下所示。
近似公式的向量表示
三个变量的函数的近似公式可以表示为如下两个向量的内积
△
z
⋅
△
x
\bigtriangleup z\cdot \bigtriangleup x
△z⋅△x的形式。
∇
z
=
(
∂
z
∂
w
,
∂
z
∂
x
,
∂
z
∂
y
)
,
△
x
=
(
△
w
,
△
x
,
△
y
)
\nabla z=(\frac{{\partial}z}{\partial w},\frac{{\partial}z}{\partial x},\frac{{\partial}z}{\partial y}),\bigtriangleup x=(\bigtriangleup w,\bigtriangleup x,\bigtriangleup y)
∇z=(∂w∂z,∂x∂z,∂y∂z),△x=(△w,△x,△y)
注: ∇ \nabla ∇通常读作 n a b l a nabla nabla。
对于一般的 n n n变量函数,近似公式也可以像这样表示为内积的形式。这个事实与下一Day要深入解释的梯度下降法的原理有关。
扩展:泰勒展开式
结合泰勒展开式和近似公式的概念,可以更深入地理解函数在某一点附近的行为。
泰勒展开式提供了一种用多项式来近似复杂函数的方法,而近似公式则是泰勒展开式的简化形式,通常只取到一阶或二阶项。
泰勒展开式的定义
- 对于一个在点 ( a , b ) (a, b) (a,b) 处具有足够高阶导数的函数 f ( x , y ) f(x, y) f(x,y),其在 ( a , b ) (a, b) (a,b) 处的泰勒展开式可以表示为:
f ( x , y ) ≈ f ( a , b ) + f x ( a , b ) ( x − a ) + f y ( a , b ) ( y − b ) + 1 2 ! ( f x x ( a , b ) ( x − a ) 2 + 2 f x y ( a , b ) ( x − a ) ( y − b ) + f y y ( a , b ) ( y − b ) 2 ) + ⋯ f(x, y) \approx f(a, b) + f_x(a, b)(x-a) + f_y(a, b)(y-b) + \frac{1}{2!}(f_{xx}(a, b)(x-a)^2 + 2f_{xy}(a, b)(x-a)(y-b) + f_{yy}(a, b)(y-b)^2) + \cdots f(x,y)≈f(a,b)+fx(a,b)(x−a)+fy(a,b)(y−b)+2!1(fxx(a,b)(x−a)2+2fxy(a,b)(x−a)(y−b)+fyy(a,b)(y−b)2)+⋯
这里, f x f_x fx、 f y f_y fy、 f x x f_{xx} fxx、 f x y f_{xy} fxy、 f y y f_{yy} fyy 等分别表示函数对相应变量的偏导数。
近似公式与泰勒展开式的关系
当我们讨论单变量函数的近似公式时,我们实际上是在考虑泰勒展开式的一阶近似(即线性近似):
f ( x ) ≈ f ( a ) + f ′ ( a ) ( x − a ) f(x) \approx f(a) + f'(a)(x-a) f(x)≈f(a)+f′(a)(x−a)
- 这表示函数 f f f 在 x = a x = a x=a 附近的值可以通过其在 a a a 点的值和导数来近似。这是泰勒展开式中最简单的形式,也是最常用的近似方法之一。
对于多变量函数,如两个变量的函数 f ( x , y ) f(x, y) f(x,y),其近似公式可以写为:
f ( x + Δ x , y + Δ y ) ≈ f ( x , y ) + ∂ f ∂ x Δ x + ∂ f ∂ y Δ y f(x+\Delta x, y+\Delta y) \approx f(x, y) + \frac{\partial f}{\partial x}\Delta x + \frac{\partial f}{\partial y}\Delta y f(x+Δx,y+Δy)≈f(x,y)+∂x∂fΔx+∂y∂fΔy
- 这与泰勒展开式的前两项相对应。如果我们进一步考虑二阶项,可以得到:
f ( x + Δ x , y + Δ y ) ≈ f ( x , y ) + ∂ f ∂ x Δ x + ∂ f ∂ y Δ y + 1 2 ! ( ∂ 2 f ∂ x 2 ( Δ x ) 2 + 2 ∂ 2 f ∂ x ∂ y Δ x Δ y + ∂ 2 f ∂ y 2 ( Δ y ) 2 ) f(x+\Delta x, y+\Delta y) \approx f(x, y) + \frac{\partial f}{\partial x}\Delta x + \frac{\partial f}{\partial y}\Delta y + \frac{1}{2!}\left(\frac{\partial^2 f}{\partial x^2}(\Delta x)^2 + 2\frac{\partial^2 f}{\partial x \partial y}\Delta x\Delta y + \frac{\partial^2 f}{\partial y^2}(\Delta y)^2\right) f(x+Δx,y+Δy)≈f(x,y)+∂x∂fΔx+∂y∂fΔy+2!1(∂x2∂2f(Δx)2+2∂x∂y∂2fΔxΔy+∂y2∂2f(Δy)2)
这些表达式展示了如何通过泰勒展开式来近似计算函数的值,以及如何通过增加更多的项来提高近似的精度。