C/C++教程

训练RBM-Hinton系列论文《A practical guide to training Restricted Boltzmann Machines》

本文主要是介绍训练RBM-Hinton系列论文《A practical guide to training Restricted Boltzmann Machines》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1 简介 1
2 RBMs和对比散度的概览 1
3 当使用对比散度时如何收集统计信息 2
3.1 更新隐藏状态 2
3.2 更新可见状态 3
4 Mini-batch大小 3
5 监控学习的过程 3
6 监控过拟合 3
7 学习率 3
8 初始化权重和偏置 4
9 Momentum 4
10 权重衰减 4
11 鼓励稀疏的隐藏活跃 4
12 隐藏单元的数量 4
13 单元的不同类型 5
14 contrastive divergence变体 5
15 显示在学习中发生了什么 5
16 使用RBM进行识别任务 5
17 处理缺失值 5

1 简介

本文根据2010年Hinton写的《A practical guide to training Restricted Boltzmann Machines》翻译总结。

RBMs(Restricted Boltzmann Machines)的最重要的使用是作为形成深度信念网络的构成模块。

RBMs通常采用对比散度(contrastive divergence)的学习过程进行训练。

感觉本文看下目录标题就行了,了解下RBM的学习过程都需要注意哪些事项。

2 RBMs和对比散度的概览

一个二值向量的训练集合,我们假定为二值图像方便解释。该训练集合可以使用一个RBMs两层网络进行建模,随机二值像素是被连接到使用对称权重连接的随机二值特征检测者。像素对应于RBM的可见单元,因为他们的状态是可被观测到的;特征检测者对应于隐藏单元。可见单元和隐藏单元的联合配置有如下能量公式:
在这里插入图片描述

每个可能的可见和隐藏单元组合的概率,是如下能量函数:
在这里插入图片描述

其中Z是配分函数,是所有可见和隐藏单元组合的和,如下:

在这里插入图片描述

一个可见向量v的概率等于所有可能隐藏向量的和,如下:
在这里插入图片描述

其微分公式如下:
在这里插入图片描述

从而,
在这里插入图片描述

在这里插入图片描述

3 当使用对比散度时如何收集统计信息

我们假定所有可见和隐藏单元是二值的。我们也假定学习的目的是创建一个好的训练向量集合的生成模型。当使用RBMs学习深度信念网络,其后续会使用反向传播进行微调,生成模型不是最终的目的,它可能通过欠拟合节省时间。

3.1更新隐藏状态

假定隐藏单元是二值的,并且你正在使用CD1,那么隐藏单元当他们是被数据向量驱动时,其应该拥有随机二值状态。一个隐藏单元j开启的概率由其所有输入的逻辑函数σ(x)=1/(1+exp⁡(-x))计算得到,如下:
在这里插入图片描述

如果这个概率比一个在0和1间均匀分布的随机数大,隐藏单元就开启。
它是非常重要的使隐藏状态二值化,而不是采用概率本身。一个隐藏单元最多传递一个bit。

3.2 更新可见状态

假定可见单元是二值的,当生成重建时更新可见状态的正确方式是通过如下概率随机选择1或者0,这个概率由整个从上到下的输入决定。
在这里插入图片描述

4 Mini-batch大小

理想的mini-batch 大小经常等于分类的数量,每一个mini-batch应该包含每个类别的一个样例,减少采样错误。

5 监控学习的过程

容易计算训练数据和重建之间的平方误差,这个衡量指标通常在训练过程中输出。

它系统性的战胜了下面两个指标,第一个是在训练数据的空间分布和RBM均衡分布的差异;第二个是交替吉布斯马尔可夫链的mixing rate。

6 监控过拟合

当学习一个生成模型时,最明显的监控指标是当前模型分配在一个数据点上的概率。当这个概率在验证数据上开始减少时,就应该停止学习了。不幸的是,对于大的RBMs,计算该概率是非常困难的,因为其需要配分函数的知识。然而,它是有可能通过比较训练数据和验证集的自由能量直接来判断过拟合。这样就不需要配分函数。一个数据向量的自由能量可以实时计算得到,其与隐藏单元的数据线性相关。如果模型根本没有过拟合,在训练数据和验证数据上的平均自由能量应该是相等的。随着模型开始过拟合,验证集上的平均自由能量相对于训练集上的平均自由能量会上升,这间隙差表示过拟合的大小。

7 学习率

学习率不能很大。

8 初始化权重和偏置

在这里插入图片描述

9 Momentum

当目标函数包含长的、狭窄的、相当直的峡谷,同时该峡谷沿着峡谷的地面有一个温和但持续的坡度和沿着峡谷的边上有许多陡峭的坡度,Momentum是一个简单的方法来增加学习的速度。Momentum方法模拟一个重的球在地面滚动。该球沿着峡谷的地面增加速度,但没有跨过峡谷,因为在峡谷的对面边上的相反梯度随着时间推移抵消了彼此。

10 权重衰减

权重衰减是在正常的梯度上增加一个额外的项。这个额外的项是一个函数的导数,惩罚大的权重。如最简单的惩罚函数:L2。

11 鼓励稀疏的隐藏活跃

很少活跃的隐藏单元比那些大约一半时间都活跃的隐藏单元是更容易解释的。同时,识别能力可以通过使用那些很少活跃的特征来改善。

12 隐藏单元的数量

如果每张图片有1000像素,那训练10000张图像,这大约要百万参数级别模型。这就需要1000个全局的连接的隐藏单元。

13 单元的不同类型

RBM是使用二值的可见和隐藏单元发展起来的,但许多其他类型的单元可以使用。有如下类型:
1)Softmax and multinomial(多项式) units
2)Gaussian visible units
3)Gaussian visible and hidden units
4)Binomial(二项式) units
5)Binomial units

14 contrastive divergence变体

讲了一个“persistent contrastive divergence”,其比CD1在建立密集模型上更好,但在非密集上不比CD1好。

15 显示在学习中发生了什么

提到了权重直方图、每个二值隐藏单元的概率等。

16 使用RBM进行识别任务

提出了三种方式:
1)使用RBM学到的隐藏特征作为输入;
2)对每个类别训练一个独立的RBM;
3)使用一个单独的RBM训练一个联合密集模型,有两个可见单元集合,除了一个表示数据向量的单元,还有一个“softmax”标签单元表示类别。

17 处理缺失值

如标签数据的缺失。

这篇关于训练RBM-Hinton系列论文《A practical guide to training Restricted Boltzmann Machines》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!