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

【深度学习|学习笔记】Deep Belief Network(DBN,深度置信网络)起源、原理、发展和应用(附代码)

【深度学习|学习笔记】Deep Belief Network(DBN,深度置信网络)起源、原理、发展和应用(附代码)

【深度学习|学习笔记】Deep Belief Network(DBN,深度置信网络)起源、原理、发展和应用(附代码)


文章目录

  • 【深度学习|学习笔记】Deep Belief Network(DBN,深度置信网络)起源、原理、发展和应用(附代码)
    • 一、起源:深度学习的奠基者之一
      • 1.1 提出背景
    • 二、原理:由 RBM 堆叠构成的无监督-有监督结合网络
      • 2.1 基本结构
      • 2.2 两阶段训练机制
      • 2.3 RBM简述
    • 三、发展与演进
      • 3.1 高光时期(2006-2012)
      • 3.2 转型期(2012年以后)
      • 3.3 当前定位
    • 四、改进方向
      • 4.1 Deep Boltzmann Machine(DBM)
      • 4.2 Discriminative DBN
      • 4.3 DBN + CNN / RNN
    • 五、应用场景
    • 六、Python代码实现示例(使用 Scikit-learn 实现 DBN 结构)
    • 七、代码解析要点
    • 八、结语:DBN 的深远意义


欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/2401_89898861/article/details/146957339


一、起源:深度学习的奠基者之一

1.1 提出背景

2006年,Geoffrey Hinton、Simon Osindero 和 Yee-Whye Teh 在《A fast learning algorithm for deep belief nets》中首次系统提出 DBN 概念,旨在解决深层神经网络中梯度消失、训练困难、过拟合等问题。

  • 在深度学习尚未广泛流行之前,这项工作点燃了学界对“深层神经网络可训练”的热情,DBN 被认为是现代深度学习浪潮的起点。

二、原理:由 RBM 堆叠构成的无监督-有监督结合网络

2.1 基本结构

  • DBN 是由多个 受限玻尔兹曼机(RBM) 层层堆叠而成的网络,每个 RBM 是一个生成模型,能够学习数据的潜在表示。
  • 结构示意:
输入层 → RBM1 → RBM2 → ... → RBMn → 输出层(分类器)

2.2 两阶段训练机制

  • 无监督预训练(逐层训练):
    每层作为独立 RBM 训练,学习当前层的特征表示。
  • 有监督微调(全局调优):
    将全部层连接后加入输出层(如Softmax/MLP),使用反向传播算法进行有监督微调。

2.3 RBM简述

  • 可视单元:输入层神经元
  • 隐藏单元:学习到的特征
  • 权重更新方式:使用对比散度(Contrastive Divergence)算法进行快速近似学习

三、发展与演进

3.1 高光时期(2006-2012)

  • DBN 一度成为图像识别、语音识别等任务的主力模型。
  • 被称为深度学习复兴的开端。

3.2 转型期(2012年以后)

  • 随着卷积神经网络(CNN)和循环神经网络(RNN)的兴起,以及 GPU 的广泛使用,端到端训练更加高效,DBN 热度减退。

3.3 当前定位

  • 虽不再主流,但在小样本学习、生成建模、低资源任务、教学场景仍具参考价值。
  • 为当前的 预训练-微调范式(如BERT、GPT) 提供理论基础。

四、改进方向

4.1 Deep Boltzmann Machine(DBM)

  • 强化了隐藏层之间的双向连接,更好地建模联合概率分布,但训练复杂。

4.2 Discriminative DBN

  • 将预训练的 DBN 用作判别模型,不仅学习表示,还聚焦判别任务。

4.3 DBN + CNN / RNN

  • 结合卷积结构和序列结构,提升模型泛化能力和对时空特征建模能力。

五、应用场景

在这里插入图片描述

六、Python代码实现示例(使用 Scikit-learn 实现 DBN 结构)

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.neural_network import BernoulliRBM
from sklearn.pipeline import Pipeline
from sklearn.neural_network import MLPClassifier
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import classification_report# 1. 加载手写数字数据
digits = load_digits()
X = digits.data
y = digits.target# 2. 数据归一化
X = MinMaxScaler().fit_transform(X)# 3. 划分训练/测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)# 4. 构建 DBN:RBM1 -> RBM2 -> MLP
rbm1 = BernoulliRBM(n_components=128, learning_rate=0.05, n_iter=10, random_state=0)
rbm2 = BernoulliRBM(n_components=64, learning_rate=0.05, n_iter=10, random_state=0)mlp = MLPClassifier(hidden_layer_sizes=(64,), max_iter=200, random_state=0)# 5. 管道集成
dbn = Pipeline(steps=[('rbm1', rbm1), ('rbm2', rbm2), ('mlp', mlp)])# 6. 模型训练
dbn.fit(X_train, y_train)# 7. 测试与评估
y_pred = dbn.predict(X_test)
print(classification_report(y_test, y_pred))

七、代码解析要点

在这里插入图片描述

八、结语:DBN 的深远意义

虽然 DBN 现在不是主流方法,但它:

  • 是现代深度学习的历史起点
  • 提出了逐层预训练理念,对 GPT、BERT 等预训练模型有启发意义
  • 仍然适用于特征提取、小样本学习和生成建模
http://www.xdnf.cn/news/288343.html

相关文章:

  • 【KWDB 创作者计划】基于 ESP32 + KWDB 的智能环境监测系统实战
  • 高可用架构设计——故障响应
  • Red Hat6.4环境下搭建DHCP服务器
  • 第六章 流量特征分析-蚁剑流量分析(玄机靶场系列)
  • MCP原理详解及实战案例(动嘴出UI稿、3D建模)
  • Linux系统安装PaddleDetection
  • 基于CBOW模型的词向量训练实战:从原理到PyTorch实现
  • 使用AI 将文本转成视频 工具 介绍
  • 实验-数字电路设计2-复用器和七段数码管(数字逻辑)
  • 在Ubuntu系统中安装桌面环境
  • 路由器详细讲解
  • Docker —— 隔离的基本操作(1)
  • SpringCloud GateWay网关
  • 排序用法(Arrays.sort)
  • AI笔记-1
  • Qwen2_5-Omni-3B:支持视频、音频、图像和文本的全能AI,可在本地运行
  • 【Flask】ORM模型以及数据库迁移的两种方法(flask-migrate、Alembic)
  • 【全队项目】智能学术海报生成系统PosterGenius--前后端系统介绍
  • Vuex使用指南:状态管理
  • Leetcode:回文链表
  • GGD独立站的优势
  • 备战蓝桥杯国赛第一天-atcoder-beginner-contest404
  • Python异步编程进阶:深入探索asyncio高级特性
  • 从零开始开发纯血鸿蒙应用之NAPI
  • Linux的web服务器的部署及优化
  • 关于浏览器页面自动化操作
  • Python 矩阵运算:从理论到实践
  • 五大神经网络开发实战:从入门到企业级部署
  • 《Python星球日记》第30天:Flask数据库集成
  • 虚幻基础:硬件输入