频繁项集/序列

频繁项集

  • 频繁项集:频繁出现项集合(无序)
  • 频繁项序列:频繁出现项序列(有序)
  • 相关关联规则算法:数据量大时,无法直接发现频繁项集
  • 频繁项集评估标准

评估标准

  • 支持度:数据关联出现概率,关联数据在数据集中出现次数占 总数据集比重

    • 支持度高数据不一定构成频繁项集,但支持度数据肯定不能 不构成频繁项集
  • 置信度:数据出现条件概率,某个数据出现、另一数据出现概率

  • 提升度:数据之间关联关系,某数据出现、另一数据出现概率同 其总体出现概率之比

    • 提升度大于1则为有效的强关联规则,否则为无效的强关联 规则
    • 若X、Y不相关,则提升度为1
  • 选择频繁数据集,一般需要自定义评估标准:自定义支持度、 自定义支持度和置信度组合

Apriori

Apriori算法

  • 以支持度作为评估标准,找出数据集中最大的频繁$k$项集
    • 找到符合支持度标准的频繁$k$项集
    • 迭代直到无法找到项数更大的频繁项集

apriori_example

算法

  • 输入:数据集合D、支持度阈值$\alpha$
  • 输出:最大的频繁K项集
  • 置$k=1$,扫描整个数据集,以所有出现过数据作为候选1项集
  • 挖掘候选$k$项集
    • 扫描数据、计算候选$k$项集支持度
    • 去除支持度低于阈值$\alpha$的项集得到频繁$k$项集
      • 若频繁$k$项集只包含1项,直接返回
      • 若频繁$k$项集为空,返回频繁$k-1$项集
    • 基于频繁$k$项集连接、生成候选$k+1$项集
    • 置$k=k+1$
  • 需要频繁扫描数据、效率低
  • 频繁项集的子项集肯定也是频繁项集

FPTree/FPGrowth

FPTree:对Apriori算法改进,不在需要多次扫描数据

  • FPTree引入部分数据结构以临时存储数据

    fptree_data_structure

    • 项头表:按频繁1项集出现频数降序排列的表
    • FP Tree:包含原始数据、频数的多叉树
    • 节点链表:链接项头表中频繁1项集、FPTree中相应节点 的链表
  • 特点:效率高

    • 只需要扫描两次数据
    • 使用多叉树存储临时数据,利用高频频繁项集

算法

  • 建立项头表

    • 扫描数据,得到所有1项集频数、剔除支持度低于阈值者, 并按支持度(频数)降序排列
    • 第二次扫描数据,剔除每条数据中非频繁1项集、 在每条数据内部按支持度降序排列

    fptree_item_head_table

  • 建立FPTree:逐条读取处理后排序后数据,依次插入树中

    • 每条数据中排序靠前者为祖先节点
    • 若有直系公共祖先则公共祖先节点计数+1
    • 新节点通过链表和项头表链接

    fptree_item_head_table

  • 挖掘FPTree:对项表头中每项,找到其条件模式基

    • 将子树中每个节点计数置为叶子节点计数和,则子树中节点 取值即为其与当前项组合出现频数/支持度
    • 删除(当前子树内)支持度/频数低于支持度阈值$\alpha$ 节点
    • 剩余节点项、当前项组合即为相应频繁$k$项集

    fptree_mine_item_set

    • 条件模式基:节点作为叶子节点所对应的FP子树

Prefix-Projected Pattern Growth

PrefixSpan:前缀投影模式挖掘

  • 以支持度为标准,挖掘数据集中频繁序列
    • 每条数据为若干项集组成的序列,序列内项集间有序
    • 为方便,每条数据序列中项集中的项已排序
  • 可以将每条数据序列整体视为串
  • 频繁序列:频繁出现子序列

算法

  • 输入:序列数据集$S$、支持度$\alpha$
  • 所有满足阈值要求的频繁序列
  • 找出所有长度1前缀(即所有项)、对应投影

    • 计数、剔除持度小于阈值$\alpha$者,得到频繁1项序列
    • 置$k=1$
  • 对每个长度为$k$前缀递归挖掘

    • 若前缀对应投影为空,返回
    • 若前缀对应投影中所有项支持度均小于阈值$\alpha$,返回
    • 同满足阈值要求阈值$\alpha$要求项合并,得到新前缀
    • 置$k=k+1$
  • prefix:前缀,正在处理的子序列
  • projected:投影,各数据序列中位于前缀之后子串 ?串

