机器学习系列算法(二)

线性回归、Logistic回归、高斯判别分析

 

1、线性回归

估计函数为:

损失函数(误差函数)为:

它用于评估模型即、也就是的优劣。

线性关系的表达能力很强大:①特征的每一维对结果影响的强弱,可由系数体现;②特征的每一维可以先映射到一个函数,再参与线性计算,这样就达到了非线性的效果。

线性回归下,求解模型等价于使误差函数最小,即。常用方法有最小二乘法&梯度下降&牛顿迭代法。

 

2、梯度下降为何选择“误差的平方和”作为损失函数

将误差记作,即。假设符合正态分布,那么向量和结果值的条件概率为:

这是样本i的条件概率。我们希望在所有样本上达到最佳预测效果,采用最大似然估计如下:

因此,为了使达到最大,必须使最小。

根本出发点还是在于,“符合正态分布”的假设是符合客观规律的。

 

3、最小二乘法求解

要使达到最小,必定有。向量共有n+1维,亦即:

如下标记:

的公式得:

因此得到:

最小二乘法的优点在于,计算出的必定是最优模型;硬伤在于:①要求矩阵X必须是满秩(否则不存在逆矩阵)、②求解逆矩阵运算量很大。

 

4、梯度下降

为了求得的最优值即,任意给定一个初值并向最优值逼近。逼近方法是让每次沿负梯度方向迭代。

对于的第j个维度,其梯度方向为:

因此迭代公式为:

梯度下降法要注意三点:①结果受初值影响很大;②结果未必是最小值,也可能是局部极小值;③一般情况下是一个漂亮的碗型,所以唯一的极小值也就是最小值。

貌似该方法细分为批梯度下降&增量梯度下降;并且说前者计算量大但是持续收敛,后者计算量小,但可能在不收敛处徘徊。不过我没看出两个方法的区别。

 

5、牛顿迭代法

同样是用来求解的方法,从的初值开始,按照某种策略往最优值逼近。

比较一下牛顿迭代&梯度下降:前者收敛快(即迭代次数少),缺点是初始点要求极高、需要计算并存储Hessian矩阵(计算量大、空间大);后者收敛慢,但是占存储空间小、初始点要求没那么严格。

牛顿迭代法的策略就是Taylor展开。这里先考虑是一维的情况:

对于似然函数有:

因此迭代公式为:

是多维,即时,迭代公式如下:

其中的Hessian矩阵为:

 

6、带权重的线性回归

依旧是找出最优的使得最小,只是的定义有所改变:

即对每条记录都乘以一个权重,其值为:

几点说明:

①给较近的记录以较大权重,因为它们与待计算记录更相似;类似于KNN思路;②该方法是“非参数学习方法”,因为误差函数随待计算记录的不同而不同;③硬伤在于:(a)计算量大,对每条记录都得单独计算、(b)时间效率低,因为必须在接收到待处理的记录后,现场做计算;④其优点(也可能是初始动机)是极大削弱了离群点的不利影响。

 

7、Logistic回归

普通回归是针对连续值,而分类问题一般是针对离散值。若一定要用回归方法做分类,可以采用Logistic回归模型。

Logistic回归就是在普通回归()的基础上添加一层映射:

函数将(-∞,+∞)的值映射到(0,1)。这样便得到:

假设结果的分布是Bernoulli分布,并定义:

此时,应用最大似然方法求解

 

8、Logistic回归模型的直观解释

Logistic回归公式如下:

 

因为比较的是的大小,显然两者相对大小仅取决于的正负。

注意到,若是比较小的数,则均不会≈1.0,亦即此时做的判断可信度不太高;而若,便有≈1.0,此时预测新样本为正例便很可靠。

我们期望得到最优的模型,也就是想让。如图:

二维情况下,直线便是。由平面几何公式,任意样本如图中点,到直线的距离为:

我们希望该距离尽可能的大。这一点由Logistic回归的似然函数也可看出。

在正例()时,是正数,它越大(即distance越大)就提高了似然函数;在负例()时,是负数,它越小(distance同样变大)就提高了似然函数。

因此,Logistic回归下,模型的优劣准则即是的值;而该值与“样本离的距离”正相关;距离越大则模型越优。

同时注意,这里是“全体样本与的距离”总和。

直观上来看,它是想求出这样的(即模型)——所有样本点距离所指示的直线尽可能的远。

【max最大似然函数→→样本离的距离尽可能大】

 

9、判别模型VS生成模型

判别模型:根据特征值(向量x)来求结果的概率,即首先学习模型,在此基础上求条件概率

比如为确定一头羊是山羊还是绵羊,可以先学习出模型,然后分别计算新来的羊是山羊OR绵羊的概率:

选择概率较大的那个,即便是预测结果。

生成模型:对山羊&绵羊分别学习模型,将新来的羊分别放入两个模型,比较概率大小以预测。例如新羊是山羊的概率为:

从贝叶斯公式很容易看到,两个模型是统一的。

不过一般由生成模型可以得到判别模型,反之不成立;因为生成模型有更严格的假设条件和约束。

此外,判别模型(例如SVM)下寻找的是样本的“区分模型”,即寻找不同类别的分界面,反映异类数据的差异;而生成模型(如GDA)则是寻找同类样本的“概率密度分布”,能够反映同类数据自身的相似度。

 

10、高斯判别分析(GDA)

一维正态分布,模型是时,变量的概率是:

扩展到多维,多维变量,均值记作,方差记作矩阵(其中就是协方差矩阵);此时的概率为:

回到山羊&绵羊的问题。假设输出结果服从Bernoulli分布,单个模型服从多值高斯分布(假设两个模型的协方差矩阵相同),即:

那么概率密度函数(山羊标记为0,绵羊标记为1):

似然函数为:

各偏导数为0即可求得参数值。

posted @ 2013-04-25 20:04  Sunshine1991  阅读(307)  评论(0)    收藏  举报