玻尔兹曼机

离子
2024-12-06 10:37:06
人工智能
量子科普
本帖最后由 离子 于 2025-1-23 16:46 编辑


玻尔兹曼机


Hopfield神经网络中,如果发生串扰和陷入局部最优解,网络将不能正确回忆模式,而玻尔兹曼机的出现避免了局部最优解。 玻尔兹曼机网络的结构和Hopfield一样,如上图所示。


各神经单元之间相互连接,两单元之间的权重是对称的,即w i j = w j i,且没有到自身的连接,即w i i = 0,同时,每个神经单元的状态只能是0/1(也可用1/-1表示)。


玻尔兹曼机和Hopfield神经网络最大的区别是前者的输出是按照某种概率分布确定的,概率分布公式如下:



如何训练玻尔兹曼机



训练步骤如下


1.初始化连接权重w i j 和阈值b i


2.选取一个神经单元i,计算u i


3.根据u i 计算输出x i


4.按照同样的步骤计算出x j ,根据输出x i 和x j 的值,调整连接权重w i j 和阈值b i


重复上述2-4步骤。


步骤中u i 的计算与Hopfield神经网络一样,x i的值也同Hopfield,即当u i >0时x i = 1,当u i < 0 时x i = 0 ,当u i = 0时x i = x i 。然后根据x的值,利用公式(1)计算出x i取值为1或0的概率,然后调整x i 的值,以同样的步骤计算x j ,如果x i 和x j均为1,那么增大w i j ,网络中其它的神经单元按找同样的方法处理。


然后再向网络输入任意的模式,按照同样的步骤计算x i 和x j  ,这次如果x i 和x j 均为1,那么降低w i j,网络中其余的神经单元按照同样的方法进行处理。这种先增大权重再减小的处理方式叫做模拟退火算法。


那么,权重w i j 和偏置b i 的调整值如何调整?


这里使用似然函数导出:



这里,θ 是表示所有的权重和偏差,其中概率分布p ( x n ∣ θ ) 的定义如下:



这个概率分布成为玻尔兹曼机,E 表示能量函数,Z ( θ ) 是一个归一化常数,能保证所有概率分布总和为1,



为了便于运算,式(2)转换为对数函数,如下:



其实通过式(5)调整权重和偏置的过程就是求式(5)的梯度的过程,但目前由于计算量过大,不能快速实时计算,因此人们又提出了一种对比散度算法,这将在之后进行说明。


受限玻尔兹曼机



除了上面所说的玻尔兹曼机的网络结构之外,还有一种网络结构是将一部分神经单元隐藏起来,那么整个网络变成由可见单元与隐藏单元组成,但这使得似然函数的计算更加困难,为了解决这个问题,辛顿等人在玻尔兹曼机中加入了"层内单元之间无连接"的限制,这便成为受限玻尔兹曼机(RBM)。我们把可见变量记作v ,隐藏变量记作h,那么受限玻尔兹曼机的能量函数表示如下:



这里,θ是表示所有权重和偏置,b i 表示第i个可见神经单元的偏置,c j 表示第j个隐藏神经单元的偏置。


在受限玻尔兹曼机中,状态( v , h )的联合概率分布为:



如何训练?


受限玻尔兹曼机的结构可以表示如下:



和玻尔兹曼机一样,训练过程中对权重w i j 和偏置b i , c j 的调整也需要使用对数似然函数,表示如下:



对各参数的调整使用的是误差反向传播算法,分别计算各参数的偏导得:



然后,各参数得更新如下:



但是上式中得∑ v p ( v ) 表示所有输入模式的总和,这使得整个公式得计算量大大增加,同样的,为了解决这个问题可以使用对比散度算法。


 



对比散度算法


算法训练过程


1.  使用随机数初始化权重和偏置;


2.在可见层v ( 0 ) 设置输入模式;


3.根据概率分布公式调整隐藏层中h ( 0 ) 的值;


4.根据输出x i 和x j 的值,调整连接权重w i j 、偏置b i 和c j  


最后,重复步骤2-4。


这里,步骤2-3描述的过程的计算公式为(以通过初始可见层计算隐藏层的值为例):



那么接下来:



这里σ 表示sigmoid激活函数,为:



按照同样的规律迭代步骤2-3。一般在对比散度算法中,只迭代一次足够。


