梯度下降更新算法公式为θ = θ0 - η▽L
首先,如果一个函数n阶可导,那么我们可以用多项式仿造一个相似的函数,这就是泰勒展开式。其在a点处的表达式如下:
如果用一阶泰勒展开式,得到的函数近似表达式是:f(θ) = f(θ0) + (θ - θ0)*f '(θ0)。梯度下降就像是站在山坡往山下走,θ0是当前点,θ是往下一步走后所处的点。
我们知道梯度下降每走一步都是朝着最快下山的方向(因为希望尽快收敛得到最佳值),因此应该最小化f(θ) - f(θ0) = (θ - θ0)*f '(θ0)。
我们使用向量v来表示θ - θ0, f '(θ0)也是一个向量,那么上式就可以写成
f(θ) - f(θ0) = v·f '(θ0) = |v|*|f '(θ0)|*cosα
既然我们想要f(θ) - f(θ0)最小,那么只有当cosα=-1,也就是v和f '(θ0)这两个向量反方向时才会最小
当v和f '(θ0)反方向时,我们可以用f '(θ0)向量来表示v,即v = -η*f '(θ0) (其中η表示长度大小)
因为v = θ - θ0,代入可得θ - θ0 = -η*f '(θ0)
这样就得到了更新公式 θ = θ0 - η*f '(θ0) (其中η是学习率,f '(θ0)是函数在θ0处的梯度)
由于使用的是一阶泰勒展开式,因此θ - θ0必须非常小,式子才成立。也就是说学习率要非常小才行。