机器学习笔记之狄利克雷过程(一)基本介绍

news/2024/5/20 7:01:51 标签: 机器学习, 聚类, 算法, 狄利克雷过程

机器学习笔记之狄利克雷过程——基本介绍

引言

从本节开始,将介绍狄利克雷过程

回顾:高斯混合模型

高斯混合模型( Gaussian Mixture Model,GMM \text{Gaussian Mixture Model,GMM} Gaussian Mixture Model,GMM)是针对无监督学习中聚类任务的混合模型。
基于 N N N个样本的样本集合 X = { x ( i ) } i = 1 N \mathcal X = \{x^{(i)}\}_{i=1}^N X={x(i)}i=1N,关于模型参数 θ \theta θ的学习过程,使用的底层逻辑极大似然估计( Maximum Likelihood Estimate,MLE \text{Maximum Likelihood Estimate,MLE} Maximum Likelihood Estimate,MLE):
arg ⁡ max ⁡ θ [ log ⁡ P ( X ) ] = arg ⁡ max ⁡ θ [ ∑ i = 1 N log ⁡ ∑ k = 1 K α k ⋅ N ( x ( i ) ∣ μ k , Σ k ) ] \mathop{\arg\max}\limits_{\theta} \left[\log \mathcal P(\mathcal X)\right] = \mathop{\arg\max}\limits_{\theta} \left[\sum_{i=1}^N \log \sum_{k=1}^{\mathcal K} \alpha_{k} \cdot \mathcal N(x^{(i)} \mid \mu_k,\Sigma_{k})\right] θargmax[logP(X)]=θargmax[i=1Nlogk=1KαkN(x(i)μk,Σk)]
它的模型参数 θ \theta θ具体包含三个部分:
当然, α \alpha α一共包含 K \mathcal K K个离散信息,但如果求解出 α 1 , ⋯   , α K − 1 \alpha_1,\cdots,\alpha_{\mathcal K-1} α1,,αK1,那么最后一个 α K = 1 − ( α 1 + ⋯ + α K − 1 ) \alpha_{\mathcal K} = 1 - (\alpha_1 + \cdots + \alpha_{\mathcal K - 1}) αK=1(α1++αK1)即可。
θ = { μ 1 , ⋯   , μ K , Σ 1 , ⋯   , Σ K , α 1 , ⋯   , α K − 1 } \theta = \{\mu_1,\cdots,\mu_{\mathcal K},\Sigma_1,\cdots,\Sigma_{\mathcal K},\alpha_1,\cdots,\alpha_{\mathcal K-1}\} θ={μ1,,μK,Σ1,,ΣK,α1,,αK1}
关于高斯混合模型的概率图结构表示如下:
高斯混合模型——概率图结构
由于概率图结构简单,并且 Z \mathcal Z Z一维的、离散型随机变量 X ∣ Z \mathcal X \mid \mathcal Z XZ服从高斯分布,因而该模型是特殊的、直接使用 EM \text{EM} EM算法就可求解模型参数的模型结构。

狄利克雷过程——引出

关于某一个聚类任务,如果集合 X \mathcal X X在样本空间中的分布结构简单、易于观察聚类数量,我们可以轻易地定义聚类数量 K \mathcal K K的取值;

但如果处于某些原因,导致样本空间中的样本分布无法容易地观察出来。如:

  • 样本数量较少;
  • 聚类情况过于琐碎聚类效果不明显;
  • 样本的特征维度过高,导致无法通过观察得到样本的聚类数量

这导致我们没有办法确定聚类数量 K \mathcal K K。一种想法是:如果将聚类数量 K \mathcal K K也作为模型参数 θ \theta θ的一部分
θ ′ = { μ 1 , ⋯   , μ K , Σ 1 , ⋯   , Σ K , α 1 , ⋯   , α K − 1 , K } \theta' = \{\mu_1,\cdots,\mu_{\mathcal K},\Sigma_1,\cdots,\Sigma_{\mathcal K},\alpha_1,\cdots,\alpha_{\mathcal K-1},\mathcal K\} θ={μ1,,μK,Σ1,,ΣK,α1,,αK1,K}

从而使用极大似然估计去求解 K \mathcal K K。但真实情况下,这种方式可能是不可取的。我们首先观察对数似然函数 log ⁡ P ( X ) \log \mathcal P(\mathcal X) logP(X)
log ⁡ P ( X ) = ∑ i = 1 N log ⁡ ∑ k = 1 K α k ⋅ N ( x ( i ) ∣ μ k , Σ k ) \log \mathcal P(\mathcal X) = \sum_{i=1}^N \log \sum_{k=1}^{\mathcal K} \alpha_{k} \cdot \mathcal N(x^{(i)} \mid \mu_k,\Sigma_k) logP(X)=i=1Nlogk=1KαkN(x(i)μk,Σk)
连加项中的核心构成是由聚类概率 α k \alpha_k αk对应高斯分布的概率密度函数 N ( μ k , Σ k ) \mathcal N(\mu_k,\Sigma_k) N(μk,Σk)构成。可能出现如下情况:

