很久以前推了一遍公式,但是在后面看到RNN预测语言模型使用softmax的时候仍然是一脸懵,所以现在重头整理了一下,发现有不一样的理解。
这个模型主要是应用于多分类的问题,传说二分类的利器——logistics模型其实是最大熵模型的一种特殊情况。在这里为了直观,首先给出logistics模型和最大熵模型的使用方法。
数据集 T = { ( x 1 , y 1 ) , . . . , ( x n , y N ) } T=\{(\boldsymbol{x_1},y_1),...,(\boldsymbol{x_n},y_N)\} T={(x1,y1),...,(xn,yN)}, x i \boldsymbol{x_i} xi是一个 m m m维的向量,代表样本空间中的第 i i i个值。
首先,logistics模型在分类任务中,主要应用于二分类,假设离散型变量 Y Y Y分类编号为{1, 0},则这个模型长这个B样:
P ( y i = 1 ∣ x i ) = exp ( w ⋅ x i ) 1 + exp ( w ⋅ x i ) P ( y i = − 1 ∣ x i ) = 1 1 + exp ( w ⋅ x i ) (1.1) \begin{aligned} P(y_i=1|\boldsymbol{x_i})=\frac{\exp(\boldsymbol{w}·\boldsymbol{x_i})} {1+\exp(\boldsymbol{w}·\boldsymbol{x_i})}\\ P(y_i=-1|\boldsymbol{x_i})=\frac{1} {1+\exp(\boldsymbol{w}·\boldsymbol{x_i})}\\ \tag{1.1} \end{aligned} P(yi=1∣xi)=1+exp(w⋅xi)exp(w⋅xi)P(yi=−1∣xi)=1+exp(w⋅xi)1(1.1)
假设离散型变量 Y Y Y分类编号为{1, 2,… ,K},设 Y i = k Y_i=k Yi=k代表第 i i i个样本的分类结果为 k k k,那么:
P ( Y i = k ∣ x i ) = exp ( w k ⋅ x i ) 1 + ∑ k = 1 K − 1 exp ( w k ⋅ x i ) , k = 1 , 2 , 3... , K − 1 P ( Y i = K ∣ x i ) = 1 1 + ∑ k = 1 K − 1 exp ( w k ⋅ x i ) (1.2) \begin{aligned} P(Y_i=k|\boldsymbol{x_i})=&\frac{\exp(\boldsymbol{w_k}·\boldsymbol{x_i})}{1+\sum_{k=1}^{K-1}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})},\ k=1,2,3...,K-1\\ P(Y_i=K|\boldsymbol{x_i})=&\frac{1}{1+\sum_{k=1}^{K-1}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})} \tag{1.2} \end{aligned} P(Yi=k∣xi)=P(Yi=K∣xi)=1+∑k=1K−1exp(wk⋅xi)exp(wk⋅xi), k=1,2,3...,K−11+∑k=1K−1exp(wk⋅xi)1(1.2)
上式中:
P ( y i = k ∣ x i ) = exp ( w k ⋅ x i ) ∑ k = 1 K exp ( w k ⋅ x i ) , k = 1 , 2 , 3... , K ; (1.3) \begin{aligned} P(y_i=k|\boldsymbol{x_i})=\frac{\exp(\boldsymbol{w_k}·\boldsymbol{x_i})} {\sum_{k=1}^{K}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})}, k=1,2,3...,K; \tag{1.3} \end{aligned} P(yi=k∣xi)=∑k=1Kexp(wk⋅xi)exp(wk⋅xi),k=1,2,3...,K;(1.3)
上式中:
表示第 i i i个样本属于第 k k k类的概率。
最大熵模型主要应用于二分类或者多分类首先这个模型长这个B样:
P ( y = k ∣ x ) = exp ( w i ⋅ f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i ⋅ f i ( x , y ) ) , i = 1 , 2 , 3... , n (1.4) \begin{aligned} P(y=k|\boldsymbol{x})=\frac{\exp({w_i}·f_i(\boldsymbol{x},y))} {\sum_y \exp(\sum_{i=1}^{n}{w_i}·f_i(\boldsymbol{x},y))}, i=1,2,3...,n \tag{1.4} \end{aligned} P(y=k∣x)=∑yexp(∑i=1nwi⋅fi(x,y))exp(wi⋅fi(x,y)),i=1,2,3...,n(1.4)
在上式中:
举个栗子:当体温小于38,血压小于100,血糖小于30时,总是得小病。这就是一个综合后的先验知识。
我们可以据此定义一个特征函数:f(x,y) = 1 当且仅当 x ={体温小于38,血压小于100,血糖小于30},y=小病
想要弄清楚最大熵模型、logistics模型以及softmax模型之间的关系,我们需要先看看他们各自的原理。首先从最大熵模型入手。
学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常通过约束条件来确定概率模型的集合。
首先要明确两个问题:
下面两个网址是描述的比较清楚的:
数据集 T = { ( x 1 , y 1 ) , . . . , ( x n , y N ) } T=\{(\boldsymbol{x_1},y_1),...,(\boldsymbol{x_n},y_N)\} T={(x1,y1),...,(xn,yN)}, x i \boldsymbol{x_i} xi是一个 m m m维的向量,代表样本空间中的第 i i i个值,类标签为 y = { 1 , 2 , . . , k } y=\{1, 2,..,k\} y={1,2,..,k}。
那么,根据样本空间中的 n n n条数据,可以计算 x x x的概率分布以及 x , y \boldsymbol{x},y x,y的联合概率分布,分别记为 P ~ ( x ) \widetilde{P}(\boldsymbol{x}) P (x)和 P ~ ( x , y ) \widetilde{P}(\boldsymbol{x},y) P (x,y)(因为是根据样本数据求出来的,并不能代表真实世界中的分布,所以上面加了波浪线)。
因为熵最大的模型是最好的模型,我们的任务就是找到这样一个最好的模型。但是,俗话说,最适合自己的才是最好的,所以,找最大熵就变成了找在给定样本空间条件下的最大熵模型——条件熵,根据条件熵的定义,条件熵为:(为什么请看这里:《决策树【python实现】》— 条件熵)
H ( P ) = − ∑ x , y P ( x , y ) l o g P ( y ∣ x ) H(P) = -\sum_{x,y} P(x,y)logP(y|x) H(P)=−x,y∑P(x,y)logP(y∣x)
根据贝叶斯公式,又可以写成
H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) (2.1) H(P) = -\sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x) \tag{2.1} H(P)=−x,y∑P (x)P(y∣x)logP(y∣x)(2.1)
这个时候,我们只要找到最大的 P ( y ∣ x ) P(y|x) P(y∣x)就好了。
公式(2.1)中条件概率的意义是:根据特征 x \boldsymbol{x} x计算出属于 y y y的概率能够最大化, y y y的编号为 k k k。也就是说,我们的目标是求 P ( y i = k ∣ x i ) P(y_i=k|\boldsymbol{x_i}) P(yi=k∣xi),简写为 P ( y ∣ x ) P(y|\boldsymbol{x}) P(y∣x)。
但是,仅仅一个样本上表现出良好的性能还不够,要在整个空间上都表现良好。根据我们手上的筹码:样本数据,再借助之前提到的特征函数,我们可以很好的量化这个评价指标,于是有就有了下面两个期望的计算公式:
如果,在样本空间中,这俩公式能相等的话,就十分完美了,于是有:
∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) (2.4) \sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x},y)f(\boldsymbol{x},y)=\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})f(\boldsymbol{x},y) \tag{2.4} x,y∑P (x,y)f(x,y)=x,y∑P (x)P(y∣x)f(x,y)(2.4)
根据 f ( x , y ) f(\boldsymbol{x},y) f(x,y)的定义可知,有多少种特征和类标签前的组合,就有多少个**约束条件。那么,把样本空间中的所有约束条件都算上,
那么,也就是说,我们要在这个空间中找一个没有任何主观假设的模型,即条件概率的最大熵。
说实话,上面的式子,很抽象,需要转化一下。
max p ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \underset{p \in C}{\max}\ H(P) = -\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x}) p∈Cmax H(P)=−x,y∑P (x)P(y∣x)logP(y∣x)
等价于求
min p ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) (2.5) \underset{p \in C}{\min}\ -H(P) = \sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x})\tag{2.5} p∈Cmin −H(P)=x,y∑P (x)P(y∣x)logP(y∣x)(2.5)
引入拉格朗日算子 w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1,w2,...,wn,可得到方程:
L ( P , w ) = − H ( P ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n [ w i ( E P ( f i ( x , y ) ) − E P ~ ( f i ( x , y ) ) ) ] (2.6) \begin{aligned} L(P, w) &= -H(P) + w_0(1-\sum_{y}P(y|\boldsymbol{x})) + \sum_{i=1}^{n}[w_i (E_P(f_i(\boldsymbol{x},y))-E_{ \widetilde{P}}(f_i(\boldsymbol{x},y)))] \tag{2.6}\\ \end{aligned} L(P,w)=−H(P)+w0(1−y∑P(y∣x))+i=1∑n[wi(EP(fi(x,y))−EP (fi(x,y)))](2.6)
= ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) + w 0 [ 1 − ∑ y P ( y ∣ x ) ] + ∑ i = 1 n { w i [ ∑ x , y P ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) ] } (2.7) \begin{aligned} &= \sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x})+ \\&w_0[1-\sum_{y}P(y|\boldsymbol{x})]+ \\&\sum_{i=1}^{n} \{ w_i [\sum_{\boldsymbol{x},y }P(\boldsymbol{x},y)f_i(\boldsymbol{x},y) - \sum_{\boldsymbol{x},y }\widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})f_i(\boldsymbol{x},y)] \}\tag{2.7} \end{aligned} =x,y∑P (x)P(y∣x)logP(y∣x)+w0[1−y∑P(y∣x)]+i=1∑n{wi[x,y∑P(x,y)fi(x,y)−x,y∑P (x)P(y∣x)fi(x,y)]}(2.7)
由最优化问题可知,我们的目标是求:
min p ∈ C max w L ( P , w ) (2.8-1) \begin{aligned} \underset{p \in C}{\min}\ \underset{w}{\max}\ L(P,w)\tag{2.8-1} \end{aligned} p∈Cmin wmax L(P,w)(2.8-1)
可转化为:
max w min p ∈ C L ( P , w ) (2.8-2) \begin{aligned} \underset{w}{\max}\ \underset{p \in C}{\min}\ L(P,w)\tag{2.8-2} \end{aligned} wmax p∈Cmin L(P,w)(2.8-2)
基本思想是:先把 min p ∈ C L ( P , w ) \underset{p \in C}{\min}\ L(P,w) p∈Cmin L(P,w)的解用 w w w表示出来,然后再求 w w w的解即可。
先求 min p ∈ C L ( P , w ) \underset{p \in C}{\min}\ L(P,w) p∈Cmin L(P,w):
当 L ( P , w ) L(P,w) L(P,w)满足约束条件时,令
ψ ( w ) = min p ∈ C L ( P , w ) = L ( P w , w ) (2.9) \psi(w) = \underset{p \in C}{\min}\ L(P,w) = L(P_w,w) \tag{2.9} ψ(w)=p∈Cmin L(P,w)=L(Pw,w)(2.9)
设 ψ ( w ) \psi(w) ψ(w)的解为 P w ( y ∣ x ) P_w(y|x) Pw(y∣x),求 L ( P , w ) L(P,w) L(P,w)对 P ( y ∣ x ) P(y|x) P(y∣x)的偏导数,并令其为0:
∂ L ( P , w ) ∂ p ( y ∣ x ) = ∑ x , y { P ~ ( x ) l o g P ( y ∣ x ) + P ~ ( x ) } − ∑ y w 0 + ∑ i = 1 n { w i [ 0 − ∑ x , y P ~ ( x ) f i ( x , y ) ] } \begin{aligned} \frac{\partial {L(P, w)}}{\partial{p(y|x)}} &= \sum_{x,y} \{ \widetilde{P}(x)logP(y|x) + \widetilde{P}(x)\} - \sum_{y}w_0 + \sum_{i=1}^{n} \{ w_i [0 - \sum_{x,y }\widetilde{P}(x)f_i(x,y) ] \} \\ \end{aligned} ∂p(y∣x)∂L(P,w)=x,y∑{P (x)logP(y∣x)+P (x)}−y∑w0+i=1∑n{wi[0−x,y∑P (x)fi(x,y)]}
因为: ∑ x P ~ ( x ) = 1 \sum_{x}\widetilde{P}(x)=1 ∑xP (x)=1,所以有:
∑ x , y P ~ ( x ) w 0 = ∑ y w 0 \sum_{x,y}\widetilde{P}(x)w_0 = \sum_{y}w_0 x,y∑P (x)w0=y∑w0
所以有:
∂ L ( P , w ) ∂ p ( y ∣ x ) = ∑ x , y P ~ ( x ) ( l o g P ( y ∣ x ) + 1 ) − ∑ x , y P ~ ( x ) w 0 − ∑ i = 1 n { w i ∑ x , y P ~ ( x ) f i ( x , y ) } = ∑ x , y P ~ ( x ) ( l o g P ( y ∣ x ) + 1 ) − ∑ x , y P ~ ( x ) w 0 − ∑ i = 1 n { w i ∑ x , y P ~ ( x ) f i ( x , y ) } = ∑ x , y P ~ ( x ) { ( l o g P ( y ∣ x ) + 1 ) − w 0 − ∑ i = 1 n w i f i ( x , y ) } (2.10) \begin{aligned} \frac{\partial {L(P, w)}}{\partial{p(y|x)}} &= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\ &= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\ &= \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y) \}\tag{2.10} \end{aligned} ∂p(y∣x)∂L(P,w)=x,y∑P (x)(logP(y∣x)+1)−x,y∑P (x)w0−i=1∑n{wix,y∑P (x)fi(x,y)}=x,y∑P (x)(logP(y∣x)+1)−x,y∑P (x)w0−i=1∑n{wix,y∑P (x)fi(x,y)}=x,y∑P (x){(logP(y∣x)+1)−w0−i=1∑nwifi(x,y)}(2.10)
令式(2.10)为 0 0 0,则有:
0 = ∑ x , y P ~ ( x ) { ( l o g P ( y ∣ x ) + 1 ) − w 0 − ∑ i = 1 n w i f i ( x , y ) } p ( y ∣ x ) = exp ( w 0 + ∑ i = 1 n w i f i ( x , y ) − 1 ) p ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) exp ( 1 − w 0 ) (2.11) \begin{aligned} 0 =& \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y)\} \\ p(y|x) =& \exp ( w_0 + \sum_{i=1}^{n} w_i f_i(x,y)-1 ) \\ p(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\exp(1-w_0)} \tag{2.11} \end{aligned} 0=p(y∣x)=p(y∣x)=x,y∑P (x){(logP(y∣x)+1)−w0−i=1∑nwifi(x,y)}exp(w0+i=1∑nwifi(x,y)−1)exp(1−w0)exp(∑i=1nwifi(x,y))(2.11)
又因 ∑ y p ( y ∣ x ) = 1 \sum_{y}p(y|x)=1 ∑yp(y∣x)=1,代入公式(2.11),则有:
1 = ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) exp ( 1 − w 0 ) exp ( 1 − w 0 ) = ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) (2.12) \begin{aligned} 1 =& \sum_{y} \frac{\exp(\sum_{i=1}^{n} w_i f_i(x,y))} {\exp (1-w_0) } \\ \exp(1-w_0) =& \sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y)) \tag{2.12} \end{aligned} 1=exp(1−w0)=y∑exp(1−w0)exp(∑i=1nwifi(x,y))y∑exp(i=1∑nwifi(x,y))(2.12)
令(2.12)为 Z w ( x ) Z_w(x) Zw(x),代入(2.11),结果记为 p w ( y ∣ x ) p_w(y|x) pw(y∣x),则有
p w ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) (2.13) \begin{aligned} p_w(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y))} \tag{2.13} \end{aligned} pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))(2.13)
因此,优化目标 ψ ( x ) \psi(x) ψ(x)的解为公式(2.13),其中 Z w ( x ) Z_w(x) Zw(x)被称为规范化因子。
再使(2.13)极大化,求 w w w。
即求
max w ψ ( w ) (2.14) \begin{aligned} \underset{w}{\max}\ \psi(w) \tag{2.14} \end{aligned} wmax ψ(w)(2.14)
由于(2.13)式并没有一个显式的解析解,因此需要借助于数值的方法。由于是一个光滑的凸函数,所以可以求解的方法很多。可以使用的方法有:
其中,前两个方法是专门为最大熵模型而设计的,后两种方法为通用的算法。
其实到这里,最大熵模型的理论推导就算结束了。
在公式(2.14)中,因为 p w ( y ∣ x ) p_w(y|x) pw(y∣x)是在 ∑ y p ( y ∣ x ) = 1 \sum_y p(y|x)=1 ∑yp(y∣x)=1的条件下得出,故而有:
L ( P w , w ) = − H ( P w ) + ∑ i = 1 n [ w i ( E P ~ ( f i ( x , y ) ) − E P w ( f i ( x , y ) ) ) ] = ∑ x , y P ~ ( x ) P w ( y ∣ x ) l o g P w ( y ∣ x ) + ∑ i = 1 n w i ( E P ~ ( f i ( x , y ) ) − ∑ x , y P ~ ( x ) ⋅ P w ( y ∣ x ) ⋅ f i ( x , y ) ) = ∑ i = 1 n w i ⋅ E P ~ ( f i ( x , y ) ) + ∑ x , y P ~ ( x ) P w ( y ∣ x ) ⋅ ( l o g P w ( y ∣ x ) − ∑ i = 1 n w i f i ( x , y ) ) (2.15) \begin{aligned} L(P_w, w) &= -H(P_w) + \sum_{i=1}^{n} [w_i (E_{\widetilde{P}} (f_i(x,y)) - E_{P_w}(f_i(x,y)))] \\ &=\sum_{x,y} \widetilde{P}(x) P_w(y|x) log P_w(y|x) + \sum_{i=1}^{n} w_i (E_{\widetilde{P}} (f_i(x,y)) - \sum_{x,y}\widetilde{P}(x)·P_w(y|x)·f_i(x,y)) \\ &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(log P_w(y|x) - \sum_{i=1}^{n} w_if_i(x,y)) \tag{2.15} \end{aligned} L(Pw,w)=−H(Pw)+i=1∑n[wi(EP (fi(x,y))−EPw(fi(x,y)))]=x,y∑P (x)Pw(y∣x)logPw(y∣x)+i=1∑nwi(EP (fi(x,y))−x,y∑P (x)⋅Pw(y∣x)⋅fi(x,y))=i=1∑nwi⋅EP (fi(x,y))+x,y∑P (x)Pw(y∣x)⋅(logPw(y∣x)−i=1∑nwifi(x,y))(2.15)
将
P w ( y ∣ x ) = e x p ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y e x p ( ∑ i = 1 n w i f i ( x , y ) ) (2.13) \begin{aligned} P_w(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))}\tag{2.13} \end{aligned} Pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))(2.13)
代入公式(2.15),得
L ( P w , w ) = ∑ i = 1 n w i ⋅ E P ~ ( f i ( x , y ) ) + ∑ x , y P ~ ( x ) P w ( y ∣ x ) ⋅ ( ∑ i = 1 n w i f i ( x , y ) − l o g P w ( x ) − ∑ i = 1 n w i f i ( x , y ) ) = ∑ i = 1 n w i ⋅ E P ~ ( f i ( x , y ) ) − l o g Z w ( x ) ⋅ ∑ x , y P ~ ( x ) P w ( y ∣ x ) = ∑ i = 1 n w i ⋅ E P ~ ( f i ( x , y ) ) − l o g Z w ( x ) ⋅ ( ∑ x ∑ y P ~ ( x ) P w ( y ∣ x ) ) = ∑ i = 1 n w i ⋅ E P ~ ( f i ( x , y ) ) − l o g Z w ( x ) ⋅ ( ∑ x P ~ ( x ) ) = ∑ i = 1 n w i ⋅ ∑ x , y P ~ ( x , y ) f i ( x , y ) − l o g Z w ( x ) ⋅ ( ∑ x P ~ ( x ) ) (2.17) \begin{aligned} L(P_w, w) &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(\sum_{i=1}^{n} w_i f_i(x,y)-logP_w(x) - \sum_{i=1}^{n} w_if_i(x,y)) \\ &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x)\\ &=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\sum_{y} \widetilde{P}(x) P_w(y|x)) \\ &=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\\ &=\sum_{i=1}^{n}w_i ·\sum_{x,y} \widetilde{P}(x,y)f_i(x,y) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\tag{2.17} \end{aligned} L(Pw,w)=i=1∑nwi⋅EP (fi(x,y))+x,y∑P (x)Pw(y∣x)⋅(i=1∑nwifi(x,y)−logPw(x)−i=1∑nwifi(x,y))=i=1∑nwi⋅EP (fi(x,y))−logZw(x)⋅x,y∑P (x)Pw(y∣x)=i=1∑nwi⋅EP (fi(x,y))−logZw(x)⋅(x∑y∑P (x)Pw(y∣x))=i=1∑nwi⋅EP (fi(x,y))−logZw(x)⋅(x∑P (x))=i=1∑nwi⋅x,y∑P (x,y)fi(x,y)−logZw(x)⋅(x∑P (x))(2.17)
又因为最大熵模型的似然估计有:
L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) l o g P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ⋅ ( ∑ i = 1 n w i f i ( x , y ) − l o g Z w ( x ) ) = ∑ x , y P ~ ( x , y ) ⋅ ∑ i = 1 n w i f i ( x , y ) − l o g Z w ( x ) ⋅ ∑ x , y P ~ ( x ) P w ( y ∣ x ) (2.18) \begin{aligned} L_{\widetilde{P}}(P_w) &= \sum_{x,y} \widetilde{P}(x,y)logP(y|x) \\ &=\sum_{x,y} \widetilde{P}(x,y)·(\sum_{i=1}^{n}w_i f_i(x,y)-logZ_w(x)) \\ &= \sum_{x,y} \widetilde{P}(x,y)·\sum_{i=1}^{n}w_i f_i(x,y) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x) \tag{2.18} \end{aligned} LP (Pw)=x,y∑P (x,y)logP(y∣x)=x,y∑P (x,y)⋅(i=1∑nwifi(x,y)−logZw(x))=x,y∑P (x,y)⋅i=1∑nwifi(x,y)−logZw(x)⋅x,y∑P (x)Pw(y∣x)(2.18)
所以公式(3.1)=(2.16)。故而,对偶函数的极大化 = 最大熵模型的似然估计。
p w ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) \begin{aligned} p_w(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y))} \end{aligned} pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))
当特征函数为:
f i ( x ) = { x i y = 1 0 y = 0 f_i(x)= \left\{\begin{matrix} x_i & y=1\\ 0 & y=0 \end{matrix}\right. fi(x)={xi0y=1y=0
当我们分类的数目为 { 0 , 1 } \{0, 1\} {0,1}时:
p w ( y i = 0 ∣ x i ) = 1 1 + exp ( w x i ) \begin{aligned} p_w(y_i=0|x_i) =& \frac{1} {1+\exp (\boldsymbol{w x_i})} \end{aligned} pw(yi=0∣xi)=1+exp(wxi)1
p w ( y i = 1 ∣ x i ) = exp ( w x i ) 1 + exp ( w x i ) \begin{aligned} p_w(y_i=1|x_i) =& \frac{\exp (\boldsymbol{w x_i})} {1+\exp (\boldsymbol{w x_i})} \end{aligned} pw(yi=1∣xi)=1+exp(wxi)exp(wxi)
当特征函数为:
f i ( x ) = x i f_i(x)=x_i fi(x)=xi
p w ( y i = k ∣ x i ) = exp ( w k x i ) ∑ k = 1 K exp ( w k x i ) \begin{aligned} p_w(y_i=k|x_i) =& \frac{\exp (\boldsymbol{w_k x_i})} {\sum_{k=1}^{K} \exp (\boldsymbol{w_k x_i})} \end{aligned} pw(yi=k∣xi)=∑k=1Kexp(wkxi)exp(wkxi)
主要是分类问题,即 x ∈ R x \in R x∈R是样本的特征,而 y ∈ { 0 , 1 } y \in \{0, 1\} y∈{0,1}是类别的标号,那么样本属于某个类别的概率可以用 x x x来直接表示。通俗的来说,就是线性模型外面穿了一层马夹。
Logistics模型的基本思想也是线性回归,其公式为:
P ( y i = 1 ∣ x i ) = exp ( w ⋅ x i ) 1 + exp ( w ⋅ x i ) (4.1) \begin{aligned} P(y_i=1|\boldsymbol{x_i})=\frac{\exp(w·\boldsymbol{x_i})} {1+\exp(w·\boldsymbol{x_i})} \tag{4.1} \end{aligned} P(yi=1∣xi)=1+exp(w⋅xi)exp(w⋅xi)(4.1)
公式(4.1)被称为sigmoid函数,
同样的,由公式(4.1)可以推导出:
P ( y i = 1 ∣ x i ) 1 − P ( y i = 1 ∣ x i ) = e w ⋅ x i (4.2) \begin{aligned} \frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})}=e^{w·\boldsymbol{x_i}} \tag{4.2} \end{aligned} 1−P(yi=1∣xi)P(yi=1∣xi)=ew⋅xi(4.2)
称公式(1.2)为几率,表示某种事情发生的可能性与不可能发生的可能性之比。,取自然对数则有:
ln ( P ( y i = 1 ∣ x i ) 1 − P ( y i = 1 ∣ x i ) ) = w ⋅ x i (4.3) \ln(\frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})})=w·\boldsymbol{x_i} \tag{4.3} ln(1−P(yi=1∣xi)P(yi=1∣xi))=w⋅xi(4.3)
其中, ln ( P ( y i = 1 ∣ x i ) 1 − P ( y i = 1 ∣ x i ) ) \ln(\frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})}) ln(1−P(yi=1∣xi)P(yi=1∣xi))称为 P ( y ∣ x ) P(y|\boldsymbol{x}) P(y∣x)的 logit 函数。该模型称为 logistics模型,其中 w w w反映了当 x x x增加一个单位时,样本属于 y = 1 y=1 y=1类的几率在对数尺度上增加的幅度。
设 P ( y i = 1 ∣ x i ) = π ( x i ) , P ( y i = 0 ∣ x i ) = 1 − π ( x i ) P(y_i=1|\boldsymbol{x_i})=\pi(\boldsymbol{x_i}),P(y_i=0|\boldsymbol{x_i})=1-\pi(\boldsymbol{x_i}) P(yi=1∣xi)=π(xi),P(yi=0∣xi)=1−π(xi),则每个样本 ( x i , y i ) (\boldsymbol{x_i}, y_i) (xi,yi)出现的概率为:
P ( x i , y i ) = π ( x i ) y i ( 1 − π ( x i ) ) 1 − y i P(\boldsymbol{x_i}, y_i)=\pi(\boldsymbol{x_i})^{y_i}(1-\pi(\boldsymbol{x_i}))^{1-y_i} P(xi,yi)=π(xi)yi(1−π(xi))1−yi
似然函数为:
L ( w ) = ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i log L ( w ) = ∑ i = 1 N [ y i ( w ⋅ x i ) − log ( 1 + exp ( w ⋅ x i ) ) ] (4.4) \begin{aligned} L(w) =&\prod_{i=1}^{N}[\pi(\boldsymbol{x_i})]^{y_i}[1-\pi(\boldsymbol{x_i})]^{1-y_i} \\ \log L(w) =&\sum_{i=1}^{N}[y_i({w}·\boldsymbol{x_i}) - \log(1+\exp({w}·\boldsymbol{x_i}))] \tag{4.4} \end{aligned} L(w)=logL(w)=i=1∏N[π(xi)]yi[1−π(xi)]1−yii=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))](4.4)
目标是找到 w w w使得 L ( w ) L(w) L(w)达到最大值,让公式(1.4)对 w w w求导得:
∂ log L ( w ) ∂ w = ∑ i = 1 N [ y i x i − 1 1 + exp ( w ⋅ x i ) exp ( w ⋅ x i ) ⋅ x i ] ∂ log L ( w ) ∂ w = ∑ i = 1 N x i [ y i − P ( y i ∣ x i ) ] (4.5) \begin{aligned} \frac{\partial{\log L(w)}}{\partial{w}} =&\sum_{i=1}^{N}[y_i\boldsymbol{x_i} - \frac{1}{1+\exp({w}·\boldsymbol{x_i})}\exp({w}·\boldsymbol{x_i})·\boldsymbol{x_i}]\\ \frac{\partial{\log L(w)}}{\partial{w}} =&\sum_{i=1}^{N}\boldsymbol{x_i}[y_i - P(y_i|\boldsymbol{x_i})]\\ \tag{4.5} \end{aligned} ∂w∂logL(w)=∂w∂logL(w)=i=1∑N[yixi−1+exp(w⋅xi)1exp(w⋅xi)⋅xi]i=1∑Nxi[yi−P(yi∣xi)](4.5)
令(1.5)为0,求出 w w w即可,但该方程组无法求解析解,一般使用梯度上升迭代求得。
当特征函数为:
f i ( x ) = x i f_i(x)=x_i fi(x)=xi
p w ( y i = k ∣ x i ) = exp ( w k x i ) ∑ k = 1 K exp ( w k x i ) \begin{aligned} p_w(y_i=k|x_i) =& \frac{\exp (\boldsymbol{w_k x_i})} {\sum_{k=1}^{K} \exp (\boldsymbol{w_k x_i})} \end{aligned} pw(yi=k∣xi)=∑k=1Kexp(wkxi)exp(wkxi)
一个多分类问题,C = 4。线性分类器模型最后输出层包含了四个输出值,分别是:
V = [ − 3 2 − 1 0 ] V=\left[ \begin{matrix} -3 \\ 2 \\ -1 \\ 0 \end{matrix} \right] V=⎣⎢⎢⎡−32−10⎦⎥⎥⎤
经过Softmax处理后,数值转化为相对概率:
S = [ 0.0057 0.8390 0.0418 0.1135 ] S=\left[ \begin{matrix} 0.0057 \\ 0.8390 \\ 0.0418 \\ 0.1135 \end{matrix} \right] S=⎣⎢⎢⎡0.00570.83900.04180.1135⎦⎥⎥⎤
很明显,Softmax 的输出表征了不同类别之间的相对概率。我们可以清晰地看出,S1 = 0.8390,对应的概率最大,则更清晰地可以判断预测为第1类的可能性更大。Softmax 将连续数值转化成相对概率,更有利于我们理解。
softmax函数最明显的特点在于:它把每个神经元的输入占当前层所有神经元输入之和的比值,当作该神经元的输出。这使得输出更容易被解释:神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。
另外,softmax不仅把神经元输出构造成概率分布,而且还起到了归一化的作用,适用于很多需要进行归一化处理的分类问题。
以下内容来自:softmax的log似然代价函数(公式求导)