Boostable

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

     Jordan Lecture Note-1: Introduction

     第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都要讲给他听。如果有需要这份讲义的话,请留言,我会用邮件发给你。

    首先,我来说说机器学习这个东西。刚进实验室,我根本连什么是机器学习都不知道,听到这个名词后的第一反应是机器人,心想估计是搞硬件的。后来才发现其实机器学习更偏向于后面两个字,也就是“学习”。打个不恰当的比方吧,人类在婴儿时期,还无法对世上的东西进行识别,比如小汽车跟货车有什么区别?这时,婴儿的父母就会指着小汽车对他说,这是个小汽车,它有四个小轮子,四个门等等;指着货车对他说,这是货车,它有六个大轮子,两个门等等。当婴儿接受到这些信息后,就会在脑中对汽车和货车的一些属性特征进行抽象,从而能够得出一个能够识别汽车和货车的模型。其实机器学习也类似吧,把人类抽象出的一些特征信息作为机器学习的“资料”,术语称之为训练集,有了这些“资料”后,我们在给定一个学习算法,这个学习算法针对这个“资料”就能学习出一个模型,而这个模型就是机器最后用来决策的根据。

     然后,我在说说机器学习中最简单的二分类问题。 所谓二分类问题就是让机器来识别出 A 和 B。假设训练集 $\{x_i,y_i\}_{i=1}^N$,其中 $x_i\in\mathbb{R}^d$ 成为输入特征,d为特征的维度,$y\in\{0,1\}$ 称为 label。每一个输入数据$x_i$都对应着一个输出的label $y_i$,而我们的目标是通过给定的这个训练集,学习出一个模型,这个模型能够尽可能正确的判断出这个输入的数据是属于哪一个label。这类问题有很多实际应用,比如人脸识别,垃圾邮件过滤等等。很显然,更一般的多分类问题指的是label的数量大于2.

    接下来,我简单的介绍四种二分类的方法,分类是1)感知器(Perceptron)2)逻辑斯回归(Logistic Regression)3)线性判别分析(Linear Discriminant Analysis)4)支撑向量机(Support Vector Machine)。


 一 Perceptron

    1)感知器算法

 step 1:

       初始化 $w=w_0$

 step 2:

     for $i=1,2, ... ,n$

           计算$w_jx_i$,若$w_jx_i>0$,则set$y=1$,否则$y=0$

       更新权重$w=w + \lambda(y_i-y)x_i$,

     end for

step 3:

     若step 2中的权重都没有被更新的话说明算法已经收敛,返回权重$w$;否则转step 2.

step 4: 

     最终的判断函数为$f(x)=w^Tx$,若$f(x)>0$,则$y$为1;否则$y$为0.

 2) 感知器算法的收敛定理

   如果数据是线性可分的话(也就是存在的一个线性函数$f(x)$能使所有的$x$所对应的label都能通过上述决策准则得到),那么算法就一定收敛,既存在有限次数能找到权重$w$.

 证明:由于数据是线性可分的,那么一定存在一个权向量$w^*$能够正确的决策出所有的数据label,既对于label 1有$w^Tx>0$,对于label 2 有$w^Tx<0$。对$w^*$进行归一化使得$\|w^*\|=1$,将属于label 2 的数据$x_i$做乘-1处理,得到新的数据$x_k$。于是必存在一个正数$d$,使对所有的样本有$w^*x_k\geq d$。任意权向量与最优权向量$w^*$的余弦角$\mathop{cos}\alpha=\frac{w^*\cdot w}{\|w^*\|\|w\|}$。

    设感知器在训练过程中的判错模式依次为$x_{i_1},x_{i_2}, ..., x_{i_t}, ...$,则每一个判错模式都对应的对权重的更新:

$$w_{k+1} = w_k + \lambda x_{i_k}$$

其中$\lambda$为学习系数。由$w^*\cdot w_{k+1}=w^*[w_k+\lambda x_{i_k}]=w^*\cdot w_k+\lambda w^*\cdot x_{i_k}\geq w^*\cdot w_k+\lambda d$,迭代计算下去得:

 $$w^*\cdot w_{k+1} \geq w^*\cdot w_0 + k\lambda d$$

 选择$w_0\in\{x_k\}$,必满足 $w^*\cdot w_0>0$,所以 $w^*\cdot w_k\geq k\lambda d$。

     在$w_k$ 为收敛到 $w_*$ 时,对于判错模式必有 $w_k\cdot x_{i_k} < 0$,所以

