Jordan Lecture Note-1: Introduction

时间:2022-10-17 18:41:58

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$。

Jordan Lecture Note-1: Introduction的更多相关文章

  1. Jordan Lecture Note-3&colon; 梯度投影法

    Jordan Lecture Note-3:梯度投影法 在这一节,我们介绍如何用梯度投影法来解如下的优化问题: \begin{align} \mathop{\min}&\quad f(x)\n ...

  2. Colorful Lecture Note&lpar;手工栈)

    题目1 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm ...

  3. HihoCoder - 1103 Colorful Lecture Note

    Little Hi is writing an algorithm lecture note for Little Ho. To make the note more comprehensible, ...

  4. Colorful Lecture Note

    Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm lectu ...

  5. hihocoder &num;1103 &colon; Colorful Lecture Note微软苏州校招笔试 1月10日&lpar;字符串处理&plus;栈&rpar;

    #1103 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorit ...

  6. note of introduction of Algorithms&lpar;Lecture 3 - Part1&rpar;

    Lecture 3(part 1) Divide and conquer 1. the general paradim of algrithm as bellow: 1. divide the pro ...

  7. Jordan Lecture Note-5&colon; Kernels

    Kernels 我们首先来回顾kernel函数的定义:一个函数$K(x,y)$为kernel函数当且仅当对$\forall g, \int K(x,y)g(x)g(y)dxdy\geq 0$成立.另外 ...

  8. Jordan Lecture Note-2&colon; Maximal Margin Classifier

    Maximal Margin Classifier Logistic Regression 与 SVM 思路的不同点:logistic regression强调所有点尽可能远离中间的那条分割线,而SV ...

  9. Jordan Lecture Note-12&colon; Kernel典型相关分析&lpar;Kernel Canonical Correlation Analysis&comma; KCCA&rpar;&period;

    Kernel典型相关分析 (一)KCCA 同样,我们可以引入Kernel函数,通过非线性的坐标变换达到之前CCA所寻求的目标.首先,假设映射$\Phi_X: x\rightarrow \Phi_X(x ...

随机推荐

  1. VS2010 调试窗口一闪而过解决方法

    若此时进行的操作是编译(F5),可先运行程序(Ctrl+F5),若仍然一闪而过,用下面方法解决. 方法一: 1.要有头文件cstdlib,在程序最后写一句(return之前)添加:system(&qu ...

  2. MFC 密码框

    使用Edit Control 在属性面板中,设置“行为”为password

  3. Struts2的标签库(二)——OGNL表达式

    Struts2的标签库(二) --OGNL表达式 1.Struts2中的OGNL表达式增加了ValueStack的支持. 注:ValueStack--实际上是一个容器对象,该对象在启动Struts2框 ...

  4. (poj)3020 Antenna Placement 匹配

    题目链接 : http://poj.org/problem?id=3020 Description The Global Aerial Research Centre has been allotte ...

  5. poj 1821 Fence 单调队列优化dp

    /* poj 1821 n*n*m 暴力*/ #include<iostream> #include<cstdio> #include<cstring> #incl ...

  6. Solr4&period;8&period;0源码分析&lpar;19&rpar;之缓存机制&lpar;二&rpar;

    Solr4.8.0源码分析(19)之缓存机制(二) 前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程.本节将更深 ...

  7. Extjs6组件——Form大家族成员介绍

    本文基于ext-6.0.0 一.xtype form一共有12种xtype,下面来一一举例说一下. 1.textfield 这个是用的最多的form之一. { xtype: 'textfield', ...

  8. AutoMapper 使用总结

    初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字 ...

  9. 51nod--1174 区间中最大的数 (RMQ)

    题目: 1174 区间中最大的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j ...

  10. Linux 第十三天

    十五.shell编程 1.Shell是什么 1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...