机器学习(2)-梯度下降

来源:互联网 发布:被驯服的象 抄袭 知乎 编辑:程序博客网 时间:2024/06/05 00:13

梯度下降原理

上篇文章我们说到实际情况中,在实际的数据中线性回归通常偏导=0都是难以计算的,所以需要通过梯度下降的方法不断逼近真实的值。
梯度下降可以理解为:在某个点计算某个参数的偏导,然后用学习率α乘以偏导θ就是该参数本次可以减少的差值,分别计算每个参数的可减少差值,不断的迭代计算损失值,直到收敛。

三种梯度下降的方法

按照每次迭代计算的样本数量
- 批量梯度下降:每次将整个样本都进行梯度计算,准确率高但是速度慢,特别是样本量较大的时候
- 随机梯度:每次随机选取一个样本,迭代速度快,但是不一定收敛
- 小批量:每次随机抽取一些样本,实践中最常用的方法,速度不错,也比较准确

数学推导

  • 由上一篇文章,目标函数:J(θ0,θ1)=12mmi=1(hθ(x(i))y(i))

  • 分三步走

    • 1.找到合适的方向(偏导数的负方向)
    • 2.走一步(每一步的距离是学习率α
    • 3.按照方向和步伐更新参数
  • 目标函数:J(θ)=12mmi=1(yihθ(xi))2

  • 批量梯度下降:J(θ)θj:=1mmi=1(yihθ(xi))xij
  • θj=θj+1mmi=1(yihθ(xi))xij
  • 随机梯度下降(每次找一个样本):θj:=θj+((yi)hθ(xi))xij
  • 小批量梯度下降法:θj:=θjα110i+9k=i(hθ(x(k))y(k))x(k)j
    每次更新选择部分数据,实用

学习率的影响

  • 学习率过大可能会导致越过最低点,最后反而不收敛
  • 学习率过小会导致迭代速度慢
  • 如何选择?从较小的开始,不行则再小,如选择一个值0.001,发现无法收敛,再选0.0001进行测试
原创粉丝点击