zoukankan      html  css  js  c++  java
  • 受限玻尔兹曼机——用在推荐系统里

    from:http://blog.csdn.net/xbinworld/article/details/44901865

    需要的背景知识

    要学习RBM需要的一些基本的统计学习基础,包括贝叶斯定理,随机采样方法(Gibbs sampling)等。这些可以翻阅我之前写的一些博文可以看到相关的介绍,在本文中就不具体展开了。总体来说RBM还是相对比较独立的一个算法,不需要依赖太多的先验知识。

    RBM基本概念

    受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及逐层预训练的训练方法,开启了深度学习的序章。其中,DBN中在层间的预训练就采用了RBM算法模型。RBM是一种无向图模型,也是一种神经网络模型。

    RBM具有两层:可见层(V层),以及隐藏层(H层),网络上比较常见的一张图是[1]: 
    这里写图片描述

    可以看到,两层神经元之间都是全连接的,但是每一层各自的神经元之间并没有连接,也就是说,RBM的图结构是一种二分图(bipartite graph)。正是这个特点,才叫受限玻尔兹曼及,玻尔兹曼机是允许同一层之间的神经元相连的。RBM其实是一种简化了的BM模型。

    还有一个特点,RBM中的神经元都是二值化的,也就是说只有激活和不激活两种状态,也就是0或者1;可见层和隐藏层之间的边的权重可以用WW来表示,WW是一个|V|×|H||V|×|H|大小的实数矩阵。后面一篇讲RBM求解的时候可以看到,算法难点主要就是对WW求导(当然还有bias参数),用于梯度下降的更新;但是因为V和H都是二值化的,没有连续的可导函数去计算,实际中采用的sampling的方法来计算,这里面就可以用比如gibbs sampling的方法,当然,Hinton提出了对比散度CD方法,比gibbs方法更快,已经成为求解RBM的标准解法。RBM求解部分将在下一小篇中具体介绍。

    OK,第一篇就到这里。

    觉得有一点点价值,就支持一下哈!花了很多时间手打公式的说~更多内容请关注Bin的专栏

    参考资料 
    [1] http://www.chawenti.com/articles/17243.html 
    [2] 张春霞,受限波尔兹曼机简介 
    [3] http://www.cnblogs.com/tornadomeet/archive/2013/03/27/2984725.html 
    [4] http://deeplearning.net/tutorial/rbm.html 
    [5] Asja Fischer, and Christian Igel,An Introduction to RBM 
    [6] G.Hinton, A Practical Guide to Training Restricted Boltzmann Machines 
    [7] http://blog.csdn.net/itplus/article/details/19168937 
    [8] G.Hinton, Training products of experts by minimizing contrastive divergence, 2002. 
    [9] Bengio, Learning Deep Architectures for AI, 2009

  • 相关阅读:
    开源程序postGIS为postgresql提供存储空间地理数据的支持
    oracle官方文档
    postgresql转换符
    【转】oracle的Interval类型详解
    [转]千万不要把灯泡放进嘴里
    服务器运维指令
    莫名其妙的时区问题
    Linux内存思想
    oracle提高查询效率24法
    哈佛大学图书馆凌晨4点的景象
  • 原文地址:https://www.cnblogs.com/bonelee/p/8565869.html
Copyright © 2011-2022 走看看