《统计学习方法》——逻辑斯蒂回归和最大熵模型

参考资料:

1 逻辑斯蒂回归

1.1 逻辑斯蒂回归

输入 x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) , 1 ) T x=(x^{(1)},x^{(2)},\cdots,x^{(n)},1)^T x=(x(1),x(2),,x(n),1)T ,参数 w = ( w ( 1 ) , w ( 2 ) , ⋯   , w ( n ) , b ) T w=(w^{(1)},w^{(2)},\cdots,w^{(n)},b)^T w=(w(1),w(2),,w(n),b)T ,输出 Y ∈ { 0 , 1 } Y\in\lbrace0,1\rbrace Y{ 0,1} ,逻辑斯蒂模型为:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) P(Y=1|x)=\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)}\\ P(Y=0|x)=\frac{1}{1+\exp(w\cdot x)}\\ P(Y=1∣x)=1+exp(wx)exp(wx)P(Y=0∣x)=1+exp(wx)1
逻辑斯蒂模型会比较两个条件概率的大小,将 x x x 分到概率值较大的那一类。

1.2 参数估计

π ( x ) = P ( Y = 1 ∣ x ) \pi(x)=P(Y=1|x) π(x)=P(Y=1∣x) ,则似然函数:
L ( w ) = ∏ i = 1 N P ( y i ∣ x i , w ) = ∏ i = 1 N π y i ( x i ) ( 1 − π ( x ) ) 1 − y i \begin{align} L(w)&=\prod\limits_{i=1}^{N}P(y_i|x_i,w)\notag\\ &=\prod\limits_{i=1}^{N}\pi^{y_i}(x_i)\big(1-\pi(x)\big)^{1-y_i}\notag \end{align} L(w)=i=1NP(yixi,w)=i=1Nπyi(xi)(1π(x))1yi
取对数,得:
l ( w ) = ∑ i = 1 N ( y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) = ∑ i = 1 N ( y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ) = ∑ i = 1 N ( y i ( w ⋅ x i ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x i ) ) ) \begin{align} l(w)&=\sum\limits_{i=1}^{N}\Big(y_i\log\pi(x_i)+(1-y_i)\log\big(1-\pi(x_i)\Big)\notag\\ &=\sum\limits_{i=1}^{N}\Big(y_i\log\pi(x_i)+(1-y_i)\log\big(1-\pi(x_i)\big)\Big)\notag\\ &=\sum\limits_{i=1}^{N}\big(y_i(w\cdot x_i)-\log(1+\exp(w\cdot x_i))\big) \end{align} l(w)=i=1N(yilogπ(xi)+(1yi)log(1π(xi))=i=1N(yilogπ(xi)+(1yi)log(1π(xi)))=i=1N(yi(wxi)log(1+exp(wxi)))

采用随机梯度下降法,求出梯度:
KaTeX parse error: Expected 'EOF', got '&' at position 36: …}{\partial w_j}&̲=\sum\limits_{i…

1.3 逻辑蒂斯的推广

逻辑蒂斯也适用于多分类模型:

image-20230629183044227

2 最大熵模型

2.1 最大熵原理

设随机变量 X ∼ P ( X ) X\sim P(X) XP(X) ,则随机变量 X X X 的熵 H ( X ) H(X) H(X) 为:
H ( X ) = − ∑ x P ( x ) log ⁡ P ( x ) H(X)=-\sum\limits_{x}P(x)\log P(x) H(X)=xP(x)logP(x)
进一步地,定义条件熵 H ( Y ∣ X ) H(Y|X) H(YX) 为:
H ( Y ∣ X ) = ∑ x P ( x ) H ( Y ∣ X = x ) = − ∑ x , y P ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) H(Y|X)=\sum_{x}P(x)H(Y|X=x)=-\sum\limits_{x,y}P(x)P(y|x)\log P(y|x) H(YX)=xP(x)H(YX=x)=x,yP(x)P(yx)logP(yx)
所谓最大熵原理,就是在所有符合约束条件的模型中,选取熵最大的模型。

2.2 最大熵模型的定义

一般而言,我们的分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) 。给定训练集 T = { ( x 1 , y 1 ) , ⋯   , ( x N , y N ) } T=\lbrace(x_1,y_1),\cdots,(x_N,y_N)\rbrace T={(x1,y1),,(xN,yN)} ,我们可以得到联合经验分布和边缘经验分布:

