当前位置: 首页 > news >正文

学习笔记|受限波尔兹曼机(RBM)

学习来源:
6分钟快速理解受限玻尔兹曼机(RBM)
2024诺贝尔"物理学"奖成果-受限玻尔兹曼机(RBM)讲解

文章目录

  • 1. 波尔兹曼机(Boltzmann Machine,BM)
  • 2. 受限波尔兹曼机(Restricted BM,RBM)
    • 2.1 基本概念
    • 2.2 RBM的推理和应用
    • 2.3 RBM的训练:Contrastive Divergence
    • 2.4 使用对比散度算法训练RBM的基本步骤
    • 2.5 代码例子
    • 2.6 Mnist数据集上的实验效果
  • 3. 发展:深度信念网络

1. 波尔兹曼机(Boltzmann Machine,BM)

(1)BM 是一种无方向的无监督生成网络。
(2)BM = 可见节点 + 隐藏节点,没有输出节点,必须将数据输入到隐藏节点。
在这里插入图片描述
(3)缺点:不容易训练,存在过拟合风险。

2. 受限波尔兹曼机(Restricted BM,RBM)

2.1 基本概念

(1)RBM 是一种概率图模型,用于无监督学习,以发现数据中的隐藏结构。
(2)RBM 是一种2层神经网络,RBM = 1层可见单元 + 1层隐藏单元。单元间通过对称加权连接。可见单元输入数据,隐藏单元学习数据特征。
在这里插入图片描述
(3)不同于BM,RBM可见节点间无连接。

2.2 RBM的推理和应用

给定一个图像,用RBM提取特征
在这里插入图片描述

2.3 RBM的训练:Contrastive Divergence

在这里插入图片描述
在这里插入图片描述

2.4 使用对比散度算法训练RBM的基本步骤

在这里插入图片描述

2.5 代码例子

import torch## 定义RBM
class RBM():def __init__(self,nv,nh):self.W = torch.randn(nh,nv)self.a = torch.randn(1,nh)self.b = torch.randn(1,nv)# 前馈重构过程def sample_h(self, x):wx = torch.mm(x, self.W.t())activation = wx + self.a.expand_as(wx)p_h_given_v = torch.sigmoid(activation)return p_h_given_v, torch.bernoulli(p_h_given_v) #进行伯努利采样# 反向重构过程def sample_v(self, y):wy = torch.mm(y, self.W)activation = wy + self.b.expand_as(wy)p_v_given_h = torch.sigmoid(activation)return p_v_given_h, torch.bernoulli(p_v_given_h)def train(self, v0, vk, ph0, phk):self.W += (torch.mm(v0.t(), ph0) - torch.mm(vk.t(), phk)).t() #第0轮与第k轮进行相减来做权重更新self.b += torch.sum((v0 - vk), 0)self.a += torch.sum((ph0 - phk), 0)## 训练RBM
rbm = RBM(visible_unit_num, hidden_unit_num)
for epoch in range(1, nb_epoch + 1):train_loss = 0s = 0.for id_user in range(0, nb_users - batch_size, batch_size):# 初始化 vk, v0vk = training_set[id_user:id_user+batch_size]v0 = training_set[id_user:id_user+batch_size]ph0,_ = rbm.sample_h(v0)for k in range(10):# 采样重构_,hk = rbm.sample_h(vk) _,vk = rbm.sample_v(hk)phk,_ = rbm.sample_h(vk)rbm.train(v0,vk,ph0,phk)train_loss += torch.mean(torch.abs(v0[v0>=0] - vk[v0>=0]))s += 1print('epoch:' + str(epoch) + 'loss:' + str(train_loss/s))

2.6 Mnist数据集上的实验效果

在这里插入图片描述

3. 发展:深度信念网络

解决早期深度学习挑战:深度神经网络不容易训练、计算机性能差
在这里插入图片描述

http://www.dtcms.com/a/528841.html

相关文章:

  • DiVE长尾识别的虚拟实例蒸馏方法
  • 视频网站很难建设吗珠海网站运营
  • h5游戏免费下载:废柴勇士
  • 简单的企业网站源码网站建设业务
  • 基于鸿蒙 UniProton 的汽车电子系统开发指南
  • 建设部质监局网站电子商务网站策划书2000字
  • 使用表达式树实现字符串形式的表达式访问对象属性
  • SFT(有监督微调)、RLHF(强化学习)、RAG(检索增强⽣成)
  • 网页设计模板图片代码seo岗位职责
  • wordpress开发网站html如何建网站
  • 深度学习核心模型详解:CNN与RNN
  • 哈尔滨整站如何做网站流量买卖
  • 智能制造知识图谱的建设路线
  • IPIDEA实现数据采集自动化:高效自动化采集方案
  • 网站开发认证考试wordpress目录 读写权限设置
  • 【51单片机】【protues仿真】基于51单片机热敏电阻数字温度计数码管系统
  • Java基础与集合小压八股
  • 网站建设做网站需要多少钱?杭州网站建设公司有哪些
  • [ Redis ] SpringBoot集成使用Redis(补充)
  • GitHub等平台形成的开源文化正在重塑伊朗人
  • 贵州省建设厅网站造价工程信息网东港建站公司
  • UE5 蓝图-17:主 mainUI 界面蓝图,构成与尺寸分析;界面菜单栏里按钮 Ul_menuButtonsUl 蓝图的构成记录,
  • 公司企业网站免费建设网站建设需要技术
  • SQL MID() 函数详解
  • SQL187 每份试卷每月作答数和截止当月的作答总数。
  • 三河建设局网站做学校网站用什么模版
  • 装修网站建设服务商wordpress 编辑图片无法显示
  • 建设网站要求有哪些营销型网站建设搭建方法
  • jQuery noConflict() 方法详解
  • JavaScript 性能优化系列(六)接口调用优化 - 6.4 错误重试策略:智能重试机制,提高请求成功率