deep learning toolbox学习使用3之DBN

本文详细介绍了深度信念网络(DBN)在MNIST数据集上的训练过程,包括数据初始化、训练阶段及将DBN结合到神经网络中生成分类器的方法。通过对比DBN与普通神经网络的时间与误差表现,展示了DBN在特征提取方面的优势。最终,通过两层DBN网络应用于MNIST数据集,验证了其在分类任务上的有效性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结合toolbox代码过程,总结一下DBN的过程:
1.数据初始化
如NN一样,使用mnist数据集,初始化学习率alpha,冲量项mometum,权重w,b(v层bias),c(h层bias)。与NN不同的是,w,b,c此处只是简单的初始化为0矩阵。
Q1:w,b,c只初始化为0可以?在NN中是不可以的,因为将导致算法失效。
Q2:只是将各维数据归到(0,1],没有做标准化归一化处理?
2.训练阶段
大体过程就是每层训练一个rbm,然后根据rbm训练的w,b去产生上层的输入,进而继续下一个rbm的训练,如NN一样,60000训练数据,100作为一个batch,每次训练600个batch。
对于rbm的训练,主要就是实现cd算法,cd算法就不在此具体解释过程:
a,根据v1去生成h1,这里使用的激活函数都是sigmoid函数,即h1=f(v1*w+c)
b,根据h1去构造v2,v2=f(h1*w+b)
c,根据v2重构h2,如a步。
完成cd算法之后,便是更新w,b,c,在更新中依旧是使用冲量项,即在新的梯度下降方向上加入原有方向的控制,这样实践中通常可以加快学习速度(防止平坦区域的慢速),具体如下:
vw = mometum*vw+alpha(h1'*v1-h2'-v2)
w = w + vw
vb = mometum*vb + alpha(sum(v1-v2)),这里的v1-v2其实很简单,因为每个神经元都是二元变量,找出前后err,便是相减找出不是0的,便是重构的err
b = b + vb
c的更新如b,不赘述
在更新过程中,可以看到err明显在递减,最开始有300(总共784维,可见最开始重构非常差),但最后600次的平均只有65的err,说明最后已经非常准了,非常接近原数据的分布。
至此,完成一次RBM的训练,那么对于上层,便是根据w和c去生成新的输入(这里的输出),需要注意的是,产的新的x = w*x+c,是60000一起产生,然后再如上述以100作为一个batch继续rbm的训练。
3.将dbn结合到nn中生成分类器
在toolbox我们设计的是784-100-100的dbn网络,然后再加上一个10个输出的输出顶层构成一个NN,也就是784-100-100-10的NN网络,补充一下,DBN层数越多,特征提取的能力越强越准,在这个两层的DBN中便可以看到,第一层的err有65,而第二层的err只有10,效果很明显。
与普通的NN相比,NN时间2.04s,err0.16;DBN时间2.32s,err0.15
个人感觉DBN应该要整体慢一些,因为要一层层训练rbm,而训练完rbm之后生成的nn就快了,因为一定程度上将rbm的作用就是生成更好的w的初始化,所以更快的收敛。
<think>嗯,用户想安装Deep Learning Toolbox到MATLAB里,但可能遇到了问题。首先,我需要回顾一下提供的引用内容,看看安装步骤是怎样的。根据引用1和2,安装步骤包括下载GitHub上的工具箱,放到MATLAB的toolbox目录,然后添加路径并保存。用户可能对具体操作不太清楚,比如如何找到MATLAB根目录,或者如何正确添加路径。 用户可能遇到的问题可能包括路径错误,或者没有保存路径导致重启MATLAB后失效。引用2提到要保存路径,这点很重要,用户可能忽略这一步。另外,用户可能下载的是master分支,可能需要检查版本兼容性,比如是否支持他们的MATLAB版本。 用户的问题是关于安装教程,所以需要一步步引导。可能需要详细说明每个步骤,尤其是如何找到matlabroot,以及替换路径的部分。还要提醒用户注意拼写错误,比如“toolbox”是否拼写正确,路径中的反斜杠是否用了单引号。 另外,引用3提到工具箱包括各种网络结构,用户可能在安装后想测试是否成功,可以建议他们运行示例代码。可能用户后续会遇到函数冲突,比如引用2提到的改写nntrain,需要提示可能需要注意的函数覆盖问题。 总结回答的结构应该是分步骤,详细说明每个操作,并给出验证安装的方法。同时,相关问题可以涉及常见错误、版本兼容性和基本使用方法,帮助用户进一步解决问题。</think>### Deep Learning Toolbox安装指南 根据引用内容,安装步骤如下: **步骤1:下载工具箱** 访问GitHub仓库下载DeepLearnToolbox[^3]: ```bash https://github.com/rasmusbergpalm/DeepLearnToolbox ``` **步骤2:定位MATLAB根目录** 在MATLAB命令行输入: ```matlab matlabroot ``` 例如输出结果为`D:\matlab\MATLAB2`,则toolbox路径为`D:\matlab\MATLAB2\toolbox`[^1] **步骤3:放置工具箱文件** 将解压后的`DeepLearnToolbox-master`文件夹复制到`toolbox`目录下,形成完整路径如: ``` D:\matlab\MATLAB2\toolbox\DeepLearnToolbox-master ``` **步骤4:添加并保存路径** 在命令行执行(注意替换实际路径): ```matlab addpath(genpath(&#39;D:\matlab\MATLAB2\toolbox\DeepLearnToolbox-master&#39;)); ``` 然后通过菜单`主页 > 设置路径 > 保存`永久生效[^2] **验证安装** 尝试调用工具箱函数: ```matlab test_example_DBN ``` 若显示网络训练过程,则安装成功[^3]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值