1. 程式人生 > >【機器學習】為什麼負梯度方向是目標函式下降最快的方向

【機器學習】為什麼負梯度方向是目標函式下降最快的方向

在機器學習中,我們的目標是最小化損失函式: J ( θ ) J(\mathbf {\theta}) 。為了快速得到最佳的引數 θ

\mathbf {\theta} ,我們需要找到損失函式下降最快的方向,即找到一個 θ \theta 移動的方向 v \mathbf{v} , 使得 J
( θ ) J ( θ + v )
J(\theta) - J(\mathbf{\theta + v})
最大。公式描述為:

v = a r g m a x v ( J ( θ ) J ( θ + v ) ) \mathbf{v} = argmax_{\mathbf{v}}(J(\theta) - J(\mathbf{\theta + v}))

J ( θ + v ) J(\mathbf{\theta + v}) 進行一階泰勒展開:

J ( θ + v ) J ( θ ) + v T θ J ( θ ) J(\mathbf{\theta + v})\approx J(\theta) +\mathbf{v}^T\triangledown_{\theta}J(\theta)
J ( θ ) J ( θ + v ) v T θ J ( θ ) J(\theta) -J(\mathbf{\theta + v})\approx-\mathbf{v}^T\triangledown_{\theta}J(\theta)

則目標變為:

v = a r g m a x v ( v T θ J ( θ ) ) \mathbf{v} = argmax_{\mathbf{v}}(-\mathbf{v}^T\triangledown_{\theta}J(\theta))

因為 v T θ J ( θ ) \mathbf{v}^T\triangledown_{\theta}J(\theta) 可以理解為兩個向量的點積(向量 v \mathbf{v} 和向量 θ J ( θ ) \triangledown_{\theta}J(\theta) ),可寫成 v θ J ( θ ) cos α |\mathbf{v}||\triangledown_{\theta}J(\theta)|\cos\alpha ,其中 α \alpha 為兩個向量的夾角。為了使上述“負點積”最大,則兩個向量應該方向相反(180度),即 v \mathbf{v} θ J ( θ ) \triangledown_{\theta}J(\theta) 方向相反,其中 θ J ( θ ) \triangledown_{\theta}J(\theta) 即為目標函式的梯度。因此,應該沿著負梯度的方向更新引數才會使損失函式下降得最快。