机器学习 | 最大熵模型学习的最优化算法

Posted BBIT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习 | 最大熵模型学习的最优化算法相关的知识,希望对你有一定的参考价值。

机器学习 | 最大熵模型学习的最优化算法(一)

今天我们来说最大熵模型学习中用到的最优化算法:改进的迭代尺度法。

我们知道最大熵的模型为:

其中:

对数似然函数为:

目标是通过极大似然估计学习模型参数求对数似然函数的极大值

改进的迭代尺度法的想法是:假设最大熵模型最大熵模型当前的参数向量是 ,找到一个新的参数向量 ,使模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 ,那么就可以不停迭代,直至找到对数似然函数的最大值。

因为:

所以:

利用不等式 可知:

又知

又因为

于是:

这里,将等式右端记为 ,这是似然函数的下界。

如果我们能够找到适当的 使下界提高,那么似然函数也会随之提高。但 是一个向量,不易同时对每个方向都进行优化,于是固定其它方向,仅优化其中的一个方向,这时我们需要再一次更新下界,使得可以仅优化一个方向。

具体的,我们引入一个量:

这个值表示所有特征在(x, y)中出现的次数,其可能为常数也可能不为常数。原因如下:

首先这个函数 本身代表的是一个规则,即 满足某一事实,则为1,否则为0。括号内的 是输入值,即每一个数据点的数据,或者说是每一个实例的数据。

那么 中的下标i表示的是不同的规则,比如 在x=1, y=2的情况下为1,否则为0; 在x=2,y=2的情况下为1,否则为0。

对某一个实例而言,我们将其代入 中,判断这个实例的数据是否符合 的规则,如果仅符合 而不符合

那么 实际上是对一个特定的实例的数据进行i次不同规则的判断,这就是其即可能为常数也可能不为常数的原因。在常数的情况下,说明每一个实例的数据符合的规则的数量是一样的,比如有三个规则,实例1符合规则1和规则2,实例2符合规则2和规则3,实例3符合规则1和规则3,尽管它们符合的规则不同,但数量相同,三个实例的f#(x, y)都为2。当然,f#(x, y)为常数的情况发生的概率很小,因此f#(x, y)在大部分情况下都不是常数。

回到算法本身,定义了f#(x, y)之后,可以将 进行改写,于是,最终得到了:

机器学习 | 最大熵模型学习的最优化算法(一)

于是下界被再一次刷新,此时可以对向量 中的一个方向单独进行优化(求导)了。对其求偏导并令导数为0:

于是有:

这样就可以依次对每一个 求解,得到向量 并对 进行更新迭代。

以上就是今天的内容,谢谢大家的观看!


以上是关于机器学习 | 最大熵模型学习的最优化算法的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记 | 机器学习 决策树

学习笔记 | 机器学习 决策树

人工智能——机器学习与深度学习思维导图

最大熵模型原理小结

机器学习Logistic回归---学习笔记

最大熵模型原理小结