经典机器学习系列之【线性模型与广义线性模型】

1,029 阅读7分钟

我的微信公众号名称:深度学习与先进智能决策 微信公众号ID:MultiAgent1024 公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

  这一节我们介绍线性模型,介绍思路如下:我们先介绍概念,什么叫做线性模型?在了解了基本的线性模型之后,我们将其应用于一元线性回归,之后扩展到多元线性回归。之后我们再将其扩展到广义线性模型。最后通过广义线性模型迁移到logit回归(分类问题)中。

线性模型基本概念

  线性模型(Linear Model)是在假设特征满足线性关系,给定一些数据,需要用这些数据训练一个模型,并用此模型进行预测。但这个模型是属性的线性组合,其函数形式为:

f(x) = w_{1}x_{2}+w_{2}x_{2} + \cdots w_{n}x_{n}+b

  用向量表示的话,如下所示:

f(x) = w^{T}x+b

  其中的wb是我们需要学习的参数。一旦wb确定下来,那么这个模型也就确定下来了。

一元线性回归

  假定我们现在手头上有一些训练样本(x_{1},y_{1})(x_{2},y_{2})\cdots(x_{m},y_{m})。那么我们如何来找到一组参数wb使得构建的线性模型能够很好地表示这组样本输入与输出之间的关系呢?

  在开始建模之前,我们需要思考一个问题,什么叫做很好地表示?我们需要将这个好坏量化一下。通常我们以范数作为量化的标准。在这里表示的就是,对于真实的输入x_{1},我的预测输出y_{pre}与真实输出y_{1}之间的误差。在这里我们以均方差作为度量标准。

  因此这个问题就转变为了,我们需要找一组参数wb,能够使得这些样本在当前模型下的均方误差最小,用数学形式表达如下所示:

(w^{*},b^{*})=argmin_{w,b} \sum_{i=1}^{m}(y_{i}-wx_{i}-b)

  w^{*},b^{*}表示wb的解。

  基于均方差最小化来进行模型求解的方法称为最小二乘法(least square method)。在线性回归问题中,最小二乘法试图寻找到一条直线,使所有样本到直线的欧式距离之和最小。

  求解wb使E_{(w,b)}=\sum_{i=1}^{m}(y_{i}-wx_{i}-b)^{2}最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。

  由于E_{(w,b)}是关于wb的凸函数,所以对其求偏导数,令其偏导数等于0,所求出来的解即为最优解。其偏导数求解如下所示:

\frac{\partial E_{(w,b)}}{\partial w} = 2(w\sum_{i=1}^{m}x_{i}^{2}-\sum_{i=1}^{m}(y_{i}-b)x_{i})
\frac{\partial E_{(w,b)}}{\partial b} =  2(mb - \sum_{i=1}^{m}(y_{i}-wx_{i}))

  再令其偏导数为0,可得到wb最优解的闭式(closed-from)解

w=\frac{\sum_{i=1}^{m}y_{i}(x_{i}-\overline{x})}{\sum_{i=1}^{m}x_{i}^{2}-\frac{1}{m}(\sum_{i=1}^{m}x_{i})^{2}}

  其中\overline{x}=\frac{1}{m}\sum_{i=1}^{m}x_{i}x的均值。

b = \frac{1}{m}\sum_{i=1}^{m}(y_{i}-wx_{i})

  至此,求解完毕。

多元线性回归

  在一元回归问题中,样本只有一个属性。假设样本具有n个属性,此时期望找到一组模型参数wb,使得f(x_{i})=w^{T}x_{i}+b,使得函数输出f(x_{i})与真实标签y_{i}越接近越好。我们将这类问题称为多元线性回归问题(multivariate linear regression),或者叫做多变量线性回归问题。

  为了便于讨论,我们把wb组合称为一个向量的形式\hat{w}=(w;b)。与之对应,样本集可表示为一个m \times (d+1)大小的矩阵X。那么每一行都对应一个样本。每一行的前d个元素都表示为当前这个样本的d个属性值。最后这个元素恒为1,是方便与参数\hat{w}中的b相乘,形成偏置项。样本输入的数学表达形式可表示为如下形式:

X=\left(\begin{array}{cccc}
{x_{11}} & {x_{12}} & {\cdots} & {x_{1d}} & {1}\\
{x_{21}} & {x_{22}} & {\cdots} & {x_{2d}} & {1}\\
{\vdots} & {\vdots} & {\ddots} & {\vdots} & {\vdots} \\
{x_{m1}} & {x_{m2}} & {\cdots} & {x_{md}}& {1}
\end{array}\right)=
\left(\begin{array}{cccc}
{x_{1}^{T}} & {1}  \\
{x_{2}^{T}} & {1}  \\
{\vdots} & {\vdots}  \\
{x_{m}^{T}} & {1} 
\end{array}\right)

  将标签以同样的方式写成向量的形式有y=(y_{1};y_{2};\cdots;y_{m}),令均方误差最小化,求其最优解:

