什么是无监督学习
与有监督学习不同,在无监督学习(Unsupervised Learning)中,我们提供给模型的数据只有输入特征(Features),没有预期输出(标签 Labels)。
打个比方,这就像是“老师丢给学生一大堆没有任何说明的零件,让学生自己去观察它们,然后把相似的零件归类,或者找出这些零件的共同设计规律”。
核心任务与概念
既然没有“标准答案”(标签)来计算明确的损失,无监督学习是如何工作的呢?它主要致力于解决以下两类核心问题:
1. 聚类 (Clustering)
聚类是最直观的无监督学习任务。它的目标是将数据分成多个组(簇),使得同一个组内的数据点尽可能相似,而不同组之间的数据点尽可能不同。在这里,“损失函数”往往被定义为衡量数据点之间距离或相似度的指标。
- 例子(用户画像):假设你有一家网店,手头有大量用户的浏览记录和购买频率数据,但你并没有给这些用户打上“土豪”、“羊毛党”的标签。你可以使用聚类算法(如 K-Means)。算法会计算用户数据特征之间的几何距离,将距离近的用户划分为一组。最终,你可能会发现数据自然地聚集成了三群人。通过观察这三群人的特征,你再去给他们命名(这就是从无监督学习中提取业务价值的过程)。
2. 表征学习与降维 (Representation Learning & Dimensionality Reduction)
现实世界中的数据往往极其复杂(高维)。例如,一张 1024x1024 的彩色图片拥有超过 300 万个像素值(特征)。无监督学习的一个重要目标是剔除噪声和冗余,找到数据最本质、最紧凑的低维表示(表征)。
- 例子(主成分分析 PCA):假设你有一个记录了房屋 100 个特征的数据集(面积、房间数、卫生间数、是否有阳台...)。很多特征是高度相关的(比如面积大往往房间数就多)。降维算法可以把这 100 维的数据压缩到 10 维,同时尽可能保留原始数据中的“信息量(方差)”。此时的“损失”可以理解为数据在压缩前后丢失的信息量,模型的目标是让这种信息丢失最小化。
- 例子(自编码器 Autoencoder):这是一种基于神经网络的无监督架构。它由“编码器”和“解码器”组成。它强迫网络先把高维的输入数据压缩成一个很小的向量(瓶颈层),然后再试图从这个小向量中重建出原始数据。这里的损失函数就是“输入数据与重建数据之间的差异”(Reconstruction Loss)。如果重建得好,说明那个中间的小向量已经完美捕捉到了数据的灵魂。
学习范式:寻找数据内在结构
在无监督学习中,由于没有外部提供的“真理”(Ground Truth)来指导优化,模型实际上是在做一种 “自我对抗”或“自我解释” :
- 我是不是把相似的东西放在一起了?(聚类)
- 我能不能用更少的话,把原来的意思表达清楚?(降维/表征学习)
- 我能不能总结出生成这些数据的规律,甚至自己造出类似的数据?(生成模型,如 GANs)
这使得无监督学习在处理海量未标注数据时显得极具潜力,它往往也是构建强大人工智能(如大语言模型的预训练阶段)的基石。