Part One.深度生成模型概述

第五章:深度生成模型

深度生成模型从整体上来说,是以某种方式寻找某种数据的概率分布,深度生成模型可以基于有向图或者无向图的形式来生成深层次的概率分布。

常见的深度生成模型的结构图如下:深度玻尔兹曼机和深度信念网络都是以受限的玻尔兹曼机为基本单元,区别就是深度信念网络的最高层的两层是无向图的连接,下面的两层是采用有向图的连接;深度自编码网络可以看做由深度信念网络来进一步构成,它可以被认为和栈式自编码器是一种东西,他们都是通过信念网络的结构和形式(自编码器和自解码器这样的两个信念网络的连接)连接。

第五章:深度生成模型

如果自编码器的输入是带有噪声的,那么自编码器会提取出这些输入的数据中比较稳定的特征(这部分生成的特征我们是不需要带有标签的),并通过解码器重构出没有噪声的原始的信号,这个就可以看做是去躁的自编码器网络

第五章:深度生成模型

下面这个是我们最常见的GAN网络,GAN网络是过去的十年中最有趣的发明,GAN引入了博弈论的思想,有两个生成网络和判别网络组成,生成网络不断的生成符合某种概率的数据,判别网络进行判别,直到判别网络判别不出生成网络中的是真实的数据还是生成的数据的时候,整个GAN就达到一种稳定的状态, 生成网络是一个无监督的过程,不需要提供带有标签的训练数据,生成网络可以帮助我们生成很多特征

第五章:深度生成模型

Part Two.Hopfield神经网络

一、神经网络的分类

多层神经网络: 模式识别

相互连接型网络:通过联想记忆去除数据中的噪声

例如左图前馈型的多层神经网络,可以用于模式识别和回归等任务;例如中间的图,每个神经元节点与其他的神经元节点之间都是相互连接的,这样是看不出来连接的层次,中间的图还可以展开成右图的形式,节点A既是其他节点的输入,也是当前节点的输出,其他节点也是相同的,这就是一种相互连接的神经网络。

第五章:深度生成模型

二、Hopfiled神经网络

Hopfield神经网络是最典型的相互连结型网络

1. Hopfield神经网络优点

单元之间的连接权重对称(第五章:深度生成模型=第五章:深度生成模型),因为采用的是无向图的连接方式

