改進的迭代尺度法(IIS)詳細分析

改進的迭代尺度法(Improved Iterative Scaling,IIS)是一種常見的優化算法,在最大熵模型和條件隨機場(Conditional Random Field,CRF)中都會用IIS進行相應的處理,從而提高算法的效率。

已知模型爲:

Pλ(yx)=1Zλ(x)exp(1nλifi(x,y))P_{\lambda} (y|x) = \frac{1}{Z_{\lambda}(x)} exp(\sum_{1}^{n}{\lambda_i f_i(x,y) })

式中:fi(x,y)f_{i}(x,y)是二值函數, λ\lambda是參數,Zλ(x)Z_{\lambda}(x) 是歸一化因子,滿足:

Zλ(x)=yexp(1nλifi(x,y))Z_{\lambda}(x)=\sum_{y}exp(\sum_{1}^{n}{\lambda_i f_i(x,y) })

Pλ(yx)P_{\lambda} (y|x)可得p~(x,y)\tilde{p}(x,y)似然函數:

L(λ)=x,yp~(x,y)logp(yx)L(\lambda) = \sum_{x,y} \tilde{p}(x,y) \log {p(y|x)}

其中,P~(x,y)\tilde{P}(x,y)是樣本(x,y)(x,y)出現的頻率。模型參數λλ+δ\lambda\rightarrow\lambda+\delta時,對數似然函數的改變量爲:

L(λ+δ)L(λ)=x,yP~(x,y)logPλ+δ(yx)x,yP~(x,y)logPλ(yx)                       =x,yP~(x,y)iδifi(x,y)xP~(x)logZλ+δ(x)Zλ(x)\begin{matrix}L(\lambda+\delta) - L(\lambda) = \sum_{x,y} \tilde{P}(x,y)\log {P_{\lambda+\delta}(y|x)}-\sum_{x,y} \tilde{P}(x,y) \log {P_{\lambda}(y|x)} \\\\\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:=\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)} - \sum_x{ \tilde{P}(x) \log{ \frac{Z_{\lambda+\delta}(x) }{Z_\lambda(x) } }}\end{matrix}

使用不等式 logα1α-\log{\alpha} \ge 1 - \alpha (恆成立問題,求導證明),建立對數似然函數改變量的下界:

L(λ+δ)L(λ)x,yP~(x,y)iδifi(x,y)+1xP~(x)Zλ+δ(x)Zλ(x)                                                                             =x,yP~(x,y)iδifi(x,y)+1xP~(x)yPλ(yx)exp(iδifi(x,y))\begin{matrix} L(\lambda+\delta) - L(\lambda) \ge\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)} +1-\sum_x{ \tilde{P}(x) \frac{Z_{\lambda+\delta}(x) }{Z_\lambda(x)}}\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\\\\=\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)} +1-\sum_x{ \tilde{P}(x) } \sum_{y}P_{\lambda}(y|x) exp(\sum_{i}{\delta_i f_i(x,y)}) \end{matrix}

引入f#(x,y)f^{\#}(x,y),滿足:

f#(x,y)=ifi(x,y)f^{\#}(x,y) = \sum_i {f_i(x,y)}

L(λ+δ)L(λ)=A(δλ)L(\lambda+\delta) -L(\lambda)=A(\delta|\lambda)此時:

A(δλ)=x,yP~(x,y)iδifi(x,y)+1xP~(x)yPλ(yx)exp(f#(x,y)iδifi(x,y)f#(x,y))\begin{matrix}A(\delta|\lambda)=\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)}+1 -\sum_x{ \tilde{P}(x) } \sum_{y}P_{\lambda}(y|x) exp(f^{\#}(x,y) \sum_{i}{\frac{\delta_i f_i(x,y)}{f^{\#}(x,y) }})\end{matrix}

使用Jensen不等式:expxp(x)q(x)xp(x)exp q(x)exp{\sum_x p(x) q(x)} \le \sum_x{ p(x) exp\:{q(x)} },此時:

A(δλ)x,yP~(x,y)iδifi(x,y)+1xP~(x)yPλ(yx)i(fi(x,y))f#(x,y)exp(δif#(x,y)))\begin{matrix}A(\delta|\lambda)\ge\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)}+1 -\sum_x{ \tilde{P}(x) } \sum_{y}P_{\lambda}(y|x) \sum_i\left({\frac{ f_i(x,y))}{ f^\#(x,y) }} exp({\delta_i f^{\#}(x,y))} \right)\end{matrix}

記上式不等式右端爲:

B(δλ)=x,yP~(x,y)iδifi(x,y)+1xP~(x)yPλ(yx)i(fi(x,y))f#(x,y)exp(δif#(x,y)))\begin{matrix}B(\delta|\lambda)=\sum_{x,y} \tilde{P}(x,y) \sum_i {\delta_i f_i(x,y)}+1 -\sum_x{ \tilde{P}(x) } \sum_{y}P_{\lambda}(y|x) \sum_i\left({\frac{ f_i(x,y))}{ f^\#(x,y) }} exp({\delta_i f^{\#}(x,y))} \right)\end{matrix}

δi\delta_{i}求導得:

B(δλ)αδi=x,yP~(x,y)ifi(x,y)xP~(x)yPλ(yx)i(fi(x,y)exp(δif#(x,y)))\begin{matrix}\frac{B(\delta|\lambda)}{\alpha\delta_{i}}=\sum_{x,y} \tilde{P}(x,y) \sum_i {f_i(x,y)} -\sum_x{ \tilde{P}(x) } \sum_{y}P_{\lambda}(y|x) \sum_i( f_i(x,y)exp({\delta_i f^{\#}(x,y))})\end{matrix}

B(δλ)αδi=0\frac{B(\delta|\lambda)}{\alpha\delta_{i}}=0,可以求出δi\delta_{i},重複執行直到λ\lambda收斂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章