深度置信网络(Deep belief network)matlab初解

本文布局如下:首先是本文的基本思想,然后结合实例给出程序输入输出接口,然后是每个程序所起的作用,之后是具体每个程序的matlab实现,再之后是相关的备注;
一、基本思想
1、首先引入实例,然后训练深度置信网络,然后进行测试;
2、深度置信网络的训练中,首先进行初始化参数和网络结构,然后依据RBM来训练DBN中每一层的网络参数,然后将训练得到的参数作为深度神经网络的每一层参数,之后使用常规的BP神经网络扩展而来的深度神经网络方法,对深度神经网络的参数进行更新;
3、RBM层与层之间的实现:将上一层的隐层输出作为当前层的可视层输入
4、RBM层内的训练方法:生成有多个样本组成的批次,然后依据对比散度方法(Contrastive Divergence -1)使用概率函数反复生成隐层和可视层的显隐性(v1-h1-v2-h2),然后据此求解该层的各类型参数(权重W,可视层偏置b,隐层偏置c)的增量及最后值
二、输入输出接口
本文以MNIST手写数字识别为研究对象,输入的是10000幅像素为28*28的手写图片,输出的是图片所属的类别(1-10,这10个数字)
对于其他例子,分类问题,亦是如此
三、相关函数
1、function test_example_DBN:主程序,导入样本集,用于训练和测试生成神经网络
2、function dbn = dbnsetup(dbn, x, opts):对于DBN中多层限制玻尔兹曼机(Restricted Boltzmann Machine)的参数初始化
3、function dbn = dbntrain(dbn, x, opts):训练DBN网络,对DBN中多层RBM中的每一层RBM进行训练
4、function rbm = rbmtrain(rbm, x, opts):具体实现每一层RBM的参数求解
5、function x = rbmup(rbm, x):在上一层RBM求解完毕后,将上一层中的隐层输出作为本层可视层输入
6、function nn = dbnunfoldtonn(dbn, outputsize):将生成的多层RBM转换成多层的神经网络(这里看出所训练的RBM起的主要作

你可能感兴趣的:(神经网络)