机器学习初步:线性模型

进阶阅读:机器学习笔记(2):线性模型(更为全面)
所以线性模型为什么十分重要呢?因为我们人类考虑问题的时候,通常很难考虑非线性的问题。

考虑线性的问题我们会有几何上的直观印象,我们可能能用较为直观的方法得到解决方案。再加上一些技巧,我们就可以得到非线性问题的解决方案。

所以面对线性的问题我们怎么考虑呢?看看下面的例子:

  • 我们要做分类其实就是在这两类点中找这么一条线,将它们分开。
  • 我们要做回归其实就是找一条线把这些点穿起来。

线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数(b是偏置):

f(x)=w_1x_1+w_2x_2+...+w_dx_d+b

向量形式:

f(x)=w^Tx+b

线性回归(Linear Regression)

线性回归的目的其实是找到这样一个线性方程

f(x_i)=w x_i+b

使得:

f(x_i)\simeq y_i

对于线性回归这样的模型来说,它非常擅长处理数值属性

如果我们想对离散的属性使用线性回归,我们需要先将其转换为连续的!

那该怎么变换呢?我们一定要注意观察这些离散的属性有没有序的关系,举个例子:假如说有一个属性叫”身高“包含高,中,低

这看起来确实是离散的吧,但我们可以将高,中,低分别设为1,0.5,0

线面这个例子是没有序关系的:西瓜的属性中包含颜色,颜色分为:深绿,绿,浅绿,这时我们不能像设身高一样对它们进行数值化了,因为身高本身确实是有序关系,但西瓜的颜色属性不包含序关系啊!

所以对于离散属性我们有两种处理方法:

  • 有序:直接将其转换为数值(连续化)(参考上文对身高的转换)

  • 无序:(以西瓜颜色为例)将其变为一个三位的量(向量),如[0,1,0]

    • 其中第一位代表深绿,第二位代表绿,第三位代表浅绿
    • 若是深绿色则为:[1,0,0]
    • 绿色则为:[0,1,0]
    • 浅绿则为:[0,0,1]

好的,现在数据已经转换完了,下一步就是找线性回归的解决方案了!:

令均方误差最小化,有:

(w^*,b^*)=argmin_{(w,b)}\sum_{i=1}^m(f(x_i)-y_i)^2=argmin_{(w,b)}\sum_{i=1}^m (y_i-wx_i-b)^2

E(w,b)=\sum_{i=1}^m (y_i-w x_i-b)^2进行最小二乘参数估计

  • 在上面的式子中(\omega^*,b^*)代表\omegab的最优值,其中\omega是权重向量,b 是偏置项
  • argmin_{(w,b)}\sum_{i=1}^m (f(x_i)-y_i)^2代表在均方误差最小时wb的值。
  • argmin_{(w,b)}表示找到使目标函数最小化的参数wb

值得注意的是:

  • [x_1;x_2]=\begin{pmatrix} x_1\\x_2 \end{pmatrix}
  • [x_1,x_2]=\begin{pmatrix} x_1&x_2 \end{pmatrix}

最小二乘解

最小二乘法:通过均方误差最小化来进行模型求解的方法

最小二乘估计是一个什么东西呢?简单的做法就是对它求偏导,求偏导后令导数为0

E(w,b)=\sum_{i=1}^m (y_i-w x_i-b)^2中我们需要求出wb的值,于是我们分别计算对wb的偏导:

w求偏导数的过程如下:

\frac{\partial E(w, b)}{\partial w} = \frac{\partial}{\partial w} \left( \sum_{i=1}^{m} (y_i - (wx_i + b))^2 \right)

应用链式法则,我们得到:

\frac{\partial E(w, b)}{\partial w} = 2\sum_{i=1}^{m} (y_i - (wx_i + b))(-x_i)

进一步整理:

\frac{\partial E(w, b)}{\partial w} = 2 \left( w \sum_{i=1}^{m} x_i^2 - \sum_{i=1}^{m} (y_i - b)x_i \right)

b 求偏导数的过程如下:

\frac{\partial E(w, b)}{\partial b} = \frac{\partial}{\partial b} \left( \sum_{i=1}^{m} (y_i - (wx_i + b))^2 \right)

应用链式法则,我们得到:

\frac{\partial E(w, b)}{\partial b} = 2\sum_{i=1}^{m} (y_i - (wx_i + b))(-1)

进一步整理:

\frac{\partial E(w, b)}{\partial b} = 2 \left( mb - \sum_{i=1}^{m} (y_i - wx_i) \right)

令上面的两个导数值为0,我们就获得了闭式(closed-form)解

上面的这部分要会自己推!

emmm好像蛮好理解的对吧,所以我们为什么要求偏导呢?

我们令它的偏导为零说明我们想要找到一个极值点,在这个点处变化率为0,此处要么是最小值,要么是最大值(目前我们可以这么认为,后面出现更复杂的情况再说),众所周知,误差是可以无限大的,所以不存在最大值,故,令偏导为0 时我们获得了最小值。

