Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

解开玻尔兹曼机的封印会发生什么?

上一篇文章中,小夕讲述了逻辑回归为了抗衡贝叶斯网,也开始了自己的进化。然而令我们没有想到的是,逻辑回归最终竟然进化成了一个生成式模型——受限玻尔兹曼机(RBM),也就是变成了敌方(生成式模型)的武器。

意外得到RBM的朴素贝叶斯万分惊喜,并且燃起了将它自己做的贝叶斯网与敌方送的RBM融合的冲动!

 那么朴素贝叶斯的疯狂想法能不能实现呢?

 还是按照惯例,先叙述背景姿势。在朴素贝叶斯到贝叶斯网》中,小夕为朴素贝叶斯画了一幅肖像:

朴素贝叶斯看到自己的肖像后,深感自己的朴(弱)素(鸡),于是进行了进化——抛弃自己的条件独立性假设,建模特征向量X内部各个维度的条件依赖关系。于是,朴素贝叶斯进化出了下图的贝叶斯网:

在上一篇文章逻辑回归到受限玻尔兹曼机中,RBM相比逻辑回归有了非常大的进步,可以更加合理的计算每个样本与每个类别的“亲密度”,也就是与之关联的概率图模型中能量函数E(v1,v2)的大小。

RBM看起来这么复杂,那么灵魂画师夕小瑶能不能像对贝叶斯一样,给RBM画一个肖像呢?

RBM的肖像?

当然可以啦~从上一篇文章对能量函数E(v1,v2)的定义来看,这个函数计算向量v1和v2的“亲密度”时是没有方向的,也就是说E(v1,v2)一定等于E(v2,v1)的。所以对于图中的任意两个点来说,他们之间的边是没有方向的(注意区分朴素贝叶斯和贝叶斯网中的有向边哦)。所以对于RBM中有连接的两个点: 

边是无向的,并且用一个蓝色小方块表示用能量函数连接。

 按照上一篇文章的表述,RBM中的一个参数——矩阵W连接了特征向量X中的每个维度与类别向量Y的每个维度,因此RBM应该是下面这个样子的:

