深度信念网络_Learning
1. 什么是深度信念神经网络?
答:深度信念神经网络,即:Deep Belief Network,是近年比较火的一种网络结构,在遥感分类中应用较多。深度信念神经网络是在深度神经网络结构的基础上的一种更新改进。(这样讲应该是不准确的,但对于初学者来说比较容易理解)
2. 什么是深度神经网络?
答:首次接触,可以联想到BP神经网络和卷积神经网络(CNN)。我们从传统的神经网络结构出发来对深度神经网络进行学习。我们以3层BP网络为例:
该网络结构由输入层、隐藏层、输出层构成。在传统的神经网络中,我们可以认为隐藏层是用于提取输入影像特征,故在这里也可写作特征层1(Feature 1)。在深度学习术语中,上述结构被称为自编码神经网络。传统的神经网络结构复习到这里。
下面,我们具体了解深度神经网络的结构是啥子样的。自编码神经网络能够实现对输入数据的重构(输入等于输入,允许存在一定的误差),如果这个网络结构已经训练好了,那么其中间层,就可以看作是对原始输入数据的某种特征表示。如果我们把它的第三层去掉,这样就是一个两层的网络。如果,我们把这个学习到的特征再用同样的方法创建一个自联想的三层BP网络,如上图所示。总结起来就是,第二次创建的三层自联想网络的输入是上一个网络的中间层的输出。用同样的训练算法,对第二个自联想网络进行学习。那么,第二个自联想网络的中间层是对其输入的某种特征表示。如果我们按照这种方法,依次创建很多这样的由自联想网络组成的网络结构,这就是深度神经网络,如下图所示:
废话了一大堆,我们总结一下啥子是深度神经网络:深度神经网络是在每一层对最原始输入数据在不同概念的粒度表示,也就是不同级别的特征描述。
3. 什么是DBN神经网络?
答: 使用BP算法单独训练每一层的时候,我们发现,必须丢掉网络的第三层,才能级连接自联想神经网络。然而,有一种更好的神经网络模型,这就是受限玻尔兹曼机(Restricted Boltzmann machine)。使用层叠波尔兹曼机组成深度神经网络的方法,在深度学习里被称作深度信念网络,即DBN,在下面的术语,将把自联想网络称作自编码(autoencoder)网络。经典的DBN网络结构是由若干层 RBM 和一层 BP 组成的一种深层神经网络, 结构如下图所示:
DBN在模型训练中主要分为两步:
① 预训练:分别单独无监督的训练每一层RBM网络,确保特征向量映射到不同特征空间,都尽可能的保留特征信息;它通过一个非监督贪婪逐层方法预训练获得权重(即不要类标,不断拟合输入,依次逐层)。在这个过程中,数据输入到可见层,生成一个向量V,在通过权值w传给隐藏层,得到h,由于隐藏层之间是无连接的,所以可以并行得到隐藏层所有节点值。通过隐层**单元和可视层输入之间的相关性差别(通过能量函数来度量网络的稳定性,优化函数是根据求能量函数球指数后,归一化,然后最大似然得到)就作为权值更新的主要依据。
上述貌似好复杂的样子,从单层的RBM训练说起,可见层是用来接受输入信号,隐藏层用来提取特征,RBM是通过无监督学习自动找到研究问题的最佳特征。
在DBN相关的文献中,你会发现有DBN的地方都离不来能量函数,什么是能量函数呢?
我们可以定义能量函数为:
这里说一下RBM 的能量模型,这里关系到 RBM 的理解。**能量模型是个什么样的东西呢?**直观上的理解就是,把一个表面粗糙又不太圆的小球, 放到一个表面也比较粗糙的碗里,就随便往里面一扔,看看小球停在碗的哪个地方。一般来 说停在碗底的可能性比较大,停在靠近碗底的其他地方也可能,甚至运气好还会停在碗口附近(这个碗是比较浅的一个碗);能量模型把小球停在哪个地方定义为一种状态,每种状态都对应着一个能量E,这个能量由能量函数来定义,小球处在某种状态的概率(如停在碗底的概率跟停在碗口的概率当然不一样),可以通过这种状态下小球具有的能量来定义(即小球停在了碗口附近是一种状态,对应着一个能量E ,而发生“小球停在碗口附近”这种状态的概率 p ,概率p可以用E来表示,表示成p=f(E),其中 f 是能量函数, 其实还有一个简单的理解,球在碗底的能量一般小于在碗边缘的,比如重力势能,显然碗底的状态稳定些,并且概率大些。 也就是说,RBM采用能量模型来表示系统稳态的一种测度。RBM 是一种随机网络,描述一个随机网络,主要有以下 2 点 :
1)概率分布函数。各个节点的取值状态是概率的、随机的,这里用了 3 种概率分布来描述整个 RBM 网络,有联合概率密度,条件概率密度和边缘概率密度。
2)能量函数。能量函数是描述整个系统状态的一种测度。系统越有序或者概率分布越集中(比如小球在碗底的情况), 系统的能量越小,反之,系统越无序并且概率分布发散(比如平均分布) ,则系统的能量越大,能量函数的最小值,对应着整个系统最稳定的状态。
那么RBM 能量模型的作用是什么呢?
第一, RBM 网络是一种无监督学习的方法,无监督学习的目的自然就是最大限度的拟合输入数据和输出数据。
第二,对于一组输入数据来说,如果不知道它的分布,那是非常难对这个数据进行学
习的。例如:如果我们实现写出了高斯函数,就可以写出似然函数,那么就可
以进行求解,就知道大致的参数,所以实现如果不知道分布是非常痛苦的一件 事情,但是,没关系啊,统计力学的一项研究成果表明,任何概率分布都可以 转变成基于能量的模型,即使这个概率分布是未知的,我们仍然可以将这个分布改写成能量函数。
第三,能量函数能够为无监督学习方法提供 2 个特殊的东西
a)目标函数
b)目标解
即:使用能量模型使得学习一个数据的变得容易可行了。 能否把最优解的求解嵌入能量模型中至关重要,决定着我们具体问题求解的好坏。能量模型要捕获变量之间的相关性,变量之间的相关程度决定了能量的高低。把变量的相关关系用图表示 出来,并引入概率测度方式就构成了概率图模型的能量模型。总而言之,一句话,通过定义求解网络的能量函数,我们可以得到输入样本的分布,这样我们就相当于有了目标函数,就可以训练了。 具体怎么进行更新呢?首先我们有个能量函数,就是前面的那个形式,通过能量函数,我们可以得到系统随机变量的概率分布:
这个概率分布,实际上就是我们的目标函数,他是一个包含,可见层向量v,隐藏层向量h,还有可见层与隐藏层权值w,偏置的函数。也可以认为是对能量函数求指数e,然后归一化后的结果。样本的一个状态对应着一个能量,相应的概率分布就对应着能量的概率分布。然后对这个函数求它的对数似然。
② 在 DBN 的最后一层设置 BP 网络,接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器。而且每一层 RBM 网络只能确保自身层内的权值对该层特征向量映射达到最优,并不是对整个 DBN 的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络。RBM 网络训练模型的过程可以看作对一个深层 BP 网络权值参数的初始化,使DBN 克服了 BP 网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点。
③最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。
参考博文:
[1]https://blog.****.net/u013714645/article/details/74892888
[2]https://blog.****.net/baidu_31437863/article/details/82625453