0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种基于能量模型的神经网络架构受限玻尔兹曼机

nlfO_thejiangme 来源:未知 作者:李倩 2018-07-26 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

受限玻尔兹曼机是一种基于能量模型的神经网络架构,虽然不像通常的卷积神经网络一样被人熟知,但近年来在推荐系统中受到了越来越多的关注,在协同过滤推荐等领域表现出越来越重要的作用。在这篇文章中,我们将从基础理论和基本结构方面梳理受限玻尔兹曼机的原理,以便对受限玻尔兹曼机(RBM: Restricted Boltzmann Machine)有更深的了解。

最典型的受限玻尔兹曼机如下图所示,在两层简单的结构中分布式的输入的可见层(visible layer)和隐含层结构。

和通常的前馈神经网络不同的是,受限玻尔兹曼机可以通过可见层的状态预测对应隐含层的状态,相反亦可以由隐含层预测可见层对应单元的状态。同时,它与玻尔兹曼机不同在于同一层内的单元之间没有相互连接。

能量模型

为了更好地理解RBM是如何工作的,我们需要引入基于能量的模型来进行解释。在重力场中,不同高度的物体具有不同的重力势能,我们可以利用能量来描述物体所具有潜在做功的能力。基于这样的启发,科学家们将这一观点应用到深度学习中,来度量模型质量。

深度学习模型的目的之一便是对变量之间的依赖关系进行编码,将变量组合与一个标量能量联系起来,而这一能量就作为模型能力的度量。通常情况下,较小的能量意味着更加合理的变量组合。所以基于能量的模型在训练过程中会不断最小化事先定义好的能量函数从而实现变量间的最优组合,RBM的能量函数定义为如下的形式:

可以看到能量函数与可见层、隐含层的状态以及对应的权重和偏置都有关系。RBM的训练过程就是最小化这一能量函数的过程。

概率模型

RBM同时也是一种典型的概率模型,模型中的状态通过概率来表示。在每一个时间点上受限玻尔兹曼机的状态由可见层和隐含层单元决定,其可被观测到的状态可由以下联合概率分布来表示:

其中p为可见层和隐藏层的联合概率分布函数,Z为配分函数,用于表示系统所有可能的状态。这一联合概率分布在物理上就是著名的玻尔兹曼分布——在给定能量E上粒子在某个状态上被观测到的概率。但由于Z中h和v的组合情况十分庞大,使得这一联合概率分布难以计算,但幸运的是对于对于给定隐含层或者可见层状态下的概率却是更加容易计算的:

需要注意的是在RBM中每一个单元都是0/1的二值状态,实际使用中通常会计算出每个单元处于1,也就是被激活的概率。在给定可见层v的条件下,隐含层单元j被激活的概率可以写成下图的表示,同样给定隐含层的状态下,可见层单元i的概率也可以被写成下面的表示形式。

上式通过前述的条件概率推导得到,求得的值为对应单元取1激活的概率。其中σ是Sigmoid函数。

训练

RBM的训练与通常神经网络的训练有很大的区别,研究人员们使用了吉布斯采样(GibbsSampling)和对比散度(Contrastive Divergence,CD)两个数学手段来对训练过程进行处理。简单来说吉布斯采样利用了上述的条件概率公式,通过输入v可以计算得到隐含层的条件概率h,随后根据这一h反过来预测输入层的值v,经过k次迭代后的输出vk分布将会收敛于v0的分布,从而得到了可见层的联合概率。

为了更新权重,还需要计算出每次训练过后误差,这时候就需要使用对比散度来进行计算:

基于RBM的协同过滤系统

在推荐系统中RBM常常被用于识别数据的隐含因素。例如在电影推荐系统中,人们常常将不同的电影按照不同的潜在变量进行分析,例如速度与激情会被归并到动作片里,而玩具总动员和瓦力则会更多的包含皮克斯的因素。模型通过对用户打分数据进行学习,在多个循环后将得出用户的个性化偏好以及用户群体的整体偏好。

在电影推荐的例子中,受限玻尔兹曼机面对的数据是二进制的0/1而不是连续的打分数据。这意味着用于对于电影的评价要么是喜欢(1)要么是不喜欢(0)。这些评价值作为输入层/可见层被送入模型。在给定的数据下,RBM会发掘数据中能解释用户偏好的隐含因素,并在隐含层中用不同的单元表示出来。

图中是一个用户对于几部电影评分的简单例子,其中霍比特人由于用户没有评分,数据中使用-1来标注,由于电影的数量庞大,某个用户只对小部分电影进行了评价,需要告诉模型哪些是没有用户评价的输入从而可以忽略这些因素的影响。

上图就对应了给定可见层状态,求出隐含层单元激活概率的情况。图中可以看出只有Fantasy类型是被激活的,在给定用户评分的情况下,RBM正确地识别出这一用户喜欢的类型更多的偏向于科幻电影。

在另一种情况下,在知道了用户的偏好后(hidden),如果要为用户推荐电影(visible)就可以利用已知隐含层求得可见层单元被激活的条件概率,从而为用户推荐偏好类型的电影。

上图中可以看到,RBM计算出被激活的电影除了输入数据中指环王和哈利波特,还为用户推荐了原来没有看过的霍比特人。模型认为喜欢科幻的用户很有可能也喜欢霍比特人。