聚类

聚类算法

聚类:按照某特定标准(如距离准则)把数据集分割成不同类、簇, 簇内数据相似性尽可能大、不同簇间数据对象差异性仅可能大

  • 属于无监督学习,目标是把相似的样本聚集在一起

    • 通常只需要给定相似度的计算即可
    • 无需使用训练数据学习
  • 聚类算法分类

    • 基于划分
    • Hierarchical Methods:基于层次
    • 基于密度
    • 基于网络
    • 基于模型
    • 模糊聚类
    • 基于约束
    • 基于粒度
    • 谱聚类
    • 核聚类
    • 量子聚类

衡量聚类算法优劣

clustering_comparision

  • 算法的处理能力

    • 处理大数据的能力
    • 处理噪声数据能力
    • 处理任意形状数据的能力,如:有间隙的嵌套数据
  • 算法是否需要预测条件

    • 聚类数目
    • 相关领域知识
  • 输入数据关联性

    • 结果是否和数据输入顺序相关
    • 对数据维度敏感性(是否能处理高维数据)
    • 对数据类型要求

Hierarchical Methods

层次聚类

  • 自底向上合并的层次聚类

    • 最底层开始,通过合并最相似类簇形成上层类簇
    • 全部数据点合并到同一类簇、或达到终止条件时结束
  • 自顶向下分裂的层次聚类

    • 从包含全部数据点的类簇开始,递归分裂出最相异的下层 类簇
    • 每个类簇仅包含单个数据点时结束
  • 优点

    • 可解释性好:如需要创建分类方法时
    • 研究表明能产生高质量聚类,可以应用在较大K的K-means 后的合并阶段
    • 可以解决非球形类簇
  • 缺点

    • 时间复杂度高$O(N^2 log N)$($N$为数据点数目)
    • 贪心算法无法取得最优解
  • 距离选择参见ml_tech/#todo

AGENS

AGENS:自下向上层次聚类

  • 组连接:组与组之间距离
    • single linkage
    • average linkage
    • complete linkage
  • 算法复杂度:$n^2logn$

流程

  • 每个数据点视为一类,计算两两直接最小距离
  • 合并距离最小两个两类别为新类
  • 重新计算新类、所有类之间距离
  • 重复以上,直至所有类合并为一类

Divisive Analysis

DIANA:自定向下层次聚类

算法流程

  • 所有数据归为一组$C_1=(p_1, p_2, dots, p_n)$
  • 计算所有点之间的距离矩阵,选择到其他点平均距离最大的点, 记为$q$,取该点作为新组起始点
  • $\forall p, p \notin C_1$,计算 $d_arg(p, C_1) - d_arg(p, C_2)$, 若小于零则属于$C_1$,否则属于$C_2$

Balanced Itertive Reducing and Clustering Using Hierarchies

BIRCH:利用层次方法的平衡迭代规约和聚类,利用层次方法聚类 、规约数据

  • 特点
    • 利用CF树结构快速聚类
    • 只需要单遍扫描数据
    • 适合在数据类型为数值型、数据量大时使用

常见算法、改进

  • A Hierarchical Clustering Algorithm Using Dynamic Modeling:使用KNN算法计算作为linkage、构建图
    • 较BIRCH好,但算法复杂度依然为$O(n^2)$
    • 可以处理比较复杂形状

Partition-Based Methods

基于划分的方法

  • 基本流程

    • 确定需要聚类的数目,挑选相应数量点作为初始中心点
    • 再根据预定的启发式算法队数据点做迭代
    • 直到达到类簇内点足够近、类簇间点足够远
  • 优点

    • 对大型数据集同样简单高效、时空复杂度低
  • 缺点

    • 数据集越大,结果容易越容易陷入局部最优
    • 需要预先设置k值,对初始k中心点选取敏感
    • 对噪声、离群点敏感
    • 只适合数值性
    • 不适合非凸形状
  • 影响结果因素

    • 原始问题是否可分
    • 分类数目K
    • 初始点选择

