机器学习之:LLE (locally linear embedding) 局部线性嵌入降维算法「建议收藏」

机器学习之:LLE (locally linear embedding) 局部线性嵌入降维算法「建议收藏」文章目录LLE1.LLE是什么2.LLE的主要思想3.LLE算法推导过程3.1如何找到k个近邻3.2找xix_ixi​与这k个近邻的线性关系3.3xix_ixi​与k个近邻点的线性关系求解过程3

LLE

1. LLE 是什么

Locally linear embedding(LLE)[1] 是一种非线性降维算法,它能够使降维后的数据较好地保持原有 流形结构 。LLE可以说是流形学习方法最经典的工作之一。很多后续的流形学习、降维方法都与LLE有密切联系

一个形象的流形降维过程如下图。我们有一块卷起来的布,我们希望将其展开到一个二维平面,我们希望展开后的布能够在局部保持布结构的特征,其实也就是将其展开的过程,就想两个人将其拉开一样
在这里插入图片描述

2. LLE 的主要思想

LLE首先假设数据在较小的局部是线性的,也就是说,某一个数据可以由它邻域中的几个样本来线性表示

  • 比如我们有一个样本 x 1 x_1 x1,我们在它的原始高维邻域里用 K-近邻思想 找到和它最近的三个样本 x 2 x_2 x2, x 3 x_3 x3, x 4 x_4 x4. 然后我们假设 x 1 x_1 x1 可以由 x 2 x_2 x2, x 3 x_3 x3, x 4 x_4 x4 线性表示,即:

    在这里插入图片描述

    • 其中, w 12 w_{12} w12 w 13 w_{13} w13 w 14 w_{14} w14 为权重系数。
      在这里插入图片描述
  • 在我们通过LLE降维后,我们希望 x 1 x_1 x1 在低维空间对应的投影 x 1 ′ x^′_1 x1 x 2 x_2 x2, x 3 x_3 x3, x 4 x_4 x4 对应的投影 x 2 ′ x^′_2 x2, x 3 ′ x^′_3 x3, x 4 ′ x^′_4 x4 也尽量保持同样的线性关系,即:
    在这里插入图片描述

  • 也就是说,投影前后线性关系的权重系数 w 12 w_{12} w12 w 13 w_{13} w13 w 14 w_{14} w14 是尽量不变或者最小改变的。

  • 从上面可以看出,线性关系只在样本的附近起作用,离样本远的样本对局部的线性关系没有影响,因此降维的复杂度降低了很多。这句话的意思是: 如果表示原来高维空间中的点(假设高维空间中一共有 D D D 个点),他们和每一个其他的点之间(其他 D − 1 D-1 D1 个点)都存在 w i j w_{ij} wij 的表示关系,通过 LLE 降维的方法之后,使每个点只与周围的最近的 k k k 个点之间存在线性表示关系,只能被周围的 k k k 个点通过 w i j w_{ij} wij 来表示,这样的话,相当于计算量和维度都减少了很多。

3. LLE 算法推导过程

3.1 如何找到 k 个近邻

假设空间中一共有 D D D 个点,现有一个点 x i x_i xi,对于整个空间中其他所有的点( D − 1 D-1 D1个)都进行距离运算;这里使用的距离是欧氏距离。然后,我们将这 D − 1 D-1 D1 个点与 x i x_i xi 距离最小的 k k k 个点选出来,这就是 k k k 近邻的思想

3.2 找 x i x_i xi 与这 k 个近邻的线性关系

在前面我们说到了,我们如何将原来的高维数据降维到低维空间?或者说,“维度” 这个概念,指的到底是什么?

维度在这里就是由 w i j w_{ij} wij 的权重矩阵决定的,如果什么处理也不做,这个时候,一个 x i x_i xi 就和整个空间中所有的点有关,要通过其他的每一个点来决定这个 x i x_i xi 但是,假设我们只用最近的 k k k 个点,就相当于我们只计算 k k k w i j w_{ij} wij,然后利用求得的权重矩阵来对新的维度的数据进行生成,由于权重矩阵减小了,所以新的数据的维度也减小了。


