受限玻尔兹曼机

-训练方式:对比散度方法(示例代码如下,原博客为https://blog.csdn.net/slx_share/article/details/92072228?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158618471519724848303380%2522%252C%2522scm%2522%253A%252220140713.130056874..%2522%257D&request_id=158618471519724848303380&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-all_SOOPENSEARCH-1)

import numpy as npdef sigmoid(z):return 1/(1+np.exp(-z))class RBM:def __init__(self,n_visible,n_hidden):super().__init__()self.n_visible=n_visibleself.n_hidden=n_hiddenself.bias_a=np.zeros(self.n_visible)self.bias_b=np.zeros(self.n_hidden)self.weights=np.random.normal(0,0.01,size=(self.n_visible,self.n_hidden))self.n_sample=Nonedef encode(self,v):return sigmoid(self.bias_b+v@self.weights)def decode(self,h):return sigmoid(self.bias_a+h@self.weights.T)def gibbs_sample(self,v0,max_cd):v=v0for _ in range(max_cd):p_h=self.encode(v)h=np.random.binomial(1,p_h,(self.n_sample,self.n_hidden))p_v=self.decode(h)v=np.random.binomial(1,p_v,(self.n_sample,self.n_visible))return vdef update(self,v0,v_cd,eta):p_h=self.encode(v0)p_h_cd=self.encode(v_cd)self.weights+=eta*(v0.T@p_h-v_cd.T@p_h_cd)self.bias_a+=eta*np.mean(v0-v_cd,axis=0)self.bias_b+=eta*np.mean(p_h-p_h_cd,axis=0)returndef fit(self,data,max_step=100,max_cd=2,eta=0.1):assert data.shape[1]==self.n_visibleself.n_sample=data.shape[0]for i in range(max_step):v_cd=self.gibbs_sample(data,max_cd)self.update(data,v_cd,eta)error=np.sum((data-v_cd)**2)/self.n_sample/self.n_visible*100if not i%100:print("可视层的误差状态比例:{0}%".format(round(error,2)))returndef predict(self,v):p_h=self.encode(v)[0]states= p_h >= np.random.rand(len(p_h))return states.astype(int)if __name__=="__main__":rbm_model=RBM(n_visible=6,n_hidden=2)train_data=np.array([[1,1,1,0,0,0],[1,0,1,0,0,0],[1,1,1,0,0,0],[0,0,1,1,1,0],[0,0,1,1,0,0],[0,0,1,1,1,0]])rbm_model.fit(train_data,max_step=1000,max_cd=1,eta=0.1)print(rbm_model.weights,rbm_model.bias_a,rbm_model.bias_b)user=np.array([[0,0,0,1,1,0]])print(rbm_model.predict(user))

深度玻尔兹曼机

-由受限玻尔兹曼机堆叠而成

训练方法

-逐层调整连接权重和偏置

具体做法:

-作为生成模型

去除输入数据中含有的噪声,得到新的数据,对输入数据压缩和特征表达

-作为判别模型

在顶层加一层softmax实现分类

深度信念网络

-低层是有向连接的(自上而下)

-训练过程

自编码器

-一种有效的数据维度压缩算法

-基本形式

-主要应用

1.得到有效特征表达

2.初始化参数

-编码器类型

1.自编码器

2.降噪自编码器

输入为:加入随机噪声的样本

目标为:使重构结果与不含噪声的样本之间的误差收敛于极小值

3.稀疏自编码器

-通过增加正则化项,大部分单元都为0

4.栈式自编码器

玻尔兹曼机、深度信念网络、编码器等生成模型相关推荐

  1. 常见的五种神经网络(4)-深度信念网络(下)篇之深度信念网络的原理解读、参数学习

    该系列的其他文章: 常见的五种神经网络(1)-前馈神经网络 常见的五种神经网络(2)-卷积神经网络 常见的五种神经网络(3)-循环神经网络(上篇) 常见的五种神经网络(3)-循环神经网络(中篇) 常见 ...

  2. 深度学习:自编码器、深度信念网络和深度玻尔兹曼机

    最近自己会把自己个人博客中的文章陆陆续续的复制到CSDN上来,欢迎大家关注我的 个人博客,以及我的github. 本文主要讲解有关自编码器.深度信念网络和深度玻尔兹曼机的相关知识. 一.自编码器 1. ...

  3. 机器学习笔记之深度信念网络(二)模型构建思想(RBM叠加结构)

    机器学习笔记之深度信念网络--模型构建思想 引言 回顾:深度信念网络的结构表示 解析RBM隐变量的先验概率 通过模型学习隐变量的先验概率 小插曲:杰森不等式(2023/1/11) 杰森不等式的数学证明 ...

  4. 深度信念网络与受限玻尔兹曼机

    本篇非常简要地介绍了深度信念网络的基本概念.文章先简要介绍了深度信念 网络(包括其应用实例).接着分别讲述了:(1) 其基本组成结构--受限玻 尔兹曼机的的基本情况,以及,(2) 这个基本结构如何组成 ...

  5. 从RBM(受限玻尔兹曼机)开始、到深度信念网络(DBN)再到自动编码器(AE)

    从RBM(受限玻尔兹曼机)开始.到深度信念网络(DBN)再到自动编码器(AE) 目录

  6. 大话深度信念网络(DBN)

    -- 原文发布于本人的微信公众号"大数据与人工智能Lab"(BigdataAILab),欢迎关注. 让我们把时间拨回到2006年以前,神经网络自20世纪50年代发展起来后,因其良好 ...

  7. 2021-03-27 深度信念网络(DBN)学习笔记

    目录 前言 1.BM 2.RBM 二.DBN 总结 前言 仅此以记录学习过程.深度信念网络(DBN)通过采用逐层训练的方式,解决了深层次神经网络的优化问题,通过逐层训练为整个网络赋予了较好的初始权值, ...

  8. 逐步理解深度信念网络

    深度信念网络(DBN)是通过逐层训练的方式,解决深层次神经网络的优化问题,通过逐层训练为整个网络赋予了较好的初始权值,使得网络只要经过微调就可以达到最优解. 训练DBN时最重要的是"受限玻尔 ...

  9. 理论优美的深度信念网络,Hinton老爷子北大最新演讲

    https://www.toutiao.com/a6690758262603645453/ 深度信念网络曾照亮了深度学习的前进之路,今天,Hinton 通过远程视频演讲,再一次为我们展现了DBN的思想 ...

最新文章

  1. monocle3包的安装
  2. 详解Linux-I2C驱动
  3. u-boot移植第一弹——制作可用的BL1
  4. 【论文阅读-Bidding】《Feedback Control of Real-Time Display Advertising》
  5. dfa转正则表达式_从0到1打造正则表达式执行引擎(二)
  6. 微课|玩转Python轻松过二级:第2章课后习题解答(3课,79题)
  7. Pytorch:损失函数
  8. mysql主从复制-主库已有数据
  9. cmd怎么使用post请求’_flutter中dio的post请求方式使用总结
  10. x86汇编指令集大全注释(二)
  11. PLC和MCU单片机有什么差异
  12. .Net读取Excel的数据类型不统一获取空值问题
  13. 三维闭合B样条曲线拟合算法Matlab代码
  14. 20140925百度校园招聘二面
  15. python海龟库函数大全_python海龟库的使用
  16. STM32开发笔记108:将STM32CubeIDE设置为中文
  17. 上帝在逃亡,撒旦在流浪
  18. 解读公司搬家注意事项
  19. 普顿外汇告诉大家如何在外汇市场保持良好的心态?
  20. 一款学习游戏化的APP

热门文章

  1. css svg做动图,用svg动态绘制图形
  2. Python使用Plotly绘图工具,绘制散点图、线形图
  3. 服务器IIS架设网站无法增加log文件
  4. 线圈拉链行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  5. PHP快手直播弹幕采集,获取斗鱼弹幕php版(原创)
  6. stl文件 python_用Python从STL文件绘制2D图像
  7. discuz mysql 配置_Discuz如何修改数据库配置?
  8. Windows11 笔记本有线连接 WLAN(WIFI)共享方法(不知道Win10这种方法好不好使)
  9. win10专业版虚拟机配置服务器,windows10专业版使用虚拟机Hpyer-V的办法
  10. 碎片粘合:Tasking DD 启发的思考