K-means

  • 数据:$\Omega={X_1, X_2, \dots, X_N}$,分k个组

    每个样本点包含p个特征:$X_i = (x_1, x_2, \dots, x_p)$

  • 目标:极小化每个样本点到聚类中心距离之和

    • 若定义距离为平方欧式距离,则根据组间+组内=全, 极小化目标就是中心点距离极大化
  • 优化问题是NP-hard问题,需要采用近似方法

K值选择

  • 经验选择
  • 特殊方法:Elbow Method,肘部法则,画出距离和K的点图, 选择剧烈变化的点的K值

Lloyd’s Algorithm

  • 随机选择K对象,每个对象初始地代表类簇中心
  • 对剩余对象,计算与各簇中心距离,归于距离最近地类簇
  • 重新计算各类簇平均值作为新簇中心
  • 不断重复直至准则函数收敛
  • 算法时间效率:$\in O(K * N^{\pi})$

常见算法、改进

  • K-means++、Intelligent K-means、Genetic K-means:改进 K-means对初值敏感
  • K-medoids、K-medians:改进K-means对噪声、离群点敏感
  • K-modes:适用于分类型数据
  • Kernel-Kmeans:可以解决非凸问题

Density-Based Methods

基于密度的方法

  • 优点
    • 对噪声不敏感
    • 能发现任意形状聚类
  • 缺点
    • 聚类结果和参数关系很大

相关概念

  • 核心点:半径eps的邻域内点数量不少于阈值MinPts的点

  • 直接可达:核心点半径eps的领域内被称为直接可达

    • 没有任何点是由非核心点直接可达的
  • 可达:若存在$p_1, \cdots, p_n$点列中相邻点直接可达, 则$p_1, p_n$可达

    • 非对称关系,因为核心点没有直接可达点
  • 连接性:若存在点$o$可达$p,q$,则$p,q$称为[密度]连接

    • 对称关系
    • 聚类内点都是相连接的
    • 若p由q可达,则p在q所属聚类中
  • 局外点:不由任何点可达的点

DBSCAN

  • Density-Based Spatial Clustering of Applications with Noise

算法流程

  • 从任意对象点p开始
  • 寻找合并核心点p对象直接密度可达对象
    • 若p是核心点,则找到聚类
    • 若p是边界,则寻找下个对象点
  • 重复直到所有点被处理

说明

  • DBSCAN用固定参数识别聚类,类簇稀疏程度不同时,相同判断 标准会破坏类自然结构

    • 较稀疏类簇会被划分为多个
    • 密度大距离近多个类被合并
  • 参数影响

    • eps过大大多数点聚为同一簇中、过小则会导致簇分裂
    • MinPts值过大则同簇中点被标记为噪声点、过小则有大量 核心点
  • 超参半径eps、最小点数量MinPts经验选取

    • 计算所有点k距离
    • 对各点k距离排序、绘制折线图
    • 观察折线图,以发现极具变化的位置对应k距离作为半径
    • k即作为最小点数量
    • k距离:距离点第k近点距离

常见算法、改进

  • Ordering Points to Indentify Clustering Structure:优先 搜索高密度,然后根据高密度特点设置参数,改善DBSCAN

Grid-Based Methods

基于网络的方法

  • 优点

    • 速度快,速度与数据对象个数无关,只依赖数据空间中每维 上单元数目
    • 可以和基于密度算法共同使用
  • 缺点

    • 对参数敏感
    • 无法处理不规则分布的数据
    • 维数灾难
    • 聚类结果精确性低:算法效率提高的代价

流程

  • 将数据空间划分为网格单元:不同算法主要区别
  • 将数据对象集映射到网格单元中,计算各单元密度
  • 根据预设的阈值判断每个网格单元是否为高密度单元
  • 将相连的高度密度网格单元识别为类簇

常见算法、改进

  • statistical information grid
  • wave-cluster
  • clustering-quest

Model-Based Methods

基于模型的方法:为每个类簇假定模型,寻找对给定模型的最佳拟合

  • 优点
    • 对类划分以概率形式表示
    • 每类特征可以用概率表达
  • 缺点
    • 执行效率不高,尤其是分布数量多、数据量少时

SOM

