(大部分都不是自己写的,而是看完视频再总结的过程中看到有的博客已经总结的很好了,只是拿来保存一下,非原创)
复习:
(x(i),y(i)) 第 i 个样本,样本总数为 m
令,以参数向量为条件,对于输入x,输出为:
hθ(x(i))=θTx
n为特征数量
最小二乘法:
通过正规方程组推导的结论:
一、 过拟合与欠拟合
1、欠拟合:
欠拟合就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据,例如下面的例子:
左图表示size与prize关系的数据,中间的图就是出现欠拟合的模型,不能够很好地拟合数据,如果在中间的图的模型后面再加一个二次项,就可以很好地拟合图中的数据了,如右面的图所示。
2、过拟合:
通俗一点地来说过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差。例如下面的例子。
若训练集有7个数据,则可拟合出最高6次的多项式,可以找到一条完美的曲线,该曲线经过每个数据点。但是这样的模型又过于复杂,拟合结果仅仅反映了所给的特定数据的特质,不具有通过房屋大小来估计房价的普遍性。
过拟合 中的到的曲线仅仅反应了特定数据的 特质,不具有普遍性
二、参数学习算法和非参数学习算法
解决此类学习问题的方法:
1) 特征选择算法:一类自动化算法,在这类回归问题中选择要用到的特征
2) 非参数学习算法:缓解对于选取特征的需求,引出局部加权回归
参数学习算法(parametric learning algorithm)
定义:参数学习算法是一类有固定数目参数,以用来进行数据拟合的算法。设该固定的参数集合为。线性回归即使参数学习算法的一个例子
非参数学习算法(Non-parametric learning algorithm)
定义:参数的 数目会随着训练集合的大小线性增加
局部加权回归(Locally Weighted Regression)
一种特定的非参数学习算法。也称作Loess。
算法思想:
假设对于一个确定的查询点x,在x处对你的假设h(x)求值。
对于局部加权回归,当要处理x时:
1) 检查数据集合,并且只考虑位于x周围的固定区域内的数据点
2) 对这个区域内的点做线性回归,拟合出一条直线
3) 根据这条拟合直线对x的输出,作为算法返回的结果
用数学语言描述即:
1) 拟合出,使 最小
2) w为权值,有很多可能的选择,比如:
if |x(i)-x| small then w(i)≈1
if |x(i)-x| large then w(i)≈0
- 其意义在于,所选取的x(i)越接近x,相应的w(i)越接近1;x(i)越远离x,w(i)越接近0。直观的说,就是离得近的点权值大,离得远的点权值小。
- 这个衰减函数比较具有普遍意义,虽然它的曲线是钟形的,但不是高斯分布。
- 被称作波长函数,它控制了权值随距离下降的速率。它越小,钟形越窄,w衰减的很快;它越大,衰减的就越慢。
3) 返回
总结:对于局部加权回归,每进行一次预测,都要重新拟合一条曲线。但如果沿着x轴对每个点都进行同样的操作,你会得到对于这个数据集的局部加权回归预测结果,追踪到一条非线性曲线。
*局部加权回归的问题:
由于每次进行预测都要根据训练集拟合曲线,若训练集太大,每次进行预测的用到的训练集就会变得很大,有方法可以让局部加权回归对于大型数据集更高效,详情参见Andrew Moore的关于KD-tree的工作。
3、 概率解释
概率解释所解决的问题:
在线性回归中,为什么选择最小二乘作为计算参数的指标,使得假设预测出的值和真正y值之间面积的平方最小化?
我们提供一组假设,证明在这组假设下最小二乘是有意义的,但是这组假设不唯一,还有其他很多方法可以证明其有意义。
(1) 假设1:
假设输入与输出为线性函数关系,表示为:
其中,为误差项,这个参数可以理解为对未建模效应的捕获,如果还有其他特征,这个误差项表示了一种我们没有捕获的特征,或者看成一种随机的噪声。
假设服从某个概率分布,如高斯分布(正态分布):,表示一个均值是0,方差是的高斯分布。
高斯分布的概率密度函数:
根据上述两式可得:
即,在给定了特征与参数之后,输出是一个服从高斯分布的随机变量,可描述为:
*为什么选取高斯分布?
1) 便于数学处理
2) 对绝大多数问题,如果使用了线性回归模型,然后测量误差分布,通常会发现误差是高斯分布的。
3) 中心极限定律:若干独立的随机变量之和趋向于服从高斯分布。若误差有多个因素导致,这些因素造成的效应的总和接近服从高斯分布。
注意:并不是一个随机变量,而是一个尝试估计的值,就是说它本身是一个常量,只不过我们不知道它的值,所以上式中用分号表示。分号应读作“以…作为参数”,上式读作“给定x(i)以为参数的y(i)的概率服从高斯分布”。
假设每个 为IID(independently and identically distributed)独立同分布
即误差项彼此之间是独立的,并且他们服从均值和方差相同的高斯分布
(2) 假设2:
设的似然性为(即给定x(i)以为参数的y(i)的概率):
由于是独立同分布,所以上式可写成所有分布的乘积:
(3) 假设3:
极大似然估计:选取使似然性最大化(数据出现的可能性尽可能大)
定义对数似然函数为:
上式两个加项,前一项为常数。所以,使似然函数最大,就是使后一项最小,即:
这一项就是之前的,由此得证,即之前的最小二乘法计算参数,实际上是假设了误差项满足高斯分布,且独立同分布的情况,使似然最大化来计算参数。
注意:高斯分布的方差对最终结果没有影响,由于方差一定为正数,所以无论取什么值,最后结果都相同。这个性质会在下节课讲到。
4、 Logistic回归
这是我们要学习的第一个分类算法。之前的回归问题尝试预测的变量y是连续变量,在这个分类算法中,变量y是离散的,y只取{0,1}两个值。
一般这种离散二值分类问题用线性回归效果不好。比如x<=3,y=0;x>3,y=1,那么当x>3的样本占得比例很大是,线性回归的直线斜率就会越来越小,y=0.5时对应的x判决点就会比3大,造成预测错误。
若y取值{0,1},首先改变假设的形式,使假设得到的值总在[0,1]之间,即:
所以,选取如下函数:
其中:
g函数一般被称为sigmoid函数,图像如下:
z很小时,g(z)趋于0,z很大时,g(z)趋于1,z=0时,g(z)=0.5
对假设的概率解释:
假设给定x以为参数的y=1和y=0的概率:
可以简写成:
参数的似然性:
求对数似然性:
为了使似然性最大化,类似于线性回归使用梯度下降的方法,求对数似然性对的偏导,即:
因为求最大值,此时为梯度上升。
偏导数展开:
则:
即类似上节课的随机梯度上升算法,形式上和线性回归是相同的,只是符号相反,为logistic函数,但实质上和线性回归是不同的学习算法。
5、 感知器算法
在logistic方法中,g(z)会生成[0,1]之间的小数,但如何是g(z)只生成0或1?
所以,感知器算法将g(z)定义如下:
同样令,和logistic回归的梯度上升算法类似,学习规则如下:
尽管看起来和之前的学习算法类似,但感知器算法是一种非常简便的学习算法,临界值和输出只能是0或1,是比logistic更简单的算法。后续讲到学习理论是,会将其作为基本的构造步骤。