最后更新于
最后更新于
最小化损失函数, 得到参数在损失最小情况下的对应值. 梯度下降法的迭代步骤如下:
选取初值, 步长和算法的终止距离.
确定当前参数下梯度函数的梯度, 对于第轮, 对应的参数为, 此时的梯度为
用步长乘以损失函数的梯度, 得到当前步的下降长度, 即
判断当前下降步幅是否小于, 如果小于这个阈值, 停止迭代, 即为最终的结果
更新:
需要结合泰勒展开说明.
在第轮迭代中, 将在处进行一阶泰勒展开, 得到:
我们的目的是使得损失函数逐渐缩小, 就要使得. 根据泰勒一阶展开式, 有:
参数向量中包含多个变量参数, 因此损失函数对参数的导数以及参数微小的变化量也均为向量, 则是两个向量的点积.
而作为损失函数迭代一步的变化量的近似, 我们想要下降的越快越好, 也就是要求这个近似量的值越小越好.
这就是梯度负方向是局部下降最快方向的原因.
对于两个向量的点积, 其最大值就是两个向量的方向相同时, 点积值最大. 正是损失函数在位置的梯度. 考虑此时的取值, 其模长由步长控制, 我们只需要考虑其方向. 前面说了两个向量同向时点积值最大, 反过来, 两个向量反向时点积值最小, 因此取