总结来看,在推荐系统中使用RBM主要分为以下几个步骤:

1.在所有用户数据上训练模型;

2.使用特定用户的数据来进行预测;

3.得到隐含层的激活情况;

4.基于隐含层的激活来计算输出层的激活情况;

5.可见层的新激活单元表示了用户对未看过的电影/节目/音乐的评价,并选取其中大概率的激活单元向用户推荐。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4844

    浏览量

    108218
  • 深度学习
    +关注

    关注

    73

    文章

    5611

    浏览量

    124665

原文标题:简单明了地告诉你不明觉厉的「受限玻尔兹曼机」到底是个啥?

文章出处:【微信号:thejiangmen,微信公众号:将门创投】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    面向嵌入式部署的神经网络优化:模型压缩深度解析

    1.为什么需要神经网络模型压缩? 神经网络已经成为解决复杂机器学习问题的强大工具。然而,这种能力往往伴随着模型规模和计算复杂度的增加。当输入维度较大(例如长时序窗口、高分辨率特征空间)
    的头像 发表于 02-24 15:37 5505次阅读
    面向嵌入式部署的<b class='flag-5'>神经网络</b>优化:<b class='flag-5'>模型</b>压缩深度解析

    神经网络的初步认识

    日常生活中的智能应用都离不开深度学习,而深度学习则依赖于神经网络的实现。什么是神经网络神经网络的核心思想是模仿生物神经系统的结构,特别是大脑中神经
    的头像 发表于 12-17 15:05 492次阅读
    <b class='flag-5'>神经网络</b>的初步认识

    自动驾驶中常提的卷积神经网络是个啥?

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一种专门用来处理网格状数据(比如图像)的深度学习模型。CNN在图像处理中尤其常见,因为图像本身就可以看作是由像
    的头像 发表于 11-19 18:15 2283次阅读
    自动驾驶中常提的卷积<b class='flag-5'>神经网络</b>是个啥?

    激活函数ReLU的理解与总结

    限制玻尔兹曼(restricted Boltzmann machines)提出的,并且首次成功地应用于神经网络(Glorot,2011)。除了产生稀疏代码,主要优势是ReLUs缓解了消失的梯度
    发表于 10-31 06:16

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

    构建CNN网络模型并优化的般化建议

    :Dropout层随机跳过神经网络模型中某些神经元之间的连接,通过随机制造缺陷进行训练提升整个神经网络的鲁棒性。 6)指定合理的学习率策略:
    发表于 10-28 08:02

    在Ubuntu20.04系统中训练神经网络模型些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练个手写数字识
    发表于 10-22 07:03

    液态神经网络(LNN):时间连续性与动态适应性的神经网络

    1.算法简介液态神经网络(LiquidNeuralNetworks,LNN)是一种新型的神经网络架构,其设计理念借鉴自生物神经系统,特别是秀
    的头像 发表于 09-28 10:03 1608次阅读
    液态<b class='flag-5'>神经网络</b>(LNN):时间连续性与动态适应性的<b class='flag-5'>神经网络</b>

    【「AI芯片:科技探索与AGI愿景」阅读体验】+神经形态计算、类脑芯片

    AI芯片不仅包括深度学细AI加速器,还有另外个主要列别:类脑芯片。类脑芯片是模拟人脑神经网络架构的芯片。它结合微电子技术和新型神经形态器件,模仿人脑
    发表于 09-17 16:43

    神经网络的并行计算与加速技术

    随着人工智能技术的飞速发展,神经网络在众多领域展现出了巨大的潜力和广泛的应用前景。然而,神经网络模型的复杂度和规模也在不断增加,这使得传统的串行计算方式面临着巨大的挑战,如计算速度慢、训练时间长等
    的头像 发表于 09-17 13:31 1340次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

    基于神经网络的数字预失真模型解决方案

    在基于神经网络的数字预失真(DPD)模型中,使用不同的激活函数对整个系统性能和能效有何影响?
    的头像 发表于 08-29 14:01 3703次阅读

    小白学大模型:国外主流大模型汇总

    )领域。论文的核心是提出了一种名为Transformer的全新模型架构,它完全舍弃了以往序列模型(如循环神经网络RNNs和卷积
    的头像 发表于 08-27 14:06 1197次阅读
    小白学大<b class='flag-5'>模型</b>:国外主流大<b class='flag-5'>模型</b>汇总

    无刷电机小波神经网络转子位置检测方法的研究

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络
    发表于 06-25 13:06

    神经网络专家系统在电机故障诊断中的应用

    摘要:针对传统专家系统不能进行自学习、自适应的问题,本文提出了基于网络专家系统的并步电机故障诊断方法。本文将小波神经网络和专家系统相结合,充分发挥了二者故障诊断的优点,很大程度上降低了对电机
    发表于 06-16 22:09

    基于FPGA搭建神经网络的步骤解析

    本文的目的是在神经网络已经通过python或者MATLAB训练好的神经网络模型,将训练好的模型的权重和偏置文件以TXT文件格式导出,然后
    的头像 发表于 06-03 15:51 1552次阅读
    基于FPGA搭建<b class='flag-5'>神经网络</b>的步骤解析