梯度下降算法(gradient descent)

原理:

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

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

  若训练集: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,从而跳出局部极小值)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 芦沟夜黑炮声隆,鼓角横吹血火中。 梦里狮醒天地震,狼烟散尽剑如虹。
    135d90d4563f阅读 3,696评论 0 1
  • 不知道是不是每个人都像我一样,从学校出来踏入社会会这么难,感觉自己就像个智障,什么都不懂,什么人情世故,什么尔虞我...
    H_C阅读 3,372评论 0 0
  • 一 说起音乐电影,可能我们第一个想到的就是一言不合就唱歌的印度电影了,然而这类电影虽已不再被现在看惯了duangd...
    疯岩疯语sun阅读 2,844评论 0 1