降维 LDA PCA SVM

降维

线性判别分析 LDA

LDA是什么?

LDA是有监督学习中的降维方法,是线性分类器和高斯模型的结合。

在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。
LDA

Two-class LDA (见PPT)

(1)
线性分类器 y k = w k T x + w 0 y_k=w_k^Tx+w_0 yk=wkTx+w0
LDA的投影函数 y = w T x y=w^Tx y=wTx
目标:求能使优化函数最大化的参数 w w w
思想:类内小,类间大

(4)
类内散度矩阵 S W S_W SW
类间散度矩阵 S B S_B SB
(5)
化为求特征向量问题
本页的 J = J ( w ) J=J(w) J=J(w),是一个数
dividing w T S w w w^TS_ww wTSww即归一化
拉格朗日乘子法l

【草稿】数据集 D = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } , D j D=\{(x_1, y_1),...,(x_N,y_N)\}, D_j D={(x1,y1),...,(xN,yN)},Dj 为属于第 j j j类的样本集合。
j j j类样本的均值 $ \mu_j=\frac{1}{N_j}\sum\limits_{x\in D_j} x$
j j j类样本的协方差 ∑ j = ∑ x ∈ D j ( x − μ j ) ( x − μ j ) T \sum_j=\sum\limits_{x\in D_j}(x-\mu_j)(x-\mu_j)^T j=xDj(xμj)(xμj)T

优缺点

LDA算法既可以用来降维,又可以用来分类,主要还是用于降维。在我们进行图像识别相关的数据分析时,LDA是一个有力的工具。

主要优点有:

  1. 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
  2. LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

主要缺点有:

  1. 不适合对非高斯分布样本进行降维,PCA也有这个问题。
  2. 降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
  3. 在样本分类信息依赖方差而不是均值的时候,降维效果不好。
  4. 可能过拟合

主成分分析 PCA

PCA无监督学习中的降维方法
目标:二维降为一维, v 1 v_1 v1方向较好,两个评判标准:

  1. 样本到这条直线距离较近;
  2. 样本点在这条直线投影较散

基于投影距离的PCA

Linear Discriminant Analysis, LDAPrincipal Components Analysis, PCA
有监督降维,样本有类标无监督降维,样本无类标
最多降维到k-1无限制
投影后类内方差最小,类间方差最大(即投影方向为分类性能最好的方向)。最大化投影后的方差/最小化投影后的损失
既可降维,也可分类。其学习得的判别函数,可预测新样本对原数据降维,作为预处理

支持向量机 SVM

核方法 Kernel Methods

说一说核方法(一)——核方法与核函数简介
问题:低维空间数据线性不可分
办法:找到一个映射,将低维空间数据映射到高维,使数据线性可分;
新的问题:这个映射本质是内积,高维空间中求内积非常复杂
新的办法:核方法,满足映射到高维的要求,同时用低维空间内积表示高维内积。

与SVM的关系:核方法是个独立于SVM的方法,只不过常用于SVM,但也可以用于logistic回归,最小二乘法,降维等等。

那么这个映射是什么呢?它其实描述的是一个跟内积有关的东西。有点像是在说:如果我有一个维度很高的内积空间,那么我能找到一个映射 Φ : X → H , Φ ( x ) = K ( x , ⋅ ) \Phi : X \to \mathcal{H}, \Phi(x) = K(x, \cdot) Φ:XH,Φ(x)=K(x,) (其中 H \mathcal{H} H 是某个 RKHS 空间),它可以把这个空间中的点 x x x 映射成为一个函数(请想象这个 RKHS 空间是由函数们组成的空间,里面的每一个点,或者说每一个元素,都是一个函数),这样,在计算高维内积时就有 &lt; Φ ( x ) , Φ ( y ) &gt; H = K ( x , y ) &lt;\Phi(x), \Phi(y)&gt;_{\mathcal{H}} = K(x, y) <Φ(x),Φ(y)>H=K(x,y) ,就转变成了计算核函数的值了。

一般的欧式空间中,我们可以定义一个 n × n n \times n n×n 矩阵的特征值和特征向量。
A x = λ x Ax=\lambda x Ax=λx
考虑一个矩阵的列空间,当这个矩阵可以进行特征值分解的时候,其特征向量就构成了这个 n n n 维空间的一组基底。

现在我们把这个概念推广到函数空间。

我们把每个函数 f ( x ) f(x) f(x) 看作一个无穷维的向量,然后定义一个函数空间中无穷维的矩阵 K ( x , y ) K(x, y) K(x,y) ,如果它满足:

正定性: ∀ f → ∬ f ( x ) K ( x , y ) f ( y ) &ThinSpace; d x &ThinSpace; d y ≥ 0 \forall f \rightarrow \iint f(x)K(x, y)f(y) \,\mathrm{d}x\,\mathrm{d}y \ge 0 ff(x)K(x,y)f(y)dxdy0
对称性: K ( x , y ) = K ( y , x ) K(x, y) = K(y, x) K(x,y)=K(y,x)
我们就把它称作核函数(kernel function)。

