深度学习导论及案例分析》一2.10概率图模型的学习

简介:

#### 本节书摘来自华章出版社《深度学习导论及案例分析》一书中的第2章,第2.10节,作者李玉鑑 张婷,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.10概率图模型的学习

在给定一个关于随机向量X的数据样本集合S={x1,x2,…,xN}时,常常需要对X的概率分布进行建模。不妨假设S中的每个样本都是独立同分布的(independent and identically distributed,i.i.d),且都服从未知的真实联合概率分布P(X)。学习概率图模型的任务可以描述为:给定样本集合S,返回一个对P(X)逼近最好的概率图模型。这种类型的学习称为生成学习(generative learning),其目标是对数据的生成过程进行建模。一般说来,精确计算P*(X)几乎是不可能的,尤其是在可以利用的样本相对较少时。

贝叶斯网络的生成学习就是在给定网络结构和数据样本集S的条件下,对所定义概率分布中的局部参数Θ={θ1,θ2,…,θN}进行极大似然估计(maximumlikelihood estimation,或译为最大似然估计),其中相应概率分布表达为:

P(X)=∏Ni=1P(XiPa(Xi),θi)(2.101)

如果令Pai=Pa(Xi)和xPai=x(Pa(Xi)),那么对于独立同分布样本集S,贝叶斯网络的总体对数似然L(B;S)可以分解为单个样本对数似然(θi,S)的和,即:

L(B;S)=∑Nl=1∑Li=1logP(xlixlPai,θi)=∑Li=1(θi,S)(2.102)

其中(θi,S)又可以分解为局部条件概率的对数和:

(θi,S)=∑Nl=1logP(xlixlPai,θi)(2.103)

因此,在(θi,S)仅依赖于θi的条件下,最大化总体对数似然等价于分别通过最大化单个样本对数似然,对每个局部参数θi进行估计。否则,问题可能变得非常复杂。

马尔可夫网络M的生成学习就是在给定网络结构和数据样本集S={x1,…,xN}的条件下,对一个通过能量函数定义的概率分布族中的参数θ进行极大似然估计。如果用p(x)表示马尔可夫网络的概率分布,那么相应的对数似然函数如下:

L(M;S)=log∏Nl=1p(xlθ)=∑Nl=1logp(xlθ)(2.104)

如果S中的每个样本都是独立同分布的且都服从未知的真实概率分布q(x),那么最大化L(M;S)等价于最小化q和p之间的KL散度,即:

KL(qp)=∑q(x)logq(x)p(x)=∑q(x)logq(x)-∑q(x)logp(x)(2.105)

KL散度可以用来度量两个概率分布的差异,具有非对称性和非负性,并且当且仅当两个分布相同时值为0。如公式(2.105)所示,在最小化KL散度时,只有第二项依赖于需要优化的参数。

一般说来,对于马尔可夫网络的吉布斯分布,计算最优的极大似然参数θ几乎是不可能的,通常需要采用近似方法,如梯度上升(gradient ascent)[110]、梯度下降(gradient descent)[111]和变分学习(variational learning)[112]等方法。梯度上升(或下降)是近似计算函数极值的基本方法,变分学习则是一类在机器学习中近似计算积分或期望的常用方法。

除了生成学习之外,概率图模型的学习还包括结构学习和判别学习等内容。生成学习的根本目标是确定数据样本的真实概率分布。结构学习的根本目标是确定数据样本的概率图结构,主要方法有两种:基于约束的方法(constraintbased approach)[113]和基于打分的方法(scoringbased approach)[114]。判别学习的根本目标是确定数据样本的类别,但判别学习模型的出发点并不一定是概率图模型,主要方法包括:生成分类器(generative classifier)[115]、类别后验概率建模[116],以及支持向量机[117]和神经网络[118]等模型。这里不再一一赘述。

生成学习和判别学习的区别在于,生成学习得到的是联合概率模型P(X),而判别学习得到的是条件概率模型P(yX)。如果有足够表达能力的模型和有充足的训练数据,那么原则上通过生成方式学习和训练模型,可以得到最优的分类器。使用判别学习的原因在于,判别模型在解决分类问题时,不仅更简单、更直接,而且常常能够取得更好的效果。

相关文章
|
15天前
|
机器学习/深度学习 算法 测试技术
Python中实现多层感知机(MLP)的深度学习模型
Python中实现多层感知机(MLP)的深度学习模型
30 0
|
2天前
|
机器学习/深度学习 TensorFlow API
Python深度学习基于Tensorflow(3)Tensorflow 构建模型
Python深度学习基于Tensorflow(3)Tensorflow 构建模型
11 2
|
5天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
11天前
|
机器学习/深度学习 数据可视化 TensorFlow
【Python 机器学习专栏】使用 TensorFlow 构建深度学习模型
【4月更文挑战第30天】本文介绍了如何使用 TensorFlow 构建深度学习模型。TensorFlow 是谷歌的开源深度学习框架,具备强大计算能力和灵活编程接口。构建模型涉及数据准备、模型定义、选择损失函数和优化器、训练、评估及模型保存部署。文中以全连接神经网络为例,展示了从数据预处理到模型训练和评估的完整流程。此外,还提到了 TensorFlow 的自动微分、模型可视化和分布式训练等高级特性。通过本文,读者可掌握 TensorFlow 基本用法,为构建高效深度学习模型打下基础。
|
13天前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
|
13天前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
15天前
|
机器学习/深度学习 监控 数据可视化
【日常聊聊】解决深度学习模型挑战:解释性与鲁棒性的平衡
【日常聊聊】解决深度学习模型挑战:解释性与鲁棒性的平衡
|
15天前
|
机器学习/深度学习 数据可视化 数据挖掘
【视频】少样本图像分类?迁移学习、自监督学习理论和R语言CNN深度学习卷积神经网络实例
【视频】少样本图像分类?迁移学习、自监督学习理论和R语言CNN深度学习卷积神经网络实例
|
15天前
|
机器学习/深度学习 TensorFlow API
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
|
15天前
|
机器学习/深度学习 编解码 算法
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例
R语言用FNN-LSTM假近邻长短期记忆人工神经网络模型进行时间序列深度学习预测4个案例