自监督学习(Self-Supervised Learning, SSL) = 模型从输入数据本身生成"标签"进行训练
无监督学习(Unsupervised Learning) = 模型没有标签,只找数据内部结构或规律
核心区别在于:有没有自动生成的训练目标(监督信号)
1. 无监督学习(Unsupervised Learning)
特点:
-
没有任何标签
-
学习数据的分布或结构
-
典型任务:
- 聚类(Clustering):K-Means、DBSCAN
- 降维(Dimensionality Reduction):PCA、t-SNE、UMAP
- 密度估计(Density Estimation)
直观例子:
python
from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1,2],[1,4],[1,0],[10,2],[10,4],[10,0]])
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
print(kmeans.labels_)
- 模型没标签,但能自动分出两类数据
2. 自监督学习(Self-Supervised Learning)
特点:
- 没有人工标签,但模型自己从数据生成"伪标签"
- 目标就是设计一个预测任务,让模型学习特征表示
- 是监督学习的一种特殊形式
典型任务:
-
BERT:掩码语言模型 (Masked Language Modeling)
- 输入:
The cat [MASK] on the mat - 目标(伪标签):预测
[MASK] = sat
- 输入:
-
GPT:自回归语言模型
- 输入:前 n 个 token
- 目标(伪标签):预测下一个 token
-
图像自监督:
- 对比学习(SimCLR, MoCo)
- 随机增强同一张图片 → 让模型学习相似性
3. 核心区别对比
| 特性 | 无监督 | 自监督 |
|---|---|---|
| 标签 | 没有 | 模型自己生成(伪标签) |
| 学习目标 | 发现结构 | 预测或重建 |
| 任务例子 | 聚类、降维 | 语言模型、对比学习 |
| 监督信号 | 无 | 有(自动生成) |
| 训练方式 | 通常用概率或距离 | 用标准监督学习的 loss |