Bootstrap

[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的存在,该分布很难获取。所以只能通过一些采样的方法,获取其近似值。

;