无监督学习从无标注数据出发,学习数据中蕴含的模式。由于数据是内容的载体,刻画相同内容的数据具有相似模式,因此可从无标注数据中挖掘其固有模式。
常用算法包括:
- 聚类:K均值聚类、层次聚类
- 降维:主成分分析(PCA)、特征人脸
- 隐变量学习:期望最大化(EM)算法
- 其他:自编码器、生成对抗网络(GAN)
K均值聚类(K-means)
K-means是一种将 个 维数据划分为 个聚簇的聚类算法,目标是最小化簇内方差。
算法流程
算法 5.1 K-means 聚类
- 输入: 个 维数据,聚簇数目
- 输出:每个数据所属聚簇标签
| 步骤 | 操作 |
|---|---|
| 1. 初始化 | 初始化 个聚类质心 |
| 2. 聚类 | 计算每个数据与各质心的欧氏距离,将其划入距离最近的质心所在聚簇: |
| 3. 更新质心 | 根据当前聚类结果,重新计算每个聚簇的质心(均值): |
| 4. 迭代终止 | 重复步骤2和3,直到质心不再变化或达到最大迭代次数 |
目标函数
K-means本质上是在最小化每个聚簇的方差:
特点与局限性
| 特点 | 说明 |
|---|---|
| 优点 | 算法简单高效,收敛速度快(通常为 ) |
| 对离群点敏感 | 均值操作易受离群点影响,可用 -medoids 算法替代 |
| 需预设 值 | 需要事先确定聚类数目,但实际中往往未知 |
| 对数据尺度敏感 | 不同特征的量纲会影响欧氏距离,导致结果偏差 |
| 硬聚类 | 每个数据只能完全属于一个聚簇,不存在“模糊归属”(可被高斯混合模型解决) |
常见初始化方法
- Forgy:随机选取 个样本点作为初始质心
- Random Partition:随机分配每个样本到一个类,然后计算初始质心
应用举例
- 图像压缩:将图像像素颜色聚类为 种,用质心颜色替代簇内像素,减少存储空间( 越小压缩率越高,但失真越严重)
- 文本聚类、入侵检测、客户细分等
主成分分析(PCA)
PCA是一种特征降维方法,通过找到数据的主要成分来代替原始数据,可消除噪声和冗余,并加深对数据本身的理解。其核心要求是:降维后的结果要最大程度保持原始数据的方差结构。
PCA也被称为 KL变换(Karhunen-Loeve Transform)、霍特林变换(Hotelling Transform)或本征正交分解(POD)。
方差、协方差与相关系数
方差
描述样本数据的波动程度:
【注】分母为 是为了使方差估计为无偏估计。
协方差
衡量两个变量之间的相关度:
| 取值 | 含义 |
|---|---|
| 与 正相关 | |
| 与 负相关 | |
| 与 不相关 |
皮尔逊相关系数
将协方差规整到 范围内,消除量纲影响:
性质:
- 存在 使得
- 刻画的是变量间的线性相关程度
- 线性无关 独立:独立必然线性无关,但线性无关不一定独立
主成分分析
基本思想
将 维数据映射到 维空间( ),使得投影后数据的方差尽可能大。
算法推导
算法 5.2 主成分分析
- 输入: 个 维样本数据构成的矩阵 ,降维后维度
- 输出:映射矩阵
| 步骤 | 操作 |
|---|---|
| 1. 中心化 | 对每个样本 ,其中 |
| 2. 计算协方差矩阵 | |
| 3. 特征值分解 | 对 进行特征值分解,按特征值从大到小排序 |
| 4. 取前 个特征向量 | 取前 个最大特征值对应的特征向量组成映射矩阵 |
数学原理
- 降维后数据 ( )
- 降维后方差:
- 优化目标:
- 使用拉格朗日乘子法求解,得
- 每一个 是协方差矩阵 的特征向量, 是对应特征值
- 最优化方差等于所有选取特征值之和:
其他常用降维方法
1. 非负矩阵分解(NMF)
- 将非负大矩阵 分解为两个非负小矩阵 和
- ,所有元素均非负
- 体现了“部分组成整体”的思想(纯加性描述)
- 两种常用代价函数:
- 欧式距离平方:
- KL散度:
2. 多维尺度法(MDS)
- 思想:保持原始数据的两两距离不变
- 步骤:计算原始数据的距离矩阵 中心化得 对 做奇异值分解得降维结果
- 缺点:存在 out-of-sample 问题,无法对新数据降维
3. 局部线性嵌入(LLE)
- 一种非线性降维方法
- 基本假设:一个流形的局部可近似于欧式空间,每个样本可由其近邻线性重构
- 利用局部线性逼近全局非线性,通过重叠的局部邻域提供全局结构信息
特征人脸方法
一种基于外观的人脸识别方法,使用 PCA 的手段提取人脸图像集合中的特征信息,用少量特征脸有效表示原始面部图像。核心思想是:使用一组特征向量(特征人脸)线性组合来表示原始人脸。
奇异值分解(SVD)
在特征维度较高时,暴力求解协方差矩阵的特征向量耗时很大。SVD 提供了一种更高效的计算方式。
分解形式:
- :原始数据矩阵
- , 均为酉矩阵( )
- :对角矩阵,对角元素为奇异值
与 PCA 的关系:
- 是 的特征向量矩阵
- 是 的特征向量矩阵
- 从 选取前 个奇异向量可压缩矩阵的行数;从 选取前 个奇异向量可压缩特征维度(PCA 的目标)
高效计算技巧:当 时,先求 的 特征向量,再利用关系 得到特征人脸,避免直接求解巨大的 矩阵。
特征人脸方法流程
- 计算均值人脸:
- 中心化:
- SVD求解:利用 SVD 高效计算中心化矩阵 的特征向量(即特征人脸)
- 投影:将每个人脸图像映射到特征人脸空间:
- 识别比较:通过比较两个人脸图像在特征人脸空间的表示 和 判断是否相似
【注】
- 选取的特征人脸数量 是对重建质量和算法复杂度(时间、空间)的权衡
- 特征人脸能较好表达人脸的全局信息,但无法凸显局部特性(如眼睛、嘴巴细节),这与非负矩阵分解形成对比
潜在语义分析(LSA)
一种从海量文本中学习单词与单词、单词与文档、文档与文档之间隐性语义关系的方法。基本思想是综合考虑单词在哪些文档中同时出现,以此判断词语含义的相似度。
潜在语义分析思想
- 构建单词-文档矩阵 :尺寸 , 为单词数目, 为文档数目。矩阵元素表示某单词在某文档中出现次数(也可用 TF-IDF 等加权)。
- SVD分解:
- :LSI单词向量,每行是一个单词在隐空间中的表示
- :LSI文档向量,每行是一个文档在隐空间中的表示
- :对角矩阵,对角线上按从大到小排列的奇异值
- 为矩阵 的秩
- 低秩近似:取前 个最大奇异值及其对应向量,重构矩阵
- 是对原始矩阵 的近似,但两者不完全相同
潜在语义分析的效果
通过对重建后的矩阵分析,可以发现:
- 同一类别文档之间的相关性显著提升
- 同一类别内单词之间的语义相似度被明确刻画
- 揭示了在原始矩阵中未被显式表达出来的隐性语义关联
应用场景
- 自动文档分类
- 文本摘要
- 信息检索中的同义词处理
- 关系发现
期望最大化算法(EM算法)
当模型含有隐变量(未观测变量) 时,无法直接使用最大似然估计求解参数。EM算法通过迭代方式,逐步优化模型参数以最佳“拟合”观测数据。
EM算法分为两步,不断交替直至收敛:
- E步骤(Expectation):基于当前参数,估计隐变量的取值或分布
- M步骤(Maximization):基于观测数据和E步骤得到的隐变量,最大化似然函数,更新模型参数
【注】EM算法不能保证找到全局最优解,可能收敛到鞍点或局部最优。结果受初始值影响。
二硬币投掷例子
问题设定:有A和B两枚硬币,进行5轮实验。每轮先随机选一个硬币,然后掷10次记录正反面(H / T),但不记录所选硬币是A还是B。观测结果仅知道每次投掷的正反面,所选硬币是隐变量。
目标:估计硬币A和B各自的正面概率 。
EM算法迭代过程:
- 初始化
- E步骤:计算在当前参数下,每轮实验选择硬币A或B的概率
- M步骤:根据E步骤计算的期望,重新估计 和
- 重复E、M步骤直至收敛
【注】经过多次迭代后,算法收敛于 (该结果与初始值有关)
EM算法一般形式
- 观测数据 ,隐变量
- 优化目标:最大化对数似然函数
- 核心思想:不断构造对数似然函数的一个下界(E步骤),然后最大化这个下界(M步骤)
数学推导:
由 Jensen 不等式,得到下界:
等号成立条件为 (常数)。取 时等号成立。
最终迭代公式:
小结
本章从聚类、特征降维和模型学习三个角度介绍了无监督学习的核心方法:
- K-means聚类:通过最小化簇内方差将数据划分为 类
- 主成分分析(PCA):提取数据方差最大的方向实现降维
- 特征人脸:PCA在人脸识别中的具体应用,通过SVD高效计算
- 潜在语义分析(LSA):利用SVD挖掘单词与文档间的隐性语义
- 期望最大化(EM)算法:解决含隐变量模型的参数估计问题
这些方法共同构成了在无标注数据中“透过数据看本质”的理论和算法基础。