现在来实际的推导步骤:

  • 假设我们有 m m m n n n 维样本 X = { x 1 , x 2 , . . . , x m } X=\{x_1,x_2,…,x_m\} X={
    x1,x2,...,xm}
    (每个样本都有 n n n 行),代表了整个高维空间中所有的样本点。
  • 我们要找到 x i x_i xi k k k 个近邻之间的线性关系,这显然是个回归问题,所以我们用回归问题常用的 均方误差 来作为损失函数 :
    在这里插入图片描述
    • 其中, Q ( i ) Q(i) Q(i) 表示i的 k k k 个近邻样本集合
    • 一般我们也会对权重系数 w i j w_{ij} wij 做归一化的限制,即权重系数需要满足所有系数相加为 1 1 1
      在这里插入图片描述
    • 根据上面说的,我们只用最近 k k k 个点来描述 x i x_i xi,即:所有不属于 Q ( i ) Q(i) Q(i) 的点的 w i j = 0 w_{ij}=0 wij=0

我们需要通过上面两个式子求出我们的 权重系数 w i j w_{ij} wij。一般我们可以通过矩阵和拉格朗日子乘法来求解这个最优化问题。

3.3 x i x_i xi 与 k 个近邻点的线性关系求解过程

首先对于 3.2 中第一个公式进行求解:

  • 首先矩阵化并解析第一个公式:在这里插入图片描述
    • ( 1 ) (1) (1)
      在这里插入图片描述
    • ( 2 ) (2) (2) 中:
      在这里插入图片描述
      • 注意,这里的 ( x i − x j ) (x_i-x_j) (xixj) 表示的是最后的矩阵
      • W i = ( w i 1 , w i 2 , . . . w i k ) T W_i=(w_{i1}, w_{i2},…w_{ik})^T Wi=(wi1,wi2,...wik)T,维度是 k × 1 k×1 k×1
    • ( 3 ) (3) (3) 中:
      在这里插入图片描述
      • ( x i − x j ) W i (x_i-x_j)W_i (xixj)Wi 看作 A A A 矩阵的整体
      • 对一个矩阵求范数,其本质是求这个矩阵特征值的最大值, ∣ ∣ A ∣ ∣ 2 = λ m a x ( A T A ) → ∣ ∣ A ∣ ∣ 2 2 = λ m a x ( A T A ) ||A||_2=\sqrt{λ_{max}(A^TA)}→||A||_2^2=λ_{max}(A^TA) A2=λmax(ATA)
        A22=λmax(ATA)
      • 因此整个公式就变成了对图中紫色波浪线的公式进行特征值分解然后求特征值的最大值;下面引入如何对一个矩阵进行特征值分解

这里打个断点 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ***********************

3.3.1 奇异值分解
3.3.1.1 特征值分解 (EVD)

在理角奇异值分解之前,需要先回顾一下特征值分解,如果矩阵 A A A 是一个 m × m m×m m×m 的实对称矩阵(即 A = A T A=A^T A=AT),那么它可以根据 A q i = λ i q i Aq_i=λ_iq_i Aqi=λiqi, q i T q j = 0 ( i ≠ j ) q^T_iq_j=0(i≠j) qiTqj=0(i=j) 被分解成如下的形式:
在这里插入图片描述

  • 其中 Q Q Q 为标准正交阵,即有 Q Q T = I QQ^T= I QQT=I
  • Σ Σ Σ 为对角矩阵,且上面的矩阵的维度均为 m × m m×m m×m
  • λ i λ_i λi 称为特征值,
  • q i q_i qi Q Q Q(特征矩阵)中的列向量,称为特征向量。
  • I I I 在这里表示单位阵,有时候也用 E E E 表示单位阵

