《深度学习导论及案例分析》一3.3受限玻耳兹曼机的变种模型

简介:

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

3.3受限玻耳兹曼机的变种模型

标准受限玻耳兹曼机又称为二值受限玻耳兹曼机(binary RBM或binomial RBM)或者二元受限玻耳兹曼机,由于它的所有可视节点和隐含节点都只能取0和1这两个值,所以在应用时受到较大的限制。尽管通过某些简单的“技巧”也可以使用二值受限玻耳兹曼机对连续分布进行一定程度的建模,但是这种技巧在一般情况下不足以对复杂的实际数据构造良好的模型[63]。

为了更好地抓住实值数据(如图像)的特点,可以通过修改能量函数的方法对标准受限玻耳兹曼机进行多种推广。一种常见的推广是高斯受限玻耳兹曼机(Gaussian RBM,GRBM)[151],其具有下面的能量函数:

ε(v,hθ)=12∑mj=1(vj-aj)2σ2-∑ni=1∑mj=1wijhivjσ2-∑ni=1bihi(3.22)

其中σ2是实值可视节点的方差,隐含节点仍然只限取0或1。

然而,高斯受限玻耳兹曼机并不足以对自然图像建立一个令人满意的模型[157]。这可能是因为高斯受限玻耳兹曼机主要用于对条件均值建模,不太适合非对角条件协方差建模。自然图像主要是通过像素值的协方差来表征的,而不是通过它们的绝对值[158]。因此,为了解决非对角条件协方差的建模问题,有必要提出其他的受限玻耳兹曼机模型,如协方差受限玻耳兹曼机(covariance RBM,cRBM)[159],这是一种三阶玻耳兹曼机[160],如图3.4所示。它的能量函数为:

ε(v,hc)=-12∑Ff=1∑nci=1Pifhci∑mj=1Cfjvj2-∑nci=1bcihci(3.23)


491ce1a455ea52cd7722eeed33d7ab42c3a5ade5

其中,nc表示协方差隐节点的个数,hc=(hc1,hc2,…,hcnc)T表示由协方差隐节点构成的向量,bci(1≤i≤nc)表示第i个协方差隐节点的偏置,C=(Cfj)F×m表示由F个行向量滤波器构成的实矩阵,P=(Pif)nc×F表示一个非负加权实矩阵。

将协方差受限玻耳兹曼机和高斯受限玻耳兹曼机相结合,就可以得到均值协方差受限玻耳兹曼机(mean and covariance RBM,mcRBM)[158]。它的能量函数形式如下:

ε(v,hc,hμ)=-12∑Ff=1∑nci=1Pifhci∑mj=1CfjCfvjv2-∑nci=1bcihci+12∑mj=1v2j

-∑nμi=1∑mj=1wijhμivj-∑nμi=1bμihμi(3.24)

其中Cf=(Cf1,Cf2,…,Cfm)T是矩阵C的第f个行滤波器。

与高斯受限玻耳兹曼机类似,均值协方差受限玻耳兹曼机也采用高斯分布对可视单元建模。但不同的是,均值协方差受限玻耳兹曼机把隐含层分为两个隐含节点的集合,以同时独立地对数据的均值和方差进行参数化表示。不过由于训练上的困难,均值协方差受限玻耳兹曼机几乎已经被学生T分布的平均积模型(meanproduct of Stdent’s Tdistributions model,mPoT)所取代[161]。mPoT模型是一种结合高斯受限玻耳兹曼机和学生T分布的模型[156]。

受限玻耳兹曼机的另一个变种模型是钉板受限玻耳兹曼机(spike and slab RBM,ssRBM)[163]。在该模型中,每个隐含节点都与两个变量关联,一个是取二值的钉变量(spike variable)hi∈{0,1},另一个是取K维实向量值的板变量(slab variable)si。与高斯受限玻耳兹曼机相比,钉板受限玻耳兹曼机的优点是对自然图像具有更强的建模能力。它的能量函数定义为:

ε(v,s,h)=12vTΛv-∑ni=1(vTWisihi+12sTiAisi+bihi)(3.25)

其中hi∈{0,1}是钉变量,si是板向量,Wi是大小为m×K的权值矩阵,Λ和Ai都是对角矩阵。

如果在受限玻耳兹曼机中把某些参数表达为另一组变量的函数,还可以得到条件受限玻耳兹曼机(conditional RBM)[164],如p(v,hC)。一种常见的条件C就是把隐含偏置向量b=(b1,b2,…,bn)T看作可视偏置向量a=(a1,a2,…,an)T的仿射函数,如b=β+Ma。如果把条件看作是若干关于过去的隐含变量,就得到隐马尔可夫模型。如果把条件看作是若干关于过去的可视变量和隐含变量构成的上下文,得到的就是时序受限玻耳兹曼机(temporal RBM)[165],即
p(vt,htCt)=p(vt,htvt-1,ht-1,…,vt-k,ht-k)(3.26)
事实上,受限玻耳兹曼机还有其他变种模型,包括卷积受限玻耳兹曼机[166]、因子化受限玻耳兹曼机(factorized RBM)[167]和时序因子化受限玻耳兹曼机(temporal factorized RBM)[168],等等。对标准受限玻耳兹曼机的更为一般的推广是选择任意如下形式的能量函数[169]:
ε(v,h)=∑i,ji,j(hi,vj)+∑jξj(vj)+∑iζi(hi)(3.27)
其中i,j、ξj和ζi都是实值函数,且它们保证配分函数Z是有限的。

