Task03开始啦:
Task03:参照开源文档,观看视频 P5-8:误差和梯度下降(2天) 截止时间 07月17日03:00
开源文档:https://datawhalechina.github.io/leeml-notes
视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef
1 误差从哪里来
误差的来源:bias和variance。(二者的区别和联系,查看 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?)
估测
收集数据,通过step1~step3训练得到我们的理想模型
f
∗
f^{*}
f∗,
f
∗
f^{*}
f∗是
f
^
\widehat{f}
f
的一个预估。
这个过程就像打靶,
f
^
\widehat{f}
f
就是我们的靶心,
f
∗
f^{*}
f∗ 就是我们投掷的结果。如上图所示,
f
^
\widehat{f}
f
与
f
∗
f^{*}
f∗ 之间蓝色部分的差距就是偏差和方差导致的。
估测变量x的偏差和方差
-
评估x的偏差
假设x的平均值是 μ \mu μ,方差是 σ 2 \sigma^{2} σ2. -
估测变量x的方差
-
为什么会有很多的模型
-
考虑不同模型的方差
-
考虑不同模型的偏差
-
偏差vs方差
怎么判断
- 偏差大-欠拟合
解决办法:重写model——增加增多的特征作为输入,设计一个更为复杂的model。 - 方差大-过拟合
解决办法:增加训练集数据量,正则化(model中增加一个正则项)调整weight。
模型选择
- 交叉验证
训练出的模型error很少,但是用测试集测试error可能并不小。
解决办法:将训练集分成训练集+验证集,用训练集获得model,用验证集微调model,减少error。再用public testing set测试model。 - N-折交叉验证
解决办法:将训练集分成几份train+train+val,分别用不同的数据集训练model,计算每次训练出的model的平均误差,选择平均误差最少的model。
2 梯度下降
找一组参数
θ
\theta
θ,让损失函数越小越好,这个问题可以用梯度下降法解决。
tip1:调整学习速率
小心调整学习率,可以通过观察loss的变化情况来判断学习率的数值大小是否合适。
- 自适应学习率
通常刚开始,初始点会距离最低点比较远,所以使用大一点的学习率。
update好几次参数之后,比较靠近最低点了,此时减少学习率。
学习率不能是一个值通用所有特征,不同的参数需要不同的学习率。
以Adagsrd算法为例
每个参数都除以它前一个值的均方根。
tip2:随机梯度下降法
tip3:特征缩放
![
梯度下降的理论基础
问题
数学理论
泰勒展开式
利用泰勒展开式简化