无监督学习是机器学习中一个极具挑战性又充满魅力的领域。与监督学习不同,无监督学习处理的是没有标签的数据,其目标是从数据本身发现内在结构、模式或分布。本篇博客将系统介绍无监督学习的核心任务与方法,包括密度估计(直方图法、核密度估计、对比密度学习)、隐变量模型(及其四种类型),并重点剖析自编码器(尤其是主成分分析-PCA)和K-means聚类算法的原理与应用。
无监督学习(Unsupervised Learning)概述
给定一个无标签的数据集 $\mathcal{D} = {\mathbf{x}_1, \mathbf{x}_2, …, \mathbf{x}_N}$,其中每个样本 $\mathbf{x}_n$ 都是从某个未知的总体分布 $p(\mathbf{x})$ 中独立同分布采样得到的。无监督学习的目标并非预测一个标签,而是探索数据本身的内在属性,主要任务可分为四类:
- 密度估计 (Density Estimation): 估计数据分布 $p(\mathbf{x})$。可用于异常检测(低概率样本即异常)或设计压缩算法(高频事件分配短码)。
- 聚类 (Clustering): 将数据集中的样本划分成若干组(簇),使得组内样本相似度高,组间相似度低。
- 表示学习 (Representation Learning): 将数据映射到一个新的特征空间(通常维度更低或更结构化),以凸显独立的解释性因子,便于可视化、解释或作为下游任务的输入特征。
- 样本生成 (Generation): 学习分布 $p(\mathbf{x})$ 后,从中采样以生成新的、与原始数据相似的数据样本,例如用于语言/视频生成或数据补全(图像修复)。
一个贯穿无监督学习的重要范式是自监督学习 (Self-Supervised Learning),其核心思想是将无监督问题转化为有监督问题。大型语言模型(LLM, Large Language Model)的预训练就是典型例子:通过给定上文预测下一个词元(Token),将语言模型的训练(一个无监督密度估计问题 $p(\text{text})$)转化为一个监督学习任务。
密度估计 (Density Estimation)
非参数方法 (Non-parametric Methods)
非参数方法对数据分布的形式假设很少,但通常需要大量数据且受“维度诅咒”影响显著。
-
直方图 (Histogram):
- 思想:将数据空间划分为离散的区间(称为“箱”或“桶”),并用每个区间内数据点的频率来估计该区间的概率密度。
- 公式:对于连续变量,若量化步长为 $\Delta$,则密度估计为: $$ p_{\text{hist}}(x) = \frac{N[x]}{N \cdot \Delta} $$ 其中 $N[x]$ 是落在 $x$ 所在区间的样本数。对于 $D$ 维数据,分母变为 $N \cdot \Delta^D$。
- 特点:假设密度是分段常数函数。$\Delta$ 越小,偏差越小,但估计方差(误差)越大。
-
核密度估计 (KDE, Kernel Density Estimation):
- 思想:在每个数据点位置上放置一个平滑的“核函数”(如高斯核),最终的密度估计是所有核函数的叠加平均。
- 公式: $$ p_{\text{KDE}}(x) = \frac{1}{N} \sum_{n=1}^{N} \kappa_h(x - x_n) $$ 其中 $\kappa_h(\cdot)$ 是带宽为 $h$ 的核函数,例如高斯核 $\kappa_h(x) = \mathcal{N}(x|0, h)$。
- 特点:假设分布是平滑的。带宽 $h$ 控制平滑度,$h$ 越小偏差越小但方差越大,与直方图中 $\Delta$ 的作用类似。
参数方法 (Parametric Methods) 与 对比密度学习 (CDL, Contrastive Density Learning)
参数方法通过一个参数化的模型 $p(\mathbf{x}|\boldsymbol{\theta})$ 来估计密度,避免了维度诅咒,但引入了模型偏差。
- 对比密度学习 (CDL):
- 思想:一种巧妙的自监督方法,将密度估计转化为一个二分类问题。训练一个分类器来区分“真实数据样本”(标签 $t=1$,来自 $p(\mathbf{x})$) 和“噪声样本”(标签 $t=0$,来自一个已知的参考分布 $r(\mathbf{x})$)。
- 步骤:
- 从噪声分布 $r(\mathbf{x})$ 中生成 $N_r$ 个噪声样本。
- 构建二分类数据集:${(x_1, 1), (x_2, 1), …, (x_N, 1), (x_{N+1}, 0), …, (x_{N+N_r}, 0)}$。
- 训练一个判别模型(如逻辑回归、神经网络)得到 $p(t=1|\mathbf{x}, \boldsymbol{\theta})$。
- 密度恢复:假设先验 $p(t=1)=p(t=0)=0.5$,根据贝叶斯定理有: $$ p(t=1|\mathbf{x}) = \frac{p(\mathbf{x})}{r(\mathbf{x}) + p(\mathbf{x})} $$ 因此,可以从训练好的分类器输出中恢复出数据密度的估计: $$ p(\mathbf{x}) \propto r(\mathbf{x}) \frac{p(t=1|\mathbf{x}, \boldsymbol{\theta})}{p(t=0|\mathbf{x}, \boldsymbol{\theta})} $$ 最后需要进行归一化以确保 $\int p(\mathbf{x}) d\mathbf{x} = 1$。
- 要求:1. 分类器需足够好以逼近真实后验;2. 噪声分布 $r(\mathbf{x})$ 必须覆盖 $p(\mathbf{x})>0$ 的所有区域。
其他先进的参数化密度估计方法还包括归一化流 (Normalizing Flows),它通过一系列可逆变换将一个简单的基础分布(如高斯分布)转换为复杂的目标分布。
隐变量模型 (Latent Variable Models)
隐变量模型假设每个观测数据点 $\mathbf{x}_n$ 都与一个未观测到的隐变量 (Latent Variable) $\mathbf{z}_n$ 相关联。根据 $\mathbf{x}$ 和 $\mathbf{z}$ 之间的关系,可分为四类:
- 有向生成模型 (Directed Generative Models): $\mathbf{z} \rightarrow \mathbf{x}$。隐变量是“因”,观测数据是“果”。例如:扩散模型 (Diffusion Models),隐变量 $\mathbf{z}$ 代表去噪过程中的随机源。
- 无向模型 (Undirected Models): $\mathbf{z} \leftrightarrow \mathbf{x}$。隐变量与观测变量相关(或相互制约)。例如:推荐系统中,隐变量 $\mathbf{z}$ 表示用户画像,与观测到的电影评分向量 $\mathbf{x}$ 相关。
- 有向判别模型 (Directed Discriminative Models): $\mathbf{x} \rightarrow \mathbf{z}$。从观测数据中“提取”出隐变量。例如:“鸡尾酒会问题”中的盲源分离 (Blind Source Separation),从混合音频信号 $\mathbf{x}$ 中提取出独立的源信号 $\mathbf{z}$。
- 自编码器 (Autoencoders): $\mathbf{x} \rightarrow \mathbf{z} \rightarrow \mathbf{\hat{x}}$。为了重构 $\mathbf{x}$ 而从其中提取出有用的隐表示 $\mathbf{z}$。例如:图像压缩,将图像 $\mathbf{x}$ 编码为更小的表示 $\mathbf{z}$,再解码回图像(通常有失真)。
隐变量的语义并非事先给定,而是通过无监督学习过程从数据中自动发现,并期望其能捕捉数据中有意义的结构。
自编码器 (Autoencoders)
自编码器是一种特殊的有向判别模型,其核心思想是自监督学习:将输入数据 $\mathbf{x}$ 自身作为学习的目标(标签)。
- 结构:包含一个编码器 (Encoder) 和一个解码器 (Decoder)。
- 编码器: $ \mathbf{z} = F(\mathbf{x}|\boldsymbol{\theta}) $,将输入映射到隐空间。
- 解码器: $ \mathbf{\hat{x}} = G(\mathbf{z}|\boldsymbol{\theta}) $,试图从隐表示重构输入。
- 目标:学习参数 $\boldsymbol{\theta}$ 使得重构误差最小 $\mathbf{\hat{x}} = G(F(\mathbf{x}|\boldsymbol{\theta})|\boldsymbol{\theta}) \approx \mathbf{x}$。这意味着隐变量 $\mathbf{z}$ 必须捕获重构 $\mathbf{x}$ 所需的“本质特征”。
- 损失函数:通常使用平方误差 $\ell(\mathbf{x}_n, \mathbf{\hat{x}}_n) = ||\mathbf{x}_n - \mathbf{\hat{x}}_n||^2$。
- 关键:必须对编码器或解码器施加约束(如降低维度、增加稀疏性),否则模型会简单地学会恒等映射 ($F(\mathbf{x})=\mathbf{x}, G(\mathbf{z})=\mathbf{z}$) 而无法学习到有用表示。
主成分分析 (PCA, Principal Component Analysis)
PCA 是一种线性自编码器,是具有最强约束的特例。
- 解码器:线性操作。$\mathbf{\hat{x}} = G(\mathbf{z}|\boldsymbol{\theta}) = \mathbf{W}\mathbf{z} = \sum_{m=1}^{M} z_m \mathbf{w}_m$。其中 $\mathbf{W} = [\mathbf{w}_1, …, \mathbf{w}_M]$ 是一个 $D \times M$ 的字典矩阵($M < D$),其列向量 $\mathbf{w}_m$ 称为主成分 (Principal Components),需满足正交归一化约束:$\mathbf{w}_m^\top \mathbf{w}n = \delta{mn}$。
- 编码器:也是线性操作。$\mathbf{z} = F(\mathbf{x}|\boldsymbol{\theta}) = \mathbf{W}^\top \mathbf{x}$。即,隐变量 $\mathbf{z}$ 是数据 $\mathbf{x}$ 在各主成分方向上的投影。
- 训练/求解:PCA 的 ERM 问题等价于在正交约束下最小化重构误差: $$ \min_{\mathbf{W}} \frac{1}{N} \sum_{n=1}^{N} ||\mathbf{x}_n - \mathbf{W}\mathbf{W}^\top \mathbf{x}n||^2 $$ 其解是样本协方差矩阵 $\mathbf{C} = \frac{1}{N} \sum{n=1}^{N} (\mathbf{x}_n - \mathbf{b})(\mathbf{x}_n - \mathbf{b})^\top$($\mathbf{b}$ 是样本均值)的前 $M$ 个特征值对应的特征向量。
- 应用:1. 数据压缩 ($\mathbb{R}^D \rightarrow \mathbb{R}^M$)。2. 可视化与解释 (通常 $M=2$ 或 $3$)。3. 特征提取,为下游任务(如分类)提供降维后的特征。
K-Means 聚类 (K-Means Clustering)
聚类旨在将数据点划分为 $K$ 个组(簇)。K-Means 是最著名的聚类算法之一。
- 模型:为每个簇 $k$ 定义一个原型向量 (Prototype Vector) $\boldsymbol{\mu}_k \in \mathbb{R}^D$,代表该簇的中心。模型参数 $\boldsymbol{\theta} = {\boldsymbol{\mu}_1, …, \boldsymbol{\mu}_K}$。
- 监督损失 (已知簇分配 $z_n$):如果点 $\mathbf{x}_n$ 被分配到簇 $k$ ($z_n = k$),则损失为其到簇中心的平方欧氏距离: $$\ell_s(\mathbf{x}_n, z_n=k|\boldsymbol{\theta}) = ||\mathbf{x}n - \boldsymbol{\mu}k||^2$$ 使用 one-hot 编码的簇指示变量 $\mathbf{z}n = [z{1,n}, …, z{K,n}]^\top$($z{k,n}=1$ 当且仅当 $\mathbf{x}_n$ 属于簇 $k$),损失可写为: $$\ell_s(\mathbf{x}n, \mathbf{z}n|\boldsymbol{\theta}) = \sum{k=1}^{K} z{k,n} ||\mathbf{x}_n - \boldsymbol{\mu}_k||^2$$
- 无监督损失 (未知簇分配 $z_n$):由于簇分配未知,对于给定的原型 $\boldsymbol{\theta}$,一个合理的策略是将每个点分配给离它最近的原型。这导致了无监督损失: $$\ell(\mathbf{x}n|\boldsymbol{\theta}) = \min{k \in {1,…,K}} ||\mathbf{x}_n - \boldsymbol{\mu}k||^2 = \min{\mathbf{z}_n} \ell_s(\mathbf{x}_n, \mathbf{z}_n|\boldsymbol{\theta})$$
- 目标:最小化所有点的无监督损失之和: $$\min_{\boldsymbol{\theta}} \frac{1}{N} \sum_{n=1}^{N} \ell(\mathbf{x}n|\boldsymbol{\theta}) = \min{\boldsymbol{\theta}} \frac{1}{N} \sum_{n=1}^{N} \min_{k} ||\mathbf{x}_n - \boldsymbol{\mu}_k||^2$$
K-Means 算法 (EM Algorithm)
目标函数同时依赖于连续参数 $\boldsymbol{\theta}$ 和离散分配 $\mathbf{z}_n$,难以直接优化。K-Means 采用期望最大化 (EM) 算法迭代求解:
- 初始化:随机选择 $K$ 个初始原型 ${\boldsymbol{\mu}_1^{(1)}, …, \boldsymbol{\mu}_K^{(1)}}$,设迭代索引 $i=1$。
- E步 (Expectation) - 分配簇:固定原型 $\boldsymbol{\mu}k^{(i)}$,为每个点 $\mathbf{x}n$ 选择使其平方距离最小的簇: $$ z{k,n}^{(i+1)} = \begin{cases} 1, & \text{if } k = \arg\min{j} ||\mathbf{x}_n - \boldsymbol{\mu}_j^{(i)}||^2 \ 0, & \text{otherwise} \end{cases} $$
- M步 (Maximization) - 更新原型:固定簇分配 $z_{k,n}^{(i+1)}$,每个簇的新原型是该簇所有点的均值: $$ \boldsymbol{\mu}k^{(i+1)} = \frac{\sum{n=1}^{N} z_{k,n}^{(i+1)} \mathbf{x}n}{\sum{n=1}^{N} z_{k,n}^{(i+1)}} $$
- 循环:重复步骤 2 和 3,直到原型不再显著变化或达到最大迭代次数。
理解:E步是推断 (Inference),根据当前模型确定隐变量(簇分配);M步是监督学习,根据“完整数据”(观测值+推断出的标签)更新模型参数(原型)。
举例与应用
示例一:直方图与核密度估计 (Histogram & KDE) 给定一个小数据集 $\mathcal{D} = {-2.1, -1.3, 1.4, 1.6, 2.2}$。
1. 直方图估计:使用步长 $\Delta = 0.5$ 构建直方图。 思路:
- 确定量化区间。例如,区间可以是 $[-2.5, -2.0), [-2.0, -1.5), …, [2.0, 2.5]$。
- 统计每个区间的样本数 $N[x]$。数据点 $-2.1$ 落在 $[-2.5, -2.0)$,$-1.3$ 落在 $[-1.5, -1.0)$,$1.4$ 和 $1.6$ 落在 $[1.0, 1.5)$ 和 $[1.5, 2.0)$,$2.2$ 落在 $[2.0, 2.5)$。
- 计算密度估计:$p_{\text{hist}}(x) = \frac{N[x]}{N \cdot \Delta} = \frac{N[x]}{5 \times 0.5} = 0.4 \times N[x]$。在每个区间内,密度值为常数。
2. 核密度估计 (KDE):使用箱式核 (Box Kernel) $\kappa_h(x)$,其宽度为 $h$(核函数在 $[-h/2, h/2]$ 内值为 $1$,否则为 $0$)。 思路:
- 公式: $p_{\text{KDE}}(x) = \frac{1}{N} \sum_{n=1}^{N} \kappa_h(x - x_n)$。
- 对于每个数据点 $x_n$,在其周围 $[x_n - h/2, x_n + h/2]$ 的区间内贡献一份密度(高度为 $1/N$)。
- 最终的密度估计是所有这些“箱子”叠加的结果。带宽 $h$ 控制平滑程度:
- $h=0.1$:每个数据点产生一个很窄的“脉冲”,估计很不平滑。
- $h=0.5$:脉冲变宽,开始重叠,估计更平滑。
- $h=1.0$:脉冲更宽,重叠更多,估计非常平滑,细节丢失。
考题一:对比密度学习 (CDL) 公式推导 考题:在对比密度学习中,假设我们训练了一个完美的分类器 $p(t=1|\mathbf{x}, \boldsymbol{\theta}) = p(t=1|\mathbf{x})$,并且先验概率 $p(t=1)=p(t=0)=0.5$。请从分类器的输出 $p(t=1|\mathbf{x}, \boldsymbol{\theta})$ 推导出数据分布 $p(\mathbf{x})$ 的表达式。
解题思路:
- 根据贝叶斯定理,真实的后验概率为: $$ p(t=1|\mathbf{x}) = \frac{p(t=1)p(\mathbf{x}|t=1)}{p(t=0)p(\mathbf{x}|t=0) + p(t=1)p(\mathbf{x}|t=1)} $$
- 代入已知条件:
- $p(\mathbf{x}|t=1) = p(\mathbf{x})$ (标签为1的样本来自真实数据分布)
- $p(\mathbf{x}|t=0) = r(\mathbf{x})$ (标签为0的样本来自噪声分布)
- $p(t=1) = p(t=0) = 0.5$ 因此: $$ p(t=1|\mathbf{x}) = \frac{0.5 \cdot p(\mathbf{x})}{0.5 \cdot r(\mathbf{x}) + 0.5 \cdot p(\mathbf{x})} = \frac{p(\mathbf{x})}{r(\mathbf{x}) + p(\mathbf{x})} $$
- 由于分类器是完美的,有 $p(t=1|\mathbf{x}, \boldsymbol{\theta}) = p(t=1|\mathbf{x})$。
- 从上一步的等式求解 $p(\mathbf{x})$: $$ p(t=1|\mathbf{x}, \boldsymbol{\theta}) (r(\mathbf{x}) + p(\mathbf{x})) = p(\mathbf{x}) $$ $$ p(t=1|\mathbf{x}, \boldsymbol{\theta}) r(\mathbf{x}) + p(t=1|\mathbf{x}, \boldsymbol{\theta}) p(\mathbf{x}) = p(\mathbf{x}) $$ $$ p(t=1|\mathbf{x}, \boldsymbol{\theta}) r(\mathbf{x}) = p(\mathbf{x}) (1 - p(t=1|\mathbf{x}, \boldsymbol{\theta})) $$ $$ p(\mathbf{x}) = \frac{p(t=1|\mathbf{x}, \boldsymbol{\theta})}{1 - p(t=1|\mathbf{x}, \boldsymbol{\theta})} r(\mathbf{x}) = \frac{p(t=1|\mathbf{x}, \boldsymbol{\theta})}{p(t=0|\mathbf{x}, \boldsymbol{\theta})} r(\mathbf{x}) $$ (因为 $p(t=0|\mathbf{x}, \boldsymbol{\theta}) = 1 - p(t=1|\mathbf{x}, \boldsymbol{\theta})$)
答案: $p(\mathbf{x}) \propto r(\mathbf{x}) \frac{p(t=1|\mathbf{x}, \boldsymbol{\theta})}{p(t=0|\mathbf{x}, \boldsymbol{\theta})}$。最终需要归一化。
考题二:K-Means 算法单次迭代 考题:考虑数据集 $\mathcal{D} = {\mathbf{x}_1, \mathbf{x}_2, \mathbf{x}_3, \mathbf{x}_4}$,其中: $\mathbf{x}_1 = \begin{bmatrix} 1 \ 8 \end{bmatrix}$, $\mathbf{x}_2 = \begin{bmatrix} -4 \ -6 \end{bmatrix}$, $\mathbf{x}_3 = \begin{bmatrix} -3 \ -8 \end{bmatrix}$, $\mathbf{x}_4 = \begin{bmatrix} -1 \ -4 \end{bmatrix}$。 初始簇中心为 $\boldsymbol{\mu}_1^{(1)} = \begin{bmatrix} 1 \ 1 \end{bmatrix}$, $\boldsymbol{\mu}_2^{(1)} = \begin{bmatrix} -1 \ -1 \end{bmatrix}$。请执行 K-Means 算法的第一次迭代(E步和M步),写出更新后的簇中心 $\boldsymbol{\mu}_1^{(2)}$ 和 $\boldsymbol{\mu}_2^{(2)}$,以及每个数据点的新簇分配 $\mathbf{z}_1^{(2)}, \mathbf{z}_2^{(2)}, \mathbf{z}_3^{(2)}, \mathbf{z}_4^{(2)}$(使用 one-hot 编码)。
解题思路:
- E步 (分配簇):对每个点 $\mathbf{x}_n$,计算其到两个当前簇中心的平方欧氏距离 $||\mathbf{x}_n - \boldsymbol{\mu}_k^{(1)}||^2$,并将其分配给距离更近的簇。
- 计算 $||\mathbf{x}_1 - \boldsymbol{\mu}_1^{(1)}||^2 = ||[0, 7]||^2 = 0^2+7^2=49$, $||\mathbf{x}_1 - \boldsymbol{\mu}_2^{(1)}||^2 = ||[2, 9]||^2=4+81=85$。 $\mathbf{x}_1$ 离 $\boldsymbol{\mu}_1^{(1)}$ 更近。 $\mathbf{z}_1^{(2)} = [1, 0]^\top$。
- 计算 $||\mathbf{x}_2 - \boldsymbol{\mu}_1^{(1)}||^2 = ||[-5, -7]||^2=25+49=74$, $||\mathbf{x}_2 - \boldsymbol{\mu}_2^{(1)}||^2 = ||[-3, -5]||^2=9+25=34$。 $\mathbf{x}_2$ 离 $\boldsymbol{\mu}_2^{(1)}$ 更近。 $\mathbf{z}_2^{(2)} = [0, 1]^\top$。
- 计算 $||\mathbf{x}_3 - \boldsymbol{\mu}_1^{(1)}||^2 = ||[-4, -9]||^2=16+81=97$, $||\mathbf{x}_3 - \boldsymbol{\mu}_2^{(1)}||^2 = ||[-2, -7]||^2=4+49=53$。 $\mathbf{x}_3$ 离 $\boldsymbol{\mu}_2^{(1)}$ 更近。 $\mathbf{z}_3^{(2)} = [0, 1]^\top$。
- 计算 $||\mathbf{x}_4 - \boldsymbol{\mu}_1^{(1)}||^2 = ||[-2, -5]||^2=4+25=29$, $||\mathbf{x}_4 - \boldsymbol{\mu}_2^{(1)}||^2 = ||[0, -3]||^2=0+9=9$。 $\mathbf{x}_4$ 离 $\boldsymbol{\mu}_2^{(1)}$ 更近。 $\mathbf{z}_4^{(2)} = [0, 1]^\top$。 E步结果: $\mathbf{z}_1^{(2)} = [1, 0]^\top$ (簇1), $\mathbf{z}_2^{(2)} = [0, 1]^\top$ (簇2), $\mathbf{z}_3^{(2)} = [0, 1]^\top$ (簇2), $\mathbf{z}_4^{(2)} = [0, 1]^\top$ (簇2)。
- M步 (更新簇中心):新的簇中心是该簇所有点的均值。
- 簇1 ($k=1$):只有 $\mathbf{x}_1$。 $\boldsymbol{\mu}_1^{(2)} = \mathbf{x}_1 = \begin{bmatrix} 1 \ 8 \end{bmatrix}$。
- 簇2 ($k=2$):包含 $\mathbf{x}_2, \mathbf{x}_3, \mathbf{x}_4$。 $$ \boldsymbol{\mu}_2^{(2)} = \frac{1}{3} \left( \begin{bmatrix} -4 \ -6 \end{bmatrix} + \begin{bmatrix} -3 \ -8 \end{bmatrix} + \begin{bmatrix} -1 \ -4 \end{bmatrix} \right) = \frac{1}{3} \begin{bmatrix} -8 \ -18 \end{bmatrix} = \begin{bmatrix} -8/3 \ -6 \end{bmatrix} \approx \begin{bmatrix} -2.67 \ -6 \end{bmatrix} $$
答案:
- 新簇中心: $\boldsymbol{\mu}_1^{(2)} = \begin{bmatrix} 1 \ 8 \end{bmatrix}$, $\boldsymbol{\mu}_2^{(2)} = \begin{bmatrix} -8/3 \ -6 \end{bmatrix}$。
- 新簇分配: $\mathbf{z}_1^{(2)} = [1, 0]^\top$, $\mathbf{z}_2^{(2)} = [0, 1]^\top$, $\mathbf{z}_3^{(2)} = [0, 1]^\top$, $\mathbf{z}_4^{(2)} = [0, 1]^\top$。
总结
无监督学习为我们提供了一套强大的工具来探索未知数据的内部结构。我们从其核心目标(密度估计、聚类、表示学习、生成)出发,深入探讨了多种方法:
- 密度估计既有非参数方法(直方图、KDE),灵活性高但受维度诅咒影响;也有参数方法如对比密度学习 (CDL),它巧妙地通过自监督(二分类)来间接估计密度。
- 隐变量模型为我们提供了对数据生成过程的建模视角,分为四大类型,其中自编码器是为了学习有用表示而重构数据。
- 主成分分析 (PCA) 作为一种线性自编码器,是降维、去噪和特征提取的经典方法。
- K-Means 聚类算法通过EM算法迭代优化,生动地展示了如何在无监督学习中交替进行推断(E步,确定隐变量)和监督学习(M步,更新参数)。
这些方法并非孤立存在。例如,自编码器学到的表示可以用于聚类,聚类的结果可以帮助理解数据的分布。理解这些基本概念及其联系,是掌握更复杂现代无监督学习模型(如VAE, GAN, 扩散模型)的坚实基础。
Last modified on 2025-08-28