每个单元没有到自身的连接( 第五章:深度生成模型

Hopfiled神经网络在 t 时刻的状态间接的和他 t-1 时刻的状态是有关的,因为不同单元都有连接

单元的状态采用随机异步更新方式,每次只有一个单元改变/更新状态

第五章:深度生成模型个二值单元做成的二值神经网络,每个单元的输出只能是01的两个值

Hopfiled的网络是把训练数据的信息存储到权重上,这个可以看做是联想记忆的形式,这个就跟人类大脑记忆信息的形式是一样的。例如我们看到香蕉就会想到黄色,看到苹果就会想到红色,这就是联想记忆的形式

联想记忆就是当输入模式为某种状态时,输出端要给出与之相应的输出模式。如果输入模式与输出模式一致,称为自联想记忆,否则称为异联想记忆

第五章:深度生成模型

2.Hopfield神经网络计算

假设有第五章:深度生成模型个单元组成的Hopfield神经网络,第第五章:深度生成模型 个单元在第五章:深度生成模型时刻的输入记作第五章:深度生成模型,输出记作第五章:深度生成模型,神经单元第五章:深度生成模型第五章:深度生成模型之间的连接权重为第五章:深度生成模型,阈值为第五章:深度生成模型,则第五章:深度生成模型时刻第五章:深度生成模型单元的输出第五章:深度生成模型可表示为:

第五章:深度生成模型

如果输入第五章:深度生成模型,则表示其他神经元加权之后是超过这个阈值第五章:深度生成模型的,则该神经元被**,所以下一时刻的输出状态值为1;

如果输入第五章:深度生成模型,则表示其他神经元加权之后是没超过这个阈值第五章:深度生成模型的,则该神经元没被**,所以下一时刻的输出状态值为0;

如果输入第五章:深度生成模型,则表示其他神经元加权之后是等于这个阈值第五章:深度生成模型的,则该神经元状态不变,所以下一时刻的输出状态值第五章:深度生成模型

注意我们阈值一般是用减号,而偏置才是加号

 在Hopfield神经网络中,每个时刻都只有一个随机选择的单元会发生状态变化

对于一个由n个单元组成的网络,如果要完成全部单元的状态变化,至少需要n个时刻

单元的状态变化会一直进行下去,直到网络达到稳定状态。各单元的最终状态就是输出模式  

第五章:深度生成模型

那么怎么才算是网络达到稳定的状态呢?

这个我们就可以看做是应用Hopfiled神经网络或者说是进行测试的时候,比如,我们有一个测试样本,我们想看一下Hopfiled神经网络把它识别成什么了或者继续记住他是什么了没有,那这个时候和其他的网络一样,我们都需要先确定连接权重,因为连接权重确定了以后这个网路才是一个有意义的网络

根据输入模式联想输出模式时,需要事先确定连接权重????????????,而连接权重????????????要对输入模式的训练样本进行训练后才能确定

和多层神经网络一样,一次训练并不能确定连接权重,而是要不断重复这个过程,直到满足终止判断条件,而这个指标就是Hopfield神经网络的能量函数 ????( 公式如下),当输入模式与输出模式一致时,能量函数 ???? 的结果是0 。 

第五章:深度生成模型

Hopfield神经网络的能量函数 ???? 的特点

根据前面定义的状态变化规则( 即:Hopfield神经网络的计算 )改变网络状态时,上式中定义的能量函数 ???? 总是非递增的,即随时间的不断增加而逐渐减小,直到网络达到稳定状态为止。为什么是非递增的呢?我们可以进行简单的推导。能量函数是所有神经元构成的能量函数,所以,我们可以把能量函数分解成两部分:单元 第五章:深度生成模型 的能量函数和 第五章:深度生成模型 以外的单元的能量函数

第一步:首先把最外层的第五章:深度生成模型最为index,根据 第五章:深度生成模型 把神经元分为神经元 第五章:深度生成模型 第五章:深度生成模型 以外的神经元的能量函数。

把能量函数中的第一项:第五章:深度生成模型分解成两项第五章:深度生成模型第五章:深度生成模型;第二项:第五章:深度生成模型也分解成两项第五章:深度生成模型第五章:深度生成模型

第二步:下一步我们把index 第五章:深度生成模型 所处的神经元也是分成第五章:深度生成模型第五章:深度生成模型两部分

第三步:去掉括号

第四步:我们根据Hopfiled网络发现,神经元是与自身没有连接的,第五章:深度生成模型,即:第五章:深度生成模型

第五章:深度生成模型

这些神经元每一次都是随机有一个神经元的状态更新,其他的神经元的状态都是保持不变的,饿哦们要更新的神经元是第第五章:深度生成模型个神经元,那么这个时候能量的变化就是从第五章:深度生成模型 时刻到第五章:深度生成模型时刻,只有这个神经元 第五章:深度生成模型 在发生变化,其他的是不变的。 

第五章:深度生成模型第五章:深度生成模型其实表达的是一个意思,第五章:深度生成模型表示其他所有神经元到 第五章:深度生成模型 这个神经元上连接的一个关系,第五章:深度生成模型也表示其他所有神经元到 第五章:深度生成模型 这个神经元上连接的一个关系,也就是说把第五章:深度生成模型中的第五章:深度生成模型中的下标 第五章:深度生成模型 换成 第五章:深度生成模型 即可,再利用单元之间的连接权重对称性,知道第五章:深度生成模型第五章:深度生成模型。所以当第 第五章:深度生成模型 个神经元发生状态改变的时候,能量函数的变化就是第五章:深度生成模型乘以这个第 第五章:深度生成模型 个神经元状态改变量。

第五章:深度生成模型

下面我们对第 第五章:深度生成模型 个神经元状态的变化量进行分类讨论:

第五章:深度生成模型

当∆第五章:深度生成模型 > 0时,第五章:深度生成模型从 第五章:深度生成模型 到 第五章:深度生成模型 由0变成1,前提是保证第五章:深度生成模型 ,神经元被**,此时第五章:深度生成模型,也就是能量在减小

当∆第五章:深度生成模型 < 0时,第五章:深度生成模型从 第五章:深度生成模型 到 第五章:深度生成模型 由1变成0,前提是保证第五章:深度生成模型 ,神经元被抑制,此时第五章:深度生成模型,也就是能量在减小

当∆第五章:深度生成模型 = 0时,第五章:深度生成模型从 第五章:深度生成模型 到 第五章:深度生成模型 状态不变

综上:是非递增的!

注意不同的教材上的区别

第五章:深度生成模型

3.基于Hebb学习的参数训练

Hebb学习规则是Donald Hebb1949年提出的一种学习规则,用来描述神经元的行为是如何影响神经元之间的连接的,通俗的说,就是如果相连接的两个神经元同时被**,显然我们可以认为这两个神经元之间的关系应该比较近,因此将这两个神经元之间连接的权值增加,而一个被**一个被抑制,显然两者间的权值应该减小。我们把权重写成这样的形式:第五章:深度生成模型。此时网络如果要记忆P个模式,那么第五章:深度生成模型第五章:深度生成模型是训练样本的index,第五章:深度生成模型表示样本1,第五章:深度生成模型表示样本第五章:深度生成模型第五章:深度生成模型 和 第五章:深度生成模型 相当于模式,例如我们的输入样本有好几个维度,比如说输入是第五章:深度生成模型的图像块第五章:深度生成模型,这样就相当于有25个神经元,这样的话,我们的权重第五章:深度生成模型就会记住要训练的模式,由于每次只更新一个神经元的状态,所以我们需要好多部才能使得这个网络达到稳定的状态,所以这里的权重第五章:深度生成模型也是在不断的变化,以此达到稳定。

达到稳定就是训练好了,训练好了以后,权重第五章:深度生成模型就会把的训练样本的模式记住,这个时候我们就可以进行测试。使用训练样本(b)进行训练,这个时候网络记住了我们训练样本的模式,当我们使用测试样本进行测试时,我们发现,网络能够正确的输出,虽然测试样本中的4和训练样本中的4差异较大,但是网络的拟合能力也是很不错的。这个过程实际上是对测试样本具有一定程度的识别和去躁

第五章:深度生成模型

 当需要记忆的模式之间的较为相似,或者需要记忆的模式太多时,Hopfield神经网络就不能正确地辨别模式。这种相互干扰、不能准确记忆的情况称为串扰(crosstalk)  

第五章:深度生成模型

Hopfield神经网络能够记忆的模式数量有限,大约是网络单元数的15%左右,为了防止串扰,可以采用先把模式的正交化再进行记忆等方法。正交化可以避免模式之间的相似性,例如神经网络有第五章:深度生成模型个单元的话,他应该可以包含第五章:深度生成模型种模式,也就是记住第五章:深度生成模型种模式,但是这么多的模式他记不住,只能够记住15%,但是正交化方法并不能完全解决问题,玻尔兹曼机可以解决这一问题

三、玻尔兹曼机和受限的波尔兹曼机

1.玻尔兹曼机

❑玻尔兹曼机也是相互连接型网络。玻尔兹曼机和Hopfield神经网络很相似,但是Hopfield神经网络如果发生串扰或陷入局部最优解的话,Hopfield神经网络就不能正确的辨别模式。而玻尔兹曼机则可以通过让每个单元按照一定的概率分布发生状态变化,来避免陷入局部最优解

❑玻尔兹曼机保持了Hopfield神经网络的假设:权重对称;自身无连接;二值输出

❑玻尔兹曼机的输出是按照某种概率分布决定的

第五章:深度生成模型

????(>0)表示温度系数,当 ???? 趋近于无穷时,无论第五章:深度生成模型取值如何,下一时刻的状态 第五章:深度生成模型 等于1 或 0 的概率都是1/2,这种状态称为稳定状态。k是玻尔兹曼常数,第五章:深度生成模型是一个能量变化的函数,和第五章:深度生成模型没有关系。

下面是概率曲线随着温度的变化情况:

当T越来越大的时候,基本上趋于均匀分布,概率为 第五章:深度生成模型 ;当T越来越小的时候,曲线在0附近变得越来越陡。 

 

第五章:深度生成模型

2.玻尔兹曼机中的模拟退火算法

玻尔兹曼机选择模拟退火算法进行求解,可以先采用较大的温度系数及进行粗调,然后逐渐减小温度系数进行微调。温度系数越大,跳出局部最优解的概率越高,因为他的概率就在 第五章:深度生成模型 附近,相当于输出是1或者输出是0的随机性比较大,所以跳出局部最优解的概率就会大一些。但是温度系数增大时,获得能量函数极小值的概率就会降低;反之,温度系数减小时,虽然获得能量函数极小值的概率增加了,因为系数比较下的话,能量就会慢慢趋于稳定,是0或是1的概率就会比较确定下来,但是玻尔兹曼机需要经历较长时间才能达到稳定状态。

模拟退火是一种贪心算法,但是它的搜索过程引入了随机因素,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解, 而且这个概率随着时间推移逐渐降低(逐渐降低才能趋向稳定)

第五章:深度生成模型

例如我们要求一条曲线的最大值。求最小值的时候,我们是沿着梯度的负方向进行求解,求最大值的时候我们就是沿着梯度的正方向找这个最大值。也就是爬山算法。首先我们达到了C这个点,然后我们到达了A这个局部最优解,这个时候,他就跳不出这个局部最优解(因为A附近周围的任何一个值,都没有A大),他觉得在这就是稳定了,此时我们希望A能够以一定的概率接受一个当前情况下,比A自身次的点是的能够跳出这样的局部最优解A。比如我们当前找的是D,我们就有可能跳出这个局部最优解,因为我们在D附近再找的时候,就会慢慢的接近B这个点,所以说模拟退火算法不一定百分之百能够保证你得到一个全局最优解,他是说具有一定的概率跳出这个局部最优解从而找到一个更好的解,降低陷入局部最优解得可能性。

第五章:深度生成模型

3.玻尔兹曼机的训练过程

玻尔兹曼机的训练过程
– 1. 训练准备:初始化连接权重第五章:深度生成模型和偏置第五章:深度生成模型  (输入输出的连接关系就是第五章:深度生成模型)
– 2. 调整参数

– 2.1 选取一个单元 第五章:深度生成模型 ,求输入第五章:深度生成模型 (和Hopfield类似,玻尔兹曼机也是每次随机选择一个单元进行更新,其他的单元不变)

– 2.2 根据第五章:深度生成模型的值,计算输出第五章:深度生成模型 (和Hopfield不类似,玻尔兹曼机引入了概率,按照某种概率分布来决定它输出是0还是1)

– 2.3 根据输出第五章:深度生成模型第五章:深度生成模型的值,调整连接权重第五章:深度生成模型和偏置第五章:深度生成模型

重复步骤2,直到满足终止判断条件

具体而言,当初始化连接权重后,选取一个单元 第五章:深度生成模型 

– 2.1计算单元**值第五章:深度生成模型(这一步和Hopfiled一样)

第五章:深度生成模型

– 2.2计算第五章:深度生成模型等于 1 0 的概率,这个概率还要和随机数进行比较

第五章:深度生成模型

根据概率第五章:深度生成模型等于10的概率,调整第五章:深度生成模型的取值。一般是随机产生一个(0,1)之间的随机数λ,如果p, 确认状态改变,否则不改变

不能将计算所得概率直接作为第五章:深度生成模型的值,而是作为概率来决定第五章:深度生成模型的值

– 2.3调整连接权重第五章:深度生成模型和偏置第五章:深度生成模型 , 这里用似然函数????(θ)导出调整值,θ 表示所有的连接权重和偏置

第五章:深度生成模型代表训练样本,给定参数θ 的情况下,以最大概率出现这个训练样本的情况,就是让????(θ)最大。有很多训练样本,所有的样本都要以最大概率出现自身训练样本的情况,所以这些所有训练样本的出现的概率要相乘。训练样本就是我们网络要记住的这个模式

第五章:深度生成模型

其中,概率分布的定义如下,训练样本S={第五章:深度生成模型,第五章:深度生成模型 ,…,第五章:深度生成模型 ,…,第五章:深度生成模型 } ,????表示能量函数,????(θ)是归一化常数,是对所有的样本的能量函数的求和。能量越小,出现的概率就会越大一些,如果能量是0的话,概率就是第五章:深度生成模型

第五章:深度生成模型

前面连乘的形式不太方便计算,所以我们在似然函数求解的时候把连乘的形式变成求和的形式,求和的形式就是取对数。所以通常,使用对数似然函数求解

第五章:深度生成模型

当对数似然函数的梯度为0时,就可以得到最大似然估计量,即通过求连接权重第五章:深度生成模型和偏置第五章:深度生成模型的相关梯度,可以求出调整值。也就是说,求极值点,极值点是梯度等于0的时候(极大值极小值都是),如果求极大值的话,修正的方向是沿着梯度的正方向;求极小值的时候我们就是沿着梯度的负方向,所以我们是可以进行求导调整权重第五章:深度生成模型和偏置第五章:深度生成模型

第五章:深度生成模型

求解困难:似然函数是基于所有单元组合来计算的,所以单元数过多将导致组合数异常庞大,无法进行实时计算。为了解决这个问题,人们提出了一种近似算法,对比散度算法(稍后介绍)

第五章:深度生成模型

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-11-14
  • 2022-12-23
  • 2021-12-14
  • 2021-12-13
  • 2021-05-21
  • 2021-09-12
  • 2021-08-28
  • 2021-05-03
猜你喜欢
  • 2021-10-20
  • 2022-01-21
  • 2021-04-01
  • 2021-04-24
  • 2021-08-08
  • 2021-12-28
  • 2021-12-20
相关资源
相似解决方案