这几天看Deep Learning,看RBM(转载了一些资料,都是这几天看的,还有下载的资料,就不上传了),做做笔记。暂时没太强的逻辑,以后慢慢整理。
1. RBM是两层神经网络,隐含层和显示层,两层之间有连接。
2. 有三类参数:(1)两层之间的连接权值,|h| * |v| 个,|h| 和 |v|分别是隐含层和显示层的节点个数;(2)显示层节点的偏置;(3)隐含层节点的偏置
3. RBM的作用是将数据输入到显示层,并由此训练隐含层,当隐含层“产生”的显示层数据与实际输入数据很接近的时候,隐含层就是输入数据的一种特征表示。RBM归根结底是学习特征表示。这也是很多deep learning的tutorial吹牛deep learning有多牛B的地方,就是自动学习特征,避免了特征工程中很多人为的、经验的因素。拿图像处理任务来说,输入的显示层是像素,经过RBM学习,RBM学到的隐含层就可能是xxx(尼玛,我不是这个专业的,自己想象吧);然后把学习到的隐含层,作为另一个RBM的显示层,继续学习,就能学习到更加抽象的特征;如此,多个RBM级联在一起,就学习到了图像在各个抽象层次的特征。
4. RBM训练的目标函数,就是模型“产生”显示层输入数据的概率的概率:
5. 训练原则是梯度下降方法,能推导出来全职更新公式如下:
6. <*>|data 这个数字好算,但是 <*>|model 这个计算起来比较麻烦,Hinton给出了CD(contrastive divergence)算法,能够有效计算 <*>|model。实际上是用Gibbs采样,用<*>|reconstruct 来代替 <*>|model 。公式如下:
参考这个文章 http://blog.csdn.net/celerychen2009/article/details/8984316
7. 那么什么是Gibbs采样?<*>|reconstruct 怎么算呢?
借用别人的话吧,自己懒得写了。“在训练过程中,首先将可视向量值映射给隐单元;然后可视单元由隐层单元重建;这些新可视单元再次映射给隐单元,这样就获取新的隐单元。执行这种反复步骤叫做吉布斯采样。隐层激活单元和可视层输入之间的相关性差别就作为权值更新的主要依据”
未完待续......
本文介绍了受限玻尔兹曼机(RBM)的基本概念,包括其结构特点、参数组成及特征学习过程。阐述了RBM作为一种生成式模型,在无监督学习中的应用,并详细解释了其训练方法,包括目标函数定义、梯度下降原则以及对比散度算法。
1万+

被折叠的 条评论
为什么被折叠?



