【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

(感谢李宏毅老师,所有图片来自于老师的课件)

Lecture 1 Regression

本讲主要是讲了一个线性回归模型,以及梯度下降法求解参数。以宝可梦为例。

回归(Regression)有很多应用场景,比如时序预测、自动驾驶、推荐系统等。

1.线性回归

以线性回归y=wx+b为例,可以基于损失函数最小(此处选取平方损失函数)来求解参数w和b,从而得到best model。
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
为求得参数w和b,可采用最小二乘线性解法(Ng的第二课就有讲到),可以得到一个闭式解(closed form);也可以采用梯度下降的方式,不断迭代逼近。

2.梯度下降法求解线性回归
(因为目标函数是要求使损失函数最小对应的参数,所以w是逆梯度方向移动)
先选取一个初始值w0;
计算此处的梯度,并设定一个学习率yita;
直到收敛……
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
对于两个或者多个参数,也是一样的啦…
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
这里会有个问题,可能到达的是局部最优点(local optimal);但不用worry了,在linear regression中,损失函数L都是convex的,不存在local optimal,只有一个全局最优点global optimal。

3.线性回归的欠拟合
y=wx+b这种还是无法很好的拟合所有的数据,那么增加x的次项效果会怎么样呢?
通过实验,可以看到,增加x的次项对于train data来说train error会减少,但是对于test data却不一定。更复杂的模型不见得在test data上会有更好的效果,会导致过拟合(over fittting)。
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

4.增加更多的特征、正则化(regularization)
上述y=wx+b中的x只是一维的,实际上x可能是多维的,即y与多种因素有关。这些因素也可以被称为特征。并且在损失函数后面,对每一个特征xi的系数wi进行惩罚(正则化)。这样做的目的是:
因为目标是min L,这样会让wi也尽量小,让模型y尽量简单的同时而且还能让损失函数小;并且wi小的话,模型y也更加平滑,这样某个特征xi发生显著变化的时候不至于y也发生显著的变化(因为可能是噪声使得xi发生显著变化,但不希望噪声影响结果)
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
但lamda也不能太大了,这样会降低train loss的重要性(实际上,主要是要min train loss,其次min 惩罚项)……我是这么理解的
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

另外补充一下,为什么上面只“惩罚了”w,不惩罚b,因为b只反映了函数的位置 ,跟函数形状没啥关系,所以也谈不上平滑了。

Lecture 1 的总结基本上就是这样……

Lecture 2 Where does Error come from?

本讲主要讲了偏差bias和方差variance的来源,跟模型选取的关系,如何解决,如何balance它们。

1.偏差与方差
偏差反映了这些散点与真实值(红心)的偏离;
方差反映了这些散点之间的分散程度;
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

2.偏差方差与模型之间的关系
还是如上图所示,把这些散点看成一个个的估计出来的模型f*;
对于同类型参数值不同(比如都是y=wx+b但w和b不同)的一些模型,它们的均值与 f折 偏离越大表示偏差越大;左图的模型简单,右图模型复杂,右图偏差更小。(可看出均值更接近于黑线即真实值)
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
对于每个模型与它们的均值的距离之和越大表示方差越大。就比方说左边的模型更加复杂,不同的参数对应的形状差别也很大,于是方差也大。简单一点的模型(右图)也更加平滑,受数据的影响也越小。考虑一个极端的情况就是y=0(没有参数),方差就是0了。
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

3.错误来源于偏差和方差
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记

对于简单的模型,可能无法很好的拟合数据,这样会导致欠拟合(under fitting),和低偏差(low bias);
可以通过增加特征的个数,或者选取更复杂的模型;
但是选取了过于复杂的模型之后,虽然模型在train data上表现得很好,但是在test data上error很高,出现过拟合(over fitting),导致高方差(high variance);
这样可以通过增加样本数或者正则化。
所以需要选取适当的参数来平衡bias 和variance。

4.误区
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
Model1,2,3中,虽然Model 3在public test data上error最小,但不见得它在我们无法拿到的data(private data error)上就error最小或者error小于50%。所以不能通过在public test data上效果就断定在private test data上也有这样的效果。
有效的做法是将train data分成train data和validation data,然后看最佳的模型在public test data上的效果从而推测在private上的效果:
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记
如果怕采样带来一些误差,可以采取N-fold cross valiadation:
【台大李宏毅ML课程】Lecture 1-2 Linear Regression、Error笔记