从逻辑回归到玻尔兹曼机

开篇高能预警:这是一篇思维量比较大的文章,深夜阅读小心失眠哦~

在那很久很久以前,可爱的小夕写了一篇将逻辑回归小题大做的文章,然后在另一篇文章中阐述了逻辑回归的本质,并且推广出了softmax函数。

从那之后,小夕又在一篇文章中阐述了逻辑回归与朴素贝叶斯的恩仇录,这两大祖先级人物将机器学习的国度划分为两大板块——生成式与判别式

后来,朴素贝叶斯为了将自己的国度发扬光大,进化出了贝叶斯网以抗衡逻辑回归,一雪前耻。

然而,傲娇的逻辑回归怎能就此善罢甘休呢?

ps:对上面的故事有不认识的名词的同学,务必点一下上面的文章链接复习一下哦。

先复习一下逻辑回归的结论。在之前的文章1文章2中已经解释了,逻辑回归是个二类分类器,它的假设函数是

并且本质上这个假设函数算出来的是其中一个类别的后验概率p(y=1|x)

而sigmoid函数本身并不单纯,而是一个现实意义非常丰富的函数,所以逻辑回归模型可以表示成

p(y=1|x) = exp(x与类别1的"亲密度") / exp(x与所有类别的"亲密度"之和)

其中,亲密度直接用内积x·y描述。

对上面的结论有疑问的同学,回看一下那两篇文章哦。

再次提醒!前方超级高能预警!!!

请务必在进入战场前确认已经装备以下三神器:

1、浅入深出被人看扁的逻辑回归

2、sigmoid与softmax的血缘关系

3、逻辑回归与朴素贝叶斯的战争

显然,逻辑回归这么简单的model有很大的改良余地。尤其是所谓的亲密度!

想象一下,在逻辑回归中,亲密度就是用x与y的内积来表示了,但是这个做法过于简单了。我们暂且不管最佳描述亲密度的函数是什么,我们就直接用一个函数E(x,y)来表示x与y的亲密度,然后我们尽可能的让E(x,y)的形式变得合理,尽可能的用最优的方式去描述x与y的亲密度。

首先,描述x与y的亲密度,就是描述两个向量的亲密度嘛~为了避免让大家思考的时候总是带着机器学习的影子,我们不妨用两个一般的向量v1和v2来表示x与y。

为了找出最优的描述v1与v2亲密度的函数E(v1,v2),我们想想以前直接用v1·v2来描述亲密度有什么缺陷。

设想一下,如果v1代表老板,v2代表老板手下的秘书呢?

显然,v1与v2的亲密度来说,v2并没有多大的发言权,老板(v1)想跟谁亲密,那么v1就跟哪个v2的亲密度大。所以!我们需要一个权重来表示某个向量在计算亲密度时的说话分量:

我们就用参数b来表示v1的说话分量,用参数c来表示v2的说话分量啦~

然后,再想象一下,v1和v2的亲密度完全可以体现在方方面面呀~比如老板与小王由于都喜欢美妆从而比较亲密,老板与小李都喜欢打篮球从而比较亲密,但是由于老板心里觉得美妆比篮球更重要,所以综合来看老板跟小王更亲密。

而之前用v1直接用v2做内积的话,显然向量的各个维度(篮球、美妆等各个方面)的权重都是相等的,无法描述不同维度在老板心里的权重那么如何分出来不同维度在老板心里的权重呢?

显然!在v1与v2之间加个同样维度的向量描述各个维度权重!这个参数暂时用小写的w表示。诶?不对啊,如果w是个向量的话,v1、v2、w这三个向量无论怎么计算,都不可能乘出来一个表示亲密度的值啊(回想一下做矩阵乘法时的结果的维度与各乘子的维度的关系)

所以这里的w不能是向量!假如v1和v2的维度是n的话,那么w只需要是个n*n对角矩阵就可以啦!这样v1^T\cdot w\cdot v2就是维度 1*n 乘以 n*n 乘以 n*1 ,这样得到的结果就是一个值了~

所以,我们把前面的参数b和c也高级化一下,让b也能刻画不同维度下v1的分量,以及c刻画不同维度下v2的分量,所以参数b和c就是个n维向量~v1^T\cdot b,就是维度1*n与维度n*1相乘,直接得到一个值。v2与c同理。)

再想想,这时参数b和c是n维向量,w是个n*n的对角矩阵。还能继续优化亲密度的描述吗?

