无监督学习是什么?聚类、降维与大模型预训练
无监督学习(Unsupervised Learning)是机器学习的三大范式之一——给模型没有答案的数据,让它自己发现隐藏的结构和规律。用户分群、异常检测,以及 GPT/Claude 的预训练,都属于无监督学习。本文带你搞懂它的原理、核心算法和在大模型中的关键作用,以及如何通过 AI的那些事儿 调用基于无监督预训练的大模型。
发布: 更新:
无监督学习的定义
无监督学习 = 给模型"没有答案的数据",让它自己发现数据中的结构和模式。
通俗比喻:像把一堆混在一起的积木给小孩,不告诉他怎么分,他会自己按颜色、形状、大小分成几堆——这就是无监督学习。
与其他范式的对比:
无监督学习的核心任务
聚类(Clustering)
把相似的数据自动分成若干组。用户分群、文档归类、基因分型。不需要预先定义类别。
降维(Dimensionality Reduction)
把高维数据压缩到低维,保留关键信息。数据可视化、特征压缩、去噪。
异常检测
找出不符合正常模式的数据点。信用卡欺诈、网络入侵、设备故障预警。
关联规则
发现数据项之间的关联关系。"买了啤酒的人也常买尿布"——经典的购物篮分析。
密度估计
学习数据的概率分布。生成模型(GAN、VAE)的基础,用于数据生成和采样。
自监督学习
无监督的特殊形式:从数据本身构造"伪标签"。大模型预训练的核心方法。
无监督学习的常见算法
K-Means
最经典的聚类算法。将数据分成K个簇,每个点归入最近的簇中心。简单高效,适合球形簇。
DBSCAN
基于密度的聚类。能发现任意形状的簇,自动识别噪声点。不需要预设簇数量。
PCA(主成分分析)
最经典的降维算法。找到数据方差最大的方向,投影到低维空间。常用于数据可视化。
t-SNE / UMAP
非线性降维,擅长高维数据可视化。能保留局部结构,常用于展示聚类效果。
自编码器(Autoencoder)
神经网络版降维。编码器压缩数据,解码器重建数据。学到的中间表示就是低维特征。
Word2Vec
词向量模型。从大量文本中无监督学习词的语义表示。"国王-男人+女人≈女王"。
无监督学习在大模型中的关键作用
大模型的预训练本质上是无监督学习(自监督学习):
GPT 的预训练
任务:"预测下一个词"。给模型一段文本的前半部分,让它预测下一个词。不需要人工标注——文本本身就是训练数据。
BERT 的预训练
任务:"完形填空"(Masked Language Model)。随机遮住文本中的词,让模型预测被遮住的词。
为什么有效?
互联网上有万亿词的文本,全部可以免费用于自监督训练。这就是大模型能用海量数据训练的原因——不需要人工标注。
Embedding 模型
将文本映射为向量的模型(text-embedding-3)也是通过无监督/自监督方式训练,学会语义相似度。
无监督学习的应用场景
用户分群
电商/社交平台将用户按行为聚类,实现精准营销和个性化推荐。
异常检测
信用卡欺诈、网络攻击、工业设备故障——找出偏离正常模式的异常。
数据可视化
用t-SNE/UMAP将高维数据降到2D/3D,直观展示数据分布和聚类结构。
推荐系统
协同过滤:找到"相似用户"或"相似物品",无需显式标签。
语义搜索
Embedding模型将文本转为向量,通过向量相似度实现语义搜索(而非关键词匹配)。
大模型预训练
GPT、Claude、Gemini 的第一步训练就是自监督预训练,从海量无标注文本中学习语言能力。
用大模型 API 实现无监督学习任务
通过 AI的那些事儿,你可以调用 Embedding 模型实现语义聚类和相似度搜索:
- 国内直连:境内骨干节点,无需代理,延迟低至 50ms。
- Embedding API:将文本转为向量,用于聚类、搜索、推荐。
- 统一接口:OpenAI SDK 调用,改个 base_url 就行。
- 按量计费:用多少付多少,比官方便宜 20%-40%。
实战:用 Embedding 做语义聚类
- 获取 AI的那些事儿 API Key。
- 在代码中把 base_url 改为
https://api.example.com/v1。 - 调用 Embedding API 将文本转为向量,再做聚类或相似度计算。
Python 示例:文本语义聚类
from openai import OpenAI
import numpy as np
client = OpenAI(
api_key="你的Key",
base_url="https://api.example.com/v1"
)
# 用 Embedding 模型将文本转为向量(无监督学习的产物)
texts = [
"如何训练一个深度学习模型",
"PyTorch 和 TensorFlow 哪个好",
"今天天气真不错,适合出去玩",
"周末去哪里旅游比较好",
"GPT-4o 的API怎么调用",
]
r = client.embeddings.create(
model="text-embedding-3-small",
input=texts
)
# 计算相似度矩阵,相似的文本会自然聚在一起
vectors = [item.embedding for item in r.data]
for i, t in enumerate(texts):
sims = []
for j, _ in enumerate(texts):
dot = sum(a*b for a, b in zip(vectors[i], vectors[j]))
sims.append(f"{dot:.2f}")
print(f"[{i}] {t[:15]}... → {sims}")
Node.js 示例:语义相似度搜索
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "你的Key",
baseURL: "https://api.example.com/v1",
});
// 语义搜索:找到与查询最相似的文档
const docs = ["机器学习入门教程", "周末美食推荐", "如何调用GPT API", "深度学习框架对比"];
const query = "怎么学AI";
const r = await client.embeddings.create({
model: "text-embedding-3-small",
input: [query, ...docs],
});
const qVec = r.data[0].embedding;
const results = docs.map((doc, i) => {
const dVec = r.data[i + 1].embedding;
const sim = qVec.reduce((s, a, j) => s + a * dVec[j], 0);
return { doc, sim };
}).sort((a, b) => b.sim - a.sim);
console.log(`查询: "${query}"\n最相关:`);
results.forEach(r => console.log(` ${r.sim.toFixed(3)} - ${r.doc}`));
常见问题
无监督学习是什么?
无监督学习是机器学习的三大范式之一,使用没有标签的数据训练模型,让模型自己发现数据中的结构和规律。聚类、降维、异常检测以及大模型预训练都属于无监督学习。
无监督学习和监督学习怎么选?
有标注数据且目标明确(分类/预测)→监督学习;没有标注数据或想探索数据结构→无监督学习。实际项目中两者常结合使用:先用无监督发现结构,再用监督做精确预测。
大模型预训练为什么是无监督学习?
GPT的预训练任务是"预测下一个词",不需要人工标注——文本本身就是数据,下一个词就是"伪标签"。这种方式叫自监督学习,是无监督学习的特殊形式。
Embedding 和无监督学习有什么关系?
Embedding模型通过自监督方式(无监督)训练,学会将文本映射为语义向量。相似的文本在向量空间中距离近,可用于聚类、搜索、推荐等无监督任务。
怎么用API做无监督学习相关任务?
通过 AI的那些事儿 调用 Embedding API(text-embedding-3),将文本转为向量后做聚类或相似度搜索。也可用大模型做文本聚类分析。国内直连免代理。
用 Embedding API 实现语义搜索与聚类
text-embedding-3 将文本转为向量,轻松实现相似度搜索和智能分类。