深度信念网络为什么不火(深度信念网络(Deep Belief Networks)简介)

在本文中,我们将查看DBN是什么,它们的组件是什么,以及它们在Python中的小应用程序,以解决手写识别问题(MNIST数据集)。

在了解DBN是什么之前,我们先来看看RBM,Restricted Boltzmann Machines。

受限玻尔兹曼机(restricted Boltzmann machine, RBM)

如果您知道什么是因子分析,RBM可以被看作是因子分析的二进制版本。所以我们不需要有很多因素来决定输出,我们可以用0或1的形式来表示二元变量。

举个例子:如果你读了一本书,然后以两种标准来评判这本书:要么你喜欢这本书,要么你不喜欢这本书。在这种情况下,我们可以使用rbm,这将帮助我们确【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.定做出这些选择背后的原因

RBM对神经网络采用概率方法,因此也称为随机神经网络。

如果我们分解RBMs,它们有三个部分:-

一个输入层即可见单元一个隐藏层,即隐藏单元一个偏差单元

在我上面给出的例子中,可见单位只是你是否喜欢这本书。隐藏单元帮助你找到你喜欢那本书的原因。偏差被加入到不同书籍的不同属性中。

让我们想象一下RBM:

红色是可见的单元,蓝色是隐藏的单位

让我们看看RBN在学习决策过程中所采取的步骤:-

计算Activation Energy计算Activation Energy的Sigmoid这将给出一个概率。使用这个概率隐藏单元可以打开或关闭可见单元中的任何节点。

既然我们已经有了受限玻尔兹曼机的基【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.本概念,让我们继续深入到深度信念网络

深度信念网络

DBNs有两个阶段:-

Pre-train阶段Fine-tune阶段

Pre-train阶段只不过是RBN的多层,而Fine-tune阶段则是前馈神经网络。让我们想象这两个步骤:-

DBN如何工作的呢?

利用对比散度算法求出可见单元的特征找到隐藏的单元特征,以及上面步骤中发现的特征当隐藏层学习阶段结束时,我们称之为训练后的DBN

MNIST数据集的实际应用

第1步是加载所需的库。dbn.tensorflow是一个github版本,您必须克隆存储库并将dbn文件夹粘贴到存在代码文件的文件夹中。链接到代码存储库在

https://github.com/albert【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.bup/deep-belief-network/。

from dbn.tensorflow import SupervisedDBNClassification

import numpy as np

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.metrics.classification import accuracy_score

第2步是读取可以从kaggle下载的csv文件(

https://www.kaggle.com/c/digit-recognizer)。

digits =【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业. pd.read_csv(“train.csv”)

第3步,让我们定义我们的自变量,它们只是像素值,并以变量X的numpy数组格式存储。我们将目标变量(实际数字)存储在变量Y中。

X = np.array(digits.drop([“label”], axis=1))

Y = np.array(digits[“label”])

第4步,让我们使用sklearn预处理类的方法:standardscaler。这用于转换正态分布格式的数字。

from sklearn.preprocessing import standardscaler

ss=standardscaler()

X = ss.fit_transfo【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.rm(X)

第5步,现在我们已经对数据进行了归一化,我们可以将它分成训练和测试集: –

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

第6步,现在我们将初始化我们的监督DBN分类器,以训练数据。

classifier = SupervisedDBNClassification(hidden_layers_structure = [256, 256],

learning_rate_rbm=0.05,

learning_rate=0.1,

n_epochs_rbm=10,

n_ite【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.r_backprop=100,

batch_size=32,

activation_function=relu,

dropout_p=0.2)

第7步,现在我们将来到训练部分,我们将使用拟合函数进行训练:

classifier.fit(X_train,Y_train)

在数据集上训练可能需要10分钟到1小时。培训完成后,我们必须检查准确性:

Y_pred = classifier.predict(X_test)

print(Done.\nAccuracy: %f % accuracy_score(Y_test, Y_pred))

我得到的输出是:

因此,在本文中,我们看到了DBN和RBM的简要介绍,然后我们查看了【我.爱.线.报.网.】52xbw .cn 每日持.续更新.可.实操.的副.业.实际应用的代码。希望它有用!

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

秀雅是谁(秀雅陷入绝望,而M又给她下了新的任务#漫画解说)

2024-7-22 6:30:57

行业资讯

小老树公司(“小老树”是怎样做成的)

2024-7-22 6:51:34

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索