最小化损失函数L(θ), 得到参数θ在损失最小情况下的对应值. 梯度下降法的迭代步骤如下:
选取初值θ0, 步长α和算法的终止距离ε.
确定当前参数下梯度函数的梯度, 对于第t轮, 对应的参数为θt, 此时的梯度为δθtδL(θ)
用步长α乘以损失函数的梯度, 得到当前步的下降长度, 即αδθtδL(θ)
判断当前下降步幅αδθtδL(θ)是否小于ε, 如果小于这个阈值, 停止迭代, θt即为最终的结果
更新θt: θt+1=θt−δθtδL(θ)
为什么梯度的负方向是局部下降最快的方向
需要结合泰勒展开说明.
在第t轮迭代中, 将L(θt)在θt−1处进行一阶泰勒展开, 得到:
L(θt)=L(θt−1+Δθ)≈L(θt−1)+L′(θt−1)Δθ 我们的目的是使得损失函数逐渐缩小, 就要使得L(θt)<L(θt−1). 根据泰勒一阶展开式, 有:
L(θt−1+Δθ)−L(θt−1)≈L′(θt−1)Δθ
参数向量θ中包含多个变量参数, 因此损失函数对参数的导数L′(θt−1)以及参数微小的变化量Δθ也均为向量, 则L′(θt−1)Δθ是两个向量的点积.
而L′(θt−1)Δθ作为损失函数迭代一步的变化量的近似, 我们想要下降的越快越好, 也就是要求这个近似量的值越小越好.
这就是梯度负方向是局部下降最快方向的原因.