目录
0.前言
最近在温习统计学习方法,比较针对自然语言处理,所以从最大熵开始看,最大熵是后面EM、HMM、CRF的基础。还记得第一次看最大熵的情景是根本看不懂,越不懂越烦躁。现在再看似乎不会有那种感觉,但是似乎还是有一些看不清,至少只从统计学习方法这本书来看。百度了一下别人写的最大熵,简单的例子写了很长篇幅来说明最大熵。依我来看,那些不懂的人并不是一个例子不详细的问题。
1.维度
维度这个在数学类学科中很容易混淆,在我这就有三个理解:
同质数据维度
1)物理上的维度,线条是一维,图片是二维,空间是三维等等。一个方向表示一个维度,三个方向相互垂直正交,设二维图的轴为和,那么元素(某个点)就是两个轴分量的共同表示()。
2)线性代数的维度,我们知道,线性代数不管多少维度都由一个二维表表示,设有n个线性无关向量,在二维表中形式上是同一个方向表示。但是这个二维表代表的是n维空间,每一列就是一个维度,代表一个维度轴。n维空间中的任何一条线都可以用n维向量线性表示出来,同时这个向量也表示了点,点到原点是向量。
区别:a. 1)用以个标量表示一个轴方向,比如二维x1=3;2)是用向量表示一个轴方向,比如二维,x1=[3,0];
b. 概率分布这样的概念用1)去理解,数据挖掘中的数据维度,用3)去理解。
1)是可以表达成2)的形式,但是维度这个表达1)要直观一些。
异质数据维度
3)表格数据
序号 | X | Y | Z |
1 | Yes | 一等 | 3级 |
2 | No | 三等 | 10级 |
3 | No | 一等 | 7级 |
X,Y,Z三个变量从三个维度描述实体(样本),一个样本就是一个点。维度表示和2)相似,相对来说2)没有明确变量名,3)不仅仅明确变量名,而且变量间的差异比较明显,换句话说,增加一个字段就是增加一个维度。
2.最大熵启文
原理:
变量分布未知的情况下,同时满足变量所有限制条件,这时变量视为服从均匀分布。
书上 的例子:有5个取值{},限制条件为,这时,和在限制条件约束条件下取的均值。
为什么取均值?是熵定义0.5的概率不确定性最大,均匀概率事件就是不确定性最大。
难点:
上面原理很好理解一看就能懂,也没必要用骰子讲很长篇幅。最难理解的是书上公式中的,尽管单独来看只是条件概率,但在整个理解过程中最是疑惑的一个点。如:
1)这个条件概率表示的是什么?为什么是这样的表达?
2)为什么在推导的时候能对它求导??
3.概率分布
我们先讲讲概率分布,通常情况下我们认知的概率分布应该是
上面这两种是我们经验得到的认知,过往的知识往往会限制现在的思维。
熵通常用在分类的概率计算,概率分布可以是这样:
上图分布的期望是-2*0.5+-1*0.5+0.25+0.05*3=-1.1。
书上两公式:
如果学过统计概率的都知道,这个公式是求期望公式,是经验分布,为了理解先简化公式为
,如果是上面分布,那么f() 就改变了分布,即如果f(x)=1的条件是x< 0,那么上图例子的分布变成了:
期望值变为0.7,根据下面公式变化:
主要搞懂轴坐标值和概率值的关系,其实期望就是根据y坐标轴上的概率P值来求x轴上的X的某表达,期望公式就是这么变化来的,变化的是x轴。
书上公式:
正题来了,主要难点在这个公式的理解,书上只说了一句:特征函数关于模型与经验分布的期望值,用表示。
根据知乎大神https://zhuanlan.zhihu.com/p/29978153介绍,这知乎大神说的是贝叶斯,没错,因为等价,所以替换了原来。样本给出了具体值,的分布用的边缘经验分布近似,的分布呢,的分布没出来,的分布就是我们要求的变量,由于X和Y是联合变量,所以我们要得到的是当时,的概率是多少,也就是,注意这是一个值哟,由于未知,取值范围是,所以是一个变量,这个变量同时依赖了x,y两个值。换句话说X和Y构成了一个矩阵,这矩阵里面的值都是未知数,我们的目的就是求出这个矩阵,或着叫Y相对于X的概率分布。
这里已经说完了,不过还是难以理解清楚。因为本来是通过,来得到概率值,结果概率值是变量,而概率值直接关系是,因为是度量的概率,也摆脱不了,是的一个条件平台。
注意公式中分布改造了这个分布,也就是才是一个完整的分布。
4.最大熵公式理解
然后就是这个书上的公式:
等式左边是完全经验分布建立的公式,等式右边是用已知的经验边缘分布和未知的条件分布建立的公式,等式两边就只有一个变量了。
上面的这么多其实都是说的最大熵的等式条件,这样的条件可能有个,那么改造分布的方法可能有个。
书上的公式:
这就是最大熵公式,和长得很像对吧,就是把值取P的对数就可以了。
这个公式的出现,也是很突兀。不知道是最大熵原创作者的创新,还是根据前面公式中的替换。
可以这样理解,经验边缘概率P(X)是X的分布表示X=x时的整体占比,P(y|x)logP(y|x)是X=x下的条件熵下的一个子元素,因为熵要有个求和过程。
5.最大熵推导过程
前面已经说明,纬度和概率分布是什么!可以很好的帮助我们理解这个最大熵的过程。
这个公式是已知x边缘分布的熵的公式,
最大熵就是让这个熵公式最大,即:
当然,还没完,表述要完整,两个条件必须用:
第一个公式,
这里注意理解哟,(x,y)表示一个元素,在样本中X=x,Y=y可以出现很多次,是值变量哟。
第二个公式:
感觉有点荒唐,谁都知道的,居然拿来当条件,不理解归不理解,拉格朗日函数用上了。
6.拉格朗日函数
拉个朗日函数是什么东西?这个只有专门搞相关学术的人才知道,这个太复杂了,一般人是不可能知道的,据说涉及到实变泛函。这里就不深入探讨,我们就像用三角函数公式一样,不需要去证明推导它们是怎么来的,背下来拿来用就可以了,当然这个被众人沿用很多年的函数是否有问题,不知道,尽管被公认是对的,大牛没办法证明它有错,我们就别纠结它的正确性了。根据拉格朗日函数有:
这个公式最后一项又是一个梗,很好理解但是也不好理解,好理解在,前面等式针对i样本来的,n个样本于是有n个公式n个参数。不好理解的是前面说到在样本中X=x,Y=y可以出现很多次,这样的话这样表达就不理解了?。
其实,不冲突,就算样本完全是一样的(x,y),那么w是同一个值。
要弄一个这么个公式出来也不容易,绕好多弯,还要讲得通,数学家们也挺厉害的。
现在该明确问题了,最大熵应用到拉格朗日函数,
沿用书上的代表上面的公式,或许你看到了不一样的地方,前面那个负号,这不重要,正负无所谓,正负不是这个公式的重点,重点是我的目标。
通过这个拉格朗日公式得到概率分布,和权重向量,最值化,让最大时的概率分布,和让最大的。
当然,这里还是按书上的逻辑走,重新写过:
先求公式的最小值,然后得到这个概率分布,要得到什么就对什么求导,于是要对P(y|x)求导,尽管对概率求导有点不可思议,但是看成值变量还是能理解的。
然后,第二次用到这个公式,得到
然后,用这个公式继续按上面思路求解得到w,不过求解之路没有想像那么简单,特别是在计算机上的时候,后面讲求解过程。
此时条件概率分布最终形成。
7.极大似然估计
注意,这节没用,可以不看
前面见识到了对条件概率求导,现在又有新知识了,联合经验概率做指数,最大熵模型的极大似然估计为
注意,这里的最大熵模型是上面求出来的P(y|x)那个公式,我们看到了这个式子,指数不是一个整数,而是一个概率值。以往我们都知道,一次取样,统计概率表达都是统计次数,通常表示当前情况发生多少次,但是大多不是这样的情况。在伯努利表达式中
最大似然x=0.5。
换句话说,是用表达可能次数。
8.求w
第6.提到,得到P表达式了,但是有w这个未知量,要得到这个变量是接下来要做的事,书上有两种方法:
- 改进的迭代尺度法
你要问有改进迭代尺度法,那迭代尺度法是什么?,我不知道。
思想:
意思上和梯度下降类似,不过不是梯度更新,而是用公式计算出来的差值更新,梯度更新w,循环迭代就可以了。
- 拟牛顿法
你会问,咋不用牛顿法?拟牛顿法是牛顿法的改进版,肯定用最好的,
拟牛顿法和牛顿法主要的区别就是对海塞矩阵求逆的处理。
思想:
牛顿法相当于多元的梯度下降,拟牛顿法找了 个对牛顿法里面海塞矩阵逆的替换方法,感觉逻辑不通,这里不介绍。
具体计算方法看书上的公式。