上面的特征值分解,对矩阵有着较高的要求,它需要被分解的矩阵 A A A实对称矩阵,但是现实中,我们所遇到的问题一般不是实对称矩阵。那么当我们碰到一般性的矩阵,即有一个 m × n m×n m×n 的矩阵 A A A ,它是否能被分解成上面的形式呢?当然是可以的,这就是我们下面要讨论的内容。

3.3.1.2 奇异值分解(SVD)

有一个 m × n m×n m×n 的实数矩阵 A A A ,我们想要把它分解成如下的形式:
在这里插入图片描述

  • 其中 U U U V V V 均为单位正交阵,即有 U U T = I UU^T=I UUT=I V V T = I VV^T=I VVT=I
  • U U U 称为左奇异矩阵 V V V 称为右奇异矩阵,
  • Σ Σ Σ 仅在主对角线上有值,我们称它为奇异值其它元素均为0
  • 上面矩阵的维度分别为 U ∈ R m × m U∈R^{m×m} URm×m, Σ ∈ R m × n Σ∈R^{m×n} ΣRm×n, V ∈ R n × n V∈R^{n×n} VRn×n
  • 一般 Σ Σ Σ 有如下形式:
    在这里插入图片描述

奇异值分解的各个矩阵形式如下:
在这里插入图片描述

  • 对于奇异值分解,我们可以利用上面的图形象表示,图中方块的颜色表示值的大小,颜色越浅,值越大。对于奇异值矩阵 Σ Σ Σ,只有其主对角线有奇异值,其余均为 0 0 0

正常求上面的 U , V , Σ U,V,Σ U,V,Σ 不便于求,我们可以利用如下性质

在这里插入图片描述

  • PS: 需要指出的是,这里 Σ Σ T ΣΣ^T ΣΣT Σ T Σ Σ^TΣ ΣTΣ 在矩阵的角度上来讲,它们是不相等的,因为它们的维数不同 Σ Σ T ∈ R m × m ΣΣ^T∈R^{m×m} ΣΣTRm×m,而 Σ T Σ ∈ R n × n Σ^TΣ∈R^{n×n} ΣTΣRn×n但是它们在主对角线的奇异值是相等的,即有
    在这里插入图片描述
    因为主对角线上的值的个数永远都是 m m m n n n 中较小的一个(奇异值矩阵非对称)

  • 由于 A A T AA^T AAT A T A A^TA ATA 也是对称矩阵(性质:一个矩阵乘以他的转置矩阵,得到的矩阵是对称矩阵),那么可以利用式(1-1)做特征值分解。

  • 利用式(2-2)对 A A A 做特征值分解,得到的特征矩阵即为 U U U;利用式(2-3)对 A A A 特征值分解,得到的特征矩阵即为 V V V ;对 Σ Σ T ΣΣ^T ΣΣT Σ T Σ Σ^TΣ ΣTΣ 中的特征值开方,可以得到所有的奇异值。

让我们回到 3.3 开头的第 ( 4 ) (4) (4) ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ *************************************
在这里插入图片描述

  • Z i = ( x i − x j ) ( x i − x j ) T , j ∈ Q ( i ) Z_i=(x_i−x_j)(x_i−x_j)^T,j∈Q(i) Zi=(xixj)(xixj)T,jQ(i) 进一步简化上述公式:
    在这里插入图片描述
  • 对于我们最早提出的权重的约束公式也进行矩阵化:
    在这里插入图片描述
    • 其中 W i T = w i 1 , w i 2 , . . . w i k W_i^T=w_{i1}, w_{i2},…w_{ik} WiT=wi1,wi2,...wik,维度是 1 × k 1×k 1×k 1 k 1_k 1k 是维度为 k × 1 k×1 k×1 的全 1 1 1 矩阵 [ 1 , 1 , 1 , . . . 1 ] T [1,1,1,…1]^T [1,1,1,...1]T(k个1)