SOM:假设输入对象中存在一些拓扑结构、顺序,可以实现从输入 空间到输入平面的降维映射,且映射具有拓扑特征保持性质

  • 网络结构

    • 输入层:高维输入向量
    • 输入层:2维网络上的有序节点
  • 学习过程

    • 找到、更新与输入节点距离最短的输出层单元,即获胜单元
    • 更新邻近区域权值,保持输出节点具有输入向量拓扑特征

SOM算法流程

  • 网络初始化:初始化输出层节点权重
  • 随机选取输入样本作为输入向量,找到与输入向量距离最小的 权重向量
  • 定义获胜单元,调整获胜单元邻近区域权重、向输入向量靠拢
  • 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类 结果

常见算法

  • 概率生成模型:假设数据是根据潜在概率分布生成
    • Gaussian Mixture Model
  • 基于神经网络模型的方法
    • Self Organized Maps

模糊聚类

模糊聚类:样本以一定概率属于某个类

  • 优点
    • 对正态分布的数据聚类效果较好
    • 算法对孤立点敏感

Fuzzy C-means(FCM)

FCM:对K-means的推广软聚类

  • 算法最终输出$C$个聚类中心向量、$C*N$模糊划分矩阵

    • 表示每个样本点对每个类的隶属度
    • 根据划分矩阵、按照最大隶属原则确定样本点归属
    • 聚类中心表示类平均特征,可以作为类代表
  • 特点

    • 算法性能依赖初始聚类中心,需要依赖其他算法快速确定 初始聚类中心、或多次执行算法
    • 不能确保收敛于最优解
  • soft cluster:点可以属于多个类

参数选择

  • 聚类数目$C$:$C$远远小于聚类样本总数目,且大于1
  • 柔性参数$m$
    • $m$过大:聚类效果差
    • $m$过小:算法接近HCM聚类算法

算法流程

  • 标准化数据矩阵
  • 建立模糊相似矩阵,初始化隶属矩阵
  • 迭代,直到目标函数收敛到极小值

  • 根据迭代结果,由最终隶属矩阵确定数据所属类,得到聚类结果

常见算法、改进

  • HCM算法

基于约束的算法

基于约束的算法:考虑聚类问题中的约束条件,利用约束知识进行 推理

  • 约束

    • 对聚类参数的约束
    • 对数据点的约束
  • 典型算法

    • Clustering with Obstructed Distance:用两点之间障碍 距离取代一般的欧式距离计算最小距离

量子聚类

量子聚类:用量子理论解决聚类过程中初值依赖、确定类别数目的 问题

  • 典型算法
    • 基于相关点的Pott自旋、统计机理提供的量子聚类模型: 将聚类问题视为物理系统

核聚类

核聚类:增加对样本特征的优化过程,利用Mercer核把输入空间映射 至高维特征空间,在特征空间中进行聚类

  • 特点

    • 方法普适
    • 性能上优于经典聚类算算法
    • 可以通过非线性映射较好分辨、提取、放大有用特征
    • 收敛速度快
  • 典型算法

    • SVDD算法
    • SVC算法

谱聚类

谱聚类:建立在图论中谱图理论基础上,本质是将聚类问题转换为 图的最优划分问题

基本流程

  • 根据样本数据集定义描述成对数据点的相似度亲和矩阵
  • 计算矩阵特征值、特征向量
  • 选择合适的特征向量聚类不同点

Auto-Encoders

自编码机/稀疏编码/堆栈自编码器

  • 起源:编码理论可以应用于视觉皮层感受野,大脑主要视觉皮层 使用稀疏原理创建可以用于重建输入图像的最小基函数子集

  • 优点

    • 简单技术:重建输入
    • 可堆栈多层
    • 直觉型,基于神经科学研究
  • 缺点

    • 贪婪训练每层
    • 没有全局优化
    • 表现较监督学习差
    • 多层容易失效
    • 输入的重建可能不是学习通用表征的理想metric

EM算法

总述

expectation maximization algorithm:含有隐变量的概率模型 参数的极大似然估计法、极大后验概率估计法

  • 模型含有latent variable(潜在变量)、hidden variable (隐变量)似然函数将没有解析解

  • 所以EM算法需要迭代求解,每次迭代由两步组成

    • E步:求期望expectation
    • M步:求极大maximization
  • 模型变量都是observable variable、给定数据情况下,可以 直接使用极大似然估计、贝叶斯估计

