| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [机器学习入门]——第七课——非监督聚类 -> 正文阅读 |
|
[人工智能][机器学习入门]——第七课——非监督聚类 |
文章目录第七课——非监督聚类非监督学习监督学习=通过对有限的标记数据学习决策函数𝑓,从而预测未见样本的标签 非(无)监督学习=通过对原始未标记的数据学习,来揭示数据的内在性质及规律
使用无标注数据 X = { x 1 , x 2 , . . . , x N } X=\{x_1,x_2,...,x_N\} X={x1?,x2?,...,xN?} 学习或训练,无监督学习的模型是函数 z = g θ ( x ) z=g_\theta(x) z=gθ?(x)或条件概率分布 P θ ( z ∣ x ) P_{\theta}(z|x) Pθ?(z∣x) 针对聚类问题
针对降维问题, z = g θ ( x ) z=g_\theta(x) z=gθ?(x),其中𝑧𝑖 是𝑥𝑖 的低维向量,函数 𝑔 既可以是线性函数也可以是非线性函数 针对概率模型问题,假设数据由一个概率模型生成,由训练 数据学习概率模型的结构和参数。 一、聚类简介聚类clustering:聚类将同类型的样本聚为不同簇的过程
聚类中的问题
聚类是主观的:可以有多个聚类结果 机器学习将聚类对象转化成数值向量,从而使得相似可以通过计算距离量化 距离度量性质
常见距离度量Minkowski 距离(闵氏距离):
划分式聚类层次聚类算法
划分式( Partitional )聚类算法 通常给出随机化初始划分 对划分进行迭代优化:K-means和GMM(高斯混合模型聚类) 给定待聚类的数据及聚类的数目K, 试图基于选定的划分准则找到数据的最佳聚类结果 理想情况:枚举所有划分
K-means聚类法K-means是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越小,其相似度就越大。 算法步骤📥 输入:数据 { x 1 , x 2 , … , x n } \{x_1,x_2,…,x_n\} {x1?,x2?,…,xn?},簇的数目K 1?? 随机选择K个数据点作为簇中心 { μ 1 , μ 2 , . . . , μ K } \{\mu_1,\mu_2,...,\mu_K\} {μ1?,μ2?,...,μK?} 2?? 开始如下迭代 ? 🅰? 对每个样本
x
j
x_j
xj?进行归簇,距离哪个聚类中心最近,则将其归为哪一簇: ? 🅱? 重新计算每个簇 C i C_i Ci?的均值: μ i = 1 C i ∑ x j ∈ C i x j \mu_i=\frac{1}{C_i}\sum_{x_j\in C_i}x_j μi?=Ci?1?∑xj?∈Ci??xj?,将更新后的均值作为新的簇中心 3?? 簇中心不发生改变时中止迭代 📤 输出:簇中心 { μ 1 , μ 2 , . . . , μ K } \{\mu_1,\mu_2,...,\mu_K\} {μ1?,μ2?,...,μK?},聚类结果 C = { C 1 , C 2 , . . . , C K } C=\{C_1,C_2,...,C_K\} C={C1?,C2?,...,CK?} K-means的目标/损失函数问题描述:给定无标记数据
{
x
1
,
x
2
,
.
.
.
,
x
n
}
\{x_1,x_2,...,x_n\}
{x1?,x2?,...,xn?},学习目标是将数据归到K个簇中:
C
=
{
C
1
,
C
2
,
.
.
.
,
C
K
}
C=\{C_1,C_2,...,C_K\}
C={C1?,C2?,...,CK?},从而使得以下目标函数值最小: 迭代优化解决方法:使用迭代优化(交替优化)——固定一组,优化另一组,这个思想很重要 M中的mji项表示若第j个样本
x
j
x_j
xj?属于第i类
C
i
C_i
Ci?则为1,否则为0,矩阵表达式如下: 使用的是硬判断 步骤: 1?? 初始化K个簇中心: { μ 1 , μ 2 , . . . , μ K } \{\mu_1,\mu_2,...,\mu_K\} {μ1?,μ2?,...,μK?} 2?? 迭代进行以下优化 更新簇成员:固定 { μ 1 , μ 2 , . . . , μ K } \{\mu_1,\mu_2,...,\mu_K\} {μ1?,μ2?,...,μK?},优化 m j i m_{ji} mji?
更新簇中心:固定 m j i m_{ji} mji?(类成员),优化 μ i \mu_i μi?
算法复杂性算法分析聚类中心初值的选择聚类结果依赖初值的选择:有些初值导致较差的聚类结果 这是由于目标函数非凸导致:有多个最优解,求到的解不是全局的最优 实际中:
聚类数目K的选择利用拐点法:目标函数的值和 k 的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的最佳聚类数。k=2时,对应肘部,故选择k值为2 局限性K-means不适合对形状不是超维椭圆体(或超维球体)的数据 二、GMM聚类算法概述K-means是判别式模型,属于硬判断,每个样本仅属于一簇
为解决以上问题,使用概率模型
混合高斯分布K个混合成分 第i个分布为高斯分布 N ( μ i , Σ i ) N(\mu_i,\Sigma_i) N(μi?,Σi?) 每个数据由以下生成过程产生: P ( x j ) = ∑ i = 1 K P ( Y = i ) P ( x j ∣ Y = i ) P ( X = x j ∣ Y = i ) = 1 ( 2 π ) p / 2 1 ∣ Σ i ∣ 1 / 2 e x p { ? 1 2 ( x j ? μ i ) T Σ i ? 1 ( x j ? μ i ) } P(\pmb x_j)=\sum_{i=1}^KP(Y=i)P(\pmb x_j|Y=i)\\ P(X=\pmb x_j|Y=i)=\frac{1}{(2\pi)^{p/2}}\frac{1}{|\pmb\Sigma_i|^{1/2}}exp\{-\frac{1}{2}(\pmb x_j-\pmb\mu_i)^T\pmb\Sigma_i^{-1}(\pmb x_j-\pmb\mu_i)\} P(xxxj?)=i=1∑K?P(Y=i)P(xxxj?∣Y=i)P(X=xxxj?∣Y=i)=(2π)p/21?∣ΣΣΣi?∣1/21?exp{?21?(xxxj??μ?μ??μi?)TΣΣΣi?1?(xxxj??μ?μ??μi?)} GMM聚类步骤1?? 拟合高斯混合分布:估计K个参数
{
μ
i
,
Σ
i
}
\{\mu_i,\Sigma_i\}
{μi?,Σi?}——关键步骤 2?? 利用贝叶斯定理 拟合高斯分布GMM(Gaussian Mixture Model)
最简单GMM:每个混合成分仅均值不同,具有相同的协方差矩阵 σ 2 I \sigma^2I σ2I 一般GMM:每个混合成分的均值和协方差矩阵均不同 极大似然估计(MLE),最大化如下对数似然函数的值
ln
?
(
∏
j
=
1
n
P
(
x
j
)
)
=
ln
?
(
∏
j
=
1
n
∑
i
=
1
K
π
i
P
(
x
j
)
)
\ln(\prod_{j=1}^nP(x_j))=\ln(\prod_{j=1}^n\sum_{i=1}^K\pi_iP(x_j))\\
ln(j=1∏n?P(xj?))=ln(j=1∏n?i=1∑K?πi?P(xj?)) 对数里面有连加,不好求解——目标函数较为复杂,难以通过梯度上升处理 使用如下的EM算法 三、EM算法聚类中数据不存在标签,因此需要添加隐标签 概述处理隐变量分布的一种通用方法 可解释为在缺失(隐)变量数据下,最大似然估计的一种优化方法 迭代进行两个步骤
非魔法:只能找到局部最优 EM不直接对𝜃做极大似然估计,而是借助隐变量 y,生成 𝚯序列: 为了收敛,需要满足: 通俗地讲
EM推导基于MLE估计最佳参数
θ
M
L
E
\theta_{MLE}
θMLE?,有 1?? E步:期望步——基于当前参数 θ t \theta^t θt,计算隐变量后验概率,进而计算对数似然期望值 E步主要是计算对数联合概率 ln ? P ( x , y ∣ θ ) \ln P(x,y|\theta) lnP(x,y∣θ)在后验概率 P ( y ∣ x , θ t ) P(y|x,\theta^t) P(y∣x,θt) 分布下的期望, EM的一次迭代为: 给定一组参数
θ
t
\theta^t
θt,计算隐变量后验概率(第j个样本在第i个簇的概率值)
P
(
y
j
=
i
∣
x
j
,
θ
t
)
P(y_j=i|x_j,\theta^t)
P(yj?=i∣xj?,θt),由贝叶斯定理 p j i p_{ji} pji?由当前 θ t \theta^t θt求出,求解上述目标函数可得新的 θ t + 1 \theta^{t+1} θt+1,求解的过程由M步完成 2?? M步:最大化步——更新参数,寻找能使E步产生的似然期望最大化的参数值 对目标函数关于
μ
i
\mu_i
μi?求偏导,则有 类似地,可以求得 其中: 算法再述对于原来的目标函数 E步给定一组参数
θ
t
\theta^t
θt,计算隐变量后验概率(第j个样本在第i个簇的概率值)
P
(
y
j
=
i
∣
x
j
,
θ
t
)
P(y_j=i|x_j,\theta^t)
P(yj?=i∣xj?,θt), M步对目标函数关于 μ i , Σ i , π i \mu_i,\Sigma_i,\pi_i μi?,Σi?,πi?求偏导 从而更新了参数 直观分析举例说明代码实现
运行结果
四、GMM和K-means比较K-means是EM算法的特例:每个高斯的协方差相同且已知,只学习参数 μ k \mu_k μk? (1D) 假设在第t步已学到了K个聚类中心 { μ 1 ( t ) , μ 2 ( t ) , . . . , μ k ( t ) } \{\mu_1^{(t)},\mu_2^{(t)},...,\mu_k^{(t)}\} {μ1(t)?,μ2(t)?,...,μk(t)?} ,第t +1步迭代
比较GMM缺点假设数据服从混合高斯分布 EM算法中的参数过多,对初始参数值比较敏感。可以使 用k-means对均值和先验概率赋初值 与k-means一样,选择聚类数目K至关重要 GMM 缺点:计算复杂度比 k-means 高 参考资料[1]庞善民.西安交通大学机器学习导论2022春PPT [2]周志华.机器学习.北京:清华大学出版社,2016 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:43:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |