西瓜书笔记3 线性模型

西瓜书笔记3 线性模型

基本形式

给定由n个属性描述的样例$\boldsymbol{x}=(x_1,x_2,…,x_n)$,其中$x_i$是$\boldsymbol{x}$在第i个属性上的取值。线性模型试图学得一个通过属性的线性组合来进行预测的函数,即

一般用向量形式表示

其中$\boldsymbol{w}=(w_1;w_2;…;w_n)$

$\boldsymbol{w}$和$b$学得后,模型就得以确认。

线性回归

最简单线性回归

给定数据集$D=\{(x_1,y_1),(x_2,y_2),…,(x_m,y_m)\}$。现试图学得

如何确定$w$和$b$呢?2.3节介绍过,均方误差是回归任务中最常用的性能度量。

最小化均方误差,即

基于均方误差最小化进行模型求解的方法称为“最小二乘法”。
在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和(均方误差)最小。

我们要求解$w$和$b$使得$E_{(w,b)}$最小。可将$E_{(w,b)}$分别对$w$和$b$求偏导,即

将偏导置零,可得到$w$和$b$的最优解的闭式解

这里$E_{(w,b)}$是关于$w$和$b$的凸函数,当它导数均为0时,得到$w$和$b$的最优解。

二阶导数在区间上非负,则称为凸函数;若二阶导数在区间上恒大于0,则称为严格凸函数。

关于其他凸函数的数学知识,可参见《凸优论》

多元线性回归

给定数据集$D=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),…,(\boldsymbol{x}_m,y_m)\}$,样本由m个属性描述。现试图学得

类似的,可用最小二乘法对$\boldsymbol{w}$和$b$进行估计。

为方便讨论,把$\boldsymbol{w}$和$b$吸收入向量形式

把数据集$D$表示为一个$m\times(n+1)$大小的矩阵$X$

再把标记也写成向量形式

均方误差

最小二乘法(均方误差最小化)

对$\hat{\boldsymbol{w}}$求导得

同样,令导数为零可得$\hat{\boldsymbol{w}}$最优解的闭式解。

但由于涉及矩阵逆运算,比单变量要复杂一些。

当$\boldsymbol{X}^T\boldsymbol{X}$为满秩矩阵正定矩阵时,令导数为零可得

令$\hat{\boldsymbol{x}}_i=(\boldsymbol{x}_i;1)$,则最终的多元线性回归模型为

满秩矩阵:$秩=\min(行数,列数)$。

实对称矩阵:n阶矩阵;各元素为实数;$A^T=A$。

正定矩阵:实对称矩阵+对任意$\boldsymbol{X}\neq\boldsymbol{0}$,都有$\boldsymbol{X}^TA\boldsymbol{X}>0$。

广义线性模型:

现将$y$进行一个非线性映射到$g(y)$,再进行线性回归。

考虑单调可微函数$g(\cdot)$,使

比如,假设我们认为示例所对应的输出标记实在指数尺度上变化,就可将输出标记的对数作为线性模型逼近目标,即

对数几率回归

上节讨论的是线性模型进行回归学习,但是如果是分类任务的话。

考虑二分类问题,线性回归模型产生的预测值$z=\boldsymbol{w}^T\boldsymbol{x}+b$是实值。

我们将$z$通过一个“Sigmoid函数”映射到(0,1)区间

单位阶跃函数与对数几率函数
转化成线性模型就是

将y视为类后验概率估计$p(y=1|\boldsymbol{x})$,则上式可重写为

显然有

于是,我们可通过“极大似然法”来估计$\boldsymbol{w}$和$b$。模型的对数似然为

为便于讨论,令$\boldsymbol{\beta}=(\boldsymbol{w};b)$,$\hat{\boldsymbol{x}}=(\boldsymbol{x};1)$,则$\boldsymbol{w}^T\boldsymbol{x}+b$可简写为$\boldsymbol{\beta}^T\hat{\boldsymbol{x}}$

则对数似然可重写为

$y_i=1$时,起作用的只有蓝色项的后验概率

$y_i=0$时,起作用的只有红色项的后验概率

根据(1)(2)式可知,最大化上式,等价于最小化

上式是关于$\boldsymbol{\beta}$的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法、牛顿法都可求得其最优解。

线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上使得同类样例的投影点尽可能近,异类样例的投影点尽可能远

二分类LDA原理

LDA示意图

给定数据集$D=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),…,(\boldsymbol{x}_m,y_m)\}$,$y_i\in\{0,1\}$,令$\boldsymbol{X}_i$、$\boldsymbol{\mu}_i$、$\boldsymbol{\Sigma}_i$分别表示第$i\in\{0,1\}$类示例的集合、均值向量、协方差矩阵。

将数据投影到直线$\boldsymbol{w}$上,则两类样本中心在直线上的投影分别为$\boldsymbol{w}^T\boldsymbol{\mu}_0$和$\boldsymbol{w}^T\boldsymbol{\mu}_1$;若将所有样本点都投影到直线上,则两类样本的协方差$\boldsymbol{w}^T\boldsymbol{\Sigma}_0\boldsymbol{w}$和$\boldsymbol{w}^T\boldsymbol{\Sigma}_1\boldsymbol{w}$。

投影后的协方差矩阵:

  • 欲使同类样本的投影点尽可能近,可以让同类样本投影点的协方差尽可能小,即$\boldsymbol{w}^T\boldsymbol{\Sigma}_0\boldsymbol{w}+\boldsymbol{w}^T\boldsymbol{\Sigma}_1\boldsymbol{w}$尽可能小;
  • 欲使异类样本投影点尽可能远,可以让类中心的距离尽可能大,即$||\boldsymbol{w}^T\boldsymbol{\mu}_0-\boldsymbol{w}^T\boldsymbol{\mu}_1||_2^2$尽可能大。