EM算法

对含有隐变量的概率模型,目标是极大化观测数据(不完全数据) $Y$关于参数$\theta$的对数似然函数,即极大化

  • $Y$:观测变量数据
  • $Z$:隐随机变量数据(未知)
  • $Y,Z$合在一起称为完全数据
  • $P(Y,Z|\theta)$:联合分布
  • $P(Z|Y,\theta)$:条件分布
  • 但是极大化目标函数中包括未观测数据$Z$、求和(积分)的 对数,直接求极大化非常困难
  • EM算法通过迭代逐步近似极大化$L(\theta)$

推导

  • 假设第i次迭代后$\theta$的估计值是$\theta^{(i)}$,希望 新估计值$\theta$能使$L(\theta)$增加,并逐步增加到极大值 ,考虑两者之差

  • 利用Jensen不等式有

  • 则$B(\theta, \theta^{(i)})$是$L(\theta)$的一个下界,即

    并根据$B(\theta, \theta^{(i)})$定义有

  • 则任意$\theta$满足 $B(\theta,\theta^{(i)}) > B(\theta^{(i)},\theta^{(i)})$ ,将满足$L(\theta) > L(\theta^{(i)})$,应选择 $\theta^{(i+1)}$使得$B(\theta,\theta^{(i)})$达到极大

    • 和$\theta$无关的常数项全部舍去
  • $Q(\theta, \theta^{(i)})$:Q函数,完全数据的对数似然函数 $logP(Y,Z|\theta)$,关于在给定观测$Y$和当前参数 $\theta^{(i)}$下,对未观测数据Z的条件概率分布 $P(Z|Y,\theta^{(i)})$

算法

  1. 选择参数初值$\theta^{0}$,开始迭代

  2. E步:记$\theta^{(i)}$为第$i$迭代时,参数$\theta$的估计值 ,在第$i+1$步迭代的E步时,计算Q函数 $Q(\theta, \theta^{(i)})$

  3. M步:求使得Q函数极大化$\theta$作为第$i+1$次估计值 $\theta^{(i+1)}$

  4. 重复E步、M步直到待估参数收敛

  • 算法初值可以任意选择,但EM算法对初值敏感

  • E步:参数值估计缺失值分布,计算Q函数(似然函数)

  • M步:Q函数取极大得新参数估计值

  • 收敛条件一般是对较小正数$\epsilon$,满足 $|\theta^{(i+1)} - \theta^{(i)}| < \epsilon$或 $|Q(\theta^{(i+1)},\theta^{(i)}) - Q(\theta^{(i)},\theta^{(i)})| < \epsilon$

EM算法特点

EM算法优点

  • EM算法可以用于估计含有隐变量的模型参数
  • 非常简单,稳定上升的步骤能非常可靠的找到最优估计值
  • 应用广泛,能应用在多个领域中
    • 生成模型的非监督学习

EM算法缺点

  • EM算法计算复杂、受外较慢,不适合高维数据、大规模数据集
  • 参数估计结果依赖初值,不够稳定,不能保证找到全局最优解

算法收敛性

定理1

  • 设$P(Y|\theta)$为观测数据的似然函数,$\theta^{(i)}$为 EM算法得到的参数估计序列,$P(Y|\theta^{(i)}),i=1,2,…$ 为对应的似然函数序列,则$P(Y|\theta^{(i)})$是单调递增的
  • 由条件概率

  • 则对数似然函数有

    • $H(\theta, \theta^{(i)}) = \sum_Z log P(Z|Y,\theta) P(Z|Y,\theta)$
    • $Q(\theta, \theta^{(i)})$:前述Q函数
    • $logP(Y|\theta)$和$Z$无关,可以直接提出
  • 分别取$\theta^{(i+1)}, \theta^{(i)}$带入,做差

    • $\theta^{(i+1)}$使得$Q(\theta, \theta^{(i)})$取极大

    • 又有