和特征值与特征向量的概念相似,存在特征值 λ \lambda λ 和特征函数 ψ ( x ) \psi(x) ψ(x) 。满足:
∫ K ( x , y ) ψ ( x ) d x = λ ψ ( y ) \int K(x, y)\psi(x) \mathrm{d}x = \lambda \psi (y) K(x,y)ψ(x)dx=λψ(y)
对于不同的特征值 λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2 ,对应不同的特征函数 ψ 1 ( x ) \psi_{1}(x) ψ1(x) ψ 2 ( x ) \psi_{2}(x) ψ2(x) ,很容易得到:
∫ λ 1 ψ 1 ( x ) ψ 2 ( x ) d x = ∬ K ( y , x ) ψ 1 ( y ) d y &ThinSpace; ψ 2 ( x ) d x = ∬ K ( y , x ) ψ 2 ( x ) d x &ThinSpace; ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( y ) ψ 1 ( y ) d y = ∫ λ 2 ψ 2 ( x ) ψ 1 ( x ) d x \begin{aligned} \int \lambda_1 \psi_{1}(x) \psi_{2}(x) \mathrm{d}x &amp;= \iint K(y, x) \psi_{1}(y) \mathrm{d}y\,\psi_{2}(x)\mathrm{d}x \\ &amp;= \iint K(y, x) \psi_{2}(x) \mathrm{d}x\,\psi_{1}(y)\mathrm{d}y \\ &amp;= \int \lambda_2 \psi_{2}(y) \psi_{1}(y) \mathrm{d}y \\ &amp;= \int \lambda_2 \psi_{2}(x) \psi_{1}(x) \mathrm{d}x \end{aligned} λ1ψ1(x)ψ2(x)dx=K(y,x)ψ1(y)dyψ2(x)dx=K(y,x)ψ2(x)dxψ1(y)dy=λ2ψ2(y)ψ1(y)dy=λ2ψ2(x)ψ1(x)dx
因此,
⟨ ψ 1 , ψ 2 ⟩ = ∫ ψ 1 ( x ) ψ 2 ( x ) d x = 0 \langle \psi_{1}, \psi_{2} \rangle = \int \psi_{1}(x) \psi_{2}(x) \mathrm{d}x = 0 ψ1,ψ2=ψ1(x)ψ2(x)dx=0
所以我们找到了一个可以生成这个空间的矩阵 K K K,一组无穷多个特征值 { λ i } i = 1 ∞ \lbrace \lambda_{i} \rbrace_{i=1}^{\infty} {λi}i=1 ,和一组无穷多个元素的正交基 { ψ i } i = 1 ∞ \lbrace \psi_{i} \rbrace_{i=1}^{\infty} {ψi}i=1

再生核希尔伯特空间
如果我们把 { λ i ψ i } i = 1 ∞ \lbrace \sqrt{\lambda_{i}}\psi_{i} \rbrace_{i=1}^{\infty} {λi ψi}i=1 当成一组正交基来生成一个希尔伯特空间 H \mathcal{H} H 。则该空间中的所有函数都能表示为这组正交基的线性组合。
f = ∑ i = 1 ∞ f i λ i ψ i f = \sum_{i=1}^{\infty} f_{i}\sqrt{\lambda_{i}}\psi_{i} f=i=1fiλi ψi
于是我们就可以把函数 f f f ,看作 H \mathcal{H} H 中的一个向量 f = ( f 1 , f 2 , ⋯ &ThinSpace; ) H T f = (f_{1}, f_{2}, \cdots)_{\mathcal{H}}^{\mathsf{T}} f=(f1,f2,)HT
对于另外一个函数 g = ( g 1 , g 2 , ⋯ &ThinSpace; ) H T g = (g_{1}, g_{2}, \cdots)_{\mathcal{H}}^{\mathsf{T}} g=(g1,g2,)HT ,我们有:
⟨ f , g ⟩ H = ∑ i = 1 ∞ f i g i \langle f, g \rangle_{\mathcal{H}} = \sum_{i=1}^{\infty}f_{i}g_{i} f,gH=i=1figi
有了这个内积,我们就可以把核函数看成一种内积形式了,即:
K ( x , ⋅ ) = ∑ i = 0 ∞ λ i ψ i ( x ) ψ i ( ⋅ ) K(x, \cdot) = \sum_{i=0}^{\infty} \lambda_{i}\psi_{i}(x)\psi_{i}(\cdot) K(x,)=i=0λiψi(x)ψi()
如果把 ψ i \psi_{i} ψi 当成一个算子来看的话,我们就取函数名的一个形式: K ( x , ⋅ ) = ∑ i = 0 ∞ λ i ψ i ( x ) ψ i K(x, \cdot) = \sum_{i=0}^{\infty} \lambda_{i}\psi_{i}(x)\psi_{i} K(x,)=i=0λiψi(x)ψi
所以我们就可以把 K K K 当作一个向量来看了。
K ( x , ⋅ ) = ( λ 1 ψ 1 ( x ) , λ 2 ψ 2 ( x ) , ⋯ &ThinSpace; ) H T K(x, \cdot) = (\sqrt{\lambda_{1}}\psi_{1}(x), \sqrt{\lambda_{2}}\psi_{2}(x),\cdots)_{\mathcal{H}}^{\mathsf{T}} K(x,)=(λ1 ψ1(x),λ2 ψ2(x),)HT
因此,
⟨ K ( x , ⋅ ) , K ( y , ⋅ ) ⟩ H = ∑ i = 0 ∞ λ i ψ i ( x ) ψ i ( y ) = K ( x , y ) \langle K(x, \cdot), K(y, \cdot) \rangle_{\mathcal{H}} = \sum_{i=0}^{\infty} \lambda_{i} \psi_{i}(x) \psi_{i}(y) = K(x, y) K(x,),K(y,)H=i=0λiψi(x)ψi(y)=K(x,y)
这个性质就叫再生性(reproducing),这个 H \mathcal{H} H 就叫做再生核希尔伯特空间(reproducing kernel Hilbert space,RKHS)。

