梯度下降法是神经网络计算的基础,也是神经网络里面最有力的数学武器。为了更好地感受数据的变化,下面对函数
z
=
x
2
+
y
2
z=x^2+y^2
z=x2+y2使用梯度下降法求出函数x和y的最小值。
首先求出梯度 ( ∂ z ∂ x , ∂ z ∂ y ) = ( 2 x , 2 y ) (\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}) = (2x,2y) (∂x∂z,∂y∂z)=(2x,2y)
1. 初始设定
随便给出初始位置
(
x
i
,
y
i
)
(
i
=
0
)
(x_i,y_i)(i=0)
(xi,yi)(i=0)与学习率
η
\eta
η
2. 计算位移量
(
Δ
x
i
,
Δ
y
i
)
=
−
η
(
∂
z
∂
x
,
∂
z
∂
y
)
=
−
η
(
2
x
i
,
2
y
i
)
(\Delta x_i,\Delta y_i) = -\eta(\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}) = -\eta(2x_i,2y_i)
(Δxi,Δyi)=−η(∂x∂z,∂y∂z)=−η(2xi,2yi),这个位移量可以看作是通过小步长来找出局部最小值。
3. 更新位置
当 i = 0 时,将当前位置
(
x
0
,
y
0
)
=
(
3.00
,
2.00
)
(x_{0},y_{0}) = (3.00,2.00)
(x0,y0)=(3.00,2.00) 与当前计算得到的位移向量(-0.60,-0.40)相加得到(2.40,1.60)
(
x
i
+
1
,
y
i
+
1
)
=
(
x
i
,
y
i
)
+
(
Δ
x
i
,
Δ
y
i
)
(x_{i+1},y_{i+1})=(x_{i},y_{i})+(\Delta x_i,\Delta y_i)
(xi+1,yi+1)=(xi,yi)+(Δxi,Δyi)
4. 反复执行2-3的操作
反复执行2-3的操作30次后得出坐标
(
x
30
,
y
30
)
(x_{30},y_{30})
(x30,y30)的值。这个2-3反复过程地按照负梯度的倍数输入到
z
z
z函数的过程被称为梯度下降。
使得函数
z
z
z在点(0,0)处取得最小值 0
5. 关于学习率 η \eta η 与步长
把
η
\eta
η 看作步长实际上是不正确的,梯度下降法的步长是不均匀的,梯度在不同的位置大小不同。梯度下降让函数向局部最小值收敛,正如图1.5沿着山谷下降的过程一样。此处列举的山谷下降过程与上述的图1.4坐标数据是不同的,实际情况下人工神经网络的代价函数是非常复杂的。
如果将上面第二步的式子
变形为
将梯度修改为单位向量,就可以将
η
\eta
η 看作步长了。
以上公式的定义都是由其可微性推导出来的,在微分学中,
在这里面要把 A和B分别看作为
或者
其实就是用式子 A d x + B d y Adx+Bdy Adx+Bdy的线性增量近似值去逼近 Δ z \Delta z Δz,而 Δ z \Delta z Δz的真实增量是式子
注意 d z ∣ ( x 0 , y 0 ) dz|_{(x_0,y_0)} dz∣(x0,y0)只是逼近 Δ z \Delta z Δz,并不能说它们等价,会存在误差
这样就能推导出
当 Δ x , Δ y \Delta x,\Delta y Δx,Δy分别趋近于0时,取极限
当分子比分母更高阶无穷小时,等式为0。由于我要求出负梯度的值,现在我把式子变成
由变量 η \eta η的取值决定函数要迈出步子有多大,这样把梯度修正为单位向量也就能将 η \eta η 看作步长了。
以上列举的内容只是为了以后更好地理解代价函数对权重、偏置的微小变化有多敏感。
把 Δ x , Δ y \Delta x,\Delta y Δx,Δy看作是函数 z z z在某点处的瞬时变化率,而 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z理解为代价函数 z z z 对 Δ x \Delta x Δx微小变化的敏感度,或者换句话说,求 z z z对 x i x_i xi的偏导数,可以把 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z当做改变 Δ x \Delta x Δx对 z z z函数值造成的变化,这两个数的比值,从概念上来说就是 Δ x \Delta x Δx的微小变化会导致 z z z函数产生一些变化,如果这个 z z z函数是一个很复杂的复合函数,那么它也会像神经网络单元一样导致隐含层产生微小的变化,最终影响到代价函数值。上面的描述对 ∂ z ∂ y \frac{\partial z}{\partial y} ∂y∂z 同理。
写于2020.03.01 18:49:24