极大熵模型的形式化定义是这样的,
其中第一个约束条件展开来就是(6.11),表示对于特征函数的期望
接下来把这个约束优化问题转换成无约束拉格朗日问题,再求解对偶问题,
令偏导数=0,获取P(y|x)的形式为
Z为归一化因子。注意到此形式和多类别的逻辑回归等同。
以上来源为李航的《统计机器学习》,但是有一些问题他没有讲的很明白
在http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf点击打开链接中,
它由logistic regression的形式(exp(wx)/Z)出发,对其求极大似然估计,即对其似然函数对w_y0,j求偏导,令偏导为0
证明logistic regression的最优解需要满足约束(对任意j=0,...,n-1; y0=0,...k-1)
其中xi是第i个train data的向量,xij表示xi的第j个维度
可以看到这个形式和极大熵的第1个约束很相似
对极大熵模型,如果定义这样一组特征,其中j表示取出x的第j个分量,y0表示仅对类别为y0取值,别的都取0
f_j,y0(x,y) = xj (当y==y0)
= 0 (当y!=y0)
j=0,...,n-1; y0=0,...k-1
它的约束条件就等于对应的logit regression,所以二者等价。
PS1:在2类别的逻辑回归中,因为形式简单,可以直接用梯度法把w算出来,但是在多类别中,Z的形式是一堆指数的和,求导会很复杂,梯度法就很难用
于是用IIS来求解,IIS的思想是利用exp,log等函数的凸性质,把指数的和,和的指数这种复杂的形式,简化成比如线性函数这种简单好求解的形式,找到梯度的近似下界
然后用这个近似下界替代掉梯度,沿着下界最大的方向进行优化。
PS2:李航的推导,貌似来自Berger的《A Maximum Entropy Approach to Natural Language Processing》中,
在这篇paper中,定义的fi(x,y)是某种x,y条件下的指示函数,也就是说,值域是0/1。
其实这是NLP问题特有的约束,fi(x,y)在别的问题中不受这个约束,取别的特征统计量
另外,x只是observasion的一个表示,不是特征,f(x,j) 才相当于我们在别的分类器里用的特征
比如在http://www.ryanmcd.com/courses/gslt2007/gslt2007.pdf点击打开链接的第10页,他给了个例子:
x is a document and y is a label
fj(x,y) = num of words in x with punctuation and y =“scientific”
在这里fj(x,y)相当于文本分类里常用的tf。类似的,也可以用tf*idf定义