Alex_McAvoy

想要成为渔夫的猎手

改进的迭代尺度法(IIS)

【概述】

改进的迭代尺度法(Improve Iterative Scaling,IIS)是一种专用于最大熵模型学习的最优化算法,其是在通用迭代尺度法(Generalized Iterative Scaling,GIS)的基础上改进得来的

关于最大熵模型,详见:最大熵模型

已知最大熵模型为:

其中,规范化因子 $Z_{\boldsymbol{\omega}}(x)$ 为:

对数似然函数为:

目标是通过极大似然估计学习模型参数,求对数似然函数的极大值 $\hat{\boldsymbol{\omega}}$

【基本思想】

IIS 的基本思想是假设最大熵模型当前的参数向量是 $\mathbf{\omega}=(\omega^{(1)},\omega^{(2)},…,\omega^{(m)})^T$,希望找到一个新的参数向量 $\boldsymbol{\omega}+\boldsymbol{\delta}=(\omega^{(1)}+\delta^{(1)},\omega^{(2)}+\delta^{(2)},…,\omega^{(m)}+\delta^{(m)})^T$,使得模型的对数似然函数值增大

若存在一种参数向量更新的方法:$\tau : \boldsymbol{\omega} \rightarrow \boldsymbol{\omega}+\boldsymbol{\delta}$,那么就可以重复使用这一方法,直到寻找到对数似然函数的最大值

【对数似然函数改变量】

对于给定的经验分布 $\tilde{p}(x,y)$,参数模型从 $\boldsymbol{\omega}$ 到 $\boldsymbol{\omega}+\boldsymbol{\delta}$,对数似然函数的改变量为:

利用对数不等式:

可以求出对数似然函数改变量的下界:

将右端记为 $A(\boldsymbol{\delta}|\boldsymbol{\omega})$,有:

则:

即 $A(\boldsymbol{\delta}|\boldsymbol{\omega})$ 是对数似然函数改变量的一个下界

【下界的提高】

若能找到适当的 $\boldsymbol{\delta}$ 使得下界 $A(\boldsymbol{\delta}|\boldsymbol{\omega})$ 增大,那么对数似然函数也会增大

但 $\boldsymbol{\delta}$ 是一个含有 $m$ 个分量的向量,不易同时优化,IIS 每次只优化其中的一个变量 $\delta^{(j)}$,固定其他变量 $\delta^{(t)},t\neq j$

为达到这一目的,IIS 进一步降低下界 $A(\boldsymbol{\delta}|\boldsymbol{\omega})$ ,即引进一个函数量 $F(x,y)$,其是一个二值函数,表示所有特征在 $(x,y)$ 中出现的次数,即:

这样一来,$A(\boldsymbol{\delta}|\boldsymbol{\omega})$ 可以改写为:

利用指数函数的凸性,对任意 $j$,有:

且满足:

根据凸函数性质的 Jensen 不等式,有:

PS:关于 Jensen 不等式,见:附:关于 Jensen 不等式

此时,$A(\boldsymbol{\delta}|\boldsymbol{\omega})$ 可以改写为:

记不等式右端为 $B(\boldsymbol{\delta}|\boldsymbol{\omega})$,其是对数似然函数改变量的一个新的下界,其相较于 $A(\boldsymbol{\delta}|\boldsymbol{\omega})$ 更加的宽松,即:

于是得到:

对 $B(\boldsymbol{\delta}|\boldsymbol{\omega})$ 求关于 $\delta^{(j)}$ 的偏导数:

此时,该式除 $\delta^{(j)}$ 外不含任何其他变量,令偏导为 $0$ 可得:

最后,依次对 $\delta^{(j)}$ 求解方程即可得到 $\boldsymbol{\delta}$

【算法流程】

输入:特征函数 $f_1,f_2,…,f_n$;经验分布 $\tilde{P}(X,Y)$;最大熵模型 $p_{\boldsymbol{\omega}}(y|x)$

输出:最优参数值 $\boldsymbol{\omega}^{*}$;最优模型 $p_{\boldsymbol{\omega}^{*}}(y|x)$

算法流程:

Step1.对所有的 $j\in\{1,2,…,m\}$,取初值 $\omega^{(j)}=0$

Step2.对每一 $j\in\{1,2,…,m\}$:

1)令 $\delta^{(j)}$ 为下列方程的解

其中,

2)更新 $\omega^{(j)}$ 的值:$\omega^{(j)}=\omega^{(j)}+\delta^{(j)}$

Step3.若存在未收敛的 $\omega^{(j)}$,重复步骤 2


可以发现,上述算法的关键步骤是 Step2 的步骤 1),即求解 $\delta^{(j)}$ 的过程

若 $F(x,y)$ 是一个常数,即对任意的 $x$ 与 $y$,满足:

则解 $\delta^{(j)}$ 可表示为:

此时,对于 $M$ 来说,可将其视为梯度下降法中的学习速率,同时,IIS 等同于通用迭代尺度法 GIS

若 $F(x,y)$ 不是一个常数,则必须通过数值计算的方法来求 $\delta^{(j)}$,此时,通常选用牛顿迭代法来求 $\delta^{(j)}$

即用 $g(\delta^{(j)})=0$ 来表示方程 $\sum\limits_{x,y}\tilde{p}(x)p(y|x)f_j(x,y)\exp\big[\delta^{(j)}F(x,y)\big]=E_{\tilde{p}}(f_j)$ 的解,利用牛顿迭代法对下列公式进行迭代:

通过迭代可得到 $(\delta^{(j)})^*$,使得 $g((\delta^{(j)})^*)=0$

【附:关于 Jensen 不等式】

基本形式

若 $f(x)$ 是区间 $[a,b]$ 上的下凸函数,对任意的 $x_1,x_2,…,x_n\in [a,b]$,有:

仅当 $x_1=x_2=…=x_n$ 时,等号成立

注:若为上凸函数,不等号反向

加权形式

若 $f(x)$ 是区间 $[a,b]$ 上的下凸函数,对任意的 $x_1,x_2,…,x_n\in [a,b]$,且对任意 $a_i>0$,满足 $\lambda_1+\lambda_2+…+\lambda_n=1$,有:

注:若为上凸函数,不等号反向

点击返回

感谢您对我的支持,让我继续努力分享有用的技术与知识点!