(小方块太多啦,省略掉了~但是每条边依然代表着这两个节点用能量函数(中的参数)连接)

 诶?有没有觉得。。。还不够乱!(好丧心病狂的想法

 回想一下,从朴素贝叶斯到贝叶斯网就是经历了将X内部的各个维度(各个随机变量)之间的关系也建模了!而RBM则是跟朴素贝叶斯一样的,对X内部(更一般化的说还包括Y内部)的随机变量是有独立性假设的。而在朴素贝叶斯到贝叶斯网》中已经详细叙述了这个独立性假设在很多情况下是非常致命的!

 所以,才不要什么人为的假设呢~解开玻尔兹曼机身上的枷锁吧~让X内部以及Y内部的随机变量也可以随意的交流(即,使模型具备描述X和Y内部各随机变量之间条件依赖性关系的能力,只不过这里直接描述了双向的条件依赖性关系)。所以从图中看是这样子的:

玻尔兹曼机喵喵喵~最喜欢自由的感觉啦~

那么在数学上怎么描述呢?当然可以直接照搬RBM中的做法啦。

RBM的假设函数中的能量函数:

E(v1,v2)=-(b^Tv1+c^Tv2+v1^T\cdot W\cdot v2)

用一个矩阵W连接了X所有维度与Y的所有维度。因此要连接X内部所有维度和Y内部所有维度的话,只需要:

 相信聪明的你很轻松就看懂啦,这里用两个与W同理的矩阵R、S来分别连接v1内部的各维度以及v2内部的各维度。

 所以玻尔兹曼机(BM)的假设函数跟RBM的形式一样,都是

其中配分函数Z:

只是将里面的能量函数换成上面的更丧心病狂的形式了而已~

而根据《一般化机器学习,我们已经理解了玻尔兹曼机(BM)的假设函数,那么还需要探索如何训练这个自由而强大的模型。而如何训练,即寻找或设计一个合适的损失函数,然后选择合适的最优化算法来最小化损失函数从而得到model。

然而,自由而随意所带来的代价就是:

非!常!难!以!训!练!

设想一下,假如损失函数我们就用最通用的似然函数(诶诶?是不是还缺一篇写损失函数的文章?没事没事,还好在《EM算法》中有讲似然函数),那么任何主流的最优化算法都会计算量爆炸(想象一下对玻尔兹曼机的假设函数求导,尤其是对配分函数这个恐怖大分母!),哪怕是最简单的梯度下降法(当然这里最大化似然函数就是梯度上升啦),都会使得工程上训练BM很不现实。

 那么怎么办呢?

一个主流的解决办法是使用一种改良的梯度上升法——MCMC算法来最大化似然函数

这个算法的由来就是一个纯数学过程了,需要一篇很长很崩溃的堆砌公式的文章才能讲清楚,所以。。。详情可以参考《Deep Learning》(中文版链接exacity/deeplearningbook-chinese)的第18章啦( ̄∇ ̄),数学不太好的慎入哦(小夕诚实的讲,小夕也没有很清晰的理解透...所以现在讲的肯定不如书上好~)

诶诶?爱思考的小夕又有疑问惹:

 首先,这就是玻尔兹曼机的全部潜力了吗?怎么看着能量函数有点眼熟呢。。。有点像,神经张量网络(NTN)?诶?会不会跟神经网络有关系呢?会不会。。。会不会跟深度学习碰撞出火花?叫做深度玻尔兹曼机

而且,既然贝叶斯网络是用有方向的边去描述的,玻尔兹曼机是用无方向的边去描述的,而且这两者看起来都很自由~那这两个。。。哪个更好呢?

就让小夕站在概率图的高度来描述一场新的战争吧~

本文转自微信订阅号【夕小瑶的卖萌屋】,据说每个想学机器学习的人进来后都停不下来了哦( ̄∇ ̄)

夕小瑶的卖萌屋
夕小瑶的卖萌屋

转自微信公众号【夕小瑶的卖萌屋】,几个有颜有料的小仙女分享机器学习干货的公众号,专注于NLP、搜索与推荐技术前沿

入门玻尔兹曼机MCMC算法
23
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

条件独立性技术

在概率论和统计学中,两事件R和B在给定的另一事件Y发生时条件独立,类似于统计独立性,就是指当事件Y发生时,R发生与否和B发生与否就条件概率分布而言是独立的。换句话讲,R和B在给定Y发生时条件独立,当且仅当已知Y发生时,知道R发生与否无助于知道B发生与否,同样知道B发生与否也无助于知道R发生与否。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

朴素贝叶斯技术

朴素贝叶斯是一种构建分类器的简单方法。该分类器模型会给问题实例分配用特征值表示的类标签,类标签取自有限集合。它不是训练这种分类器的单一算法,而是一系列基于相同原理的算法:所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关。举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果可以被判定为是苹果。尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

玻尔兹曼机技术

玻尔兹曼机(Boltzmann machine)是随机神经网络和递归神经网络的一种,由杰弗里·辛顿(Geoffrey Hinton)和特里·谢泽诺斯基(Terry Sejnowski)在1985年发明。玻尔兹曼机可被视作随机过程的,可生成的相应的Hopfield神经网络。它是最早能够学习内部表达,并能表达和(给定充足的时间)解决复杂的组合优化问题的神经网络。但是,没有特定限制连接方式的玻尔兹曼机目前为止并未被证明对机器学习的实际问题有什么用。所以它目前只在理论上显得有趣。然而,由于局部性和训练算法的赫布性质(Hebbian nature),以及它们和简单物理过程相似的并行性,如果连接方式是受约束的(即受限玻尔兹曼机),学习方式在解决实际问题上将会足够高效。它由玻尔兹曼分布得名。该分布用于玻尔兹曼机的抽样函数。

似然函数技术

在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。 似然函数在统计推断中有重大作用,如在最大似然估计和费雪信息之中的应用等等。“ 似然性”与“或然性”或“概率”意思相近,都是指某种事件发生的可能性,但是在统计学中,“似然性”和“或然性”或“概率”又有明确的区分。

概率图模型技术

在概率论和统计学中,概率图模型(probabilistic graphical model,PGM) ,简称图模型(graphical model,GM),是指一种用图结构来描述多元随机 变量之间条件独立关系的概率模型

推荐文章
无法阅读啊,公式和图片均无法显示~~
补一下图和公式呗
公式和图片可以了显示了呀~~