最后应该提到的变种模型是一种分类受限玻耳兹曼机(Classification RBM,ClassRBM)[170]。ClassRBM用一个二值隐含向量h=(h1,h2,…,hm)对输入x=(x1,x2,…,xn)和目标类别y∈{1,…,C}的联合分布进行建模,其结构如图3.5所示。分类受限玻耳兹曼机的能量函数定义为

ε(y,x,hθ)=-hTWx-aTx-bTh-dTey-hTUey(3.28)

其中,参数为`javascript
θ={W,a,b,d,U},ey=(1i=y)Ci=1
`
示类别y的标签向量(第y个分量为1,其余分量为0)。


a5eec62634970e6b240b6d8b6bca0aae9e932d19

根据能量函数,不难得到的y、x和h的联合概率分布为:
p(y、x,h)=exp(-ε(y,x,h))Z(3.29)
其中,Z表示配分函数。

此外,对分类受限玻耳兹曼机还可以推导出下面的条件概率分布:

p(hy,x)=∏ip(hiy,x)

p(hi=1y,x)=σ∑jwijxj+uiy+bi(3.30)

p(xh)=∏jp(xjh)

p(xj=1h)=σ∑iwijhi+aj(3.31)

p(yh)=softmaxy∑iuijhi+dj=exp∑iuiyhi+dy∑djexp∑iuijhi+dj(3.32)

分类受限玻耳兹曼机可以采用标签CDk算法(即算法3.2)来训练。

算法3.2标签CDk算法(label CDk)

输入:ClassRBM(y1,...,yC,v1,...,vm,h1,...,hn),训练集S={(v(l),y(l)),1≤l≤N}

输出:梯度近似Δwij、 Δuic、 Δaj、 Δbi、 Δdc,其中,i=1,...,n, j=1,...,m,c=1,...,C

初始化:Δwij=Δuic=Δaj=Δbi=Δdc=0,其中,i=1,...,n, j=1,...,m,c=1,...,C

for l=1, …, N  do

g(0)v←v(l),g(0)y←y(l)

for t=0,...,k-1 do

for i=1,...,n do h(t)i~p(hig(t)v,g(t)y,θ) end for

for j=1,...,m do g(t+1)v,j~p(vjh(t),θ) end for

for c=1,...,C do g(t+1)y,c~p(ych(t),θ) end for

end for

for i=1,...,n,j=1,...,m do

Δwij←Δwij+p(hi=1gv(0),g(0)y,θ)•g(0)j~p(hi=1gv(k),g(k)y,θ)•g(k)j

end for

for i=1,…,n, c=1,…,C do

Δuic←Δuic+p(hi=1g(0)v,g(0)y,θ)•g(0)y,c~p(hi=1g(k)v,g(k)y,θ)•g(k)y,c

end for

for j=1,...,m do Δaj←Δaj+g(0)v,j-g(k)v,j end for

for c=1,...,C do Δdc←Δdc+g(0)y,c-g(k)y,c end for

for i=1,...,n do Δbi←Δbi+p(hi=1g(0)v,g(0)y,θ)-p(hi=1g(k)v,g(k)y,θ) end for

end for
相关文章
|
2月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
240 0
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
本文以 MNIST 手写数字识别为切入点,介绍了深度学习的基本原理与实现流程,帮助读者建立起对神经网络建模过程的系统性理解。
218 15
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?
本系列文章从机器学习基础出发,逐步深入至深度学习与Transformer模型,探讨AI关键技术原理及应用。内容涵盖模型架构解析、典型模型对比、预训练与微调策略,并结合Hugging Face平台进行实战演示,适合初学者与开发者系统学习AI核心知识。
232 15
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
357 3
|
3月前
|
机器学习/深度学习 存储 PyTorch
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
本文通过使用 Kaggle 数据集训练情感分析模型的实例,详细演示了如何将 PyTorch 与 MLFlow 进行深度集成,实现完整的实验跟踪、模型记录和结果可复现性管理。文章将系统性地介绍训练代码的核心组件,展示指标和工件的记录方法,并提供 MLFlow UI 的详细界面截图。
109 2
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
6月前
|
机器学习/深度学习 运维 自然语言处理
当深度学习遇上故障根因分析:运维人的绝佳拍档
当深度学习遇上故障根因分析:运维人的绝佳拍档
279 17
|
7月前
|
机器学习/深度学习 文字识别 自然语言处理
分析对比大模型OCR、传统OCR和深度学习OCR
OCR技术近年来迅速普及,广泛应用于文件扫描、快递单号识别、车牌识别及日常翻译等场景,极大提升了便利性。其发展历程从传统方法(基于模板匹配和手工特征设计)到深度学习(采用CNN、LSTM等自动学习高级语义特征),再到大模型OCR(基于Transformer架构,支持跨场景泛化和少样本学习)。每种技术在特定场景下各有优劣:传统OCR适合实时场景,深度学习OCR精度高但依赖大量数据,大模型OCR泛化能力强但训练成本高。未来,大模型OCR将结合多模态预训练,向通用文字理解方向发展,与深度学习OCR形成互补生态,最大化平衡成本与性能。
|
8月前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
312 22
|
5月前
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
603 64
计算机视觉五大技术——深度学习在图像处理中的应用

热门文章

最新文章