设想一下,如果老板(v1)的第1维的含义是“喜欢化妆”,秘书(v2)的第5维的含义是“喜欢买化妆品”,那么当v1与v2直接求内积的时候,哪怕v1的第1维与v2的第5维会碰撞出强烈的亲密度,但是由于v1与v2直接求内积,也就是说v1的第i维只能跟v2的第i维碰撞,这样明显丧失了很多潜在的亲密度啊!所以我们要用额外的参数来描述v1的第i维与v2的任意的第j维之间的“关联度”,如果关联度非常大,那参数就尽可能大,让v1的第i维去尽情碰撞v2的第j维,看看能不能出来强烈的亲密度~当然,两个关联度很小的维度的话,对应的参数的值就会接近0,就没有碰撞的必要啦~碰撞的结果也没有啥影响力啦~

想的很好,那么这个复杂的参数怎么表示呢?

其实对于数学基础扎实的同学来说非常简单!参数矩阵的非对角线元素就是描述这种关系的!(有没有想起概率统计中的协方差矩阵?想起的肯定秒懂啦,没想起同学也没关系~)

所以,我们只要把对角矩阵w变成普通的矩阵W!这样W的对角线元素依然描述每个维度的权重,而非对角线元素就可以描述上述v1的各个维度与v2的各个维度之间的关联度啦!

通过向量b、向量c、矩阵W,简直是不能更完美的刻画v1与v2的亲密度了!所以综合起来,亲密度函数如下:

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

所以,这个新的机器学习模型跟逻辑回归一样,只是把亲密度定义了一下,并且:

1、跟逻辑回归一样可以很自由的推广到多类分类的情况(不理解的同学回这篇文章复习一下sigmoid到softmax)
2、跟逻辑回归一样可以很自由的由判别式推广到生成式(不理解的同学回这篇文章复习一下逻辑回归到朴素贝叶斯

好!那么我们就将这些进化全都用上(好疯狂...):

1、改良亲密度的定义
2、推广到多类
3、推广到生成式

那么得到的超级模型的假设函数就是:

f=p(x=i,y=j)=\frac{e^{E(x=i,y=j)}}{\sum_{m=1}^M\sum_{k=1}^Ke^{E(x=m,y=k)}}

其中,E(x,y)就是本文的改良版“亲密度”函数;M代表样本数量,K代表类别数量。

在这个模型中,参数就是亲密度函数中的向量b、向量c、矩阵W。

这个用尽高级技术的复杂而优美的模型叫什么呢?

这就是:受限玻尔兹曼机(Restricted Boltzmann Machine,即RBM)

其中,这里小夕讲的亲密度函数的前面加个负号,就是概率图模型中所谓的能量函数,也叫势能函数(理论物理中的概念),这里也是用E(v1,v2)表示(新的E(v1,v2)=-旧的E(v1,v2))。假设函数中那个有两个求和号的恐怖大分母,就是概率图模型中的配分函数Z,跟小夕这里讲的意思是一模一样的,只不过用新的E(v1,v2)表示而已啦。

所以用概率图中的表示方法,RBM的假设函数即:

f=P(x=i,y=j)=\frac{1}{Z}exp(-E(x=i,y=j))

其中,配分函数:

Z=\sum_{m=1}^M\sum_{k=1}^Ke^{-E(x=m,y=k)}

看~概率图中被包装的如此抽象的RBM,本质上就是个究极进化版的逻辑回归而已啦。

那么,为什么说这是“受限”玻尔兹曼机呢?难道还有不受限的玻尔兹曼机吗?这个答案就让小夕在下一篇文章中告诉你吧,看看RBM是如何继续进化的~

等等!

纳尼???逻辑回归培养到最后,怎么培养成了生成式模型呀!所以竟然培养成了对方战场的究级武器???

╮( ̄▽ ̄"")╭

我想,这大概跟小夕父母的心情差不多吧——明明生的是儿子,养着养着就成女儿了(生儿育女)。

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

夕小瑶的科技屋
夕小瑶的科技屋

同步自微信订阅号“夕小瑶的卖萌屋”和知乎专栏“夕小瑶的科技屋”(作者知乎ID:夕小瑶)

入门逻辑回归玻尔兹曼机
41
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

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

参数技术

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

后验概率技术

在贝叶斯统计中,一个随机事件或者一个不确定事件的后验概率是在考虑和给出相关证据或数据后所得到的条件概率。同样,后验概率分布是一个未知量(视为随机变量)基于试验和调查后得到的概率分布。“后验”在本文中代表考虑了被测试事件的相关证据。

协方差矩阵技术

在统计学与概率论中,协方差矩阵(也称离差矩阵、方差-协方差矩阵)是一个矩阵,其 i, j 位置的元素是第 i 个与第 j 个随机向量(即随机变量构成的向量)之间的协方差。这是从标量随机变量到高维度随机向量的自然推广。

朴素贝叶斯技术

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

逻辑技术

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

玻尔兹曼机技术

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

概率图模型技术

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

缺少关键图片的信息,内容无法阅读~