K = N \mathcal K = N K=N时,即任意一个样本自身归为一类。那么某样本在基于该样本产生的高斯分布中,对应的概率密度函数结果一定是最大值。如果样本数量较少, α k ( k = 1 , 2 , ⋯   , K ) \alpha_{k}(k=1,2,\cdots,\mathcal K) αk(k=1,2,,K)没有被划分的过于细碎,最终这种方法对应的 log ⁡ P ( X ) \log \mathcal P(\mathcal X) logP(X)可能会脱颖而出。

这种做法所划分出来的聚类结果,对于聚类任务来说是没有意义的。

针对这种聚类模糊的样本分布,我们可以尝试:

  • 针对每一个样本 x ( i ) ( i = 1 , 2 , ⋯   , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,,N)构建一个对应的参数 θ ( i ) ( i = 1 , 2 , ⋯   , N ) \theta^{(i)}(i=1,2,\cdots,N) θ(i)(i=1,2,,N)
    其中 θ ( i ) ( i = 1 , 2 , ⋯   , N ) \theta^{(i)}(i=1,2,\cdots,N) θ(i)(i=1,2,,N)的具体意义依然是描述对应样本 x ( i ) ( i = 1 , 2 , ⋯   , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,,N)聚类信息;只不过 θ ( i ) \theta^{(i)} θ(i)仅仅对 x ( i ) x^{(i)} x(i)一个样本负责。

  • 此时,已经有了 N N N个参数 θ \theta θ,对于每一个参数 θ ( i ) \theta^{(i)} θ(i),它均会服从某个分布 H ( θ ) \mathcal H(\theta) H(θ)
    θ ( i ) ∼ H ( θ ) i = 1 , 2 , ⋯   , N \theta^{(i)} \sim \mathcal H(\theta) \quad i=1,2,\cdots,N θ(i)H(θ)i=1,2,,N
    需要对分布 H ( θ ) \mathcal H(\theta) H(θ)进行限制,假设 H ( θ ) \mathcal H(\theta) H(θ)是一个连续分布( Continuous Distribution \text{Continuous Distribution} Continuous Distribution),那会出现什么样的情况?

    假设各样本之间独立同分布( Independent Identical Distribution,IID \text{Independent Identical Distribution,IID} Independent Identical Distribution,IID),并且样本之间不存在重复。对于数据集合中任意两个样本 x ( i ) , x ( j ) ∈ X x^{(i)},x^{(j)} \in \mathcal X x(i),x(j)X,其对应的 θ ( i ) , θ ( j ) \theta^{(i)},\theta^{(j)} θ(i),θ(j)不相同的概率无限接近于 0 0 0。这导致的直接后果是:任意两个样本对应的概率分布均不相同
    θ ( i ) , θ ( j ) ∼ H ( θ ) ⇒ P ( θ ( i ) = θ ( j ) ) = 0 \theta^{(i)},\theta^{(j)} \sim \mathcal H(\theta) \Rightarrow \mathcal P(\theta^{(i)} = \theta^{(j)}) = 0 θ(i),θ(j)H(θ)P(θ(i)=θ(j))=0

    此时又回到了上面的问题:每个样本的分布均不相同,意味着 K = N \mathcal K = N K=N。这样的聚类结果自然没有意义。

  • 但实际上,由于样本 x ( i ) x^{(i)} x(i)之间的差异性,对应参数 θ ( i ) \theta^{(i)} θ(i)之间同样存在差异。因而 H ( θ ) \mathcal H(\theta) H(θ)确实是一个关于 θ \theta θ连续分布。但因为上面的问题,不能从 H ( θ ) \mathcal H(\theta) H(θ)中直接采样。因而需要找到一个 H ( θ ) \mathcal H(\theta) H(θ)相似的离散分布。该离散分布记作 G \mathcal G G,具体表示如下:
    G ∼ DP ( α , H ) \mathcal G \sim \text{DP}(\alpha,\mathcal H) GDP(α,H)