\begin{eqnarray*} &\|w_{k+1}\|^2=[w_k+\lambda x_{i_k}][w_k+\lambda x_{i_k}] \\ &=\|w_k\|^2+2\lambda w_k\cdot x_{i_k} + \lambda^2 \|x_{i_k}\|^2 + \lambda^2\end{eqnarray*}

 迭代计算可得:$\|w_k\|^2\leq \|w_0\|^2 + k\lambda^2 = C + k \lambda^2$,其中$C$为常数。

 当$w_k=w^*$时,$\mathop{cos}\alpha=1$,故

$$1=\frac{w^*\cdot w_k}{\|w^*\|\|w_k\|}\geq\frac{k\lambda d}{\sqrt{C+k\lambda^2}}$$

 $\Longrightarrow$

$$k\leq\frac{\lambda^2+\sqrt{\lambda^2+4C\lambda^2 d^2}}{2\lambda^2 d^2}.$$

 

二 Logistic  Regression

回归:一种用于估计变量之间的关系的统计技术。

线性回归:若变量之间的关系为线性关系,则称之为线性回归。

逻辑斯回归: 一种概率统计分类模型,它的好处在于能用一个概率值来描述分类的准确度。事实上,它是通过引进logistic函数来对线性函数做一个归一化。

 Logistic Function:

\begin{eqnarray} &\mathbb{P}(y_i=1|x_i) = \frac{1}{1+e^{-\theta^\prime x_i}} \label{equ:logit1} \\ &\mathbb{P}(y_i=0|x_i)=1-\mathbb{P}(y_i=1|x_i)=\frac{1}{1+e^{\theta^\prime x_i}} \label{equ:logit2}\end{eqnarray}

由\ref{equ:logit1}和\ref{equ:logit2}可得:

$$\mathbb{P}(y_i|x_i)=\frac{e^{y_i\theta^\prime x_i}}{1+e^{\theta^\prime x_i}}$$

Logistic分类准则:我们只需求出$\mathbb{P}(y_i=1|x_i)$,若$\mathbb{P}(y_i=1|x_i)>0.5$,则$x_i$属于第一类;若小于0.5,则属于第0类。

Logistic regression就是通过对训练集的学习而估计出$\theta$,这个参数的估计是通过最大似然估计得到的。

似然函数:$L(\theta)=\prod_{i=1}^N\mathbb{P}(y_i|x_i,\theta)$.

log似然函数:$l(\theta)=\mathop{ln}(L(\theta))=\sum_{i=1}^N\{y_i\theta^\prime x_i-\mathop{ln}(1+e^{\theta^\prime x_i})\}$

对log似然函数求导可得:

\begin{equation}\frac{\partial l}{\partial \theta}=\sum_{i=1}^N(y_ix_i-\frac{e^{\theta^\prime x_i}}{1+e^{\theta^\prime x_i}}x_i)= \sum_{i=1}^N(y_i-\hat{y}_i)x_i\label{equ:partial}\end{equation},

其中$\hat{y}_i=\mathbb{P}(y_i=1|x_i,\theta)$.

通过最大化上述log似然函数来估计出$\theta$,有两种方法可用,一种是梯度上升(gradient ascent),另一种是随机梯度方法。

 1)Newton-Raphson方法

 先求出梯度向量和海森(Hessian)矩阵。

梯度向量:$\nabla l(\theta^t)=[\frac{\partial l}{\partial \theta}]_{\theta^t}$.

Hessian矩阵:$H(\theta^t)=[\frac{\partial^2l}{\partial \theta_i\partial\theta_j}]_{\theta^t}$.

$l(\theta)$在$\theta^t$点处的泰勒级数展开为:

\begin{equation}l(\theta)=l(\theta^t)+\nabla l(\theta^t)(\theta-\theta^t)+\frac{1}{2}H(\theta^t)(\theta-\theta^t)^2\label{equ:taylor}\end{equation}

对 \ref{equ:taylor}求导,并令导数为0,得到$\theta$的更新式:

$$\theta^{t+1}=\theta^t-[H(\theta^t)]^{-1}\nabla l(\theta^t)$$.

2) 随机梯度方法

 当数据量很大时,用上述的方法计算量太大了,此时可以使用随机梯度方法。根据\ref{equ:partial}可得如下更新式子:

$$\theta^{t+1}=\theta^t+\lambda(y_{i(t)}-\hat{y}_{i(t)})x_{i(t)}$$

其中 $\hat{y}_{i(t)}=\mathbb{P}(y_i=1|x_i,\theta)$,$i(t)$为第$t$步随机选出的数据。