定理2

  • 设$L(\theta)=log P(Y|\theta)$为观测数据的对数似然函数, $\theta^{(i)},i=1,2,…$为EM算法得到的参数估计序列, $L(\theta^{(i)}),i=1,2,…$为对应的对数似然函数序列
    • 若$P(Y|\theta)$有上界,则$L(\theta^{(i)})$收敛到某 定值$L^{*}$
    • Q函数$Q(\theta, \theta^{‘})$与$L(\theta)$满足一定 条件的情况下,由EM算法得到的参数估计序列 $\theta^{(i)}$的收敛值$\theta^{*}$是$L(\theta)$的 稳定点
  • 结论1由序列单调、有界显然
  • Q函数$Q(\theta, \theta^{‘})$与$L(\theta)$的条件在大多数 情况下是满足的
  • EM算法收敛性包含对数似然序列$L(\theta^{(i)})$、参数估计 序列$\theta^{(i)}$的收敛性,前者不蕴含后者
  • 此定理只能保证参数估计序列收敛到对数似然序列的稳定点, 不能保证收敛到极大点,可选取多个不同初值迭代,从多个结果 中选择最好的

Gaussion Mixture Model

  • 高斯混合模型是指具有如下概率分布模型
    • $\alphak \geq 0, \sum{k=1}^K \alpha_k=1$:系数
    • $\phi(y|\theta_k)$:高斯分布密度函数
    • $\theta_k=(\mu_k, \sigma_k)$:第k个分模型参数
  • 用EM算法估计高斯混合模型参数 $\theta=(\alpha_1,…,\alpha_2,\theta_1,…,\theta_K)$

推导

明确隐变量

明确隐变量,写出完全数据对数似然函数

  • 反映观测数据$y_j$来自第k个分模型的数据是未知的

    • $j=1,2,\cdots,N$:观测编号
    • $k=1,2,\cdots,K$:模型编号
  • 则完全数据为

  • 完全数据似然函数为

    • $nk = \sum{j=1}^{N} \gamma_{j,k}$
    • $\sum_{k=1}^K n_k = N$
  • 完全数据的对数似然函数为

E步:确定Q函数

  • $E\gamma{j,k} = E(\gamma{j,k}|y,\theta)$:记为 $\hat \gamma_{j,k}$

带入可得

M步

求新一轮模型参数 $\theta^{(i+1)}=(\hat \alpha_1,…,\hat \alpha_2,\hat \theta_1,…,\hat \theta_K)$

  • $\hat \theta_k = (\hat \mu_k, \hat \sigma_k^2)$:直接求 偏导置0即可得
  • $\hat \alphak$:在$\sum{k=1}^K \alpha_k = 1$条件下求 偏导置0求得

算法

  • 输入:观测数据$y_1, y_2,\cdots, y_N$,N个高斯混合模型
  • 输出:高斯混合模型参数
  1. 取参数初始值开始迭代

  2. E步:依据当前模型参数,计算分模型k对观测数据$y_j$响应度

  3. M步:计算新一轮迭代的模型参数 $\hat mu_k, \hat \sigma_k^2, \hat \alpha_k$

  4. 重复2、3直到收敛

  • GMM模型的参数估计的EM算法非常类似K-Means算法
    • E步类似于K-Means中计算各点和各聚类中心之间距离,不过 K-Means将点归类为离其最近类,而EM算法则是算期望
    • M步根据聚类结果更新聚类中心

GEM

Maximization-Maximization Algorithm

Free Energy函数

  • 假设隐变量数据Z的概率分布为$\tilde P(Z)$,定义分布 $\tilde P$与参数$\theta$的函数$F(\tilde P, \theta)$如下
  • $H(\tilde P)=-E_{\tilde P} log \tilde P(Z)$:分布 $\tilde P(Z)$的熵
  • 通常假设$P(Y,Z|\theta)$是$\theta$的连续函数,则函数 $F(\tilde P,\theta)$是$\tilde P, \theta$的连续函数

定理1

  • 对于固定$\theta$,存在唯一分布$\tilde P\theta$,极大化 $F(\tilde P, \theta)$,这时$\tilde P\theta$由下式给出 并且$\tilde P_{\theta}$随$\theta$连续变化
  • 对于固定的$\theta$,求使得$F(\tilde P, \theta)$的极大, 构造Lagrange函数

    因为$\tilde P(Z)$是概率密度,自然包含两个约束

    即Lagrange方程中后两项

  • 对$\tilde P(Z)$求偏导,得

    令偏导为0,有

  • 则使得$F(\tilde P, \theta)$极大的$\tilde P_\theta(Z)$ 应该和$P(Y,Z|\theta)$成比例,由概率密度自然约束有

    而由假设条件,$P(Y,Z|\theta)$是$\theta$的连续函数

  • 这里概率密度函数$\tilde P(Z)$是作为自变量出现

  • 理论上对$\tilde P(Z)$和一般的复合函数求导没有区别, 但$E_{\tilde P}, \sum_Z$使得整体看起来非常不和谐

