[Deeplearning]能量模型(EBM)

本篇博客是对基于能量的模型和波尔兹曼机学习的总结。

1. 基于能量的模型(EBM)

基于能量的模型主要有两个任务,一个是推断(Inference),在给定观察变量的情况下,找到使能量值最小的那些隐变量的配置。另一个是学习(Learning),寻找一个恰当的能量函数,使得观察变量的能量比隐变量的能量低。
基于能量的概率模型通过一个能量函数来定义概率分布。
p(x)=eE(x)Z...(1)
其中Z为规规整因子.
Z=xeE(x)...(2)
基于能量的模型可以利用梯度下降过随机梯度下降的方法来学习。比如使用负对数作为损失函数。
l(θ,D)=L(θ,D)=1Nx(i)Dlogp(x(i))...(3)
其中 θ 为模型参数。对损失函数求偏导得到
Δ=l(θ,D)θ=1Nlogp(x(i))θ

2. 包含隐单元的EBM

很多情况下我们无法观察到样本所有属性,或者我们需要引进一些没有观察到的变量,来增加表达能力。这样就得到包含隐含变量的EBM
P(x)=hP(x,h)=heE(x,h)Z
其中 h 表示隐藏变量。
为了模型统一,引入自由能量函数,
F(x)=logheE(x,h),
P(x) 可以写成
P(x)=eF(x)Z
梯度下降为
Δ=logp(x)θ=(F(x)logZ)θ=F(x)θxˆp(xˆ)F(xˆ)θ

包含两项,第一项增加训练数据的概率(通过减小对应的自由能量),第二项则减小模型生成的样本的概率。
通常很难精确计算这个梯度,因为第一项涉及到可见单元与隐含单元的联合分布,由于归一化因子Z的存在,该分布很难获取。所以只能通过一些采样的方法,获取其近似值。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
EBM模型和SBM模型是社会网络中常用的两种模型,它们的区别主要体现在以下几个方面。 首先,EBM模型是基于指数随机图的社区检测模型,该模型假设社交网络中的节点服从指数分布。该模型适用于大规模网络,在节点度数呈现幂律分布的情况下能够准确地发现社区结构。而 SBM模型则是基于随机块模型的社区检测模型,该模型假设网络中的节点属于不同的社区,并且社区内的节点存在较高的连接概率,而社区之间的连接概率较低。该模型适用于小规模网络,并且需要预先知道社区的数量。 其次,EBM模型和SBM模型的目标函数不同。EBM模型通过最大化对数似然估计来寻找社区结构,而SBM模型则是通过最大化模块度来寻找社区结构。 另外,EBM模型和SBM模型在处理重叠社区的能力上也存在差异。EBM模型能够检测到一个节点同时属于多个社区,即重叠社区。而SBM模型主要用于检测非重叠社区,即一个节点只能属于一个社区。 此外,EBM模型和SBM模型在计算复杂性上也有差异。由于SBM模型要考虑到社区之间的连接概率,因此在大规模网络中计算复杂度较高。而EBM模型的计算复杂度较低,适用于大规模网络。 综上所述,EBM模型和SBM模型在假设、目标函数、处理重叠社区的能力以及计算复杂度等方面存在显著区别。选择哪种模型应根据具体的网络特点和研究需要来决定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值