IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> MeanShift、K-Means与GMM迭代 -> 正文阅读

[人工智能]MeanShift、K-Means与GMM迭代

MeanShift聚类

又称均值漂移算法,首先需要一个迭代半径r,相似阈值T

对每个数据,作为一个新类,从其位置半径r内,选择满足相似条件的数据,放到一个表中。

计算表内数据的位置均值,数据均值,将新的位置和均值作为该类的特征,重新计算满足相似条件的数据,不断迭代直到收敛。

相当于数据有两个相似条件,一个位置相似条件r,一个数据相似条件T

K-Means聚类

该方法被称为k均值,首先需要选定k个聚类中心。

对每个数据,计算出最近的聚类中心C,将其放入C类的数据列表中

拿到每个聚类中心列表中的数据,求取数据均值,将该值作为新的数据中心。不断迭代直到中心不再变化

若将数据分为位置数据特征值,它和meanshift就很像了。

不过区别在于k-means中,类的数量是手动确定的,而mean shift的类数量是迭代自动确定的,并且最坏情况可能是每个数据都是一个类。

GMM聚类

原理

在这里插入图片描述
首先,假设数据中有k个高斯分布,数据的实际分布可用其线性组合描述:
p ( x ) = ∑ k = 1 K π k N ( x ∣ μ k , Σ k ) p(\boldsymbol{x}) = \sum_{k=1}^K\pi_k \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) p(x)=k=1K?πk?N(xμk?,Σk?)

其中 N ( x ∣ μ k , Σ k ) \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) N(xμk?,Σk?)称为混合模型中的第k个分量。 π k \pi_k πk? 是混合系数(或者叫权重、选中该分量的概率),且满足:

  1. ∑ k = 1 K π k = 1 \sum_{k=1}^K\pi_k = 1 k=1K?πk?=1
  2. 0 ≤ π k ≤ 1 0\leq \pi_k \leq 1 0πk?1

如果要从 GMM 的分布中随机地取一个点的话,实际上可以分为两步:

  1. 首先随机地在这 K 个分量之中选一个,每个分量被选中的概率实际上就是它的系数 π k \pi_k πk?

  2. 选中之后,再单独地考虑从这个分量的高斯分布中选取一个点就可以了。

EM参数估计

对于GMM中的每个分量,有三个参数:选中概率 π k \pi_k πk?,分布均值 μ k {\mu}_k μk?,分布标准差 Σ k {\Sigma}_k Σk?。如果我们从分布选取一个点,怎么知道这个点是来自哪个分量呢?或者说如何确定 π k \pi_k πk??EM算法就可以解决GMM参数估计的问题。

通过EM算法,我们可以迭代计算出GMM中的参数: ( π k , x k , Σ k ) (\pi_k, \boldsymbol{x}_k, \boldsymbol{\Sigma}_k) (πk?,xk?,Σk?)

首先我们可以引入一个新的随机变量 z ∈ { z 1 , z 2 , . . . z k } \boldsymbol{z}∈\{z_1,z_2,...z_k\} z{z1?,z2?,...zk?}

p ( z k ) = π k p(z_k)=\pi_k p(zk?)=πk?,表示第k个分量被选中的概率,由于是每次只能有一个分量被选中,即:

  1. ∑ k z k = Ω \sum_k{z_k}=\Omega k?zk?=Ω
  2. p ( z ) = ∑ k p ( z k ) = ∑ k π k = 1 p(z)= \sum_k{p(z_k)}=\sum_k{\pi_k}=1 p(z)=k?p(zk?)=k?πk?=1
  3. p ( x ∣ z k ) = N ( x ∣ μ k , Σ k ) p(x|z_k)= \mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) p(xzk?)=N(xμk?,Σk?)
  4. p ( x ) = ∑ k p ( x ) p ( x ∣ z k ) p(x)= \sum_kp(x)p(x|z_k) p(x)=k?p(x)p(xzk?)

根据贝叶斯定理, p ( z ) p(z) p(z)是先验概率, p ( x ∣ z ) p(x∣z) p(xz)是似然概率, p ( z ∣ x ) p(z∣x) p(zx)是后验概率。设 x = { x 1 , x 2 , . . . x N } \boldsymbol{x}=\{x_1,x_2,...x_N\} x={x1?,x2?,...xN?},我们有

  1. p ( z ∣ x ) = p ( x ∣ z ) p ( z ) p(z∣x)=p(x∣z)p(z) p(zx)=p(xz)p(z)
  2. μ k = 1 N k ∑ n p ( z ∣ x n ) p ( x n ) μ_k=\frac{1}{N_k}\sum_np(z∣x_n)p(x_n) μk?=Nk?1?n?p(zxn?)p(xn?)

EM算法

  1. 定义分量数目 k k k,对每个分量设置 π k \pi_k πk? μ k μ_k μk? Σ k \boldsymbol{\Sigma}_ k Σk? 的初始值,然后计算对数似然函数。

l n ?? p ( x ∣ π , μ , Σ ) = ∑ n ? l n ∑ k π k N ( x n ∣ μ k , Σ k ) ln\ \ p(x|\pi,μ,\boldsymbol{\Sigma})= \sum_n\ ln\sum_k\pi_kN(x_n∣μ_k,\boldsymbol{\Sigma}_k) ln??p(xπ,μ,Σ)=n??lnk?πk?N(xn?μk?,Σk?)

  1. E 阶段: 根据当前的 π k \pi_k πk? μ k μ_k μk? Σ k \boldsymbol{\Sigma}_ k Σk? 计算后验概率 γ ( z n k ) γ(z_{nk}) γ(znk?)

γ ( z n k ) = π k N ( x n ∣ μ n , Σ n ) ∑ j = 1 k π j N ( x n ∣ μ j , Σ j ) γ(z_{nk})=\frac{π_kN(x_n∣μ_n,\boldsymbol{\Sigma}_n)} {∑_{j=1}^kπ_jN(x_n∣μ_j,\boldsymbol{\Sigma}_ j)} γ(znk?)=j=1k?πj?N(xn?μj?,Σj?)πk?N(xn?μn?,Σn?)?

  1. M阶段:根据E阶段中计算的 γ ( z n k ) \gamma(z_{nk}) γ(znk?)再计算新的 π k \pi_k πk? μ k μ_k μk? Σ k \boldsymbol{\Sigma}_ k Σk?

N k = ∑ n γ ( z n k ) N_k=\sum_n\gamma(z_{nk}) Nk?=n?γ(znk?) ,则:

  1. π k = N k N \pi_k=\frac{N_k}{N} πk?=NNk??
  2. μ k = 1 N k ∑ n γ ( z n k ) x n μ_k=\frac{1}{N_k}\sum_n\gamma(z_{nk}) x_n μk?=Nk?1?n?γ(znk?)xn?
  3. Σ k = 1 N k ∑ n γ ( z n k ) ( x n ? μ k ) ( x n ? μ k ) T \boldsymbol{\Sigma}_ k=\frac{1}{N_k}\sum_n\gamma(z_{nk})(x_n-μ_k)(x_n-μ_k)^T Σk?=Nk?1?n?γ(znk?)(xn??μk?)(xn??μk?)T
    ?
  1. 重新计算步骤1中的对数似然函数

  2. 检查参数是否收敛或对数似然函数是否收敛,若不收敛,则返回第2步。

其他参考

EM算法
详解EM算法与混合高斯模型
高斯混合模型(GMM)及其EM算法的理解
更多聚类算法参考我另一篇博客:无监督算法

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:27:40  更:2022-05-12 16:29:45 
 
开发: 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 6:22:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码