李宏毅《机器学习》课程笔记(作业一:线性回归和梯度下降)

最近学习了李宏毅的机器学习课程,按照视频顺序整理一下笔记,这份笔记只适合作为复习回顾,不适合直接学习,因为记录的东西零碎且粗糙,只是看视频时的收获感想。

 

正则化regularization的目标是使得学出来的模型比较“平滑”,也就是说对输入的数据不敏感,所以如果输入的数据加入了一定的噪音,对输出的值的影响就比较小。

陆吾生的解释是,加入正则化以后,我们就更愿意放弃高阶函数,选择低阶的函数,而低阶的函数在面对新的数据的时候可能具有更好的能力。

正则化的时候是不需要加上b的,因为b对于模型的平滑程度是没有影响的。

estimator有bias和variance。一个通过取样本评估出的平均值bias是无偏的,但是他的方差variance是有偏的,这是因为在计算的variance的时候需要用到平均值,而这个评估出的平均值与各个样本的距离,相比真正的平均值与各个样本的距离,是偏小的,所以存在bias。需要纠偏,可以参考这个链接:https://www.zhihu.com/question/20099757

越复杂的model通常variance越大,而bias越小,可以认为他是包含最优解的,但是范围太大不好瞄准。越简单的model通常variance越小,但是bias越大,这是因为他可能没有包含最优的model,所以存在天然的bias,但是因为参数比较少,不容易受到样本的影响,所以variance就比较小。所以我们需要在两者间找一个trade-off。

如果bias大,叫做underfitting,说明模型不够好,需要重新设计模型,设计更复杂的模型。

如果variance大,叫做overfitting,需要增加data,可以试着自己设计data。或者增加正则化regularization。

 

在梯度下降的时候,需要小心设计learning rate,如果大了loss会爆炸,如果小了会需要非常长的时间来收敛。

课程里面介绍了Adagrad,能够比较好的计算learning rate。

关于各种计算learning rate的算法,可以参考https://www.zhihu.com/question/323747423/answer/790457991

在考虑多个参数的时候,不能认为梯度越大,步长就应该越大。因为不同的参数上的“大小”可能不是一个scale,所以应该看一次微分与二次微分的比值。二次微分越大,说明比较平滑,所以梯度相同的情况下应该步长大一些。

在二次微分很难计算的时候,Adagrad里面的分母,也就是过去所有的梯度的平方和,能够反映这一点,也就是说这个值越大,说明过去平均的梯度就比较大,那么到现在的二次梯度就越大。

另外我们也应该把不同的特征的scale统一,来避免上面的问题,是的GD更快地收敛。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值