吴军在数学之美里有一个章节来介绍maximum entropy model 的原理和在自然语言处理领域的应用,写得比较通俗易懂,推荐阅读一下。
另外《统计学习方法》一书中,作者把logistic regression(逻辑回归)和maximum entropy model(最大熵模型)放在一章讲,原因是他们都是对数线性模型。 本文简单说说二者以及二者之间的关系。
binomial logistic regression model(二项逻辑斯谛回归)用于二元分类模型,随机变量$$Y$$有两个取值1,0最终要求的是条件概率$$P(Y|X)$$ 即在给定X的条件下Y取1或0的概率公式定义如下:
$$ P(Y=1|x)=/frac{exp(w /cdot x)}{(1+exp(w /cdot x))} $$
其中$$x$$是输入,$$Y/in{0,1}$$, $$w$$ 是权重向量 $$b$$是偏置向量,它们是模型参数。
实际应用中是使用标注的训练数据,来学习的到模型参数,然后利用上面的条件概率公式来预测已知$$x$$的条件下Y的分类。
maximum entropy(最大熵)是一个统计学习的准则,可用来选择概率模型,选择标准为熵最大的模型是最好的模型。熵是信息论中的概念,描述的是一个随机变量的不确定性。在《数学之美》中就有这样的例子,当我们看到别人扔一枚色子通常会相信每个面的概率是一样的,没有其他信息(扔色子的人会不会作弊)我们将选择不确定性最大的,想看原书的这里有篇 帖子 和书中的原文一致。
最大熵原理应用与分类问题的时候就得到最大熵模型。 假设分类模型是一个条件概率分布$$P(Y|X)$$ ,表示给定输入$$X$$已条件概率$$P(Y|X)$$输出$$Y$$。 给定训练数据集
$$T = {(x_1,y_1), (x_2,y_2) , ,(x_N,y_N)}$$
学习目标是选择熵最大的分类模型。 有了训练数据,我们可以确定联合概率的经验分布$$/bar{P}(X,Y)$$ 和边缘概率的经验分布$$/bar{P}(X)$$ 具体点: 联合经验分布:
$$/bar{P}(X=x,Y=y)=/frac{v(X=x,Y=y)}{N}$$
边缘经验分布:
$$ /bar{P}(X=x) = /frac{v(X=x)}{N} $$
其中$$v(X=x,Y=y)$$ 表示训练数据中样本(x,y)中出现的频数。$$v(X=x)$$ 为训练样本中输入x的频数。
用特征函数(feature function) f(x,y)描述输入$$x$$和输出$$y$$直接的一个事实: 当x,y满足某一事实$$f(x,y)=1$$否则$$f(x,y)=0$$ 结合上面两个经验分布和贝叶斯公式可以得到一个关于特征函数期望的等式: $$/sum_{x,y} /bar{P}(x,y)f(x,y)=/sum_{x,y} /bar{P}(X)P(Y|X)f(x,y)$$
我们是要选择熵最大的模型,定义在条件概率$$P(Y|X)$$上的熵为:
$$H(P)=-/sum_{x,y} /bar{P}(x)P(y|x)log(p(y|x))$$
所以最后的模型就可以换个说法 :我们要选择的是满足上面特征函数期望的等式的条件下,熵$$H(P)$$ 最大的模型。
在数学分析里这个问题是条件极值问题,比较常用的条件极值求解方法是使用拉格朗日乘数法,转化成无条件极值问题。拉格朗日转化之后的结果如下:
$$P(y|x)=/frac{1}{Z(x)}exp(/sum_{i=1}^{n}w_if_i(x,y))$$
其中
$$Z(x)=/sum_{y}exp(exp( /sum w_if_i(x,y)))$$ $$i$$从1到n
上面是数学语言定义,特别是特征函数这个东西怎么出来的,怎么理解,在知乎上有个问题 如何理解最大熵里面的特征 有回答感觉不错,排名第一的回答还用公式推倒了一下logistic regression model 和最大熵模型的关系。 此处的特征函数的理解直接影响后面条件随机场中特征函数,需要体会一下。 我理解最终模型是一个条件概率模型,所有自己做了特征,关于x,y同时出现的特征,举个例子: 在词性标注问题中如果有下面的特征函数 $$f(x=hello,y=verb)$$ 意思是输入单词"hello" 是其词性是verb的值,如果hello不可能做verb词那其值就是0,否则为1.