【机器学习基础笔记(三)】线性模型

135 阅读1分钟

第三章 线性模型

3.1 基本形式

给定由d个属性描述的示例x=(x1;x2;...xd)\vec{x}=(x_1;x_2;...x_d),其中xix_ix\vec{x}第i个属性上的取值。 线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即:

f(x)=w1x1+w2x2+...+wdxd+bf(x)=w_1x_1+w_2x_2+...+w_dx_d+b

一般用向量形式写成

f(x)=wTx+bf(x)=\vec{w}^T\vec{x}+b

其中w=(w1;w2;...wd)\vec{w}=(w_1;w_2;...w_d).
线性模型学习的目的是学习w\vec{w}和标量b。

因此线性模型有很好的可解释性(comprehensibility).

3.2 线性回归

数据集D=(x1,y1),(x2,y2),...,(xm,ym)D = {(\vec{x_1},y_1),(\vec{x_2},y_2),...,(\vec{x_m},y_m)},其中x1=(xi1,xi2,xi3,...;xid)yiR\vec{x_1}=(x_i1,x_i2,x_i3,...;x_id), y_i\in\mathbb{R}.

假设输入属性只有一个,即D={(xi,yi)}i=1mD = \{(x_i,y_i)\} ^m_{i=1}。线性回归(linear regression)试图学习得一个线性模型以尽可能预测实值输出标记,即:

f(xi)=wxi+b,使得f(xi)yif(x_i)=wx_i+b,使得f(x_i)\simeq y_i

已知线性模型的学习目的是确定wbw^* 和 b^*以令f(x)f(x)拟合yy,也就是尽量减少f(x)f(x)yy之间的误差。以第二章提到的均方误差为例,令其最小化,即:

(w,b)=argmin(w,b)i=1m(yiwxib)2(w^*,b^*)= \underset{(w,b)}{\operatorname{argmin}} \sum ^{m}_{i=1} (y_i-wx_i-b)^2

均方误差对应欧几里得距离(Euclidean distance)。基于均方误差来进行模型求解的方法是“最小二乘法”(least square method)。线性回归中,最小二乘法试图找到一条直线,使所有样本到直线上的欧式距离最小。

image.png 求解w和b使

E(w,b)=i=1m(yiwxib)2E_{(w,b)}=\sum ^{m}_{i=1} (y_i-wx_i-b)^2

最小化的过程,叫做线性回归模型的最小二乘“参数估计”(parameter estimation)。由于E(w,b)E_{(w,b)}是凸函数,对w和b分别求导,令导数等于0,即可得到w和b最优解的闭式解。

由此可得,当数据集D=(x1,y1),(x2,y2),...,(xm,ym)D = {(\vec{x_1},y_1),(\vec{x_2},y_2),...,(\vec{x_m},y_m)},其中x1=(xi1,xi2,xi3,...;xid)yiR\vec{x_1}=(x_i1,x_i2,x_i3,...;x_id), y_i\in\mathbb{R}.
线性模型试图学得:

f(xi)=wTxi+b,使得f(xi)yif(x_i)=\vec{w}^Tx_i+b,使得f(\vec{x_i})\simeq y_i

即“多元线性回归”。
回归模型可简写为:

y=wTx+by=\vec{w}^T \vec{x}+b

令模型预测逼近yy的衍生物,如对数线性回归

lny=wTx+b\ln y=\vec{w}^T \vec{x}+b

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

y=g1(wTx+b)y=g^{-1}(\vec{w}^T \vec{x}+b)

,这样得到的模型称为“广义线性模型”。函数g()g(·)称为联系函数(link function)。

对数线性回归即为g()=ln()g(·)=\ln(·)时的特例。

3.3 对数几率回归

本节讨论如何利用线性模型做分类学习。
考虑二分类任务,其输出标记y0,1y \in {0,1},而线性回归模型产生的预测值z=wTx+bz=\mathbf w^T \mathbf x+b是实值,于是,需将实值zz转换成0/10/1值,最理想的是 “单位阶跃函数” (unit-step function),亦称Heaviside函数:

image.png

即若预测值zz大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别:

image.png

Sigmoid函数即形似S的函数,对率函数是Sigmoid函数最重要的代表。

利用Sigmoid函数来替代单位阶跃函数,将zz值转化为一个接近0或1的yy值。如对率几率函数(对率函数):

y=11+ezy = \frac{1}{1+e^{-z}}

zz代入:

y=11+e(wTx+b)y=\frac {1}{1+e^{−(w^Tx+b)}}

可变为:

lny1y=wTx+b\ln {\frac {y}{1−y}}=\vec{w}^T\vec{x}+b

若将yy视为样本x\vec{x}作为正例的可能性,则1y1-y是其反例可能性,则两者的比值:

y1y\frac {y}{1−y}

称为 “几率”(odds) ,反映了xx作为正例的相对可能性,对几率取对数则得到 “对数几率”(log odds,亦称logit)  :

lny1y\ln {\frac {y}{1−y}}

上述模型就称为 “对数几率回归” (logistic regression,亦称logit regression)。

对数几率回归译成逻辑回归(logistic regression)其实并不恰当,因为和“逻辑”(logistic)一词并无关系。

对数几率回归名字中带有“回归”二字,但实际却是一种分类学习方法。

对率函数是任意阶可导的凸函数

3.4 线性判别分析(LDA)

LDA的思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。

image.png

LDA的目标是是确定这样一个投影向量w\vec w,经过wTx\vec w^Tx的投影变换后,类间距离最大,类内方差最小

将样本x投影到直线,其中w决定了直线的方向。y=wTx中,假设w的模为1,则y为x投影到w(即方向为w的直线)的长度,如下图所示:

image.png 详见 机器学习基础-第八课-线性判别分析

3.5 多分类学习

【机器学习基础】第九课:多分类学习-多分类任务,一对一,一对其余,多对多,纠错输出码,海明距离

不失一般性,考虑N个类别C1,C2,,CNC_1,C_2,…,C_N,多分类学习的基本思路是 “拆解法” ,即将多分类任务拆为若干个二分类任务求解。通常可分为两步:

  1. 先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器。
  2. 在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。

本文主要介绍拆分策略

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

  1. “一对一” (One vs. One,简称OvO)。
  2. “一对其余” (One vs. Rest,简称OvR)。
  3. “多对多” (Many vs. Many,简称MvM)。

--undo--