通用线性模型

  监督学习解决这样一个问题:给定一组带标签的样本,要求为样本集建立一个模型/假设(hypothesis),使得模型可以较准确的预测未知对象的标签。模型可以表示为h(x) = y,而每个样本可表示为(x, y),其中x为输入变量,称作特征,而y为输出变量,称作目标变量(即标签)。对于待预测的标签如果是离散值,则称该类监督学习问题为分类问题;如果是连续值,则称作回归问题。

  显然监督学习要解决的第一个问题是选择一个什么样的模型。选择了某一个模型之后,接下来的问题是如何训练这个模型以确定模型的参数(好比如假设随机变量遵从某个分布之后,如何运用样本做参数假设)。下面将从解决一个简单的线性回归问题开始,先讨论解决方法,再逐步涉及到提到的这两个问题。

  最终将看到,……


 一、线性回归

  假设我们需要对一个小区的楼盘成交价格做预测,显然这是一个回归问题。我们的样本特征是一个二维向量X=(面积,房间数),目标变量是成交价格y。

所做的假设为:

此假设的cost function为:

显然,上述假设特征向量与目标变量之间呈线性关系,对应的学习算法是选择合适的W使得cost function最小(即预测值与实际值之间误差的平方最小,称之为最小二乘法)。显然,假设特征向量与目标变量呈线性关系,没有任何理论依据,但在做出这样的假设之后,选择最小二乘法符合我们的直观。后面将看到,这样的学习算法符合最大似然概率的参数估计。

1、最优化方法 -- 梯度下降法(gradient decent)

  梯度下降法是一种最优化算法,是基于这样一种观察,可微函数从某点a开始,沿着其梯度相反的方向,函数值逐渐减少,最终收敛到该函数的极小值。即对于cost function中的w的迭代策略是:

 

其中α为w跳跃的步长。步长的选择是个问题,将影响到算法收敛的速度以及极小值趋近于最小值的精度。

  在实际应用中,我们拥有多个样本点,有两种方法来实现梯度下降法。一是batch gradient decent:

另一种是incremental gradient decent:

从执行效果上看,增量梯度下降法收敛的更快,但收敛到极小值之后还会存在抖动,因为其使用了迭代策略(批量梯度下降法使用收敛作为结束条件)

2、最优化方法 -- Normal Equations

  相对于gradient decent采用迭代的方法,Normal Equation使用了矩阵运算的方法直接计算出最小化cost function的参数。

……

3、确定cost function的理论依据

  假设目标变量与输入特征之间存在某个误差项。对于误差项,一个普遍有意义的说法是误差满足正态分布。而我们的目标是确定一个模型的参数,在知道了误差项的概率分布模型之后,问题转化为最大似然参数估计,即选择一组参数使得随机变量根据假设的概率分布模型的概率最大。在独立一致分布条件下,多个样本点的log最大似然函数为:

可以看到,最大化log似然函数相当于最小化

这刚好是前面推断的批量梯度下降法的最简式。也就是说,对cost function这样的设定符合最大似然参数估计。


二、局部加权算法(locally weighted algorithm)

  在进行监督学习时需要先选择模型,再利用学习算法对该模型进行训练。在上述线性回归模型中,如果训练的样本集不呈线性分布,则学习的效果将会很差,称之为欠拟合(例如选择了一些不太重要的特征导致样本集呈非线性分布)。一种直观的思路是选择一个非线性的模型例如二项式模型,但是需要有选择依据,这种方法在后面给出。

  另一种思路是依旧采用线性模型,但在cost function中,给各个样本点加上加权值,认为跟待预测对象相距较近的样本对cost function的权值较重,离待测样本相距较远的权值较轻(这实际上相当于假定在待测对象附近的样本点,其特征与目标变量在小范围内呈线性关系),局部加权算法的cost function为:

其中权重为

局部加权算法是一种非参数的学习算法,在进行回归时需要保留样本集。而前述的LMS算法是一种参数学习算法,利用样本集训练得到模型后,样本集便失去作用,在应用模型时并不需要样本集的存在。


  三、使用logistic regression进行分类

  对于分类问题,目标变量将取离散值。先研究二分类问题,即是或者不是某类型,也可以分别称之为positive class和negative class。前述使用线性模型来进行回归,这里将使用logistic function(sigmoid function)进行二分类:

      

上面的g(z)称作logistic function或者sigmoid function,其取值范围在[0, 1]。后面可以看到,选择该函数作为模型,实际上是认为Y ~ Bernouli分布的结果。进一步假设:

 对log似然函数进行最大化可以得到logistic算法的更新规则:

最后,对未知对象进行分类的过程通过比较后验概率来完成,实际上即看P(y=1|x;theta)是否大于1/2


 

四、Perceptron 算法

  Logistic 函数是一个连续函数,将其用来解决分类问题是建立在概率理论基础上的。更直观的,我们可能想通过使用下面的函数来作为分类模型:

同时令z=theta*X。其更新规则与 logistic算法的更新规则一样:

 

然而却与logistic算法的来历截然不同。


 

五、最优化方法 -- 牛顿方法

  牛顿方法用于求解一个函数y=f(theta)为0时对应的自变量theta。其更新规则如下:

其更新效果如下:

可以看到,theta逐步靠近目标值。在求解函数的最大值时,可以使用到牛顿方法,即利用过最大值点的导数为0.

令f(theta) = l'(theta),上述更新规则变为:


 

六、广义线性模型

  上述所讲的回归问题与分类问题算法都属于广义线性模型的一种。假设一个随机变量其概率密度函数可以写成指数类分布的形式,即:

其中yita为自然参数,a(yita)为归一化项,T(y)在通常情况下取y。可以通过构造广义线性模型来确定一个假设,进而解决该分类或者学习问题。具体的有:

  1. 确定y | x; θ ∼ ExponentialFamily(η),推导得到η
  2. 假定T(y) = y,则有h(x) = E[y|x]
  3. 令η = theta*X

从而最终可以得到h(x)的模型。

 

 

 

 

 

posted on 2013-06-24 23:26  zhouksh  阅读(1280)  评论(0)    收藏  举报