[Machine Learning] RBM Brief Introduction

这里简单概括一下RBM模型构建、求解以及评估的基本思路,希望能给想了解RBM模型的同学一点帮助。

Restricted Boltzmann Machine 是一个基于能量表示而定义的模型,其结构就是两层的神经网络,一个可见层V和一个隐层H,同一层之间的单元不存在连接,层之间全连接。

根据RBM的网络结构,可以定义出系统中的能量函数,我们称为E。在物理中,一个系统的能量越小,那么其稳定的概率越大。因此有了能量函数之后,就能定义该系统稳定的概率了,这里我们称为P,这个P是V和H的联合概率。

在RBM中,已知其中一层的状态,另外一层的状态是条件独立的。我们常用RBM中每个单元的取值是二元的,即非0及1。

那么通过上面的描述,一个模型就构建完成了。现在给定训练数据,我们需要用这个模型来拟合训练数据,并且求解这个模型中的参数。

在模型中,我们已经可以表示出可见层和隐层的联合概率分布了,那么边缘概率分布也能表示出来。边缘分布就可以用来表示样本的分布了,我们希望在这个RBM表示的边缘分布下,样本的似然函数最大,这就是我们的目标函数。

在目标函数确定的情况下,最简单的优化方法就是梯度法咯。我们通过将目标函数对各参数进行求导,就能得到梯度了。但是求导之后发现,梯度中带有\sum_V的项,也就是相当于有对P(V)的期望项。这下糟了,如果说可见层有n个单元,那么V的状态为2^n种,显然这是不可枚举的。

于是你想到了使用MCMC的Gibbs方法进行采样来近似这个期望,但是在Gibbs中,需要进行多次的采样才能逼近真正的分布,这下复杂度又觉得略高了。既然我们RBM模型的最终目的是要拟合训练数据的分布,那么我们可不可以在Gibbs的一开始就从样本开始,然后进过K步进行sampling,这样是不是能更快的收敛到目标分布呢?基于这个想法,Hinton就在2002年发明了 Contrastive Divergence 算法,这个算法通常在进行1次迭代的时候就能取得好的效果,因此RBM的优化问题的复杂度就降下来了。

最后,我们如何评价RBM模型的好坏呢?比如说我们在分类问题中,需要使用正确率或者错误率来判断模型的优劣,那么我们如何判断RBM模型的优劣呢?你肯定会想,我们就是用模型对训练数据的似然表示评价该模型呗,但是要知道通过能量函数到概率那一步,存在一个归一化因子,这个归一化因子要枚举是非常困难的。

因此我们考虑使用重构误差来评价模型,所谓重构误差就是样本根据RBM的分布,经过一次Gibbs采样得到的V‘,我们计算V和V‘之间的差异,这个差异可以是1范数也可以是2范数。

以上就是RBM模型整体思路的简单概括了,希望能给想了解RBM模型的初学者一点帮助。

时间: 2024-11-01 07:50:45

[Machine Learning] RBM Brief Introduction的相关文章

Andrew Ng Machine Learning - Week 1: Introduction

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction Environment Setup Instructions 这一章介绍课程一般使用的工具.octave或者matlab即

2013 UBC Machine Learning NO.7 Introduction to Gaussian Processes NO.8 Gaussian Processes

原文地址:https://www.cnblogs.com/ecoflex/p/9122942.html

Introduction to Machine Learning

Chapter 1 Introduction 1.1 What Is Machine Learning? To solve a problem on a computer, we need an algorithm. An algorithm is a sequence of instructions that should be carried out to transform the input to output. For example, one can devise an algori

Introduction ----- Stanford Machine Learning(by Andrew NG)Course Notes

最近学习了coursera上面Andrew NG的Machine learning课程,课程地址为:https://www.coursera.org/course/ml 在Introduction部分NG较为系统的概括了Machine learning的一些基本概念,也让我接触了一些新的名词,这些名词在后续课程中会频繁出现: Machine Learning Supervised Learning Unsupervised Learning Regression Problem Classifi

A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning

A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning by Jason Brownlee on September 9, 2016 in XGBoost 0 0 0 0 Gradient boosting is one of the most powerful techniques for building predictive models. In this post you will dis

(转)Introduction to Gradient Descent Algorithm (along with variants) in Machine Learning

Introduction Optimization is always the ultimate goal whether you are dealing with a real life problem or building a software product. I, as a computer science student, always fiddled with optimizing my code to the extent that I could brag about its

Machine Learning Algorithms Study Notes(1)--Introduction

Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    What is Machine Learning    1 1.2    学习心得和笔记的框架    1 2    Supervised Learning    3 2.1    Perceptron Learning Algorithm (PLA)    3 2.1.1    PLA -- "知

An introduction to machine learning with scikit-learn

转自 http://scikit-learn.org/stable/tutorial/basic/tutorial.html#machine-learning-the-problem-setting In general, a learning problem considers a set of n samples of data and then tries to predict properties of unknown data. If each sample is more than

[Machine Learning (Andrew NG courses)]I. Introduction

1.What is machine learning? Machine learning is the field of study that gives computers the ability to learn without being explicitly programmed. A computer program is said to learn from experience E with respect to some task T and some performance m