同时考虑二者,则得到欲最大化的目标

  • 定义“类内散度矩阵”(within-class scatter matrix)
  • 定义“类间散度矩阵”(between-class scatter matrix)

则(1)式可重写为

这就是LDA欲最大化的目标,即$\boldsymbol{S}_b$和$\boldsymbol{S}_w$的“广义瑞利商”。

如何求解$\boldsymbol{w}$呢?注意到上式的分子和分母都是关于$\boldsymbol{w}$的二次项,因此(2)式的解与$\boldsymbol{w}$的长度无关,只与其方向有关。(若$\boldsymbol{w}$是一个解,则对于任意常数$\alpha$,$\alpha\boldsymbol{w}$也是一个解。)令$\boldsymbol{w}^T\boldsymbol{S}_w\boldsymbol{w}=1$,则问题转化为

该问题的拉格朗日函数可写为

对于等式约束$\lambda\in\mathbb{R}$

偏导数为0得

通过特征值分解可得解

多分类LDA原理

  • 定义“全局散度矩阵”
  • 重定义“类内散度矩阵”为每个类别的散度矩阵之和

其中

  • “类间散度矩阵”

常见的一种实现是采用优化目标

可通过如下广义特征值问题求解:

$\boldsymbol{W}$的闭式解则是$\boldsymbol{S}_w^{-1}\boldsymbol{S}_b$的$d’$个最大非零广义特征值所对应的特征向量组成的矩阵,$d’\leq{N-1}$。

LDA算法流程

输入:数据集$D=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),…,(\boldsymbol{x}_m,y_m)\}$,其中任意样本$\boldsymbol{x}_i$为$n$维向量,$y_i∈\{C_1,C_2,…,C_k\}$,降维到的维度$d$。

输出:降维后的样本集$D′$

    1) 计算类内散度矩阵$\boldsymbol{S}_w$

    2) 计算类间散度矩阵$\boldsymbol{S}_b$

    3) 计算矩阵$\boldsymbol{S}^{−1}_wS_b$

    4)计算$S^{−1}_w\boldsymbol{S}_b$的最大的$d$个特征值和对应的$d$个特征向量$(w_1,w_2,…w_d)$,得到投影矩阵$W$

    5) 对样本集中的每一个样本特征$\boldsymbol{x}_i$,转化为新的样本$\boldsymbol{z}_i=\boldsymbol{W}^T\boldsymbol{x}_i$
    
    6) 得到输出样本集$D′=\{(\boldsymbol{z}_1,y_1),(\boldsymbol{z}_2,y_2),…,(\boldsymbol{z}_m,y_m)\}$

多分类学习

考虑具有N个类别$C_1,C_2,…,C_N$的分类任务,多分类学习的基本思路是“拆分法”,即将多分类任务拆为若干个二分类任务求解。

最经典的查分策略有三种:

  • 一对一(One vs. One,简称OvO)
  • 一对余(One vs. Rest,简称OvR)
  • 多对多(Many vs. Many,简称MvM)

OvO

给定数据集$D=\{(\boldsymbol{x}_1,y_1),…,(\boldsymbol{x}_m,y_m)\}$,$y_i\in\{C_1,C_2,…,C_N\}$
OvO将这N个类别两两配对,产生$N(N-1)/2$个分类器任务,最终结果可由投票产生

OvR

每次讲一个类作为正例、其他类的样例作为反例来训练N个分类器。
若有多个分类器预测为正类,则通常考虑各分类器的预测置信度。

MvM(&ECOC)

每次将若干个类作为正类,若干个其他类作为反。“纠错输出码”(Error Correcting Output Codes)是一种最常用的MvM技术。

ECOC是将编码的思想引入类别拆分,,并尽可能在解码过程中具有容错性。ECOC的工作过程主要分为两步:

  • 编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分为反类,从而形成M个二分类任务。
  • :M个分类器分别于测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与各类别编码进行比较,返回距离最小的那个类别。

举个例子:

二元ECOC码

将四个类别$\{C_1,C_2,C_3,C_4\}$进行五次划分$\{f_1,f_2,f_3,f_4,f_5\}$,从而生成五个二分类任务。如,在任务$f_1$中,将$C_2$划分为正类,$C_1,C_3,C_4$划分为反类。五次划分后,$C_1$的编码为$(-1,+1,-1,+1,+1)$,可以明确地是,每个类的编码都是不同的。

现在讲一个测试样例在这五个分类器中,得出的编码为$(-1,-1,+1,-1,+1)$。五个类中与其距离最近的为$C_3$,所以被分类为$C_3$。

可以看出,每个类别的编码还是需要经过特殊设计的。

类别不平衡问题

前面介绍的分类学习方法都有一个共同的基本假设,即不同类别的训练样例数目相当。

我们在用$y=\boldsymbol{w}^T\boldsymbol{x}+b$对新样本$\boldsymbol{x}$进行分类时,用预测出的$y$值和一个阈值进行比较,通常$y>0.5$时判为正例,否则为反例。y实际上表达了正例的可能性,几率$\frac{y}{1-y}$则反映了正例可能性与反例可能性的比值。
阈值0.5对应的分类器决策规则为:

当训练集中正、反例的数目不同时,$m^+$表示正例数目、$m^-$表示反例数目,则观测几率是$\frac{m^+}{m^-}$。只要分类器的预测几率高于观测几率就应判定为正例,即

实际执行时使用“再缩放”进行决策

-------------The End-------------