李宏毅《机器学习》误差和梯度下降

误差

误差的来源:

  • Bias(偏差:反映模型在样本上的输出与真实值之间的误差)
  • Variance(方差:反映模型每次输出结果与模型输出期望之间的误差)
    图片来源:https://www.zhihu.com/question/27068705

对于Bias大的问题(模型没有很好的训练训练集,偏差过大,即欠拟合),解决方法有:

  • 增加Features
  • 用更复杂的模型

对于Variance大的问题(模型在训练集上错误很小,但在测试集上得到大的错误,这意味着模型可能方差较大,即过拟合),解决方法有:

  • 增大数据量(有时候可以手动制造假数据,比如把手写的数字图片旋转10°,就可以模拟不同的人的手写数据。)
  • 正则化(强迫回归曲线变得更平滑)

交叉验证(Cross Validation):将训练集分为两部分,一部分作为训练集,一部分作为验证集。用训练集训练模型,然后在验证集上比较。

梯度下降

梯度下降法解决的问题:

θ ∗ = arg min ⁡ θ L ( θ ) \theta^∗= \underset{ \theta }{\operatorname{arg\ min}} L(\theta) θ=θarg minL(θ)

  • L L L :lossfunction(损失函数)
  • θ \theta θ :parameters(参数)

这里 θ \theta θ 指代一堆参数,我们要找一组参数 θ \theta θ ,让损失函数越小越好。

梯度下降法步骤如下图所示:
在这里插入图片描述

调整学习率 η \eta η

学习率不能太大,也不能太小,我们可以:

  • 在前期用较大的学习率,方便快速下降
  • 在后期逐渐减小学习率,防止远离最低点
  • 例: η t = η t t + 1 \eta^t =\frac{\eta^t}{\sqrt{t+1}} ηt=t+1 ηt t t t 是次数。随着次数的增加, η t \eta^t ηt 减小(自适应学习率);
  • 则梯度下降公式: w t + 1 ← w t − η t g t w^{t+1} \leftarrow w^t -η^tg^t wt+1wtηtgt

Adagrad 算法

每个参数的学习率都把它除上之前微分的均方根。
在这里插入图片描述在这里插入图片描述
在 Adagrad 中,当梯度 g t g^t gt越大的时候,步伐应该越大,但下面分母又导致当梯度越大的时候,步伐会越小。
最好的步伐应为:
一 次 微 分 二 次 微 分 \frac{一次微分}{二次微分}
即不止和一次微分成正比,还和二次微分成反比。最好的step应该考虑到二次微分。对于 ∑ i = 0 t ( g i ) 2 \sqrt{\sum_{i=0}^t(g^i)^2} i=0t(gi)2 就是希望再尽可能不增加过多运算的情况下模拟二次微分。(如果计算二次微分,在实际情况中可能会增加很多的时间消耗)

随机梯度下降法

每次更新参数的时候,并不需要把所有的样本都算到Loss Function里,而只随机选取一个样本考虑进去。如果有20个样本点,则这样的随机梯度下降比普通的梯度下降快20倍。

特征缩放

让不同的Features的值的量级差不多,常见方法:标准化。

梯度下降的限制

  • 容易陷入局部极值
  • 可能卡在不是极值,但微分值是0的地方
  • 可能实际中只是当微分值小于某一个数值就停下来了,但这里只是比较平缓,并不是极值点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值