机器学习中的半监督、主动学习与降维技术
1. 半监督学习
半监督学习旨在利用有标签数据和无标签数据进行学习。通过一个具有参数 $\theta$ 的双射函数 $f$,可以将数据空间 $X$ 映射到潜在空间 $Z$。数据空间中的密度可以通过变量变换公式从潜在空间的密度推导得出:
[p(x) = p(f(x)) \cdot \left|\det\left(\frac{\partial f}{\partial x}\right)\right|]
对于类别标签 $y \in {1 \ldots C}$,给定标签 $k$ 时,潜在分布可指定为具有均值 $\mu_k$ 和协方差 $\Sigma_k$ 的高斯分布:$p(z|y = k) = N(z|\mu_k, \Sigma_k)$。那么 $z$ 的边缘分布就是一个高斯混合分布。有标签数据的似然函数为:
[p_X (x|y = k) = N (f(x)|\mu_k, \Sigma_k) \cdot \left|\det\left(\frac{\partial f}{\partial x}\right)\right|]
无标签数据的似然函数为:$p(x) = \sum_{k} p(x|y = k)p(y = k)$
在半监督学习中,我们可以最大化有标签数据 $D_{\ell}$ 和无标签数据 $D_u$ 的联合似然函数:
[p(D_{\ell}, D_u|\theta) = \prod_{(x_i,y_i) \in D_{\ell}} p(x_i, y_i) \prod_{x_j \in D_u} p(x_j)]
这是通过优化双射函数 $f$ 的参数 $\theta$ 来实现的,最终学习出一个用于贝叶斯分类器的密度模型。
给定一个测试点 $x$,模型的预测分布为:
[p_X (y|x) = \frac{p(x|y)p(y)}{p(x)} = \frac{N (f(x)|\mu_y, \Sigma_y)}{\sum_{k=1}^{C} N(f(x)|\mu_k, \Sigma_k)}]
我们可以使用贝叶斯决策规则 $y = \arg \max_{c \in {1,\ldots,C}} p(y = c|x)$ 对测试点 $x$ 进行预测。
1.1 结合自监督和半监督学习
自监督学习和半监督学习可以结合使用。例如,先使用 SimCLR 对无标签数据进行自监督表示学习,然后在小的有标签数据集上对该表示进行微调,最后将训练好的模型应用回原始的无标签数据集,并将教师模型 $T$ 的预测结果提炼到学生模型 $S$ 中。
在微调 $T$ 之后,通过最小化以下损失函数来训练 $S$:
[L(T) = -\sum_{x_i \in D} \left[\sum_{y} p_T (y|x_i; \tau) \log p_S(y|x_i; \tau)\right]]
其中 $\tau > 0$ 是应用于 softmax 输出的温度参数,用于进行标签平滑。如果 $S$ 与 $T$ 形式相同,则称为自训练。通常情况下,学生模型 $S$ 比教师模型 $T$ 小。
下面是结合自监督和半监督学习的流程:
graph LR
A[无标签数据] --> B[自监督学习]
C[有标签数据] --> D[微调]
B --> D
D --> E[教师模型 T]
E --> F[应用于无标签数据]
F --> G[提炼到学生模型 S]
2. 主动学习
主动学习的目标是通过尽可能少的 $(x, y)$ 点查询来确定真实的预测映射 $y = f(x)$。主要有三种变体:
-
查询合成
:算法可以选择任何输入 $x$,并请求其对应的输出 $y = f(x)$。
-
基于池的主动学习
:有一个大的但固定的无标签数据点集,算法可以请求对其中一个或多个点进行标注。
-
基于流的主动学习
:数据持续到来,算法必须决定是否请求对当前输入进行标注。
2.1 决策理论方法
在决策理论方法中,查询 $x$ 的效用定义为信息价值:
[U(x) \triangleq E_{p(y|x,D)} \left[\min_{a} R(a|D) - R(a|D, (x, y))\right]]
其中 $R(a|D) = E_{p(\theta|D)} [\ell(\theta, a)]$ 是根据目前观察到的数据 $D$ 采取未来行动 $a$ 的后验期望损失。然而,评估每个 $x$ 的 $U(x)$ 成本很高,因为对于每个可能观察到的响应 $y$,都需要根据 $(x, y)$ 更新信念,以查看其对未来决策的影响。
2.2 信息理论方法
信息理论方法避免使用特定任务的损失函数,而是专注于尽可能好地学习模型。查询 $x$ 的效用定义为关于参数 $\theta$ 的信息增益,即熵的减少:
[U(x) \triangleq H (p(\theta|D)) - E_{p(y|x,D)} [H (p(\theta|D, x, y))]]
可以证明,这个目标等同于后验分布的期望变化:
[U’(x) \triangleq E_{p(y|x,D)} [KL (p(\theta|D, x, y) \parallel p(\theta|D))]]
利用互信息的对称性,可将 $U(x)$ 重写为:
[U(x) = H (p(y|x, D)) - E_{p(\theta|D)} [H (p(y|x, \theta))]]
这个方法的优点是只需要考虑输出 $y$ 的预测分布的不确定性,而不是参数 $\theta$ 的不确定性。
等式 $U(x)$ 有一个有趣的解释:第一项倾向于预测标签存在不确定性的示例 $x$,仅使用此项作为选择标准称为最大熵采样,但这可能会遇到固有模糊或标注错误的示例问题。第二项会避免这种行为,因为它倾向于一旦知道 $\theta$ 预测标签就相当确定的示例 $x$,从而避免选择难以预测的示例。这种方法被称为基于分歧的贝叶斯主动学习(BALD)。
以下是信息理论方法的步骤:
1. 计算 $H (p(\theta|D))$。
2. 对于每个 $x$,计算 $E_{p(y|x,D)} [H (p(\theta|D, x, y))]$。
3. 计算 $U(x)$。
4. 选择 $U(x)$ 最大的 $x$ 进行查询。
2.3 批量主动学习
之前假设采用贪心或短视策略,每次选择一个示例 $x$。但有时有预算收集一组 $B$ 个样本 $(X, Y)$,此时信息增益标准变为 $U(X) = H (p(\theta|D)) - E_{p(Y|X,D)} [H (p(\theta|Y, X, D))]$。不幸的是,优化这个标准在时间长度 $B$ 上是 NP 难的。
幸运的是,在某些条件下,贪心策略接近最优。对于任何给定的 $X$,信息增益函数 $f(Y) \triangleq H (p(\theta|D)) - H (p(\theta|Y, X, D))$ 具有 $f(\varnothing) = 0$ 且非递减的性质,并且是次模的。因此,顺序贪心方法在一个常数因子内是最优的。如果将这种贪心技术与 BALD 目标结合,就得到了 BatchBALD 方法。
批量主动学习的贪心策略流程:
graph LR
A[初始数据 D] --> B[选择 X]
B --> C[计算 U(X)]
C --> D{是否达到预算 B}
D -- 否 --> B
D -- 是 --> E[结束]
3. 降维
降维是一种常见的无监督学习形式,旨在学习从高维可见空间 $x \in R^D$ 到低维潜在空间 $z \in R^L$ 的映射。这种映射可以是参数模型 $z = f(x; \theta)$,适用于任何输入;也可以是非参数映射,为数据集中的每个输入 $x_n$ 计算嵌入 $z_n$,但不适用于其他点。前者可作为其他学习算法的预处理步骤,后者主要用于数据可视化。
4. 主成分分析(PCA)
主成分分析是最简单且应用最广泛的降维方法。其基本思想是找到高维数据 $x \in R^D$ 到低维子空间 $z \in R^L$ 的线性正交投影,使得低维表示是原始数据的“良好近似”。具体来说,如果将 $x$ 投影或编码得到 $z = W^T x$,再将 $z$ 反投影或解码得到 $\hat{x} = Wz$,我们希望 $\hat{x}$ 与 $x$ 在 $\ell_2$ 距离上接近。可以定义以下重建误差或失真:
[L(W) \triangleq \frac{1}{N} \sum_{n=1}^{N} ||x_n - \text{decode}(\text{encode}(x_n; W); W)||_2^2]
其中编码和解码阶段都是线性映射。
可以通过设置 $\hat{W} = U_L$ 来最小化这个目标,其中 $U_L$ 包含经验协方差矩阵
[\hat{\Sigma} = \frac{1}{N} \sum_{n=1}^{N} (x_n - \bar{x})(x_n - \bar{x})^T = \frac{1}{N} X_c^T X_c]
的 $L$ 个最大特征值对应的特征向量。这等价于最大化一个潜在线性高斯模型(称为概率 PCA)的似然函数。
4.1 示例
- 2D 到 1D 投影 :将 2D 数据投影到 1D 直线上,投影点(用绿色十字标记)捕获了原始数据的大部分变化,这些变化沿着对角线发生。
- MNIST 数字投影 :将 MNIST 数字 9 的图像投影到 2D 空间。尽管输入是高维的($28 \times 28 = 784$ 维),但由于像素之间的相关性以及许多数字看起来相似,“有效自由度”要少得多。可以将每个图像表示为低维线性空间中的一个点,第一个主成分似乎捕获了数字的方向,第二个成分似乎捕获了线条的粗细。
- Olivetti 人脸数据集投影 :将 64 × 64 灰度图像的 Olivetti 人脸数据集投影到 3D 子空间。投影矩阵 $W$ 的列(基向量)以图像形式显示,称为特征脸。数据的主要变化模式与整体光照以及眉毛区域的差异有关。如果使用足够的维度(但少于原始的 4096 维),可以将表示 $z = W^T x$ 作为最近邻分类器的输入进行人脸识别,这比在像素空间中工作更快、更可靠。
4.2 算法推导
假设我们有一个无标签数据集 $D = {x_n : n = 1 : N}$,其中 $x_n \in R^D$,可以将其表示为一个 $N \times D$ 的数据矩阵 $X$。通过对数据进行中心化处理,确保 $\bar{x} = \frac{1}{N} \sum_{n=1}^{N} x_n = 0$。
我们希望用低维表示 $z_n \in R^L$ 近似每个 $x_n$,假设每个 $x_n$ 可以用基函数 $w_1, \ldots, w_L$ 的加权组合来“解释”,其中每个 $w_k \in R^D$,权重由 $z_n \in R^L$ 给出,即 $x_n \approx \sum_{k=1}^{L} z_{nk} w_k$。
可以通过以下方式测量这种近似产生的误差:
[L(W, Z) = \frac{1}{N} ||X - ZW^T||
F^2 = \frac{1}{N} ||X^T - WZ^T||_F^2 = \frac{1}{N} \sum
{n=1}^{N} ||x_n - Wz_n||^2]
这被称为(平均)重建误差,因为我们用 $\hat{x}_n = Wz_n$ 近似每个 $x_n$。
我们希望在 $W$ 是正交矩阵的约束下最小化这个误差。下面分步骤进行推导:
-
基本情况 :首先估计最佳的 1D 解决方案 $w_1 \in R^D$。设与第一个基向量相关的每个数据点的系数为 $\tilde{z} 1 = [z {11}, \ldots, z_{N1}] \in R^N$。重建误差为:
[L(w_1, \tilde{z} 1) = \frac{1}{N} \sum {n=1}^{N} ||x_n - z_{n1} w_1||^2]
对 $z_{n1}$ 求导并令其为零,得到 $z_{n1} = w_1^T x_n$。将其代回损失函数,得到关于权重的损失:
[L(w_1) = \text{const} - \frac{1}{N} \sum_{n=1}^{N} z_{n1}^2 = -w_1^T \hat{\Sigma} w_1]
为了优化这个问题,我们施加约束 $||w_1|| = 1$,并优化:
[\tilde{L}(w_1) = w_1^T \hat{\Sigma} w_1 + \lambda_1 (w_1^T w_1 - 1)]
对 $w_1$ 求导并令其为零,得到 $\hat{\Sigma} w_1 = \lambda_1 w_1$,即最优投影方向是协方差矩阵的特征向量。由于我们要最大化 $w_1^T \hat{\Sigma} w_1$(最小化损失),所以选择对应最大特征值的特征向量。 -
最优权重向量最大化投影数据的方差 :由于数据已经中心化,$E [z_{n1}] = 0$,投影数据的方差为:
[V [\tilde{z} 1] = \frac{1}{N} \sum {n=1}^{N} z_{n1}^2 - 0 = -L(w_1) + \text{const}]
因此,最小化重建误差等价于最大化投影数据的方差,这就是为什么说 PCA 找到最大方差的方向。 -
归纳步骤 :现在找到另一个方向 $w_2$ 以进一步最小化重建误差,同时满足 $w_1^T w_2 = 0$ 和 $w_2^T w_2 = 1$。误差为:
[L(w_1, \tilde{z} 1, w_2, \tilde{z}_2) = \frac{1}{N} \sum {n=1}^{N} ||x_n - z_{n1} w_1 - z_{n2} w_2||^2]
PCA 算法的整体步骤如下:
1. 中心化数据,确保 $\bar{x} = 0$。
2. 计算经验协方差矩阵 $\hat{\Sigma}$。
3. 找到 $\hat{\Sigma}$ 的特征值和特征向量。
4. 选择 $L$ 个最大特征值对应的特征向量组成 $U_L$。
5. 计算低维表示 $z = W^T x$。
graph LR
A[原始数据 X] --> B[中心化数据]
B --> C[计算协方差矩阵 \hat{\Sigma}]
C --> D[计算特征值和特征向量]
D --> E[选择 L 个最大特征值对应的特征向量 U_L]
E --> F[计算低维表示 z = U_L^T x]
综上所述,半监督学习、主动学习和降维技术在机器学习中都有着重要的应用。半监督学习可以利用无标签数据提高学习效果,主动学习可以通过有选择地查询数据点来减少标注成本,降维技术可以简化数据、减少计算量并提高模型性能。每种技术都有其独特的优势和适用场景,在实际应用中需要根据具体问题进行选择和结合使用。
机器学习中的半监督、主动学习与降维技术
5. 不同学习方法的对比与总结
为了更清晰地了解半监督学习、主动学习和降维技术的特点,我们可以通过以下表格进行对比:
| 学习方法 | 核心思想 | 优点 | 缺点 | 适用场景 |
| — | — | — | — | — |
| 半监督学习 | 利用有标签和无标签数据进行学习,最大化联合似然函数 | 充分利用无标签数据,提高模型性能 | 模型复杂度可能增加 | 有大量无标签数据但标签获取成本高的场景 |
| 主动学习 | 通过少量查询确定真实预测映射 | 减少标注成本,提高数据利用效率 | 计算成本可能较高 | 标注数据昂贵或困难的场景 |
| 降维技术(以 PCA 为例) | 找到高维数据到低维子空间的线性正交投影,使低维表示近似原始数据 | 简化数据,减少计算量,提高模型性能 | 可能丢失部分信息 | 数据维度高且存在冗余信息的场景 |
通过这个表格,我们可以根据具体的任务需求和数据特点,选择合适的学习方法。
6. 实际应用案例分析
6.1 医疗图像分类中的半监督学习
在医疗图像分类任务中,获取大量有标签的医疗图像是非常困难且昂贵的。半监督学习可以利用大量无标签的医疗图像来提高分类模型的性能。例如,首先使用自监督学习对无标签的医疗图像进行特征提取,然后在少量有标签的图像上进行微调,最后通过自训练进一步优化模型。具体操作步骤如下:
1. 收集大量无标签的医疗图像和少量有标签的医疗图像。
2. 使用 SimCLR 等自监督学习方法对无标签图像进行特征学习。
3. 在有标签图像上对自监督学习得到的模型进行微调。
4. 将微调后的模型应用到无标签图像上,生成伪标签。
5. 使用伪标签数据进行自训练,优化模型。
graph LR
A[无标签医疗图像] --> B[自监督学习]
C[有标签医疗图像] --> D[微调]
B --> D
D --> E[教师模型]
E --> F[应用于无标签图像]
F --> G[生成伪标签]
G --> H[自训练]
6.2 推荐系统中的主动学习
在推荐系统中,用户数据不断增加,主动学习可以帮助系统更高效地获取用户的反馈信息。例如,采用基于流的主动学习方法,当新用户数据到来时,系统可以根据信息理论方法计算查询的效用,选择最有价值的用户数据进行标注。具体步骤如下:
1. 收集用户的历史行为数据。
2. 建立推荐模型。
3. 当新用户数据到来时,计算查询每个数据点的效用 $U(x)$。
4. 选择 $U(x)$ 最大的数据点请求用户反馈。
5. 使用新的标注数据更新推荐模型。
graph LR
A[历史用户数据] --> B[建立推荐模型]
C[新用户数据] --> D[计算 U(x)]
D --> E{U(x) 是否最大}
E -- 是 --> F[请求用户反馈]
F --> G[更新模型]
E -- 否 --> C
6.3 图像识别中的降维技术
在图像识别任务中,图像数据通常具有很高的维度。降维技术可以减少数据的维度,提高识别效率。以 PCA 为例,在处理大规模图像数据集时,可以按照以下步骤进行降维:
1. 收集图像数据集。
2. 对图像数据进行中心化处理。
3. 计算经验协方差矩阵。
4. 找到协方差矩阵的特征值和特征向量。
5. 选择合适数量的最大特征值对应的特征向量组成投影矩阵。
6. 将原始图像数据投影到低维空间。
graph LR
A[图像数据集] --> B[中心化处理]
B --> C[计算协方差矩阵]
C --> D[计算特征值和特征向量]
D --> E[选择特征向量]
E --> F[投影到低维空间]
7. 技术发展趋势与展望
随着机器学习技术的不断发展,半监督学习、主动学习和降维技术也在不断演进。未来可能会出现以下发展趋势:
7.1 多种技术的深度融合
将半监督学习、主动学习和降维技术进行更深度的融合,以充分发挥各自的优势。例如,在半监督学习中结合主动学习的思想,有选择地对无标签数据进行标注,提高模型的性能;在降维过程中利用半监督信息,使低维表示更具判别性。
7.2 与深度学习的结合
深度学习在许多领域取得了巨大的成功,将这些传统技术与深度学习相结合,可以进一步提升模型的性能。例如,在深度学习模型中应用主动学习策略,减少标注数据的需求;使用半监督学习方法训练深度神经网络,提高模型的泛化能力。
7.3 更高效的算法和计算方法
随着计算能力的提升和算法的不断优化,未来可能会出现更高效的半监督学习、主动学习和降维算法。这些算法将能够处理更大规模的数据,减少计算时间和资源消耗。
8. 总结
半监督学习、主动学习和降维技术在机器学习中都扮演着重要的角色。半监督学习可以利用无标签数据提高模型性能,主动学习可以减少标注成本,降维技术可以简化数据、提高计算效率。通过实际应用案例的分析,我们看到了这些技术在不同领域的有效性。未来,这些技术将不断发展和融合,为机器学习的发展带来更多的可能性。在实际应用中,我们需要根据具体的任务需求和数据特点,选择合适的技术和方法,以达到最佳的效果。
希望本文能够帮助读者更好地理解和应用这些机器学习技术,在实际项目中取得更好的成果。
超级会员免费看
1407

被折叠的 条评论
为什么被折叠?