image-20230629201913054

定义一组特征函数:
f i ( x , y ) = { 1 , x 和 y 满足某一事实 0 , 其他 f_i(x,y)= \begin{cases} 1,&x和y满足某一事实\\ 0,&其他 \end{cases} fi(x,y)={ 1,0,xy满足某一事实其他
特征函数关于经验分布 P ~ ( X , Y ) \tilde{P}(X,Y) P~(X,Y) 的期望为:
E P ~ ( f i ) = ∑ x , y P ~ ( x , y ) f i ( x , y ) E_{\tilde{P}}(f_i)=\sum\limits_{x,y}\tilde{P}(x,y)f_i(x,y) EP~(fi)=x,yP~(x,y)fi(x,y)
特征函数关于模型 P ( Y ∣ X ) P(Y|X) P(YX) 和经验分布 P ~ ( X ) \tilde{P}(X) P~(X) 的期望为:
E P ( f i ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) E_{P}(f_i)=\sum\limits_{x,y}\tilde{P}(x)P(y|x)f_i(x,y) EP(fi)=x,yP~(x)P(yx)fi(x,y)
模型的约束条件定义为:对所有的特征函数,有 E P ~ ( f i ) = E P ( f i ) E_{\tilde{P}}(f_i)=E_{P}(f_i) EP~(fi)=EP(fi)

2.3 最大熵模型的学习

最大熵的学习等价于约束最优化问题:

image-20230629203205440

C C C 为所有满足约束条件的模型的集合

引入拉格朗日乘数法:
L ( P , w ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) + w 0 ( ∑ y p ( y ∣ x ) − 1 ) + ∑ i = 1 n w i ( E P ~ ( f i ) − E P ( f i ) ) L(P,w)=\sum\limits_{x,y}\tilde{P}(x)P(y|x)\log P(y|x)+w_0\big(\sum\limits_{y}p(y|x)-1\big)+\sum\limits_{i=1}^{n}w_i\big(E_{\tilde{P}}(f_i)-E_{P}(f_i)\big) L(P,w)=x,yP~(x)P(yx)logP(yx)+w0(yp(yx)1)+i=1nwi(EP~(fi)EP(fi))
在一般的机器学习模型中,我们往往要先给出模型的表达式( P ( Y ∣ X ; w ) P(Y|X;w) P(YX;w) ),然后通过训练集来选取合适的参数。所以,我们要试着改写优化问题,使之能向一般的机器学习模型靠拢。

首先,上述最优化问题等价于:
min ⁡ P ∈ C max ⁡ w L ( P , w ) \min\limits_{P\in C}\max\limits_{w}L(P,w) PCminwmaxL(P,w)
这是因为如果所有约束条件均被满足,则必有 − H ( P ) = max ⁡ w L ( P , w ) -H(P)=\max\limits_{w}L(P,w) H(P)=wmaxL(P,w) ;如果存在某个约束条件不被满足,则一定可以通过调整对应参数,使得 max ⁡ w L ( P , w ) = + ∞ \max\limits_{w}L(P,w)=+\infty wmaxL(P,w)=+ ,这保证了通过 min ⁡ max ⁡ \min\max minmax 方式得到的解,一定是符合约束条件的解。

然后,我们根据拉格朗日对偶性得到对偶问题:
max ⁡ w min ⁡ P ∈ C L ( P , w ) \max\limits_{w}\min\limits_{P\in C}L(P,w) wmaxPCminL(P,w)
首先求解 min ⁡ P ∈ C L ( P , w ) \min\limits_{P\in C}L(P,w) PCminL(P,w) :
∂ L ( P , w ) ∂ P = ∑ x , y P ~ ( x ) ( 1 + log ⁡ P ( y ∣ x ) ) + ∑ y w 0 − ∑ i = 1 n ( w i ∑ x , y P ~ ( x ) f i ( x , y ) ) = ∑ x , y P ~ ( x ) ( 1 + log ⁡ P ( y ∣ x ) − w 0 − ∑ i = 1 n w i f i ( x , y ) ) \begin{align} \frac{\partial L(P,w)}{\partial P}&=\sum\limits_{x,y}\tilde{P}(x)\big(1+\log P(y|x)\big)+\sum\limits_{y}w_0-\sum\limits_{i=1}^{n}\big(w_i\sum\limits_{x,y}\tilde{P}(x)f_i(x,y)\big)\notag\\ &=\sum\limits_{x,y}\tilde{P}(x)\Big(1+\log P(y|x)-w_0-\sum\limits_{i=1}^{n}w_if_i(x,y)\Big)\notag\\ \end{align} PL(P,w)=x,yP~(x)(1+logP(yx))+yw0i=1n(wix,yP~(x)fi(x,y))=x,yP~(x)(1+logP(yx)w0i=1nwifi(x,y))
令偏导数为 0 0 0 ,在 P ~ ( x ) > 0 \tilde{P}(x)>0 P~(x)>0 的情况下,有:
P ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( 1 − w 0 ) P(y|x)=\frac{\exp\Big(\sum\limits_{i=1}^{n}w_if_i(x,y)\Big)}{\exp(1-w_0)} P(yx)=exp(1w0)exp(i=1nwifi(x,y))
通过 ∑ y P ( y ∣ x ) = 1 \sum\limits_{y}P(y|x)=1 yP(yx)=1 消去 w 0 w_0 w0 得:
P ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P(y|x)=\frac{1}{Z_w(x)}{\exp\Big(\sum\limits_{i=1}^{n}w_if_i(x,y)\Big)} P(yx)=Zw(x)1exp(i=1nwifi(x,y))
其中:
Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_w(x)=\sum\limits_{y}\exp\Big(\sum\limits_{i=1}^{n}w_if_i(x,y)\Big) Zw(x)=yexp(i=1nwifi(x,y))
此时,将 P ( y ∣ x ) P(y|x) P(yx) 代回 L ( P , w ) L(P,w) L(P,w) ,再求出 max ⁡ w L ( P , w ) \max\limits_{w}L(P,w) wmaxL(P,w) 即可。

3 模型学习的最优化算法

3.1 改进的迭代尺度法(IIS)

IIS是最大熵模型的最优化算法,其想法是根据当前的参数向量 w = ( w 1 , w 2 , ⋯   , w n ) T w=(w_1,w_2,\cdots,w_n)^T w=(w1,w2,,wn)T 找到一个 δ \delta δ ,使得似然函数 L ( w + δ ) ≥ L ( w ) L(w+\delta)\ge L(w) L(w+δ)L(w) 。实际操作时,通常是构造一个似然函数改变量的下界 B ( δ ∣ w ) B(\delta|w) B(δw),然后取 δ \delta δ 为下界函数的最大值点。

已知最大熵模型为:
P ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P(y|x)=\frac{1}{Z_w(x)}{\exp\Big(\sum\limits_{i=1}^{n}w_if_i(x,y)\Big)} P(yx)=Zw(x)1exp(i=1nwifi(x,y))
其中:
Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_w(x)=\sum\limits_{y}\exp\Big(\sum\limits_{i=1}^{n}w_if_i(x,y)\Big) Zw(x)=yexp(i=1nwifi(x,y))
对数似然函数为:
L ( w ) = ∑ i = 1 N log ⁡ P ( y i ∣ x i , w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x , w ) \begin{align} L(w)&=\sum\limits_{i=1}^{N}\log P(y_i|x_i,w)\notag\\ &=\sum\limits_{x,y}{\tilde{P}(x,y)}\log P(y|x,w)\notag \end{align} L(w)=i=1NlogP(yixi,w)=x,yP~(x,y)logP(yx,w)

其实第一行的式子并不等于第二行的式子,但二者的变化趋势是相同的。

image-20230630110959957

猜你喜欢

转载自blog.csdn.net/MaTF_/article/details/131472605
今日推荐