[机器学习-从入门到入土] 降维和多元学习

[机器学习-从入门到入土] 降维和多元学习

个人导航

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

文章目录

降维和多元学习

类别 包含内容
降维 PCA、概率PCA、核PCA、自编码器、LDA、流形学习(Isomap、LLE、SNE/t-SNE)
多元学习 / 高维处理 升维的意义、维度灾难、度量学习

降维 Feature Reduction

本质:把高维空间 投影(project) 到低维空间

  • 降低模型复杂度,提升计算效率
  • 便于数据可视化,辅助理解数据结构

原始高维数据 x ∈ R d x \in R^d x∈Rd,通过线性变换矩阵 A A A,可得到低维数据 A T x ∈ R d ′ A^T x \in R^{d'} ATx∈Rd′

(其中 d ′ < d d' < d d′<d)

有时也说变换到M维
d ′ = M d'=M d′=M

经典线性降维方法:

  • PCA(Principal Components Analysis,主成分分析):保留主要信息,丢弃次要信息
  • LDA(Linear Discriminant Analysis,线性判别分析):使不同类别的数据尽可能分离

PCA - 主成分分析

在所有 d ′ d' d′ 维线性子空间中,找到一个子空间(正交基),使数据投影后"丢失的信息最少"

PCA 并不是在"找特征",而是在选一个低维平面/子空间

重构误差(最小化)

对每个样本做三步:

  1. 原始样本: x i ∈ R d x_i \in \mathbb{R}^d xi∈Rd
  2. 投影到低维子空间(压缩):
    • d ′ d' d′个基向量 e e e, 每个基向量都是低维空间的一个方向
    • 每个基向量 e e e都有 d d d个值(代表该基向量与各原始特征的关系)
    • 各个基向量 e e e都相互正交
  3. 再从低维子空间还原回高维(重构): x ~ i \tilde{x}_i x~i

重构误差 就是: ∥ x i − x ~ i ∥ 2 \|x_i - \tilde{x}_i\|^2 ∥xi−x~i∥2

-> 用"能否被好好还原"来衡量所选的低维子空间是不是一个"好子空间"

目标函数

J d ′ = ∑ i = 1 n ∥ ∑ k = 1 d ′ y i k e k − x i ∥ 2 = ∑ i ∥ x ~ i − x i ∥ 2 i J_{d'} = \sum_{i=1}^{n} \left\| \sum_{k=1}^{d'} y_{ik} \mathbf{e}_k - \mathbf{x}_i \right\|^2 =\sum_i \|\tilde{x}_i - x_i\|^2i Jd′=i=1∑n k=1∑d′yikek−xi 2=i∑∥x~i−xi∥2i

  • e k e_k ek:低维子空间的第 k k k 个基向量(方向)
  • y i k = e k T x i y_{ik}=e_k^Tx_i yik=ekTxi:样本 x i x_i xi 在方向 e k e_k ek 上的长度
  • ∑ k = 1 d ′ y i k e k \sum_{k=1}^{d'} y_{ik} e_k ∑k=1d′yikek:用低维子空间"拼出来"的 x ~ i \tilde{x}_i x~i

x ~ i = ∑ k = 1 d ′ e k T x i e k \tilde{x}i=\sum{k=1}^{d'} e_k^Tx_i e_k x~i=∑k=1d′ekTxiek

正交基 δ i j \delta_{ij} δij

PCA 的最优解一定可以选成正交基

-> 正交基不是假设,是最优形式

{u_i}, i=1,...,D 是一组正交基,满足:
x n = c 1 u 1 + c 2 u 2 + . . . + c d u d u i T u j = δ i j = { 0 , i ≠ j 1 , i = j x_n = c_1u_1 + c_2u_2 + ... + c_du_d \\ u_i^T u_j = \delta_{ij} = \begin{cases} 0, & i \ne j \\ 1, & i =j \end{cases} xn=c1u1+c2u2+...+cduduiTuj=δij={0,1,i=ji=j

c c c 代表在各个正交基向量上的投影系数

推导:
x n = ∑ i = 1 D c i u i u j T x n = u j T ∑ i = 1 D c i u i u j T x n = ∑ i = 1 D c i   ( u j T u i ) u j T x n = c j ⋅ 1 + ∑ i ≠ j c i ⋅ 0 = c j x_n = \sum_{i=1}^D c_i u_i \\ u_j^T x_n = u_j^T \sum_{i=1}^D c_i u_i \\ u_j^T x_n = \sum_{i=1}^D c_i \, (u_j^T u_i) \\ u_j^T x_n = c_j \cdot 1 + \sum_{i\neq j} c_i \cdot 0 = c_j xn=i=1∑DciuiujTxn=ujTi=1∑DciuiujTxn=i=1∑Dci(ujTui)ujTxn=cj⋅1+i=j∑ci⋅0=cj

得到:
u j T x n = c j u_j^T x_n = c_j ujTxn=cj

在正交基下,投影系数 c i c_i ci = 样本向量 x n x_n xn 与 基向量 u i u_i ui 的内积

进而得到:
x n = ∑ i = 1 D ( u i T x n )   u i x_n = \sum_{i=1}^{D} (u_i^T x_n)\, u_i xn=i=1∑D(uiTxn)ui

任意向量,都可以分解成"沿每个正交方向的分量之和"

PCA 接下来做的事是: 只保留其中的一部分方向

重构样本

x ~ n = ∑ i = 1 M z n i u i + ∑ i = M + 1 D b i u i \widetilde{x}n = \sum{i=1}^{M} z_{ni} u_i + \sum_{i=M+1}^{D} b_i u_i x n=i=1∑Mzniui+i=M+1∑Dbiui

  • z n i z_{ni} zni 是与数据相关的系数
  • b i b_i bi 是常数系数

降维的核心是保留前 M M M 个与数据相关的系数,丢弃后 D − M D-M D−M 个常数系数

对重构误差 J 求偏导,可得最优系数:
{ z n i = x n T u i , i = 1 , ... , M b i = x ˉ T u i , i = M + 1 , ... , D \begin{cases} z_{ni} = x_{n}^{T}u_i, & i=1,\ldots, M \\ b_i = \bar{x}^{T} u_i, & i=M+1,\ldots, D \end{cases} {zni=xnTui,bi=xˉTui,i=1,...,Mi=M+1,...,D

x ˉ \bar{x} xˉ 是样本均值, 以此来作为常数

此时,误差可化简为:

(误差只剩"被丢弃的方向")(重构误差 = 样本在"被丢弃方向"上的投影)
x n − x ~ n = ∑ i = M + 1 D { ( x n − x ˉ ) T u i } u i x_{n} - \tilde{x}{n} = \sum{i=M+1}^{D} \left\{ \left(x_{n}-\bar{x}\right)^{\mathrm{T}} u_{i} \right\} u_{i} xn−x~n=i=M+1∑D{(xn−xˉ)Tui}ui

最终误差与协方差矩阵

将误差代入目标函数,最终得到:

(PCA 的重构误差 = 被丢弃方向上的方差之和)
J = ∑ i = M + 1 D u i T S u i J = \sum_{i=M+1}^{D} u_{i}^{\mathrm{T}} S u_i J=i=M+1∑DuiTSui

其中 S = 1 N ∑ n = 1 N ( x n − x ˉ ) ( x n − x ˉ ) T S = \frac{1}{N} \sum_{n=1}^{N} \left(x_{n}-\bar{x}\right)\left(x_{n}-\bar{x}\right)^{\mathrm{T}} S=N1∑n=1N(xn−xˉ)(xn−xˉ)T 是样本协方差矩阵

如果: S u i = λ i u i S u_i = \lambda_i u_i Sui=λiui

那么: u i T S u i = λ i u_i^T S u_i = \lambda_i uiTSui=λi

于是: J = ∑ i = M + 1 D λ i J = \sum_{i=M+1}^D \lambda_i J=∑i=M+1Dλi

结论:想让误差最小,就丢掉最小的特征值

最小化重构误差最大化方差

本征维度

高维数据并没有"真正占满"高维空间,而是集中分布在一个低维子空间中

本征维度:数据实际分布的低维超平面维度(低于观测维度)

MNIST的维度: D = 784 D = 784 D=784(28×28 像素)

但数据"真正用到"的维度:可能只有 100 ∼ 200 100\sim200 100∼200

784维降至250维即可保留主要信息:

特征值的意义: λ i = 数据在方向 u i 上的方差 \lambda_i = \text{数据在方向 } u_i \text{ 上的方差} λi=数据在方向 ui 上的方差

->最大特征值 λ 1 \lambda_1 λ1 对应的方向 u 1 u_1 u1 是数据变化最剧烈的方向

向最大特征值对应的基 e_1 投影,样本分布更分散(方差更大)

PPCA - 概率PCA

PPCA: Probabilistic PCA

用一个明确的概率生成模型,重新解释 PCA 的"低维子空间"

经典 PCA 说的是:

  • 找一个子空间
  • 最小化重构误差 / 最大化方差

PPCA 说的是:

  • 数据 x x x是真的由低维隐变量 z z z生成的
  • PCA 其实是在做一个 高斯潜变量模型的最大似然估计
低维隐变量

低维隐变量: z ∈ R M z \in \mathbb{R}^M z∈RM

先验: p ( z ) = N ( 0 , I ) p(z) = \mathcal{N}(0, I) p(z)=N(0,I)

  • 各个潜在方向 相互独立
  • 没有先验偏好(零均值、单位方差)
  • 对应 PCA 中"正交基 + 不同方向独立变化"
条件分布

条件分布: p ( x ∣ z ) = N ( W z + μ , σ 2 I ) p(x|z) = \mathcal{N}(Wz + \mu, \sigma^2 I) p(x∣z)=N(Wz+μ,σ2I)

均值: W z + μ Wz + \mu Wz+μ

  • W ∈ R D × M W \in \mathbb{R}^{D \times M} W∈RD×M:线性映射
  • 把低维 z z z 映射回高维空间
  • μ \mu μ:数据中心(样本均值)

-> 相当于PCA的重构

协方差: σ 2 I \sigma^2 I σ2I

  • 各向同性噪声
  • 每个方向噪声大小相同

-> 承认 PCA 丢掉的信息是噪声

生成过程三步图
  • 首先从隐变量的先验分布 p ( z ) p(z) p(z)中采样一个隐变量 z ^ \hat{z} z^
    (图中紫色曲线,是标准高斯分布)
  • 然后以 W z ^ + μ \boldsymbol{W}\hat{z} + \boldsymbol{\mu} Wz^+μ 为均值、 σ 2 I \sigma^2\boldsymbol{I} σ2I 为协方差,采样得到观测数据 x \boldsymbol{x} x
    (各向同性高斯,图中红色圆圈)
  • 最终所有可能的 x \boldsymbol{x} x 构成的边缘分布 p ( x ) p(\boldsymbol{x}) p(x) ,就是图中右侧的绿色椭圆
    (高维数据的分布轮廓)

Kernel PCA - 核化PCA

在"隐式的高维特征空间"里做 PCA,从而把"线性 PCA"升级为"非线性降维"

Kernel PCA 的目的就是:把"非线性结构"变成"线性结构"再做 PCA

引入非线性映射 ϕ ( x ) \phi(x) ϕ(x):
x    ↦    ϕ ( x ) x \;\mapsto\; \phi(x) x↦ϕ(x)

  • 把数据送到一个(可能是无限维的)特征空间
  • 原本非线性可分, 现在变成线性可分 -> 再做 PCA 就有意义了
  • 弯曲的数据 → 拉直
Kernel Trick

K m n = ϕ ( x m ) T ϕ ( x n ) = k ( x m , x n ) K_{mn} = \phi(x_m)^T \phi(x_n) = k(x_m, x_n) Kmn=ϕ(xm)Tϕ(xn)=k(xm,xn)

  • 用到核技巧 , 从头到尾没有显式出现 ϕ ( x ) \phi(x) ϕ(x)
  • 只用核函数 k ( x , x ′ ) k(x,x') k(x,x′)

自编码器 Auto-Encoder

用神经网络"学一个最优重构的低维表示"

自编码器是"PCA 的神经网络版"

又称自关联神经网络(Autoassociative Neural Network),通过"编码-解码"结构实现降维:
D 维输入数据压缩为 M 维特征(编码),再重构回 D 维数据(解码)

编码(压缩)

z = f ( x ) ∈ R M , M < D z = f(x) \in \mathbb{R}^M,\quad M < D z=f(x)∈RM,M<D

  • 把高维数据压到"瓶颈层"
  • z z z 就是 低维表示 / 潜变量
解码(重构)

x ~ = g ( z ) ∈ R D \tilde{x} = g(z) \in \mathbb{R}^D x~=g(z)∈RD

  • 用 z z z 尽量还原原始输入
训练目标(重构误差)

min ⁡ ∑ i ∥ x i − x ~ i ∥ 2 \min \sum_i \|x_i - \tilde{x}_i\|^2 mini∑∥xi−x~i∥2

这与 PCA 的最小重构误差目标 在形式上是完全一致的

"单层 + 非线性"仍然是线性的

非线性函数(如 sigmoid), 在最优重构约束下, 会**"退化"为近似线性映射**(否则无法同时重构所有方向)

一个单瓶颈结构不足以表达"弯曲流形", 只能学"压平的平面"

多层自编码器可实现非线性

x → h 1 → h 2 → z → h 2 ′ → h 1 ′ → x ~ x \rightarrow h_1 \rightarrow h_2 \rightarrow z \rightarrow h_2' \rightarrow h_1' \rightarrow \tilde{x} x→h1→h2→z→h2′→h1′→x~

在到达瓶颈层之前,空间已经被反复"弯曲"和"拉直"

  • 编码函数 f ( x ) f(x) f(x) 是深度复合非线性
  • 解码函数 g ( z ) g(z) g(z) 同样是深度复合非线性

-> 整体学到的是一个非线性流形坐标系

线性判别分析LDA

LDA: linear discriminant analysis

1.类别分离度的度量

设投影向量为 w w w,类别 C_k 的投影均值 m_k = w\^T \\mu_k ( ( ( \\mu_k 是原始空间中类别 C_k 的均值)

仅用投影均值距离 \|m_2 - m_1\| 无法确定最优方向(可通过增大 \\mathbf{w} 模长无限增大),需添加约束 \\sum_i w_i\^2 = 1

进一步分析发现:仅考虑均值不够,还需考虑类内方差(避免类别重叠)

2.Fisher准则函数

Fisher提出的核心思想:最大化"类间方差/类内方差",使投影后类别均值分离度大且类内紧凑

准则函数:

J ( w ) = 类间方差 类内方差 = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 = w T S B w w T S W w S B = ( m 2 − m 1 ) ( m 2 − m 1 ) T S W = ∑ n ∈ C 1 ( x n − m 1 ) ( x n − m 1 ) T + ∑ n ∈ C 2 ( x n − m 2 ) ( x n − m 2 ) T J(\mathbf{w}) = \frac{\text{类间方差}}{\text{类内方差}} = \frac{\left(m_{2} - m_{1}\right)^{2}}{s_{1}^{2} + s_{2}^{2}}=\frac{w^TS_Bw}{w^TS_Ww} \\ S_B=(m_2-m_1)(m_2-m_1)^T \\ S_W=\sum_{n \in C_1} (x_n-m_1)(x_n-m_1)^T + \sum_{n \in C_2} (x_n-m_2)(x_n-m_2)^T J(w)=类内方差类间方差=s12+s22(m2−m1)2=wTSWwwTSBwSB=(m2−m1)(m2−m1)TSW=n∈C1∑(xn−m1)(xn−m1)T+n∈C2∑(xn−m2)(xn−m2)T

得到:
S w − 1 S B w = λ w S_w^{-1}S_Bw=\lambda w Sw−1SBw=λw

3.最优投影方向求解

将准则函数推广到多类别场景,定义类内散度矩阵 S w S_w Sw 和类间散度矩阵 S B S_B SB,则准则函数变为:

J ( W ) = t r ( W T S B W ) t r ( W T S w W ) J(W) = \frac{tr(W^T S_B W)}{tr(W^T S_w W)} J(W)=tr(WTSwW)tr(WTSBW)

结论:当 W 的列向量是 S_w\^{-1} S_B 最大特征值对应的特征向量时, J(W) 达到最大

4.线性代数性质与维度限制

线性代数性质:

  • rank(A+B) \\leq rank(A) + rank(B)
  • rank(AB) \\leq min(rank(A), rank(B))

维度限制: S_B 的秩最多为 c-1 ( ( ( c 是类别数),因此LDA最多可将数据降至 c-1 维(存在 c-1 个非零特征值)

二分类时降到一维

PCA与LDA的区别
对比维度 PCA(Principal Component Analysis) LDA(Linear Discriminant Analysis)
学习范式 无监督学习 有监督学习
核心目标 最大化数据投影后的总体方差 最大化类别可分性(类间方差 / 类内方差)
优化思想 寻找**"数据最分散"**的方向 寻找**"类别最容易区分"**的方向
优化方向 高效判别数据类别的投影方向 高效表示数据的投影方向(最大化方差)
使用的统计量 全体样本的协方差矩阵 类内散度矩阵 S W S_W SW 与类间散度矩阵 S B S_B SB
投影结果的判别性 不保证类别可分 投影后类别尽量分离、类内紧凑
降维上限 最多为原始特征维数 d d d 最多为 c − 1 c-1 c−1( c c c 为类别数)
对噪声的敏感性 易受高方差噪声影响 对与分类无关的噪声相对鲁棒
典型应用 数据压缩、可视化、特征去相关 分类前的判别特征提取

流形学习(Manifold Learning)

流形:嵌在高维空间中的低维几何结构

(圆是1维流形嵌在2维空间: 线 -> 曲线)(球面是2维流形嵌在3维空间: 面 -> 曲面)

高维是"观测维度",低维是"内在维度"

目标: "展开"高维空间中的流形,恢复其低维本质结构,同时保留样本间的相对关系

与PCA/LDA不同, 流形学习的任务:不是投影,而是"展开"

经典流形学习算法:

  • Isomap(Isometric Feature Mapping,等度量特征映射)
  • LLE(Locally Linear Embedding,局部线性嵌入)
  • SNE(Stochastic Neighbor Embedding,随机近邻嵌入)
    and 改进版 t-SNE
1.等度量特征映射(Isomap)

Isomap: Isometric Feature Mapping

Isomap 不是在找"投影方向",而是在试图恢复数据在流形上的"真实几何距离"

欧氏距离在流形上会骗人:

在高维空间中,两点可能直线距离很短,但必须"绕着流形走很久"才能到达

核心思想: 距离接力
用"很多段局部欧氏距离的接力",来近似全局的流形测地距离,然后把这些距离整体摊平

-> 构建邻域图(切断所有"不可信的远距离", 保留流形表面上的"相邻关系")

MDS: 把"流形距离"摊平 (已知距离 → 反推坐标)

给定任意两点之间的距离 -> 在低维空间中,放置这些点,使得距离尽量一致

从左到右:左右转头

从上到下:上下转头

从左到右 -> 2下面的小圈越来越大

从上到下 -> 2上面的小圈越来越大

从左到右 -> 拳心/掌心从左到下

从上到下 -> 手掌到握拳

2.局部线性嵌入(Locally Linear Embedding)

LLE 不相信全局几何,只相信"局部相对位置关系"

每个样本及其邻近点位于流形的局部线性区域:

  • 流形整体可以是弯的, 扭的, 卷起来的
  • 但在足够小的一块区域里它看起来就像一张"平面"

LLE认为:"一个点相对于邻居的位置关系",比"它在绝对坐标系里的位置"更重要

所以要保存的不是距离, 角度, 坐标 -> 而是线性重构关系

在局部小邻域中,点 x i x_i xi 可以由它的邻居 x j x_j xj 按某个固定比例'拼'出来 :
x i ≈ ∑ j W i j x j x_i \approx \sum_j W_{ij} x_j xi≈j∑Wijxj

W i j W_{ij} Wij 表示邻居 j j j 在重构 i i i 时的重要程度

只允许"邻居"参与重构 :
非邻近点: W i j = 0 \text{非邻近点:}\quad W_{ij}=0 非邻近点:Wij=0
要求 ∑ j W i j = 1 \sum_j W_{ij}=1 ∑jWij=1 -> 消除平移影响

假设所有数据整体平移: x j → x j + c x_j \rightarrow x_j + c xj→xj+c

如果: ∑ j W i j = 1 j \sum_j W_{ij} = 1j ∑jWij=1j

那么: ∑ j W i j ( x j + c ) = ∑ j W i j x j + c \sum_j W_{ij}(x_j + c) = \sum_j W_{ij}x_j + c ∑jWij(xj+c)=∑jWijxj+c

-> 重构误差 不变

"只用邻居 + 权重和为 1",可以得到:

  • 平移不变
  • 旋转不变
  • 等比例缩放不变

-> 权重 W i j W_{ij} Wij 捕捉的是"纯几何关系"

重构误差函数(学习权重)
ϵ ( W ) = ∑ i ∥ x i − ∑ j W i j x j ∥ 2 \epsilon(\mathbf{W}) = \sum_{i} \left\| \mathbf{x}{i} - \sum{j} W_{ij} \mathbf{x}_{j} \right\|^{2} ϵ(W)=i∑ xi−j∑Wijxj 2

约束条件:

  1. 每个样本仅能由其邻近点重构(非邻近点 W i j = 0 W_{ij}=0 Wij=0)
  2. 权重矩阵每行和为1( ∑ j W i j = 1 \sum_j W_{ij}=1 ∑jWij=1)

性质:权重 W_{ij} 对样本的旋转、缩放、平移变换具有不变性

LLE认为: 只要低维空间能保持同样的重构权重,全局结构自然会对

低维嵌入误差函数(固定权重)
Φ ( Y ) = ∑ i ∥ y i − ∑ j W i j y j ∥ 2 \Phi(\mathbf{Y}) = \sum_{i} \left\| \mathbf{y}{i} - \sum{j} W_{ij} \mathbf{y}_{j} \right\|^{2} Φ(Y)=i∑ yi−j∑Wijyj 2

求解:通过稀疏特征值分解最小化 \\Phi(\\mathbf{Y}) ,取最小的 d' 个非零特征向量作为低维坐标

瑞士卷:


其他图例:

3.随机近邻嵌入(SNE)与t-SNE

SNE: 在某个点看来,谁像其邻居

让低维空间中的邻居关系,看起来像高维空间中的邻居关系

SNE 不关心:距离值是否准确or全局几何是否保留

-> 只关心相似性排序是否一致

把"几何问题"变成"概率匹配问题":
p j ∣ i = exp ⁡ ( − ∥ x i − x j ∥ 2 / 2 σ 2 ) ∑ k ≠ i exp ⁡ ( − ∥ x i − x k ∥ 2 / 2 σ 2 ) q j ∣ i = exp ⁡ ( − ∥ z i − z j ∥ 2 / 2 σ 2 ) ∑ k ≠ i exp ⁡ ( − ∥ z i − z k ∥ 2 / 2 σ 2 ) p_{j|i} = \frac{\exp(-\|\mathbf{x}_i - \mathbf{x}j\|^2 / 2\sigma^2)}{\sum{k \neq i} \exp(-\|\mathbf{x}_i - \mathbf{x}k\|^2 / 2\sigma^2)} \\ q{j|i} = \frac{\exp(-\|\mathbf{z}_i - \mathbf{z}j\|^2 / 2\sigma^2)}{\sum{k \neq i} \exp(-\|\mathbf{z}_i - \mathbf{z}_k\|^2 / 2\sigma^2)} pj∣i=∑k=iexp(−∥xi−xk∥2/2σ2)exp(−∥xi−xj∥2/2σ2)qj∣i=∑k=iexp(−∥zi−zk∥2/2σ2)exp(−∥zi−zj∥2/2σ2)

p j ∣ i p_{j|i} pj∣i: 如果我站在点 i i i,我会以多大概率把 j j j 当作邻居

  • 距离越近 → 概率越大
  • 距离越远 → 指数衰减
维度 p(高维相似性) q(低维相似性)
所在空间 原始高维空间 x i ∈ R D x_i \in \mathbb{R}^D xi∈RD 嵌入后的低维空间 y i ∈ R d y_i \in \mathbb{R}^d yi∈Rd
表示什么 真实邻居关系 可视化后的邻居关系
含义 点 j j j 在高维中是点 i i i 邻居的概率 点 j j j 在低维图中看起来像点 i i i 邻居的概率
数学形式 p j ∣ i p_{j\mid i} pj∣i q j ∣ i q_{j\mid i} qj∣i
由谁决定 数据本身(距离 + 高斯核) 当前低维坐标(画出来的图)
是否被优化 否(固定不变) 是(不断调整)
"犯错"时的后果 ------ 被 KL 散度惩罚

KL 散度: K L ( P ∥ Q ) KL(P\|Q) KL(P∥Q)

-> 如果我以 P P P 为真实分布,却用近似分布 Q Q Q 来近似,会损失多少信息
K L ( P ∥ Q ) = ∑ p log ⁡ p q KL(P\|Q)=\sum p \log\frac{p}{q} KL(P∥Q)=∑plogqp

-> 最小化 KL散度

t-SNE(改进版SNE):

  • 使用对称KL散度,简化计算
  • 低维空间采用学生t分布(重尾特性),解决SNE的"拥挤问题",更适合高维数据可视化

相似数据在低维空间中的分布更紧凑


说明3, 5, 8比较相近, 9和4比较相近

升维的意义

升维的核心目的是使原本不可分的数据变得可分:

  • 一维空间中存在重叠的数据,在二维空间中可能仍有重叠
  • 当提升到三维空间时,原本重叠的数据可能实现分离,即通过升维打破数据的不可分性

维度灾难(Curse of Dimensionality)

升维并非维度越高越好,当维度超过一定阈值后,会出现"维度灾难":

  • 样本关系丢失:升维前可通过欧氏距离等度量找到的样本间关系,升维后难以捕捉
  • 样本稀疏化:高维空间中样本分布会变得极度稀疏,导致模型难以学习有效规律

维度带来的两个关键问题:

  1. 分类器的性能是否受维度影响?
  2. 分类器的复杂度是否受维度影响?

样本量基本要求:每一类训练样本的个数至少是特征个数的十倍

示例:(1, 32, 32)的图片包含1024个特征,至少需要10000张图片用于训练

特殊情况:深度学习通过参数共享构建分布式特征空间,一定程度上降低了对样本量的需求

度量学习(Metric Learning)

学习一个合适的距离度量(替代欧氏距离等固定度量),使相似样本间的距离尽可能小,不相似样本间的距离尽可能大,从而提升基于距离的模型(如最近邻分类器)性能

1.距离度量的数学表达

定义马氏距离(mahalanobis distance)为:
∥ x i − x j ∥ M 2 = ( x i − x j ) T M ( x i − x j ) \| \mathbf{x}_i - \mathbf{x}_j \|_M^2 = (\mathbf{x}_i - \mathbf{x}_j)^T M (\mathbf{x}_i - \mathbf{x}_j) ∥xi−xj∥M2=(xi−xj)TM(xi−xj)

其中 M M M 是半正定度量矩阵(保证距离非负、对称), 也叫度量矩阵(metric matrix)

特殊情况:若 M M M 是对角阵,则等价于对不同特征赋予不同权重(特征加权)

想要距离是非负以及对称, 也就是M得是半正定的

2.与最近邻KNN分类器的结合

将度量矩阵 M M M 嵌入最近邻分类器的性能度量中,定义样本 x j x_j xj 对 x i x_i xi 的影响概率:

p i j = exp ⁡ ( − ∥ x i − x j ∥ M 2 ) ∑ l exp ⁡ ( − ∥ x i − x l ∥ M 2 ) p_{ij} = \frac{\exp\left(-\|\mathbf{x}{i}-\mathbf{x}{j}\|{M}^{2}\right)}{\sum{l}\exp\left(-\|\mathbf{x}{i}-\mathbf{x}{l}\|_{M}^{2}\right)} pij=∑lexp(−∥xi−xl∥M2)exp(−∥xi−xj∥M2)

说明: i = j i=j i=j 时 p i j p_{ij} pij 最大,影响随距离增大而减小

通过领域知识约束 p i j p_{ij} pij(相似样本 p i j p_{ij} pij 大,不相似样本 p i j p_{ij} pij 小),可求解得到最优度量矩阵 M M M

例题

简要说明PCA的两种等价视角,为什么这两种视角得到的是同一组主成分?

答:

视角 1:最大方差视角

目标是找到新的投影方向,使得数据在该方向上的投影方差最大

(方差越大,数据在该方向上的区分度越高,能保留更多原始信息)

视角 2:最小重构误差视角

目标是找到新的低维子空间,使得数据从原始空间投影到该子空间后,再重构回原始空间的误差最小

(重构误差越小,数据越能保留原始信息)

两种视角等价的原因:

这两种视角本质上是同一优化问题的不同表述

当数据投影后的方差最大时,其对应的重构误差恰好最小

数学上,通过拉格朗日乘数法求解 "最大方差" 或 "最小重构误差" 的优化目标,最终得到的都是数据协方差矩阵的特征向量,因此两种视角会得到同一组主成分

相关推荐
华清远见成都中心2 小时前
人工智能要学习的课程有哪些?
人工智能·学习
普通网友2 小时前
Bard 的模型压缩技术:在保证性能的前提下如何实现轻量化部署
人工智能·机器学习·bard
白帽子黑客罗哥3 小时前
不同就业方向(如AI、网络安全、前端开发)的具体学习路径和技能要求是什么?
人工智能·学习·web安全
捕风捉你3 小时前
【AI转行04】特征工程:治疗 AI 的“学不会”和“想太多”
人工智能·深度学习·机器学习
何贤3 小时前
2026 年程序员自救指南
人工智能·程序员·掘金技术征文
AKAMAI3 小时前
分布式边缘推理正在改变一切
人工智能·分布式·云计算
极新3 小时前
智面玄赏联合创始人李男:人工智能赋能招聘行业——从效率革新到平台经济重构|2025极新AIGC峰会演讲实录
人工智能·百度
乾元3 小时前
ISP 级别的异常洪泛检测与防护——大流量事件的 AI 自动识别与响应工程
运维·网络·人工智能·安全·web安全·架构
机器之心3 小时前
多模态推理新范式!DiffThinker:用扩散模型「画」出推理和答案
人工智能·openai
linhx3 小时前
【AIGC工作流】解构AI短剧生产管线:从手动调用DeepSeek+MJ,到Agent一站式自动化的演进
人工智能·自动化·aigc