Jordan Lecture Note-1: Introduction
第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都要讲给他听。如果有需要这份讲义的话,请留言,我会用邮件发给你。
首先,我来说说机器学习这个东西。刚进实验室,我根本连什么是机器学习都不知道,听到这个名词后的第一反应是机器人,心想估计是搞硬件的。后来才发现其实机器学习更偏向于后面两个字,也就是“学习”。打个不恰当的比方吧,人类在婴儿时期,还无法对世上的东西进行识别,比如小汽车跟货车有什么区别?这时,婴儿的父母就会指着小汽车对他说,这是个小汽车,它有四个小轮子,四个门等等;指着货车对他说,这是货车,它有六个大轮子,两个门等等。当婴儿接受到这些信息后,就会在脑中对汽车和货车的一些属性特征进行抽象,从而能够得出一个能够识别汽车和货车的模型。其实机器学习也类似吧,把人类抽象出的一些特征信息作为机器学习的“资料”,术语称之为训练集,有了这些“资料”后,我们在给定一个学习算法,这个学习算法针对这个“资料”就能学习出一个模型,而这个模型就是机器最后用来决策的根据。
然后,我在说说机器学习中最简单的二分类问题。 所谓二分类问题就是让机器来识别出 A 和 B。假设训练集 ${x_i,y_i}_{i=1}^N$,其中 $x_iinmathbb{R}^d$ 成为输入特征,d为特征的维度,$yin{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_kgeq 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 + klambda d$$
选择$w_0in{x_k}$,必满足 $w^*cdot w_0>0$,所以 $w^*cdot w_kgeq klambda d$。
在$w_k$ 为收敛到 $w_*$ 时,对于判错模式必有 $w_kcdot x_{i_k} < 0$,所以
egin{eqnarray*} &|w_{k+1}|^2=[w_k+lambda x_{i_k}][w_k+lambda x_{i_k}] \ &=|w_k|^2+2lambda w_kcdot x_{i_k} + lambda^2 |x_{i_k}|^2 + lambda^2end{eqnarray*}
迭代计算可得:$|w_k|^2leq |w_0|^2 + klambda^2 = C + k lambda^2$,其中$C$为常数。
当$w_k=w^*$时,$mathop{cos}alpha=1$,故
$$1=frac{w^*cdot w_k}{|w^*||w_k|}geqfrac{klambda d}{sqrt{C+klambda^2}}$$
$Longrightarrow$
$$kleqfrac{lambda^2+sqrt{lambda^2+4Clambda^2 d^2}}{2lambda^2 d^2}.$$
二 Logistic Regression
回归:一种用于估计变量之间的关系的统计技术。
线性回归:若变量之间的关系为线性关系,则称之为线性回归。
逻辑斯回归: 一种概率统计分类模型,它的好处在于能用一个概率值来描述分类的准确度。事实上,它是通过引进logistic函数来对线性函数做一个归一化。
Logistic Function:
egin{eqnarray} &mathbb{P}(y_i=1|x_i) = frac{1}{1+e^{- heta^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^{ heta^prime x_i}} label{equ:logit2}end{eqnarray}
由 ef{equ:logit1}和 ef{equ:logit2}可得:
$$mathbb{P}(y_i|x_i)=frac{e^{y_i heta^prime x_i}}{1+e^{ heta^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就是通过对训练集的学习而估计出$ heta$,这个参数的估计是通过最大似然估计得到的。
似然函数:$L( heta)=prod_{i=1}^Nmathbb{P}(y_i|x_i, heta)$.
log似然函数:$l( heta)=mathop{ln}(L( heta))=sum_{i=1}^N{y_i heta^prime x_i-mathop{ln}(1+e^{ heta^prime x_i})}$
对log似然函数求导可得:
egin{equation}frac{partial l}{partial heta}=sum_{i=1}^N(y_ix_i-frac{e^{ heta^prime x_i}}{1+e^{ heta^prime x_i}}x_i)= sum_{i=1}^N(y_i-hat{y}_i)x_ilabel{equ:partial}end{equation},
其中$hat{y}_i=mathbb{P}(y_i=1|x_i, heta)$.
通过最大化上述log似然函数来估计出$ heta$,有两种方法可用,一种是梯度上升(gradient ascent),另一种是随机梯度方法。
1)Newton-Raphson方法
先求出梯度向量和海森(Hessian)矩阵。
梯度向量:$ abla l( heta^t)=[frac{partial l}{partial heta}]_{ heta^t}$.
Hessian矩阵:$H( heta^t)=[frac{partial^2l}{partial heta_ipartial heta_j}]_{ heta^t}$.
$l( heta)$在$ heta^t$点处的泰勒级数展开为:
egin{equation}l( heta)=l( heta^t)+ abla l( heta^t)( heta- heta^t)+frac{1}{2}H( heta^t)( heta- heta^t)^2label{equ:taylor}end{equation}
对
ef{equ:taylor}求导,并令导数为0,得到$ heta$的更新式:
$$ heta^{t+1}= heta^t-[H( heta^t)]^{-1} abla l( heta^t)$$.
2) 随机梯度方法
当数据量很大时,用上述的方法计算量太大了,此时可以使用随机梯度方法。根据
ef{equ:partial}可得如下更新式子:
$$ heta^{t+1}= heta^t+lambda(y_{i(t)}-hat{y}_{i(t)})x_{i(t)}$$
其中 $hat{y}_{i(t)}=mathbb{P}(y_i=1|x_i, heta)$,$i(t)$为第$t$步随机选出的数据。
三 线性判别分析(LDA)
将$n$维数据降到一维,又能够保证类别能够清晰地反映到低维数据上。根据几何知识可知,将$x$投影到向量$w$上,即$y=w^prime x$,表示投影点距离某固定点的位置。
类中心点:$mu_1=frac{1}{N_1}sum_{xin W_1}x$,$mu_0=frac{1}{N_0}sum_{xin W_0}x$,其中$W_1,W_0$分别表示第1类和第0类数据集合。则投影后的样本均值为:$widetilde{mu}_1=frac{1}{N_1}sum_{yin W_1}y=frac{1}{N_1}sum_{xin W_1}w^prime x=w^prime mu_1$,$widetilde{mu}_0=w^primemu_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 riangleq w^prime S_b w$$
但若只考虑该标准并不合理,还应考虑类内的聚合度,即类内的聚合度越高效果越好。用$widetilde{s}_1^2,widetilde{s}_0^2$表征样本的密集程度,其定义如下:
$$widetilde{s}_1^2=sum_{yin W_1}(y-widetilde{mu}_1)^2=sum_{xin W_1}(w^prime x-w^primemu_1)^2=sum_{xin W_1} w^prime(x-mu_1)(x-mu_0)^prime w riangleq w^prime S_1w$$
$$widetilde{s}_0^2=sum_{xin W_0}w^prime(x-mu_0)(x-mu_0)^prime w riangleq 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$,可将上述模型转化为:
egin{eqnarray*}&mathop{max}quad w^prime S_b w\& mathop{s.t.}quad |w^prime S_b w|=1end{eqnarray*}
加入拉格朗日乘子:$C(w)=w^prime S_b w - lambda(w^prime S_w w - 1)$
对$C(w)$求导:$frac{dC(w)}{dw}=2S_bw-2lambda S_w w=0Longrightarrow S_bw=lambda S_ww$
又因为$S_w=sum_{xin W_1}(x-mu_1)(x-mu_1)^prime+sum_{xin 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 wLongrightarrow 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$为下三角形矩阵,故
egin{eqnarray}frac{w^prime S_bw}{w^prime S_ww}&=frac{w^prime S_bw}{w^prime LL^prime w}\ &=frac{eta^prime L^{-1}(mu_1-mu_0)(mu_1-mu_0)^prime {L^prime}^{-1}eta}{eta^primeeta}\&=frac{eta^prime Aeta}{eta^primeeta}label{equ:rayleigh}end{eqnarray}
其中$eta=L^prime w$。上述式子
ef{equ:rayleigh}的最大值为$A$的最大特征值,$eta$为对应的特征向量。求得$eta$后就可求出参数$w$。