多元(multi-variate)线性回归

我们下面来考虑一下多元的情况,多元就是多变量:

f(x)=w^Tx+b\;\;\;\;\;\;\text{使得}f(x_i) \simeq y_i

x_i=(x_{i1};x_{i2};x_{i3}...x_{id})\;\;\;\;\;\;\;\;\;\;y_i\in \mathbb R

本质就是从一元方程变成了多元方程,方法还是一样的!多元方程组求解方法不就是高斯消元嘛!

不过我们还可以进一步的化简!看看下面这个式子,发现了什么:

f(x)=w^Tx+b=w_1x_1+w_2x_2+w_3x_3+...+w_dx_d+b\times1

那我们就可以把b看作向量w中的一项,1看作x_i中的一项嘛:

  • \hat{x}=[x_1,x_2,x_3...x_d,1]
  • \hat{w}=[w_1,w_2,w_3,...w_d,b]

在进行这样的简化后,以后我们就只用考虑y=\hat{w}^T\hat{x}了,看起来是不是比以前好了很多?

同样采用最小二乘法求解有

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

E_{\hat{w}}=(y-\hat{x}\hat{w})^T(y-\hat{x}\hat{w}),对\hat{w}求导:

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

令其为0可得\hat{w},但此时麻烦来了:涉及矩阵求逆

  • \hat{x}^T\hat{x}满秩或正定,则\hat{w}^*=(\hat{x}^T\hat{x})^{-1}\hat{x}^Ty
  • \hat{x}^T\hat{x} 不满秩,则可以解出多个\hat{w}-------此时我们需要求助于归纳偏好或引入正则化(regularization)

广义线性模型

在线性回归搞明白后我们可以把它变化变化用于处理更复杂的问题。

在之前的线性回归中我们是f(x)=w^Tx+b\;\;\;\;\;\;\text{使得}f(x_i) \simeq y_i,也就是去逼近y,那我们是不是也可以逼近别的东西呢?比如:y的衍生物

对数线性回归(log-linear regression)

若令:

\ln y=w^Tx+b

则我们得到了对数线性回归. 别看名字挺高大尚,其实就是用e^{w^Tx+b} 逼近y

联系函数(Link function)

上面的对数线性回归只是一种较为特殊的情况,下面让我们来看看广义线性模型一般的形式:

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

这里的g^{-1} 是单调可微的联系函数

若令:

g(\cdot)=\ln(\cdot)

我们则得到了对数线性回归:

\ln y=w^Tx+b

其中最有意思的是如何用回归的模型求解分类的问题

对率回归

对于二分类的任务:

理想的单位阶跃函数是(unit-step function):

\begin{cases} 0,\;\;\;z<0 \\ 0.5,z=0\\ 1,\;\;\;z>0 \end{cases}

但这个函数的性质很糟糕,它不连续,不可微,还有间断点,处理起来十分甚至九分的麻烦,我们求解就十分的不好求,所以通常我们要找一个替代函数(surrogate function),它具有阶跃函数的性质,但数学性质比阶跃函数好得多(平滑,连续)(单调可微,任意阶可导),上面的单位阶跃函数的替代函数是:

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


上面的的这个函数被称为对数几率函数(logistic function)简称对率函数(有些文献也将其称为“逻辑回归函数”)
以对率函数为联系函数:

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

变为:

y=\frac{1}{1+e^{-(w^Tx+b)}}

再次变化可得:

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

值得注意的是\frac{y}{1-y} 在统计学上被称为几率(odds),反映了x作为正例的相对可能性

所以“对数几率”其实是“log odds,亦称logit”

所以它有什么好处呢:

  • 无需事先假设数据分布
  • 可得到类别的近似概率预测
  • 可直接应用现有数值优化算法取最优解

注意:它是分类学习算法

为啥回归模型可以做分类任务呢?是因为联系函数的处理!

多分类学习基本思路

我们的对率回归,包括我们以后要学的支持向量机都是针对二分类问题的,在这种情况下我们该如何完成多分类任务呢?这里有一个非常基本的操作:

拆解法:将一个多分类任务拆分成多个二分类任务求解

大体上有两种做法:
one vs one(OVO)

每次考虑一个类作为正类,选另为一个类作为负类

得到多个分类器(f_1,f_2....

模型训练完成后输入数据会得到多个输出(因为我们得到了多个分类器)

优劣:

将出现最多的结果作为输出结果

那有多个数量相同的结果怎么办?-------根据置信度决断!!!


one vs rest(OVR)

选取一个为正例,其余为反例,训练出来多个分类器
剩下的过程是相似的

进一步的阅读:机器学习笔记(2):线性模型
上一章:机器学习初步:模型的评估与选择

游客

全部评论 (0)

暂无评论,快来抢沙发吧~