欠拟合与过拟合的概念
课程大纲:从上一讲讲的线性回归,这里要讲它的一种变化版本,称为 局部加权回归。 之后讨论另外一种可能的对于线性回归的解释,并且基于它来开始讲第一个分类算法:logistics 回归。 之后再讲一些感知器算法的相关知识。最后讲解牛顿方法,它是一个用来对logistic回归模型进行拟合的算法。
1.1 回归上一篇文章的符号:
- (x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i)):表示第 iii 个训练样本
- 当讲到线性回归或线性最小二乘时:用hθ(x(i))h_\theta(x^{(i)})hθ(x(i)) 表示预测HHH 对于输入的预测值,假设 hhh 基于参数向量 θ\thetaθ,推出:
hθ(x(i))=∑j=0nθjxj(i)=θTxh_\theta(x^{(i)}) = \sum_{j=0}^n\theta_jx^{(i)}_j = \theta^Txhθ(x(i))=j=0∑nθjxj(i)=θTx,其中 x0=1x_0 = 1x0=1, - 定义二次成本函数:
J(θ)=12∑i=1m (hθ(x(i))−y(i))2J(\theta)= \frac12\sum_{i=1}^m\ (h_ θ(x^{(i)})-y^{(i)})^2 J(θ)=21i=1∑m (hθ(x(i))−y(i))2,对于训练集合中的 mmm 个训练样本的求和。 - 使 J(θ)J(\theta)J(θ) 最小化的 θ=(XTX)−1XTy^\theta = (X^TX)^{-1}X^T\hat yθ=(XTX)−1XTy^
继续回到线性回归的问题,其中的两个特征是:
- 房子的大小,也就是房子的生活面积
- 房子的卧室数量
1.2 特征对学习算法的影响(特征选择中存在的问题):过拟合、欠拟合:
图中表示: 是若只有一个特征 x1=size(房子的大小)x_1 = size(房子的大小)x1=size(房子的大小),那么线性模型可能拟合数据不是很好,因为有些样本点没有被捕获到,这种情况叫 欠拟合。 第二个是有两个特征,用二次模型来拟合效果最好; 第三个是六次模型,更加精确,但是存在过拟合问题,所以这种情况叫 过拟合。
- 欠拟合: 非正式地可以理解为一种情形,在这种情形下,数据中的某些非常明显的模式没有被成功的拟合出来。
- 过拟合: 非正式地可以理解为一种情形,在这种情形下,算法拟合出的结果仅仅反映了所给的特定数据的特质。
如:在贵州地区,采集的7个房子售价的样本数据,它们碰巧贵或者便宜,那么拟合出的6次多项式函数仅仅反映了该数据集合的特质,而不是隐藏在其下的房屋价格随房屋大小变化的一般化规律。
1.3 非参数学习算法:特征选择算法
对于选择特征有非常大的帮助;能帮助解决上面(可以缓解对于选取特征的需求)存在的学习问题;从这里推出:局部加权回归的讨论。
1.3.1 局部加权回归的讨论
线性回归就是参数学习算法(parametric Learning algorithm)的一个例子。 参数学习算法是一类有固定数目的参数以用来进行数据拟合的算法。 在线性回归中,有一个固定的参数集合 θ,它是一定可以拟合数据的。
非参数学习算法(局部加权回归)正式定义:
它是一个参数数量会随着 m(训练集合的大小)m(训练集合的大小)m(训练集合的大小) 增长的算法。 通常它的定义为参数的数目会随着训练集合的大小线性增长。
主要思想如下图中的训练集合的一组数据,xxx,yyy:
图中表示: 如果对这组数据进行线性回归,会得出一条有些单调平坦的直线,即不能很好的拟合数据。 会决定是否使用了正确的特征,再次尝试使用二次项模型进行拟合,结果也可能是不全正确的,学习算法可能会不断地修改特征,使模型拟合的更好。 之后可能会得到一组特征,并得到一个合适的模型。 此步骤太复杂,下面介绍不进行以上步骤的方法。
方法: 假设对于一个确定的查询点 xxx,在 xxx 处对假设 hhh 进行求值,如,想求得 xxx 在图中所示的位置时 yyy 的预测值:
就如上图所示对数据进行拟合; 如果对于 线性回归(Linear Regression) 需要做:
- 首先拟合出 θ\thetaθ ,使得代价函数: ∑i=1m (y(i)−θTx(i))2\sum_{i=1}^m\ (y^{(i)} - \theta^Tx^{(i)})^2∑i=1m (y(i)−θTx(i))2 最小化,最后返回。
如果对于 非参数学习算法-局部加权回归 中需要做:
- 当要处理 xxx 点时,会先检查数据集合,并只考虑位于 xxx 周围固定区域内的数据点,同时对比看一下,对假设 hhh 求值需要考虑的区域,这里只会考虑这个邻近区域内的点(图中划横线部分),来进行假设 hhh 求值。 之后,会只取某些点(如图中圈起来部分); 并对圈起来这部分的数据子集使用线性回归来拟合出一条直线(如图),最后再根据这条直线求出具体的值,作为算法返回的结果,对应的 yyy 可以认为是在局部加权回归中的假设的输出的结果或预测值:
1.3.2 是局部加权回归正规化
在局部加权回归中, 要拟合出 θ\thetaθ,是代价函数最小化:
∑i=1m w(i)(y(i)−θTx(i))2 \sum_{i=1}^m\ w^{(i)} (y^{(i)} - \theta^Tx^{(i)})^2 i=1∑m w(i)(y(i)−θTx(i))2
,w(i)w^{(i)}w(i) 称为权值(权重),它等于:
τττ 称作波长函数,它控制了权值随距离下降的速率。
- τττ 非常小:对于查询值 xxx,会得到一个相当窄的高斯函数,较远点的权值会下降的非常快
- τττ较大:会得到一个权值函数,它的值随着距离下降的速度将会相对较慢。
如图:
假设有一训练样本,则有:
解释: 如果与 xxx 彼此接近,和第 iii 个训练样本相关的权值会接近于1。
相反:
解释: 如果与 xxx 间隔很远,和第 iii 个训练样本相关的权值会趋近于0。
想象着把上面的点,放置在一个以你想计算假设值 hhh 的位置为中心钟型的凸起上方,那么对于划线的点来讲,赋予的权值和这个钟型函数,在划线点的值的高度是成比例的。 对于划线点的权值,对于这这个训练样本来说也和高度成比例,以此类推。
对于上两种情形的解释: 如果查询一个确定的点 xxx,在数据集合的图示中,将要给那些离得近的点赋予较大的权值,离得远的点赋予较小权值; 对于离得远的点,将会近似为 0。 离得远的点,它们对于:∑i=1m w(i)(y(i)−θTx(i))2 \sum_{i=1}^m\ w^{(i)} (y^{(i)} - \theta^Tx^{(i)})^2 i=1∑m w(i)(y(i)−θTx(i))2 这个求和公式的贡献非常小,它们对于 iii 的求和式等于1 乘上若干个二次项加上 0 乘上那些离得较远的点对应的二次项, 使用这种权值计算的方法的效果是通过使用局部加权回归拟合出一组参数向量,来更多的注重对临近点的精确拟合,同时忽略那些离的很远的点的贡献。
在下面这样的一个数据集合上使用局部加权线性回归,然后问在左下角 xxx 轴上的这一点上的假设输出,会得到如左上角的一条直线,并做预测。 同时,问右下角数据集合上的这一点上的会得到怎样的假设输出? 只需在这点出,放置一条经过这点的直线,然后预测它的值;
最后,在下面这样的一个数据集合上使用局部加权线性回归,其中 xxx 轴上 两个标记的点为查询点:
- Question:问在左下角 xxx 轴上的这一点上的会得到怎样的假设输出? 问右下角数据集合上的这一点上的会得到怎样的假设输出?
- 一问:会得到如左上角的一条直线,并做预测。
- 二问:需在这点处放置一条经过这点的直线,然后预测它的值;
实际上,每一次都在尝试改变假设,每次当让学习算法去预测房屋价格或其他的东西时,都需要重新进行一遍全新的拟合过程(上面所说的两条直线的位置,方向都是可以随机初始化的,都需要后面调整方向,达到最好的拟合效果),之后在 xxx 点(假如为图中左边直线上标的点)处,拟合出一条直线,这一点就是希望进行预测的那个查询点。 如果沿着 xxx 轴,对每个点都执行同样的操作,那么对于这个数据集合来说,局部加权回归的预测结果能够追踪这条非线性的曲线。
如图:
由于局部加权回归是一个非参数算法,每次需要进行预测的时候,需要再一次根据整个训练集合拟合出 θ,如果有一个很大的训练集合,那么使用这个算法代价会有点高, 因为每次需要进行预测的时候,就需要重新根据巨大的数据集合来拟合出一条直线。
1.4 线性模型的概率解释:
关于这个概率解释,内容主要是关于的 logistic回归,也是第一个 分类算法。
下面讨论非加权的线性回归:
- Question:为什么选择最小二乘? 为什么选择这样的指标,使得假设预测的值和真正的 yyy 值之间的面积的平方最小化? 为什么不是面积的绝对值 ?
解释: 需要给出一组假设,证实上面的问题:
假设 1:
为最小二乘赋予概率意义:假设房屋的价格是一些特征的线性函数加上其中的 误差项,表示:
在这里,把 误差项 当做是对未建模的效应的捕获; 如,房子还有其他特征:“房间有多少个壁炉”等特征。 它表示了一种没有捕获到的特征,或者一种随机的噪声。
假设 2:
?(i)^{(i)}(i)(误差项) 存在概率分布,即服从某个概率分布:?(i)^{(i)}(i) ~ ?(0,?(i)^{(i)}(i)),这是一个高斯分布的表示。 均值为 0,方差为 ?,? 代表 normalnormalnormal,代表一个正太分布或高斯分布。
高斯分布的概率密度函数:
它是一个钟形曲线。
在给定参数的情况,房屋的价格也服从高斯分布的概率密度函数,表示为:
在给定房屋的特征和参数,房屋的价格是一个服从高斯分布的随机变量,均值为 θTx(i)\theta^Tx^{(i)}θTx(i) ,方差为:σσσ。
- Question:为什么任务误差服从高斯分布?
解释:
- 便于进行数学处理。
- 用中心极限定律(许多独立随机变量之和,趋向于服从高斯分布)等证明方式来证明误差服从高斯分布。
- 高斯模型对于回归问题中的误差来说是很好的假设。
如果误差是由许多未建模的效应共同导致的,如:卖/买家的情绪、房子是否带有卫生间等特征,如果所有的这些效应都是独立互相没有关系的,那么根据中心极限定律,这些效应的综合会接近于服从高斯分布。
则有:
表示: 给定 x(i)x^{(i)}x(i) 以 θ\thetaθ 为参数的 y(i)y^{(i)}y(i)概率分布,其中 “;” 表示以x为参数。
假设 3:
不同的输入对应的误差项 ?(i)^{(i)}(i) 是 IID, 它们之间是彼此独立同分布,即表示它们服从均值和方差完全相同的高斯分布。
- Question:怎么拟合一个模型?
解释:
这里有种方法,叫 θ\thetaθ 的 似然性(likelihood),表示为:
它等于一系列的高斯密度函数的乘积,表示为:
这里定义了 L(θ)L(\theta)L(θ) 表示 θ\thetaθ的似然性;而 θ\thetaθ 的似然性表示的是数据的概率(给定 XXX并且以 θ\thetaθ 为参数的 y^\hat yy^ 的概率)。 θ\thetaθ的似然性和数据的概率二者概念大致相同,除了当使用似然性这个词的时候,是为了强调将这一项:
,把它看做为一个 θ\thetaθ的函数。 即参数的似然性 L(θ)L(\theta)L(θ) 和数据的概率, 而不是数据的似然性和参数的概率。
假设 4:
假设 ?(i)^{(i)}(i)(误差项) 满足 IID,IID 表示独立同分布,那么给定这些作为数据的概率和参数的似然性,怎么去估计参数? 希望为模型选择怎么样的参数?
解释:
使用**极大似然估计(maximum likelihood)**原则上解决的就是上面的 假设 4 问题。
需要选择参数 θ ,使得数据出现的可能性尽可能的大,即要选择 θ 使似然性最大化,或者说选择参数使得数据出现的可能性尽可能的大,这样非常有可能统计到这样的数据。 关键是要选择参数,使得得到的数据出现概率最大化。表示为:
Choose θ\thetaθ to maximum L(θ)L(\theta)L(θ)。
定义 ℓ(θ)ℓ(\theta)ℓ(θ),即似然函数 L(θ)L(\theta)L(θ) 取对数,表示为:
根据上式得出,要是 L(θ)L(\theta)L(θ)最大化,就得使代价函数:
J(θ)=12∑i=1m (y(i)−θTx(i))2 J(\theta) = \frac12\sum_{i=1}^m\ (y^{(i)} - \theta^Tx^{(i)})^2J(θ)=21i=1∑m (y(i)−θTx(i))2最大化。由于符号的存在(即式子前面的负号),等同于将里面的这一项作为 θ\thetaθ 的函数最小化。
综上几个假设,为什么线性回归模型使用最小二乘算法的目的,实际上是假设误差项满足高斯分布,且独立同分布的情况下,使似然性最大化。
1.5 分类和 Logistic Regression
在回归问题中,要尝试预测的变量 yyy 是连续变量,下面是要讨论的是第一个分类算法中,要预测的变量 yyy 是离散的,即可以限定 yyy 只取很少的几个离散值,这里会讨论二元分类,y∈{0,1}y∈\{0,1\}y∈{0,1},这是二元分类,能做什么呢?
对于分类问题应用线性回归有时效果可以,但是总的来讲是不尽如意的。
- Question:分类能做些什么? 怎么推出 logistic 函数 ?
解释:
如果 y∈{0,1}y∈\{0,1\}y∈{0,1} ,改变假设函数的值的形式,得假设函数得到的值总在0到1之间: h(x)∈[0,1]h(x) ∈[0,1]h(x)∈[0,1],目的是如果知道 yyy 不是0就是1, 至少应该让假设预测出的值不会比1大太多,也不会比0小太多。 所以不能选择线性函数作为假设,选取如下的函数(怎么选择它,就是根据经验了),表示为:
其中:
g(z)g(z)g(z) 称为 sigmoid 函数, 也叫 logistic 函数,图像表示:
当 zzz 很小时, g(z)g(z)g(z)会趋近于0,相反为 1;相交于 0.5。
- Question:为什么选择 Logistic函数 来拟合二分类问题?(这里先提问,后面做解答)
假设 1:
对于上面的假设函数,也要像对于线性回归做同样的概率意义上的解释,假设:
假设要尝试估计 y=1y = 1y=1(给定 xxx,以 θ\thetaθ为参数的 y=1y = 1y=1 的概率) 和 y=0y = 0y=0 的概率。 简写为:
- Question:怎么解决参数拟合的问题?给定基于数据的模型, 怎么为模型拟合出参数 θ\thetaθ ?
解释:
同样,使用到似然性,这里的似然性表示假设m个训练样例是独立生成的,将参数的似然性写下来,表示为:
需找到参数 θ\thetaθ 的一个极大似然估计,即要找到一组参数 θ\thetaθ 使得似然性 L(θ)L(\theta)L(θ)最大化。 与线性回归一样,使似然性的对数最大化:
即为了拟合出模型中的参数 θ\thetaθ,需找到 θ\thetaθ 使似然性的对数最大化。与线性回归情况下的推导类似,使用渐变上升(为啥使用它,经验之谈)。
在讨论最小二乘算法时,用来使二次函数最小化的搜索算法是 梯度下降;完全可以用之前的策略,只是这个求得是最大化,所以梯度算法的符号由负变为正,实际上称为 梯度上升算法,表示为:
不断地将 θ 的值替换为它之前的值加上学习率阿尔法,乘上成本函数的梯度,其中,似然性的对数是和 θ 有关的。
- Question:什么是梯度?
解释:
即,关于每个参数θ\thetaθ的分量对目标函数 ℓ(θ)ℓ(\theta)ℓ(θ) 求偏导数的推导过程。 从一个训练示例(x,y)(x,y)(x,y) 开始,然后使用导数来推导随机函数渐变上升规则:
有根据:
所以推导出梯度上升的规则:
- Question:logistic 回归 的梯度算法 和线性回归的 最小二乘回归 是同一个学习算法吗?
解释:
将其与 最小二乘 (LMS least mean squares) 的梯度更新规则进行比较,我们会发现它看起来相同;但这不是相同的算法,因为在logistic 回归 中,hθ(x(i))=θTx(i)h_\theta(x^{(i)}) = \theta^Tx^{(i)}hθ(x(i))=θTx(i)现在被定义为 θTx(i)\theta^Tx^{(i)}θTx(i) 的非线性函数。尽管如此,最终得到了相同的更新规则,但是两个算法是完全不同的,简单来说就是线性与非线性的差别。