RBM的分析

Matlab的deep learning 的toolbox,https://github.com/rasmusbergpalm/DeepLearnToolbox代码很简单,比较适合用来学习算法,但是传说中的RBM并没有在toolbox中发现。里面有DBNs(deep belief nets)深度信念网络。
http://blog.csdn.net/dark_scope/article/details/9447967代码的讲解,但是这个代码的讲解跟the guid与其他的代码,比如先前研究的convolutional RBM.m-master
既然没有RBM不如直接去看DBNs好了
代码包括:dbnsetup.m dbntrain.m dbnunfoldtonn.m rbmdown.m rbmtrain.m rbmup.m
rbm = rbmtrain(rbm, x, opts)
输入:x:输入图像数据,介于0,1之间。
Opts,
opts.batchsize 小批量数据尺寸
opts.numepochs 迭代次数
rbm,
rbm.momentum 动量学习率,这个参数在the guid paper里有详细的介绍
rbm.W 连接权重矩阵
rbm.b 可见层的偏置向量
rbm.c 隐层的偏置向量
rbm.alpha 权重更新公式参数
batch = x(kk((l - 1) * opts.batchsize + 1 : l * opts.batchsize), :);
介绍RBM中的知识,参考的PPT
机器学习研究的主要任务是设计和开发计算机可以智能地根据实际数据进行“学习”的算法,从而使这些算法可以自动地发现隐藏在数据中的模式和规律。
Rbm网络结构如图所示:

RBM网络有几个参数,一个是可视层与隐藏层之间的权重矩阵Wn×m,一个是可视节点的偏移量b=(b1,b2⋯bn),一个是隐藏节点的偏移量c=(c1,c2⋯cm),这几个参数决定了RBM网络将一个n维的样本编码成一个什么样的m维的样本。
首先为了描述容易,先假设每个节点取值都在集合{0,1}中,即∀i,j,vi∈ {0,1},ℎj∈ {0,1} 。
一个训练样本x过来了取值为x=(x1,x2⋯xn),根据RBM网络,可以得到这个样本的m维的编码后的样本y=(y1,y2⋯ym),这m维的编码也可以认为是抽取了m个特征的样本。
隐藏节点的第j个特征的取值为1的概率为


其中的v取值就是x,hj的取值就是yj。
利用公式进行编码和反解码:
先利用公式 ,根据x的值计

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值