回到我们最初的问题,怎么把一个点映射到一个特征空间上呢?

定义一个映射:
Φ ( x ) = K ( x , ⋅ ) = ( λ 1 ψ 1 ( x ) , λ 2 ψ 2 ( x ) , ⋯ &ThinSpace; ) H T \Phi(x) = K(x, \cdot) = (\sqrt{\lambda_{1}}\psi_{1}(x), \sqrt{\lambda_{2}}\psi_{2}(x),\cdots)_{\mathcal{H}}^{\mathsf{T}} Φ(x)=K(x,)=(λ1 ψ1(x),λ2 ψ2(x),)HT

⟨ Φ ( x ) , Φ ( y ) ⟩ H = ⟨ K ( x , ⋅ ) , K ( y , ⋅ ) ⟩ H = K ( x , y ) \langle \Phi(x), \Phi(y) \rangle_{\mathcal{H}} = \langle K(x, \cdot), K(y, \cdot) \rangle_{\mathcal{H}} = K(x, y) Φ(x),Φ(y)H=K(x,),K(y,)H=K(x,y)
虽然我们不知道这个映射的具体形式是什么,但是我们可以知道对于一个对称的正定函数(矩阵) K K K ,一定存在一个映射 Φ \Phi Φ 和一个特征空间 H \mathcal{H} H ,使得
⟨ Φ ( x ) , Φ ( y ) ⟩ H = K ( x , y ) \langle \Phi(x), \Phi(y) \rangle_{\mathcal{H}} = K(x, y) Φ(x),Φ(y)H=K(x,y)
这就叫做核方法(kernel trick)。

所以为什么一个核函数都对应一个正定矩阵呢,就是因为它把核函数看成张成某个 RKHS 的空间的一组基底的线性组合。

在 SVM 中的应用
简单说几句,公式太难写了(笑)。

我们在使用原始数据 x x x 的时候发现数据并不可分,所以就寄希望于一个映射 Φ ( x ) \Phi(x) Φ(x) ,这个映射把低维空间上的数据映射到高维空间,这样数据集就有可能变得可分了。

但是在考虑优化问题的对偶问题时,需要计算 ⟨ x i , x j ⟩ \langle x_{i}, x_{j} \rangle xi,xj ,请注意到,我们已经把所有的 x x x 换成了 Φ ( x ) \Phi(x) Φ(x) ,所以就变成需要计算 ⟨ Φ ( x i ) , Φ ( x j ) ⟩ \langle \Phi(x_{i}), \Phi(x_{j}) \rangle Φ(xi),Φ(xj)
为了不让计算变得很困难,我们就可以找到一个核函数 K K K ,满足 K K K 可以生成 Φ \Phi Φ 所形成的高维空间,这样 ⟨ Φ ( x i ) , Φ ( x j ) ⟩ \langle \Phi(x_{i}), \Phi(x_{j}) \rangle Φ(xi),Φ(xj) 就可以简单的用 K ( x i , x j ) K(x_{i}, x_{j}) K(xi,xj) 代替了。而 K K K 往往定义成和 x x x 的内积有关的式子,这样在低维空间中计算内积就很简单。

如:径向基函数里有 ∥ x − y ∥ 2 \lVert x - y \rVert^{2} xy2 ,展开以后其实就含有两个范数项(注意范数就是内积)和一个内积项。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值