定理2

  • 若$\tilde P_\theta(Z) = P(Z|Y, \theta)$,则

定理3

  • 设$L(\theta)=log P(Y|\theta)$为观测数据的对数似然函数, $\theta^{(i)}, i=1,2,\cdots$为EM算法得到的参数估计序列, 函数$F(\tilde P,\theta)$如上定义
    • 若$F(\tilde P,\theta)$在$\tilde P^{}, \theta^{}$ 上有局部极大值,则$L(\theta)$在$\theta^{*}$也有局部 最大值
    • 若$F(\tilde P,\theta)$在$\tilde P^{}, \theta^{}$ 达到全局最大,则$L(\theta)$在$\theta^{*}$也达到全局 最大
  • 由定理1、定理2有

    特别的,对于使$F(\tilde P,\theta)$极大$\theta^{8}$有

  • 由$\tilde P_\theta$关于$\theta$连续,局部点域内不存在点 $\theta^{}$使得$L(\theta^{}) > L(\theta^{})$,否则 与$F(\tilde P, \theta^{})$矛盾

定理4

  • EM算法的依次迭代可由F函数的极大-极大算法实现
  • 设$\theta^{(i)}$为第i次迭代参数$\theta$的估计, $\tilde P^{(i)}$为第i次迭代参数$\tilde P$的估计,在第 i+1次迭代的两步为
    • 对固定的$\theta^{(i)}$,求$\tilde P^{(i)}$使得 $F(\tilde P, \theta^{(i)})$极大
    • 对固定的$\tilde P^{(i+1)}$,求$\theta^{(i+1)}$使 $F(\tilde P^{(t+1)}, \theta)$极大化
  • 固定$\theta^{(i)}$

  • 则固定$\tilde P^{(i+1)}$求极大同EM算法M步

GEM算法

  • 输入:观测数据,F函数
  • 输出:模型参数
  1. 初始化$\theta^{(0)}$,开始迭代

  2. 第i+1次迭代:记$\theta^{(i)}$为参数$\theta$的估计值, $\tilde P^{(i)}$为函数$\tilde P$的估计,求 $\tilde P^{(t+1)}$使$\tilde P$极大化$F(\tilde P,\theta)$

  3. 求$\theta^{(t+1)}$使$F(\tilde P^{(t+1)l}, \theta)$极大化

  4. 重复2、3直到收敛

次优解代替最优解

  • 输入:观测数据,Q函数
  • 输出:模型参数
  1. 初始化参数$\theta^{(0)}$,开始迭代

  2. 第i+1次迭代,记$\theta^{(i)}$为参数$\theta$的估计值, 计算

  3. 求$\theta^{(i+1)}$使

  4. 重复2、3直到收敛

  • 有时候极大化$Q(\theta, \theta^{(i)})$非常困难,此算法 仅寻找使目标函数值上升方向

ADMM求次优解

  • 输入:观测数据,Q函数
  • 输出:函数模型
  1. 初始化参数 $\theta^{(0)} = (\theta_1^{(0)},…,\theta_d^{(0)})$, 开始迭代

  2. 第i次迭代,记 $\theta^{(i)} = (\theta_1^{(i)},…,\theta_d^{(i)})$, 为参数$\theta = (\theta_1,…,\theta_d)$的估计值,计算

  3. 进行d次条件极大化

    1. 在$\theta1^{(i)},…,\theta{j-1}^{(i)},\theta_{j+1}^{(i)},…,\theta_d^{(i)}$ 保持不变条件下 ,求使$Q(\theta, \theta^{(i)})$达到极大的 $\theta_j^{(i+1)}$

    2. j从1到d,进行d次条件极大化的,得到 $\theta^{(i+1)} = (\theta_1^{(i+1)},…,\theta_d^{(i+1)})$ 使得

  4. 重复2、3直到收敛