摘要: 1.类DBN1.__init__创建类对象。DBN是一个多层感知器,它的每个中间层都分别和一个RBM共享权重。我们首先把DBN建造成一个深度多层感知器(MLP)。在建每一MLP层的时候,同时构建和它相同权重的RBM层。然后对这些RBM层进行训练。由于和MLP层权重是同一个,意味着MLP的权重改变。最后进行微调。通过对MLP进行随机梯度下降来完成按照上面思路,对于结构中的每一层,进行下面操作。计算sigmoid层。输入:输入,输入维数,输出维数,和激活函数计算RBM层。输入:输入,输入维数,输出维数,sigmoid层的W和b参数。然后再在MLP的顶层加上一个逻辑层2.pretraining_fu 阅读全文
posted @ 2014-04-10 21:08 I know you 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 1.类RBM1.__init__创建RBM对象。2.free_energy计算自由能量3.propup把可见层计算到隐藏层4.sample_h_given_v这个函数根据可见单元推出隐藏单元的状态5.propdown把隐藏层计算到可见层6.sample_v_given_h这个函数根据隐藏单元推出可见单元的状态7.gibbs_hvh实施一步Gibbs采样,从隐藏层开始8,gibbs_vhv实施一步Gibbs采样,从可见层开始9.get_cost_updates实施一步CD-k或者PCD-k10.get_pseudo_likelihood_cost11.build_finetune_functio 阅读全文
posted @ 2014-04-10 20:42 I know you 阅读(757) 评论(0) 推荐(1) 编辑
摘要: 最近学习深度学习,学习时间半月不到,很多程序似懂非懂,用的又是不太明白的python。不过不怕。什么也难不倒无产阶级,自己剖析下,不指望指点别人,只希望高人能指点。主函数大体可以分为 建立DBN网络,预训练模型和微调模型三部分。1.建立DBN网络由class DBN(object)的__init__函数来完成,思路是由前面的隐含层生成后面的隐含层,并生成与每一个隐含层对应的RBM层2.预训练模型首先获得预训练函数,由class DBN(object)的pretraining_functions函数来完成,训练的对象是RBM层.里面的核心语句为cost, updates = rbm.get_co 阅读全文
posted @ 2014-04-10 11:55 I know you 阅读(2666) 评论(0) 推荐(0) 编辑