现在我们将矩阵化的两个式子用拉格朗日子乘法合为一个优化目标:
在这里插入图片描述

  • W i W_i Wi 求导并且令其值为 0 0 0 可得到下面公式:
    在这里插入图片描述
  • 即:
    在这里插入图片描述
    • 其中 λ ′ = − 1 2 λ λ^′=−\frac{1}{2λ} λ=2λ1为一个常数。利用 W i T 1 k = 1 W^T_i1_k=1 WiT1k=1,对 W i W_i Wi 归一化,那么最终我们的权重系数 W i W_i Wi 为:
      在这里插入图片描述

3.4 根据求得的先行参数 W W W 求解低维点集 Y = { y 1 , y 2 , . . . , y m } Y=\{y_1,y_2,…,y_m\} Y={
y1,y2,...,ym}

现在我们得到了高维的权重系数 W i W_i Wi,那么我们希望这些权重系数对应的线性关系在降维后的低维一样得到保持。假设我们的 n n n 维样本集 { x 1 , x 2 , . . . , x m } \{x_1,x_2,…,x_m\} {
x1,x2,...,xm}
在低维的 d d d 维度对应投影为 { y 1 , y 2 , . . . , y m } \{y_1,y_2,…,y_m\} {
y1,y2,...,ym}
, 则我们希望保持线性关系,也就是希望对应的均方差损失函数最小,即最小化损失函数 J ( Y ) J(Y) J(Y) 如下:
在这里插入图片描述

  • 可以看到这个式子和我们在高维的损失函数几乎相同,唯一的区别是高维的式子中,高维数据已知,目标是求最小值对应的权重系数W,而我们在低维是权重系数 W W W 已知,求对应的低维数据。

  • 注意,这里的 W W W 已经是 m × m m×m m×m 维度,之前的 W i W_i Wi k × 1 k×1 k×1 维度,对整个 m m m 数据集求和之后: ∑ i = 1 m \sum_{i=1}^m i=1m变成了 k × m k×m k×m ,即:对于整个数据集 X = { x 1 , x 2 , . . . , x m } X=\{x_1,x_2,…,x_m\} X={
    x1,x2,...,xm}
    上的所有 m m m 个点,每个点都有 k k k 个近邻,和每个近邻之间都有 1 1 1 个参数,所以参数的维度总共为 W W W k × m k×m k×m;又因为,在整个数据集上其实每两个点之间都有参数,但是我们 k × m k×m k×m 个参数只能表示每个点与近邻之间的关系,我们进一步扩展将参数的数量增加,使得每两个点之间都有参数,只不过,除了这 k × m k×m k×m 个参数之外,其他的参数都为 0 0 0,代表非近邻点与 x i x_i xi 没有关系,通过这种操作,我们将整个参数的数量扩展到 m × m m×m m×m 维,其中有效的参数个数只有 k × m k×m k×m 个,其余的都是 0 0 0

  • 为了得到标准化的低维数据,一般我们也会加入约束条件如下:
    在这里插入图片描述

    • ∑ i = 1 m y i = 0 \sum_{i=1}^my_i=0 i=1myi=0 将矩阵进行中心化
    • 1 m ∑ i = 1 m y i y i T = I \frac{1}{m}\sum_{i=1}^my_iy_i^T=I m1i=1myiyiT=I (单位协方差)