最终,连接权重w i j 、偏置b i 和c j 的调整值变为了:



这里,η和神经网络一样,表示学习率。此时我们根据上式计算所有训练样本的参数,最后取平均值就是网络最后的参数。


深度信念网络


深度信念网络的结构不像受限玻尔兹曼机一样只有两层,而是由一层可见层和多层隐藏层组成,训练时使用对比散度算法先训练可见层与第一层隐藏层之间的参数,然后将这些参数作为下一层隐藏层的输入,计算第二层隐藏层,如此循环下去,直到训练到最后一层。


各层的条件概率分布如下:



计算第二层隐藏层,如此循环下去,直到训练到最后一层。


各层的条件概率分布如下:





————————————————


本文转载自CSDN博主:!Polaris


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


原文链接:https://blog.csdn.net/qq_40905198/article/details/120146422

1857
0
0
0
关于作者
相关文章
  • 基于自注意力的几何增强表示学习:提升药物 - 靶标相互作用预测 ...
    药物–靶标相互作用(DTIs)是药物发挥治疗作用的基础,其准确预测有助于降低药物研发过程中 ...
    了解详情 
  • 水处理AI突破小样本困境:VAE数据增强让污染物降解预测精度达88% ...
    华东理工大学团队在 Water Research 2026 年 291 期发表《 Data-augmented machine learning imp ...
    了解详情 
  • LSTM结合遗传算法的股票市场趋势预测:方法、实现与验证 ...
    本案例提出一种 LSTM 与遗传算法(GA)结合的股票趋势预测方案,解决股价时间序列二分类预测中 L ...
    了解详情 
  • 周期性感知框架PerioGT:聚合物深度学习建模的突破与应用 ...
    2025年发表于 Nature Computational Science 的研究《 Periodicity-aware deeplearning for poly ...
    了解详情 
领取成功
本月5个550bit真机配额已发放给您,配额将在2个月后到期,请及时使用哦~
活动中心
联系我们
二维码
返回顶部
返回
活动中心

完成任务,轻松获取真机配额

×
每日必做
新手任务
长期任务
其他任务
快速回复 返回顶部 返回列表
玻色有奖小调研
填写问卷,将免费赠送您1个1000bit真机配额
(单选) 您是从哪个渠道得知我们的?*
您是从哪个社交媒体得知我们的?*
您是通过哪个学校的校园宣讲得知我们的呢?
取消

提交成功

真机配额已发放到您的账户,可前往【云平台】查看

量子AI开发者认证

考核目标

开发者能够成功搭建Kaiwu-PyTorch-Plugin项目基础环境,并成功运行示例代码,根据示例提示,输出指定的值并填写至相应的输入框中。

通过奖励

5个一年效期的1000量子比特真机配额

专属「量子AI开发者」社区认证标识

开发者权益

每月固定权益:5个550量子比特真机配额
前往考核

第一步

按照README提示成功安装Kaiwu-PyTorch-Plugin库环境依赖
前往GitHub

第二步

运行 community-assessment 分支下的 run_rbm.py 代码示例

第三步

理解示例代码,手动打印并填写如下数值:

正相采样的状态

负相采样的状态

正相的能量值

负相的能量值

*

提交答案

开发者权益

每月固定权益:5个550量子比特的真机配额

恭喜您完成考核

您将获得量子AI开发者认证标识及考核奖励

1000 bit*5

配额

Quantum AI Developer Certification

Assessment Objectives

Developers should successfully set up the basic environment for the Kaiwu-PyTorch-Plugin project, run the QBM-VAE sample code, and calculate the correct FID value based on the random seed value provided by the system.

Pass Rewards

10 quotas for 550-qubit real quantum machines with a one-year validity period

Exclusive "Quantum AI Developer" Community Certification Badge

Developer Benefits

Fixed Monthly Benefits: 5 quotas for 550-qubit real quantum machines
Proceed to Assessment

Step 1

Install the environment dependencies for the Kaiwu-PyTorch-Plugin library according to the README instructions
Go to GitHub

Step 2

Replace the Seed Value

Your seed value is

Step 3

Enter the FID Value You Calculated

*

Submit Answer

Developer Benefits

Fixed Monthly Benefits: 5 quotas of 550-qubit real machines

Congratulations on Completing the Assessment

You will receive the Quantum AI Developer Certification Badge and Assessment Rewards

550bit*10

Quotas