其中 DP \text{DP} DP是指狄利克雷过程( Dirichlet Process,DP \text{Dirichlet Process,DP} Dirichlet Process,DP); α \alpha α表示产生分布 G \mathcal G G离散型程度标量( Scalar \text{Scalar} Scalar)参数:
α \alpha α自身是一个大于 0 0 0的标量。

  • 如果 α \alpha α的数值越大,通过狄利克雷过程 DP ( α , H ) \text{DP}(\alpha,\mathcal H) DP(α,H)产生的分布 G \mathcal G G越不离散

    一个分布越离散是指该分布对特征选择的种类越少。最离散的效果就是分布对某种类别选择的概率是1,没有其他选择。
    相反,越不离散是指该分布对特征选择的种类很多,对每一个种类的选择均有相应的概率结果。如果 α \alpha α取值是无穷大,那么该分布就变成了连续分布 H ( θ ) \mathcal H(\theta) H(θ)

  • 相反, α \alpha α的数值很小,那么产生的分布 G \mathcal G G非常的离散

举个例子。下图的蓝色点表示关于 H ( θ ) \mathcal H(\theta) H(θ)的二维高斯分布:
二维高斯分布——示例
这明显是一个连续型分布。我们想通过狄利克雷过程 DP ( α , H ) \text{DP}(\alpha,\mathcal H) DP(α,H)去构建一个离散分布 G \mathcal G G,使 G \mathcal G G能够近似分布 H \mathcal H H

  • 根据上面的描述,如果 α \alpha α取值为 0 0 0,产生 G \mathcal G G分布的样本点表示如下(橙色点):
    此时属于‘最离散的状态’,无论怎样去随机采样,最终得到的只有一种选取结果,红色框标注。
    alpha数值为0时的样本分布状态
  • 相反,如果 α \alpha α的取值足够高,对应产生 G \mathcal G G分布的样本点表示如下(依然是橙色点):
    此时,它的离散分布状态足够多,每种状态都能分到对应的概率结果,当 α ⇒ ∞ \alpha \Rightarrow \infty α时,此时的离散分布 G \mathcal G G等于连续分布 H \mathcal H H
    alpha数值足够高时的样本分布状态

当然,无论是上述哪种极端情况,都是不可取的:

  • 如果样本分布过于离散,就如上述一个橙色样本表示整个概率分布一样,那么样本分布表达的准确性是较差的;
  • 相反,如果样本更偏于连续,产生的分布可能会产生过拟合的现象,并且对于采样过程也存在较大的负担。
  • 因而我们需要一个尽可能地将分布 H \mathcal H H的信息表示出来的离散分布(效果图):
    alpha取合适值条件下的样本分布状态
    相关参考:
    徐亦达机器学习:Dirichlet Process Part 1

http://www.niftyadmin.cn/n/109394.html

相关文章

jenkins漏洞集合

目录 CVE-2015-8103 反序列化远程代码执行 CVE-2016-0788 Jenkins CI和LTS 远程代码执行漏洞 CVE-2016-0792 低权限用户命令执行 CVE-2016-9299 代码执行 CVE-2017-1000353 Jenkins-CI 远程代码执行 CVE-2018-1000110 用户枚举 CVE-2018-1000861 远程命令执行 CVE-2018…

CentOS8基础篇9:进程的延迟与周期调度

一、进程的概念 进程:开始执行但是还没有结束的程序的实例 程序:包含可执行代码的文件 进程与程序的关系 进程由程序产生,是一个运行着的、要占系统资源的程序 进程不等于程序 浏览网络时,打开多个IE浏览器程序;…

见山,见路,见天地:OpenHarmony的开源共建攀登

自诞生之日起,OpenHarmony就引起着各方的关注,可谓是盛况空前。但一款开源操作系统的成功,困难不在第一步,而是第一步后面的一万步。那么,踏出开源第一步之后的OpenHarmony,后面的故事如何发展了呢&#xf…

SAP SD 分析信用控制管理

SAP系统信用管理功能的介绍: R/3系统具有强大的信用管理功能。系统可将来自于FI、SD的财务及销售信息进行汇总, 提供即时的信用数据;并可依据信用政策对订单及发货进行管理,有效地降低风险;并可集中、简便地处理信用问题,加快销售订单的办理。 SAP…

LeetCode 2373. Largest Local Values in a Matrix【数组,最大池化】

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

「JVM 高效并发」锁优化

为了线程间更高效的共享数据及解决竞争问题,提高程序执行效率,JDK 6 做了大量锁优化,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁膨胀(Lock Coarsening&#xf…

【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (3)-触发器详解-翻转窗口 前言 事件触发指的是存储事件,所以在新版的ADF 中,已经明确了是“存储事件”,…

外贸建站,为什么别人的询盘更多更精准?

大多企业进行外贸建站的目的就是想要获得更多的精准询盘,但是具体该如何做,大多企业都没有方向,要么就是在网上看各种不系统的文章学着操作,要么就找个建站公司做好网站就不管了,而最终结果都不甚理想。那么怎样才能让…