首先我们将目标损失函数矩阵化:
在这里插入图片描述

  • 现在已经知道 W W W 维度为 m × m m×m m×m
  • 现在的目的是通过 W W W 来求算经过降维之后的点的集合 Y = { y 1 , y 2 , . . y m } Y=\{y_1,y_2,..y_m\} Y={
    y1,y2,..ym}
  • Y Y Y 中所有的点维度是 d d d, d < n d<n d<n
  • 因为前面对 X X X 求权重矩阵 W W W 的时候我们一共涉及了三个量 w i j w_{ij} wij, W i W_i Wi W W W,这里我们再回顾一下:
    • w i j w_{ij} wij 是点 x i x_i xi 周围的 k个近邻分别到 x i x_i xi 的权重,
    • W i W_i Wi 是对于一个 x i x_i xi 周围 k个近邻的参数的矩阵,维度为: k × 1 k×1 k×1
    • W W W 是对于整个 X X X 集合所有 m m m 个点的 k 近邻的参数的综合矩阵,维度为: k × m k×m k×m
    • 而后我们为了将这个权重矩阵 W W W 的参数扩展成 m × m m×m m×m 维,我们就设定 k × m k×m k×m 个数据意外的那些权重都为 0 0 0
    • 所以最后 W W W 的维度是 m × m m×m m×m 但是里面的每一个列向量只有 k k k 个值不为 0 0 0
  • 我们现在拿着 W W W 来对 J ( y ) J(y) J(y) 进行操作来得到我们想要求的 Y = { y 1 , y 2 , . . y m } Y=\{y_1,y_2,..y_m\} Y={
    y1,y2,..ym}

这个时候可能有一个问题:为什么在下图第一个公式中求和的范围是 i = 1 → k i=1→k i=1k,求解 Y Y Y 的时候,第二个式子的部分的求和范围就变成 i = 1 → m i=1→m i=1m
在这里插入图片描述

  • 其实这个问题也容易理解,我们在第一次求解的时候关注的是周围 k k k 个近邻,而后我们将整个 W W W 扩展到除了 k k k 近邻以外的点,也就是整个数据集 m m m 个点,但是这个时候仍然只有 k k k 个参数值是有效的,因为就像我们上面说的,其他的点在与当前点 y i y_i yi 做矩阵运算的时候乘到的参数 w i j w_{ij} wij 都是 0 0 0,所以并不冲突。

【现在开始正式推导 J ( Y ) J(Y) J(Y)】的求解过程
在这里插入图片描述
在这里插入图片描述

  • t r tr tr 是迹函数,对一个矩阵进行 l 2 l2 l2 范数运算可以与迹函数之间进行转化
  • W W W 维度是: m × m m×m m×m W i W_i Wi 维度是: m × 1 m×1 m×1
  • I I I 的维度是: m × m m×m m×m I i I_i Ii 的维度是: m × 1 m×1 m×1
  • Y Y Y 的维度: d × m d×m d×m
  • 约束函数矩阵化为: Y Y T YY^T YYT= m I mI mI
  • 所以总的 优化目标函数为:
    在这里插入图片描述

在这里插入图片描述

可见 Y Y Y 其实是 M M M 的特征向量构成的矩阵,为了将数据降到 d d d 维,我们只需取 M M M 的最小的 d d d 个非零特征值对应的特征向量,而一般第一个最小的特征值接近 0 0 0,我们将其舍弃,最终按从小到大取前 [ 2 , d + 1 ] [2, d+1] [2,d+1] 个特征值对应的特征向量 M = ( y 2 , y 3 , . . . y d + 1 ) M=(y_2,y_3,…y_{d+1}) M=(y2,y3,...yd+1) 来得到最终的 Y Y Y

为什么 M M M 的最小特征值为 0 0 0 呢?

这是因为 W T e = e W^Te=e WTe=e, 得到 ∣ W T − I ∣ e = 0 |W^T−I|e=0 WTIe=0,由于 e ≠ 0 e≠0 e=0 ,所以只有 W T − I = 0 W^T−I=0 WTI=0, 即 ( I − W ) T = 0 (I−W)^T=0 (IW)T=0 ,两边同时左乘 I − W I−W IW,即可得到 ( I − W ) ( I − W ) T e = 0 e (I−W)(I−W)^Te=0e (IW)(IW)Te=0e,即 M M M 的最小特征值为 0 0 0.


今天的文章机器学习之:LLE (locally linear embedding) 局部线性嵌入降维算法「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81578.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注