线性回归的概率解释
在解决线性回归问题时,我们为什么要使用最小二乘法作为代价函数?这个问题我们会通过概率统计来进行解释。
假设对每个样本数据,输出值与预测值存在一定的误差ε(i),误差可能来自未被建模的其他因素,也可能是随机的噪音。因而预测函数可写为
另外我们假设误差属于独立同分布(independently and identically distributed),并且服从高斯分布N(0,σ2),所以ε(i)的概率密度函数为
因此可推导出
P(y(i)|x(i);θ)表示:在θ为给定的参数的情况下,概率y(i)以x(i)为随机变量的概率分布,注意θ不是随机变量。
给定X(输入矩阵)和θ,Y(输出矩阵)的分布记为p(Y|X;θ),这个概率的值我们定义为以θ为变量的似然函数(likelihood function)
由于每个误差值是独立分布的,所以
在θ作为参数的情况下,我们希望给定X时出现Y的概率是最大,因此问题变成最大化L(θ)。在求解最大化L(θ)的过程中,对L(θ)取对数将简化一些运算,因此我们最大化对数似然函数l(θ):
上面的公式可以得出,最大化似然函数L(θ)等价于最小化代价函数J(θ),这就是我们为什么取最小二乘法作为代价函数的原因。
局部加权线性回归
如下左图显示了用线性函数y=θ0+θ1x拟合数据集的结果,由于数据集并不是一条直线,因此拟合效果不太理想。如果我们增加一个特征项x2,即用y=θ0+θ1x+θ2x2拟合数据集,那么得到的结果如中间所示。粗看起来,增加更多的特征项可以使拟合效果更好,然而事实上并非如此。如果我们把特征项增加到6项,即y= Σj∈[0,5]θjxj,我们得到的结果如右图所示。尽管这个曲线完美拟合整个数据集,但是我们很难说它能准确预测未知的新数据。我们把左图这种情况称为欠拟合(underfitting),就是说模型没有很好地捕捉到数据特征,不能够很好地拟合数据;右图这种情况称为过拟合(overfitting),就是说模型把数据学习得太彻底,以至于不能很好地预测新的数据。
这里我们介绍一个新的方法称为局部加权线性回归(locally weighted linear regression),它可以弥补普通线性回归模型欠拟合或者过拟合的问题。假设我们要预测x这个点对应的值,局部加权线性回归对x附近的每一个点赋予一定的权重,离x越近权重越大,离x越远权重越小。通过赋予权重,使得x附近的点对结果影响最大,离x很远的点对结果的影响可以忽略不计。因此代价函数表示如下,其中w(i)表示权重。
由上述对权重特性的描述,w(i)的图像应该是个钟形曲线。
通常我们定义w(i)的函数如下:
上式中的τ称为波长(bandwidth),波长的大小取决了附近点的下降速率,参数根据对数据集的实验进行调整。
局部加权线性回归是一种非参数学习算法(non-parametric learning algorithm),而之前我们学的普通线性回归是一种参数学习算法(parametric learning algorithm)。参数学习算法有固定的明确的参数,参数一旦确定,就不会改变了,我们不需要保留训练集中的训练样本。而非参数学习算法每进行一次预测,需要重新计算数据,因此需要保留训练数据。当训练数据较多时,非参数学习算法需要占用更多的存储空间。
逻辑回归
现在我们开始讨论分类(classification)问题。分类问题和回归问题很类似,只不过预测的y值从连续值变成了离散值。我们先从最简单的二分类(binary classification)问题开始讨论,此时y值只有0和1两个取值。0被称为负类(negative class),1被称为正类(positive class),有时也会用符号-
和+
标记。给定x(i),对应的y(i)值也被称为训练集的标签(label)。
一个二分类的例子是,通过给定肿瘤的大小(x(i))来预测是否为恶性肿瘤(y(i))。我们先用之前线性回归的方法求解这个问题,如下图所示,从结果上看线性回归的效果并不好。
直觉上看,hθ(x)的取值应该是介于0到1之间的。为了达到这一点,通常我们选取hθ(x)如下:
其中g(z)被称为逻辑函数(logistic function)或者sigmoid函数(sigmoid function)。它的图形如下所示:
g(z)的值域在0到1之间,当z趋向正无穷时,g(z)趋向于1;当z趋向负无穷是,g(z)趋向于0。g(z)还有另外一个有用的特性,g(z)对z的导数可以用其自身来表示,具体推导如下:
那么对于这样一个逻辑回归模型,我们如何选取θ进行拟合呢?套用之前极大似然估计的思想,我们为这个模型赋予一些概率假设:
这两个式子可以简化成一个:
其似然函数L(θ)为:
对数似然函数l(θ)为:
如何最大化l(θ)呢?类似于在线性回归里求代价函数最小值是用的梯度下降法,我们可以用梯度上升法求函数的最大值。因此θ的每次迭代如下:
对l(θ)进行求导:
所以我们得到梯度上升法则:
这个迭代规则和线性回归的最小均方算法(LMS)看上去非常类似,但它们并不是同一个算法,因为现在的hθ(x)是一个非线性函数。然而它们都拥有相似的形式,这究竟是巧合还是有更深层次的原因呢?这个我们后面会讲到。
感知器学习算法
最后我们再简短地介绍一个新的算法。之前我们选取sigmoid函数作为hθ(x),如果我们换成另外一个函数:
然后用同样的迭代规则:
这样我们得到的算法称为感知器学习算法(perceptron learning algorithm)。在上世纪60年代,感知器(perceptron)被认为是神经网络组成单元的一个粗糙的模型,这个我们后续会详细展开。
总结
- 线性回归的概率解释:最大化似然函数等价于最小化代价函数,这就是我们为什么取最小二乘法作为代价函数的原因
- 为了避免普通线性回归欠拟合和过拟合的问题,可以采用局部加权线性回归方法,通过赋予权重来强化离x近的点的结果,弱化离x远的点的结果
- 局部加权线性回归是一种非参数学习算法,普通线性回归是一种参数学习算法
- 二分类问题通常取hθ(x)为sigmoid函数,其迭代规则与线性回归的规则形式相似
参考资料
- Coursera机器学习课程讲义 Week 3 Lecture Notes
- 斯坦福大学机器学习课CS229讲义 pdf
- 网易公开课:机器学习课程 双语字幕视频