三 线性判别分析(LDA)

    将$n$维数据降到一维,又能够保证类别能够清晰地反映到低维数据上。根据几何知识可知,将$x$投影到向量$w$上,即$y=w^\prime x$,表示投影点距离某固定点的位置。

   类中心点:$\mu_1=\frac{1}{N_1}\sum_{x\in W_1}x$,$\mu_0=\frac{1}{N_0}\sum_{x\in W_0}x$,其中$W_1,W_0$分别表示第1类和第0类数据集合。则投影后的样本均值为:$\widetilde{\mu}_1=\frac{1}{N_1}\sum_{y\in W_1}y=\frac{1}{N_1}\sum_{x\in W_1}w^\prime x=w^\prime \mu_1$,$\widetilde{\mu}_0=w^\prime\mu_0$。

    为了使中心点距离尽可能的远,即最大化以下式子:

$$J(w)=\|\widetilde{\mu}_1-\widetilde{\mu}_0\|^2=\|w^\prime(\mu_1-\mu_0)\|^2=w^\prime (\mu_1-\mu_0)(\mu_1-\mu_0)^\prime w\triangleq w^\prime S_b w$$

   但若只考虑该标准并不合理,还应考虑类内的聚合度,即类内的聚合度越高效果越好。用$\widetilde{s}_1^2,\widetilde{s}_0^2$表征样本的密集程度,其定义如下:

$$\widetilde{s}_1^2=\sum_{y\in W_1}(y-\widetilde{\mu}_1)^2=\sum_{x\in W_1}(w^\prime x-w^\prime\mu_1)^2=\sum_{x\in W_1} w^\prime(x-\mu_1)(x-\mu_0)^\prime w\triangleq w^\prime S_1w$$

$$\widetilde{s}_0^2=\sum_{x\in W_0}w^\prime(x-\mu_0)(x-\mu_0)^\prime w\triangleq w^\prime S_0 w$$

故$\widetilde{s}_1^2+\widetilde{s}_0^2=w^\prime S_1w+w^\prime S_0w=w^\prime S_w w$。根据类间尽可能分离,类内尽可能聚合的原则,得到Fisher判别准则:

$$\mathop{\max}\frac{w^\prime S_b w}{w^\prime S_w w}$$.

接下去介绍两种解上述优化问题的方法。

 1) 由于$w$扩大任意倍不会影响最后的结果,故我们可令$w^\prime S_w w=1$,可将上述模型转化为:

\begin{eqnarray*}&\mathop{\max}\quad w^\prime S_b w\\& \mathop{s.t.}\quad \|w^\prime S_b w\|=1\end{eqnarray*}

加入拉格朗日乘子:$C(w)=w^\prime S_b w - \lambda(w^\prime S_w w - 1)$

对$C(w)$求导:$\frac{dC(w)}{dw}=2S_bw-2\lambda S_w w=0\Longrightarrow S_bw=\lambda S_ww$

又因为$S_w=\sum_{x\in W_1}(x-\mu_1)(x-\mu_1)^\prime+\sum_{x\in W_0}(x-\mu_0)(x-\mu_0)^\prime$,可以证明其为正定矩阵,故$S_w$可逆,所以$S_w^{-1}S_bw=\lambda w$.

由$S_bw=(\mu_1-\mu_0)(\mu_1-\mu_0)^\prime w=(\mu_1-\mu_0)\lambda_w$,其中$\lambda_w$为关于$w$的实数。

$$S_w^{-1}S_bw=S_w^{-1}(\mu_1-\mu_0)\lambda_w=\lambda w\Longrightarrow w=\frac{\lambda_w}{\lambda}S_w^{-1}(\mu_1-\mu_0)$$

由于$w$扩大与缩小均不影响结果,故$w=S_w^{-1}(\mu_1-\mu_0)$。

 2)由于$S_w$实对称并且正定,故$S_w$可用Cholesky分解$S_w=LL^\prime$,其中 $L$为下三角形矩阵,故

\begin{eqnarray}\frac{w^\prime S_bw}{w^\prime S_ww}&=\frac{w^\prime S_bw}{w^\prime LL^\prime w}\\ &=\frac{\beta^\prime L^{-1}(\mu_1-\mu_0)(\mu_1-\mu_0)^\prime {L^\prime}^{-1}\beta}{\beta^\prime\beta}\\&=\frac{\beta^\prime A\beta}{\beta^\prime\beta}\label{equ:rayleigh}\end{eqnarray}

其中$\beta=L^\prime w$。上述式子\ref{equ:rayleigh}的最大值为$A$的最大特征值,$\beta$为对应的特征向量。求得$\beta$后就可求出参数$w$。

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2014-02-09 21:36  Boostable  阅读(642)  评论(5编辑  收藏  举报