美文网首页机器学习
梯度下降算法(gradient descent)

梯度下降算法(gradient descent)

作者: DestinyBaozi | 来源:发表于2018-10-18 19:55 被阅读42次

原理:

  每次按照下降的方向进行计算,属于贪心的算法。

算法(就最小二乘法讨论):

  若训练集:D\in\{(x_{i},y_{i})\},i=1,2,...,n
  训练函数:f(x) = \theta_{0}+\theta_{1}x
  参数向量:\theta=(\theta_{1},\theta_{0})
  损失函数:E(k,b)=\frac{1}{2n}\sum_{i=1}^{n}(f(x_{i})-y_{i})^{2}
  梯度:\frac{\partial{E(k,b)}}{\partial{k}}=\frac{1}{n}\sum_{i=1}^{n}(f(x_{i})-y_{i})x_{i}
     \frac{\partial{E(k,b)}}{\partial{b}}=\frac{1}{n}\sum_{i=1}^{n}(f(x_{i})-y_{i})

gradient向量:(\frac{\partial{E(k,b)}}{\partial{k}},\frac{\partial{E(k,b)}}{\partial{b}})^{T}
     =\frac{1}{n}\sum_{i=1}^{n}(f(x_{i})-y_{i})*(x_{i},1)^{T}

故在初始化的时候X要补一列元素均为1,即(x_{i},1)令为X
gradient=\Delta\theta=\frac{1}{n}X^{T}(X\theta-\vec{y})
\theta= \theta-\alpha\Delta\theta\theta的下降(减小)直到局部最小
其中\alpha为学习率,即以一定比例的梯度下降
由于梯度是按增大的方向,故梯度减小为负

局部最小与全局最小:

  由于梯度下降是贪心的思想,故会陷入局部最小值

避免局部最小值的方法:

  1、以不同的初始值训练
  2、“模拟退火”,每一步以一定的概率接受比当前更差的结果
  3、随机梯度下降法(梯度计算式采用随机因素,使局部极小处的梯度不一定为0,从而跳出局部极小值)

相关文章

网友评论

    本文标题:梯度下降算法(gradient descent)

    本文链接:https://www.haomeiwen.com/subject/emiszftx.html