无监督学习:没有人工标签时,结构从假设中来
用聚类、降维、密度估计和生成建模理解“没有标准答案”的目标设计、非唯一性、伪结构与验证。
1没有标签不等于没有目标函数定义
算法凭什么判断一个表示或分组更好?
无监督学习可以概括为:在没有人工逐条答案时,用研究者选定的目标寻找候选结构。它接收无标签样本,输出分组、低维表示、密度模型或生成模型,让大量没有现成答案的记录变成可以比较、观察或继续使用的结果。
这些输出对应不同问题。聚类把相似样本放在一起;降维就是用更少的新坐标概括原来的多个特征,便于压缩、画图或交给后续模型使用;密度估计学习数据在哪些区域更常出现,用来发现罕见样本,或生成、补全与训练数据相似的样本。用途不同,不能只列算法名而不说明希望得到哪一种结构。
把候选结构算出来时,训练会先选择距离、重建或概率等假设,再优化对应目标,最后用稳定性和用途验证结果。K-means 让同组样本尽量靠近。PCA 是一种降维方法,它尽量保留数据中变化最大的方向。自动编码器把压缩后的数据还原,重建误差就是还原结果与原数据之间的差,越小表示压缩后丢失的信息越少。似然表示一组模型参数让已经观察到的数据出现得有多合理,密度模型选择让整批数据获得更高似然的参数。
优化完成后,还要把数值放回刚才选择的目标中解释:目标值变好只表示更符合这套假设,不能证明算法发现了唯一真实结构。换一种距离、表示或用途,另一种结构也可能同样合理;这正是稳定性和外部验证不能省略的原因。
2四类任务回答不同问题任务地图
分组、压缩和生成为什么都叫无监督?
这四类任务描述无标签数据可以产生的四种不同结果:聚类寻找群组,降维换成更少的坐标,密度估计回答某个位置有多常见,生成建模则尝试产生新样本。这种划分用于回答“我们究竟想从无标签数据得到什么”,而不是把所有没有人工标签的方法混成同一种任务。共同输入是样本集合,输出分别是簇或归属概率、低维坐标、位置密度以及可生成的新样本。
| 任务 | 结果怎样得到 | 输出怎样读 | 主要边界 |
|---|---|---|---|
| 聚类 | 计算目标时,先让聚类优化组内相似、局部密度或图切分 | 簇或归属概率表示当前相似性假设下的候选分组 | 簇数与语义并不唯一 |
| 降维 | 按方差、邻域或重建目标保留选定信息 | 低维坐标用于压缩和观察,含义取决于所保留的关系 | 投影会丢失或扭曲部分结构 |
| 密度估计 | 通过最大似然等目标拟合样本分布 | p(x) 描述训练分布下某处的集中程度 | 常见不等于优质,少见不等于错误 |
| 生成建模 | 通过似然、去噪或对抗目标学习怎样复现分布 | 新样本表示模型学到的训练分布近似 | 也会复现训练数据中的偏差 |
结果应按原问题解释:聚类要回到分组用途,降维要核对被保留的关系,密度与生成结果则要结合分布口径。不能用漂亮的二维图替代分组价值,也不能把高密度直接理解为高质量。
同一数据可以同时存在多个合理结构,例如按消费规模、品类偏好或活跃周期分组。目标函数决定算法优先保留哪种结构,最终选择仍取决于用途和后续验证。
3尺度就是一种未经声明的权重逐步演算
先明确要比较谁、为什么比较,再看消费金额为何会淹没购买次数。
任务场景:假设我们准备用距离把行为相近的用户分到一组。距离越小,就暂时把两位用户视为越相似。这里只比较两个特征:x₁ 是月购买次数,x₂ 是月消费金额(元)。本节重新列出要用的数据,因此不要求读者回头寻找题干。
| 用户 | 月购买次数 x₁ | 月消费金额 x₂(元) |
|---|---|---|
| A | 1 | 100 |
| B | 2 | 110 |
| C | 8 | 900 |
| D | 9 | 920 |
先定义计算规则:二维欧氏距离把两个特征上的差分别平方、相加,再开平方。对用户 u=(u₁,u₂) 和 v=(v₁,v₂):
代入 A 与 B:购买次数相差 2−1=1,金额相差 110−100=10。所以距离为 1²+10²=101≈10.05。平方和中次数贡献 1²=1,金额贡献 10²=100;虽然两人的购买次数也不同,原始距离的约 99% 已来自金额项。
再代入 B 与 C:次数相差 8−2=6,金额相差 900−110=790,所以距离为 6²+790²≈790.02。这并不证明金额在业务上更重要;只是“元”的数值范围远大于“次”,计算在未经声明的情况下给了金额更高权重。
怎样让两维按各自的典型波动比较?可以对每个特征分别做 z-score 标准化:
这里 i 表示第几位用户,j 表示第几个特征;μⱼ 和 σⱼ 分别是第 j 个特征在四位用户中的均值和标准差。标准化后,数值表示“离本特征均值多少个标准差”,次数和金额不再直接用“次”和“元”比较。
| 距离 | 原始单位 | z-score 后(约) | 读法 |
|---|---|---|---|
| A 到 B | 10.05 | 0.284 | 两人都处在低频、低消费区域,差异很小 |
| B 到 C | 790.02 | 2.595 | 次数与金额的相对偏离都参与距离 |
标准化让购买次数重新拥有可见影响,但它也隐含“各维按自身方差约等权”的选择,并非天然正确。金额若确实代表更高业务代价,完全等权反而会丢掉价值判断;此时应显式加入业务权重,并记录理由和敏感性分析。
| 处理 | 距离主要由什么决定 | 解释 |
|---|---|---|
| 原始单位 | 数值范围最大的特征 | 本例隐式给金额高权重 |
| z-score | 各维相对自身波动的偏离 | 各维方差约等权 |
| 业务加权 | 显式定义的成本或价值 | 需记录权重理由并验证稳健性 |
这个数值例子展示的是尺度怎样偷偷改变相似度:输入为用户的购买次数和金额,输出是原始、标准化或业务加权后的距离。计算先逐维求差,再平方、求和并开平方;标准化则先把每维差异换成相对自身波动的单位。距离主要由金额决定,只说明它的数值范围较大;无论原始尺度还是 z-score 都带有权重假设,不能自动代替业务判断。
4原创图:同一数据可被不同目标切出不同结构可视化
算法是在“发现簇”,还是在执行一套几何假设?
这幅图是一项表示敏感性检查,用于识别候选结构是否依赖特征尺度。它以同一批点和两套缩放方式为输入,输出两种几何布局;先改变各维对距离的贡献,再观察分组或邻居怎样随之变化。结构明显改变表示算法正在执行不同几何假设,而不是某一幅图必然错误;二维投影和少量点只提供线索,仍需外部用途与重复实验。
5降维保留什么,由优化目标决定压缩
先理解“把多项特征压成少数坐标”,再比较 PCA 与 t-SNE/UMAP 分别承诺保留什么。
什么是降维?一位用户原本可能由购买次数、金额、活跃天数、品类数等许多特征描述。降维就是用更少的新坐标概括这些特征。它一定会选择“哪些差异值得保留”;不同方法选择的标准不同,因此得到的二维图不能互相替代。
先看二维压成一维:把每位用户画成平面上的一个点。若“购买次数高的人通常消费也高”,这些点会大致沿一条斜线排列。PCA 选择这条主要方向,用一个数表示每个点在斜线上的位置;原来的两个特征就被压成了一个“总体活跃程度”坐标。
用 x 表示某位用户的特征向量,μ 表示所有用户的平均位置,w 表示我们选择的一条方向。要求 w 的长度为 1,是为了让新坐标的尺度只反映数据,而不被任意放大。用户在这条方向上的一维坐标是:
这里的“转置”符号 T 只表示把方向 w 与偏移量 x−μ 做内积,得到沿该方向走了多远。若把一维坐标再放回原空间,可得到近似位置 x̂=μ+zw。原点与近似位置之间的差,就是压缩丢掉的信息;PCA 选择让所有用户总体丢失尽量小的方向。
从一条方向推广到多条方向:当原数据有很多特征、希望保留两个或更多新坐标时,把多条方向并排放进矩阵 W。因此,W 不是突然出现的新数据,而是“我们正在寻找的若干条压缩方向”的集合。下面的正式写法表达同一目标:
| 符号或术语 | 在这里表示什么 |
|---|---|
W | 要寻找的若干条投影方向;每一列是一条方向 |
WᵀW=I | 各方向长度为 1,并且彼此垂直,避免重复记录同一个方向 |
Σ(协方差矩阵) | 概括各特征怎样一起变化;例如次数升高时金额是否也常升高 |
WᵀΣW | 数据投到这些方向后,各新坐标还保留多少变化 |
Tr(迹) | 取矩阵对角线之和;这里就是把各新坐标保留的变化量加起来 |
max | 在所有合格方向中,选择保留总变化量最大的一组 |
这里的“方差”可以先读成“数据有多分散”。PCA 保留分散程度最大的方向;等价地,在平方误差口径下,它让压缩后再还原的数据与原数据尽量接近。它适合概括整体趋势,也能近似重建原特征,但“变化最大”不保证“对当前业务最重要”:一个数值波动很大的无关特征也可能被优先保留。
t-SNE 和 UMAP 在做另一件事。它们通常先判断每个点在原始高维空间里有哪些近邻,再尝试把这些近邻放到二维图中仍然靠近。所谓“局部邻域”,就是一个点周围最相近的若干点;所谓“高维”,只是原数据拥有很多特征,并不神秘。
| 方法 | 主要想保留什么 | 二维图可以怎样读 | 不能轻易怎样读 |
|---|---|---|---|
| PCA | 整体变化较大的线性方向 | 方向、相对位置和保留方差有明确含义 | 不能保证保留低方差但重要的信号 |
| t-SNE | 很近的点仍尽量靠近 | 适合观察局部邻居和候选小群体 | 不同“岛”之间谁更远、岛有多大通常不能直接比较 |
| UMAP | 局部邻接关系,并尝试保留部分较大尺度结构 | 适合探索邻域和连续变化 | 二维距离仍不等于原空间精确距离,结果受参数和随机性影响 |
“图上出现几个岛”只说明这种方法在当前参数、随机种子和表示下把点这样摆放,并不能单独证明数据中存在几个天然类别。判断是否真的存在稳定分组,应回到原始特征空间检查距离与邻居,在不同样本和参数下重画,并用外部知识或下游任务验证。
降维是把多维特征转换成少量新坐标的表示方法:输入每个样本的多维特征,输出少量新坐标和可选的近似重建。计算时,PCA 先中心化数据,再寻找保留总体方差最大的正交方向并投影;t-SNE 与 UMAP 则更重视原空间近邻在图上仍靠近。PCA 坐标表示样本沿投影方向的位置,而非线性图中的岛主要是邻域线索;任何方法都会丢信息,也都不能仅凭二维间距宣布天然类别。
6密度估计先学习“哪里常见”,再服务具体任务概率
密度估计到底输出什么,为什么它能帮助发现异常、补全数据或生成新样本?
先说任务:给模型很多没有标签的样本,例如大量用户的“购买次数—消费金额”记录;密度估计要学出一张分布地图,说明哪些区域数据集中、哪些区域很少出现。概率密度表示某个位置附近的数据有多集中,可用来比较不同区域谁更常见;它不是说某个连续数值点本身拥有多少概率。
| 学到“哪里常见”后 | 怎样使用 | 仍需注意 |
|---|---|---|
| 异常筛查 | 把落在低密度区域的新记录送去复核 | 罕见不等于错误或欺诈 |
| 生成样本 | 从高密度结构附近抽取与训练数据相似的新样本 | 会复制训练分布的偏差 |
| 缺失值补全 | 在已知特征条件下选择较合理的缺失取值 | 分布变化后旧模型可能失效 |
模型怎样学习这张地图?用 xᵢ 表示第 i 个训练样本,n 表示训练样本总数,pθ(xᵢ) 表示参数为 θ 的模型给这个样本的概率密度。参数 θ 控制地图形状。训练比较不同参数,寻找让已观察样本整体显得更合理的一组 θ*。
对数似然就是把每个样本的密度先取对数,再把结果相加,用它比较哪组参数更能解释整批数据。取对数会把很多密度的乘法变成加法,计算更稳定,同时不会改变参数优劣的排序:
例如,大多数用户落在“低频低消费”或“高频高消费”区域,一个突然出现的“极低频、极高消费”记录可能得到较低密度,于是进入人工检查队列。但这只说明它少见:新业务客户、节日订单或录入错误都可能造成同样结果。
密度估计把“哪里常见”变成可查询的分布模型,用于异常复核、生成或缺失值补全。输入是无标签样本,输出是给新位置计算密度或抽取样本的模型;训练先为样本计算密度,再汇总对数似然并调整参数。较低密度表示记录在训练分布下少见,不表示错误、欺诈或低价值;连续密度还依赖单位、模型族和分布稳定性,跨口径数值不能直接比较。
7自监督与无监督既有包含关系,也有训练形式差异消歧
遮盖 token 没有人标注,为何还说有“答案”?
自监督与传统无监督的区别在于监督信号怎样产生。输入是原始样本,经过遮盖、裁剪或配对后形成自动题目,输出是被隐藏内容或一致表示。答案来自样本本身,而不是人工逐条标注,所以缺少人工标签时仍能获得明确的训练目标。
以遮盖 token 为例,系统先隐藏句子中的一部分,把未遮盖上下文交给模型,再用原 token 检查预测。也就是说,训练先从数据构造目标,再像普通预测任务一样计算损失,并依据误差更新参数;图像的两次裁剪则可以要求同一对象的表示彼此接近。这样,“输入怎样变成题目、答案从哪里来”都能沿一次训练过程追踪。
较低预测损失表示模型更会完成这道自动题,却不能保证表示适合所有下游任务。例如,擅长恢复局部词语的表示未必最适合判断长文主题,仍应在检索、分类或生成等实际任务上单独验证。
| 范式 | 自动目标 | 结果如何评测 |
|---|---|---|
| 自监督预测 | 有,可由数据恢复 | 可直接计算 held-out loss,但表示仍非唯一 |
| 聚类 | 只有整体几何目标 | 粒度与语义不唯一,必须外部验证 |
广义上,自监督常被归入无监督表示学习;狭义训练形式上,它又像有明确答案的预测任务。是否把自监督归入无监督属于分类口径,真正影响方法选择的是信号来源与评测方式:预测题可留出数据算损失,簇语义则要靠外部知识和用途检验。
8内部指标先检查“分得像不像”,再由外部证据判断“有没有用”评测
没有标准标签时,怎样比较两个聚类结果?轮廓系数究竟测了什么?
先分清角色:密度估计是一个学习任务,会输出分布模型;内部指标是不借助人工正确答案,只利用输入数据和算法结果计算的评估分数。它帮助我们在若干候选结果之间做初步比较,例如比较分成 2 组还是 3 组、标准化前还是标准化后,但它本身不会产生新的分组。
轮廓系数专门评估聚类结果,用于判断一个样本是否更接近自己的组,而不是更接近别的组。对当前样本,a 是它到同组其他点的平均距离,b 是它到最近另一组的平均距离,s 是这个样本的轮廓系数;max(a,b) 取两者中较大的一个:
| 数值例子 | 计算 | 怎样解释 |
|---|---|---|
a=2, b=8 | s=(8−2)/8=0.75 | 离本组近、离其他组远,当前归组较清楚 |
a=5, b=4 | s=(4−5)/5=−0.20 | 反而更靠近另一组,可能分错或位于边界 |
单个样本的 s 位于 −1 到 1 之间;把所有样本取平均,可以比较若干候选聚类。接近 1 通常表示组内紧、组间远;接近 0 表示位于边界;小于 0 表示可能更像别组。但高分只证明当前特征和距离下的几何分隔较清楚,不证明这些组具有业务含义。
稳定性检查回答另一件事:换一个随机种子、重新抽取一部分样本、改变时间窗口或轻微扰动特征后,分组是否仍大致相同。它用来判断当前结构是否只是一次偶然结果。最后还要做外部或下游验证:请专家解释各组、用少量已知标签核对,或检查分组是否真的改善检索和决策。
| 证据层 | 具体用途 | 不能单独证明 |
|---|---|---|
| 内部指标 | 结果是否符合所选距离和目标 | 分组是否有业务意义 |
| 稳定性 | 结果是否依赖随机性或偶然样本 | 稳定的分组是否值得使用 |
| 外部/下游 | 是否符合专家知识并改善真实任务 | 所有未来数据都保持有效 |
无标签评测链是由内部指标、稳定性和外部或下游验证组成的证据组合,解决“没有标准标签时如何比较候选聚类”的问题。它输入数据、距离、分组及多次重跑结果,输出三层评测证据;先算轮廓系数检查当前几何,再扰动数据与参数检查复现,最后验证专家语义或任务收益。高轮廓系数只表示组内近、组间远,稳定只表示不易随扰动消失,两者都不能单独证明分组值得使用。
9伪结构常来自批次、设备和缺失机制失败边界
算法发现的两个群体可能只是两台仪器吗?
如果两个簇恰好对应两台仪器,先不要急着给它们业务名称。伪结构是采集来源或处理流程造成、却被误读为目标语义的候选结构;采集日期、地区、设备、文件格式、缺失值填补和爬虫来源,都可能比真正关心的差异更容易被算法分开。
排查要把来源线索和候选分组放在一起:输入簇归属、设备、时间、地区和缺失模式等元数据,输出混杂变量预测力与分层对照结果。先用探针判断来源能否预测簇,再做重采样或反事实替换;例如让两台设备贡献相近数量的样本,或替换背景元数据,再看原来的分组是否仍出现。
若来源变量解释力很强,而且平衡来源后簇随之消失,这表示当前结构可能在复现采集流程。但探针相关也不等于已经找到全部因果机制:设备可能同时与时间、地区或人群构成关联,还需逐层对照并保留不确定性。
给簇命名会把统计团块实体化,尤其在人群、医疗、信贷等场景。敏感属性或代理特征可能造成差别待遇;一旦分组会影响个人,高影响用途还必须具备合法基础,并提供公平评测、人工复核和申诉通道。
10从探索到上线需要版本化整个结构发现过程工作流
模型、特征或数据一变,旧簇编号还能继续使用吗?
版本化工作流把一次探索变成可以复现、比较和撤回的部署对象。它接收冻结的数据、特征、目标、随机种子和验证证据,输出带版本的模型、簇映射及监控规则;这样,重训后的结果才有依据与旧版本比较,也能在异常时撤回。
- 写明要解决的问题、为何不用人工标签,以及结果将支持什么行动。
- 冻结数据快照、特征口径、缺失处理、距离和随机种子,使候选方案可以重现。
- 比较多种合理目标,记录每个方案改变了哪项结构假设。
- 用稳定性和外部价值选择候选版本,不只看内部高分或漂亮图。
- 保存簇匹配规则、模型版本和基线分布,重训后重新建立新旧簇的对应关系。
- 若结果驱动行动,先做对照实验与风险审查,上线后持续监控漂移。
选择阶段先记录口径并比较候选方案,再以稳定性和外部价值选择;这条记录让团队知道某个版本为何被采用,也能区分数据变化与算法设置变化。
簇编号可能在重训后置换、分裂或合并,这表示结构版本发生变化。迁移时应结合质心距离、样本重叠和语义规则,不能把旧簇号当永久身份,也不能仅凭编号相同就假设含义没变。
当输入分布漂移、特征处理改变或使用目的改变时,旧模型即使仍能运行,原有验证结论也不再自动成立;应重新检查稳定性、外部价值和行动风险,必要时回退到上一版本。
11常见误区与学习路线误区与依赖
没有标签时,更需要明确自己的假设。
| 误区 | 更准确的理解 |
|---|---|
| 无监督没有损失函数 | 目标由距离、密度或重建假设定义 |
| 算法会发现天然类别 | 结构依赖表示、尺度与用途 |
| 二维图分开证明高维有簇 | 投影会扭曲距离与密度 |
| 内部指标高就有业务价值 | 仍需稳定性与下游证据 |
| 簇编号可以长期复用 | 重训后可能置换、分裂或合并 |
| 层级 | 依赖与延伸 |
|---|---|
| 先修 | 概率、距离、特征缩放 |
| 本页核心 | 目标非唯一性、稳定性、外部验证 |
| 方法 | 聚类、降维、生成模型、异常检测 |
| 延伸 | 自监督学习、因果混杂、数据治理 |
12把因果链连起来综合
这个概念怎样从问题一路连接到可验证的实践?
- 明确用途与无标签约束
- 选择表示、尺度和结构假设
- 优化分组/压缩/密度目标
- 比较多目标与随机种子
- 排查混杂并做外部验证
- 版本化结果并监控行动风险
13误区与自测自测
你能否不用背术语,解释它的机制、边界与验证方法?
- 无监督学习为什么不是没有目标?
- A到B的原始欧氏距离约多少?
- 标准化解决了什么,又引入什么?
- 密度估计学习的是什么?低密度记录为什么不能直接判成异常或欺诈?
- 某样本到同簇平均距离 a=2,到最近其他簇平均距离 b=8,轮廓系数是多少?它能证明分组有业务价值吗?
- 为何二维可视化不能证明簇?
- 无真值时至少需要哪三层证据?
- 假设“无监督学习:没有人工标签时,结构从假设中来”在离线示例上表现正常、上线后核心结果却下降,你会怎样按输入、内部变换、输出反馈和适用边界定位问题?
参考答案
- 它仍优化距离、密度、重建或概率等由研究者选择的目标。
- 101≈10.05。
- 避免数值尺度无意主导,但相当于给各维方差约等权。
- 它学习数据在哪些区域更集中,可用于异常筛查、生成和缺失值补全;低密度只说明少见,业务变化、节日、新客户或录入错误都可能造成少见。
- s=(8−2)/8=0.75,说明当前距离下该点更接近本簇;它不能证明簇具有业务语义,仍需稳定性和外部/下游验证。
- 非线性投影可能扭曲全局距离、面积和密度。
- 内部指标、稳定性,以及外部知识或下游价值。
- 先保存同一失败样本及环境,确认输入、权限和前置条件没有漂移;再记录关键中间状态,检查机制是否按本页描述完成变换;随后把原始输出与独立指标、人工终验对照;最后用边界样例和对照实验复测。只有定位到首次偏离预期的环节,才能判断应修改数据、机制、评测还是使用边界。
- The Elements of Statistical Learning:聚类、密度与无监督学习
- Deep Learning — Representation Learning:表示学习目标
- Visualizing Data using t-SNE:局部邻域可视化
- How to Use t-SNE Effectively:投影误读边界