如果给定一个点,可以在点的附近的一个圆上,找到误差函数(error function)的最小值。如下图

然后不断地更新区域,在新的θ1上继续作圆,找到新的θ2...如下图

对于可微函数可以进行泰勒展开

当x和x0很接近的时候,忽略高次项有:

推广到多参数的泰勒级数展开,则有:

那么损失函数(Loss function)可以表示为初始值在(a,b)上的泰勒展开,这里还进行了一些定义上的化简。

在(a,b)上的Loss function,由于L(a,b)是一个常数,因此求此时L(θ1,θ2)的最小值,就等效于求
u(θ1-a)+v(θ2-b)
的最小值,边界条件为:
根据向量乘积的知识可得,当
(Δθ1,Δθ2)
的终点在圆的边界上,且和(u,v)
反向(假定比例为-η
)时,uΔθ1+vΔθ2
最小,即整个Loss function最小。此时整理移项,有:

把u、v的原本定义再还原,则得到Gradient Descent的常见形式:

这里的
η
是学习速率(learning rate),而η
的大小和圆的大小成正比,当圆取得太大时,泰勒级数展开不再成立,因此η
不能过大。
参考:
李宏毅机器学习(2017)
网友评论