\hat{w}^{*}=argmin_{\hat{w}}(y-X\hat{w})^{T}(y-X\hat{w})

  令E_{\hat{w}}=(y-X\hat{w})^{T}(y-X\hat{w}),对\hat{w}求偏导得到如下方程:

\frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2X^{T}(X\hat{w}-y)

X^{T}X可逆

  与一元回归类似,令上式等于0即可求解上述方程。通过观察不难发现,上式存在矩阵求逆的情况,对于X^{T}X满秩矩阵(full-rank matrix)或正定矩阵(positive definite matrix)时,可求出:

\hat{w}^{*}=(X^{T}X)^{-1}X^{T}y

  令\hat{x_{i}}=(x_{i};1),则最终的线性回归模型可表示为:

f(\hat{x_{i}})=\hat{x}_{i}(X^{T}X)^{-1}X^{T}y

X^{T}X不可逆情况

  如果X^{T}X不可逆,那么此时可解出多个\hat{w},他们都能使得均方误差最小化。选择哪一个解作为输出,将由算法的归纳偏好决定,常见的做法是引入正则化(regularization)项。

广义线性模型

  通常我们把线性回归模型简写为:

f(x)=w^{T}x+b

  那我们能否将模型预测值逼近真实标签y的衍生物?例如将样本标签y的对数模型作为线性模型逼近的目标,即:

lny=w^{T}x+b

  这就是对数线性回归(log-linear regression),它实际上是在试图让e^{w^{T}x+b}逼近y。上式形式上是线性回归,但实际上已是在求输入空间到输出空间的非线性函数映射

  更一般的,考虑单调可微函数g(·),令:

y=g^{-1}(w^{T}x+b)

  这样得到的模型称为广义线性模型(generalized linear model)。我们把函数g(·)称为联系函数。广义线性模型的参数估计通常通过加权最小二乘法或极大似然法进行。

线性模型之logit回归

  如何用线性模型做分类?其实我们自需要找一个单调可微函数,将分类任务的真实标记y与线性回归模型的预测值联系起来。就可以达到这一点。你也许会想到单位阶跃函数,将连续值变换为离散量。但是单位阶跃函数不连续,因此希望找到一个函数来替代它。对数几率函数(logistic function),是一种Sigmoid函数能做到这一点。其函数表达形式如下所示:

y=\frac{1}{1-e^{-z}}

  对其两边取倒数,再取对数化简,得如下变换形式:

ln\frac{y}{1-y}=w^{T}x+b

  如果将y看作样本x是正例的可能性,则1-y表示的就是负例的可能性。两者的比值表示的就是为正例的相对可能性,再将其取对数得到对数几率(logit)

  上式用线性回归模型的预测结果去逼近真实标记的对数几率,因此,对应的模型称为对数几率回归。但实际上它是一种分类学习方法。在其他地方你可能会听到逻辑回归,但周志华教授觉得中文“逻辑”与“logistic”和logit的含义想去甚远,称其为“对数几率回归”简称“对率回归”。具有如下优点:

  1. 无需像贝叶斯那样假设数据分布,直接对分类可能性进行建模,避免假设不准带来的偏差。
  2. 得到的是一个概率,比单纯的正例或者反例所含的信息量要大。
  3. 对率回归求解的目标函数是任意阶可导的凸函数,具有很好的性质,现有的许多数值优化算法都可以直接用于求解。

  利用Logistic 回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。这里的 “回归”一词源于佳拟合,表示要找到佳拟合参数集。

极大似然求解logit回归参数

  在这一小节,用最大似然法求解logit回归参数wb。极大似然法可在公众号历史文章贝叶斯这节找到。

  将样本x是正例的可能性y看作类后验概率估计p(y=1|x),则对数几率回归可表示为:

ln\frac{p(y=1|x)}{p(y=0|x)}=w^{T}x+b

  有:

p(y=1|x)=\frac{e^{w^{T}x+b}}{1+e^{w^{T}x+b}}
p(y=0|x)=\frac{1}{1+e^{w^{T}x+b}}

  给定数据集\{(x_{i},y_{i})\}_{i=1}^{m},对率回归模型最大化“对数似然”(log-likehood):

L(w,b)=\sum_{i=1}^{m}lnp(y_{i}|x_{i};w,b)

  令\beta=(w;b)\hat{x}=(x;1),则可得到w^{T}x+b的简写\beta^{T}\hat{x}

  令p_{1}(\hat{x};\beta)=p(y=1|\hat{x};\beta)p_{0}(\hat{x};\beta)=p(y=0|\hat{x};\beta)则似然项可写为:

p(y_{i}|x_{i};w,b)=y_{i}p_{1}(\hat{x};\beta)+(1-y_{i})p_{0}(\hat{x};\beta)

  最大化L(w,b)等价于最小化:

L(\beta)=\sum_{i=1}^{m}(-y_{i}\beta^{T}\hat{x}_{i}+ln(1+e^{\beta^{T} \hat{x}_{i}}))

  上式是关于\beta的高阶可导连续凸函数,可使用牛顿法(凸优化中的内容)对其求解。更加详细的推导可参考周志华的西瓜书对数几率回归。