统计学习方法【6】-逻辑斯谛回归与最大熵模型

声明:该文章为作者整理和简略的,非原创,是多方资料的整合,为方便所以标注的原创,有错别字欢迎指正,仅作为学习用途,其中也有博主自己的笔记

一、逻辑斯谛回归模型

(1)、逻辑斯谛分布

X X 是连续随机变量, X X 服从逻辑斯谛分布是指 X X 具有以下分布函数和密度函数:
F ( x ) = P ( X x ) = 1 1 + e x p ( x μ ) γ F(x) = P(X \leq x) = \frac{1}{ 1 + exp^{-(x-\mu)\gamma}}
f ( x ) = F ( x ) = e x p ( x μ ) / γ γ ( 1 + e x p ( x μ ) γ ) 2 f(x) = F'{(x)} = \frac{exp^{-(x - \mu)/\gamma}}{\gamma(1 + exp^{-(x - \mu)\gamma})^2}
式中, μ \mu 是位置参数, γ > 0 \gamma > 0 是形状参数。

逻辑斯谛分布的密度函数 f ( x ) f(x) 和分布函数 F ( x ) F(x) 的形状如下,该曲线以点 ( μ , 1 2 ) (\mu, \frac{1}{2}) 为中心点对称,即满足
F ( x + μ ) 1 2 = F ( x μ ) + 1 2 F(-x + \mu) - \frac{1}{2} = -F(x - \mu) + \frac{1}{2}
对于不同的 μ \mu 和不同的 γ \gamma 其形状不同:
在这里插入图片描述
code:

def plot_sigmoid(u, gamma):
    x = np.arange(-10, 10, 0.5)
    y_1 = 1/(1 + pow(np.e, -(x - u) / gamma))
    y_2 = (pow(np.e, -(x - u) / gamma))/ (gamma * pow((1 + pow(np.e, -(x - u) / gamma)), 2))
    plt.plot(x, y_1, label = 'distribution function')
    plt.plot(x, y_2, label = 'dense function')
    plt.legend(loc='best')
plt.subplot(221)
plot_sigmoid(0, 2)
plt.subplot(222)
plot_sigmoid(0, 0.5)
plt.subplot(223)
plot_sigmoid(2, 2)
plt.subplot(224)
plot_sigmoid(2, 0.5)

(2)、二项逻辑斯谛回归模型

二项逻辑斯谛回归模型是一种分类模型,有条件概率分布 P ( Y X ) P(Y|X) 表示,形式为参数化的逻辑斯谛分布,这里,随机变量 X X 取值为实数,随机变量 Y Y 取值为1或0,我们通过监督学习的方法来估计模型参数。

逻辑斯谛回归模型: 二项逻辑斯谛回归模型是如下的条件概率分布:
P ( Y = 1 x ) = e x p ( w x + b ) 1 + e x p ( w x + b ) P(Y = 1| x) = \frac{exp(w ·x + b)}{1 + exp(w·x + b)}

P ( Y = 0 x ) = 1 1 + e x p ( w x + b ) P(Y = 0| x) = \frac{1}{ 1 + exp(w· x + b)}

有时为了方便,将权值向量和输入向量进行扩充,仍记为 w , x w, x ,即 w = ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b ) T , x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) T w = (w^{(1)}, w^{(2)}, ..., w^{(n)}, b)^T, x = (x^{(1)}, x^{(2)}, ..., x^{(n)})^T ,这时逻辑斯谛回归模型如下:
P ( Y = 1 x ) = e x p ( w x ) 1 + e x p ( w x ) P(Y = 1| x) = \frac{exp(w ·x )}{1 + exp(w·x )}

P ( Y = 0 x ) = 1 1 + e x p ( w x ) P(Y = 0| x) = \frac{1}{ 1 + exp(w· x )}

(3)、几率(odds)

几率:该事件发生的概率与该事件不发生的概率的比值,如果一个事件发生的概率为 p p ,那么该事件的几率为 p 1 p \frac{p}{1 - p}
该事件的对数几率或logit函数为
l o g i t ( p ) = l o g p 1 p logit(p) = log\frac{p}{1-p}

对逻辑斯谛回归模型,可得
l o g P ( Y = 1 x ) 1 P ( Y = 1 x ) = w x log\frac{P(Y = 1|x)}{1 - P(Y = 1|x)} = w ·x

这就是说,在逻辑斯谛回归模型中,输出 Y = 1 Y = 1 的对数几率是输入 x x 的线性函数,或者说,输出 Y = 1 Y = 1 的对数几率是由输入 x x 的线性函数表示的模型,即逻辑斯谛回归模型。

换一个角度看,考虑对输入 x x 进行分类的线性函数 w x w·x ,其值域为实数域,注意,这里 x R n + 1 w R n + 1 x \in R^{n + 1}, w \in R^{n + 1} ,通过逻辑斯谛回归模型可以将线性函数 w x w·x 转换为概率:
P ( Y = 1 x ) = e x p ( w x ) 1 + e x p ( w x ) P(Y = 1| x) = \frac{exp(w·x)}{1 + exp(w·x)}

(4)、模型参数估计

逻辑斯谛回归模型学习时,对于给定的训练数据集 τ = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } \tau =\{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\} ,其中, x i R n , y i { 0 , 1 } x_i \in R^n, y_i \in \{0, 1\} ,可以应用极大似然估计模型参数,从而得到逻辑斯谛回归模型:
设: P ( Y = 1 x ) = π ( x ) , P ( Y = 0 x ) = 1 π ( x ) P(Y = 1|x) = \pi(x), P(Y = 0|x) = 1 - \pi(x)
对数似然函数为:
L ( x ) = i = 1 N [ y i l o g π ( x i ) + ( 1 y i ) l o g ( 1 π ( x i ) ) ] L(x) = \sum_{i = 1}^{N}[y_ilog\pi(x_i) + (1 - y_i)log(1 - \pi(x_i))]
= i = 1 N [ y i l o g π ( x i ) 1 π ( x i ) + l o g ( 1 π ( x i ) ) ] =\sum_{i = 1}^N[y_ilog\frac{\pi(x_i)}{1 - \pi(x_i)} + log(1 - \pi(x_i))]
= i = 1 N [ y i ( w x i ) l o g ( 1 + e x p ( w x i ) ) ] = \sum_{i = 1}^N[y_i(w·x_i)-log(1 + exp(w·x_i))]
L ( w ) L(w) 求极大值,得到 w w 的估计值。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。

(5)、多项逻辑斯谛回归

将上诉模型推广到多项逻辑回归模型,用于多分类,假设离散型随机变量 Y Y 的取值集合为 { 1 , 2 , . . . , K } \{1, 2, ..., K\} ,那么多项逻辑斯谛回归模型是
P ( Y = k x ) = e x p ( w k x ) 1 + k = 1 K 1 e x p ( w k x ) , k = 1 , 2 , . . . , K P(Y = k|x) = \frac{exp(w_k·x)}{1 + \sum_{k = 1}^{K - 1}exp(w_k·x)}, k = 1, 2, ..., K
P ( Y = K x ) = 1 1 + k = 1 K 1 e x p ( w k x ) P(Y = K|x) = \frac{1}{1 + \sum_{k = 1}^{K - 1}exp(w_k·x)}

二、最大熵模型

(1)、最大熵模型

最大熵原理是概率模型学习的一个参数,最大熵原理认为,学习概率模型时,在所有可能得概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。

假设离散随机变量 X X 的概率分布为 P ( x ) P(x) ,其熵是
H ( P ) = x P ( x ) l o g P ( x ) H(P) = -\sum_xP(x)logP(x)
熵满足下列不等式:
0 H ( P ) l o g X 0 \leq H(P) \leq log|X|
式中, X |X| X X 的取值个数,当且仅当 X X 的分布是均匀分布时右边的等号成立,也就是说,当 X X 服从均匀分布时,熵最大。

(2)、最大熵模型的定义

假设分类模型是一个条件概率分布 P ( Y X ) P(Y|X) X χ R n X \in \chi \subseteq R^n 表示输入, Y γ Y \in \gamma 表示输出, χ γ \chi 和 \gamma 分别是输入和输出的集合,这个模型表示的是对给定的输入 χ \chi ,以条件概率 P ( Y X ) P(Y|X) 输出 Y Y .
给定一个训练数据集
τ = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } \tau = \{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\}
学习的目标是用最大熵原理选择最好的分类模型。

首先考虑模型应该满足的条件,给定训练数据集,可以确定联合分布 P ( Y X ) P(Y,X) 的经验分布和边缘分布 P ( X ) P(X) 的经验分布,分别以 P ~ ( X , Y ) \widetilde{P}(X, Y) P ~ ( X ) \widetilde{P}(X) ,这里
P ~ ( X = x , Y = y ) = v ( X = x , Y = y ) N \widetilde{P}(X=x, Y=y) = \frac{v(X = x, Y = y)}{N}

P ~ ( X = x ) = v ( X = x ) N \widetilde{P}(X=x) = \frac{v(X = x)}{N}
其中, v ( X = x , Y = y ) v(X = x, Y = y) 表示训练数据中样本 ( x , y ) (x, y) 出现的频率, v ( X = x ) v(X= x) 表示训练数据中输入 x x 出现的频率, N N 表示训练样本容量。

用特征函数 f ( x , y ) f(x, y) 描述输入 x x 和输出 y y 之间的某一个时间,其定义为

f ( x , y ) = { 1 , x y 0 , f(x, y) = \left \{ \begin{aligned} 1, && x与y满足某一事实\\ 0 ,&& 否则\\ \end{aligned} \right.

它是一二值函数,当 x x y y 满足这个事实时取值为1,否则取值为 0 0
特征函数 f ( x , y ) f(x, y) 关于经验分布 P ~ ( X , Y ) \widetilde{P}(X, Y) 期望值,用 E P ~ ( f ) E_{\widetilde{P}}(f) 表示。

E P ~ ( f ) = x , y P ~ ( x , y ) f ( x , y ) E_{\widetilde{P}}(f) = \sum_{x, y}\widetilde{P}(x, y)f(x, y)

特征函数 f ( x , y ) f(x, y) 关于模型 P ( Y X ) P(Y|X) 与经验分布 P ~ ( X ) \widetilde{P}(X) 的期望值, E P ( f ) E_P(f) 表示
E P ( f ) = x , y P ~ ( x ) P ( y x ) f ( x , y ) E_P(f) = \sum_{x, y}\widetilde{P}(x)P(y|x)f(x, y)

如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即
E p ( f ) = E p ~ ( f ) E_{p}(f) = E_{\widetilde{p}}(f)

x , y P ~ ( x ) P ( y x ) f ( x , y ) = x , y P ~ ( x , y ) f ( x , y ) \sum_{x, y}\widetilde{P}(x)P(y|x)f(x, y) = \sum_{x, y}\widetilde{P}(x, y)f(x, y)

假设有 n n 个特征函数 f i ( x , y ) , i = 1 , 2 , . . . , n f_i(x, y), i = 1, 2, ..., n ,那么就有n个约束条件。

假设满足所有约束条件的模型集合为
C { P p E P ( f ) = E P ~ ( f ) , i = 1 , 2 , . . , n } C\equiv \{ P \in p | E_{P}(f) = E_{\widetilde{P}}(f), i = 1, 2, .., n\}
定义在条件概率分布 P ( Y X ) P(Y|X) 上的条件熵为
H ( P ) = x , y P ~ ( x ) P ( y x ) l o g P ( y x ) H(P) = \sum_{x, y} \widetilde{P}(x)P(y|x)logP(y|x)

则模型集合中 C C 中条件熵 H ( P ) H(P) 最大的模型称为最大熵模型。

(3)、最大熵模型的学习

最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习可以形式化为约束最优化问题。
对于给定的训练数据集 τ = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } \tau = \{ (x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} 以及特征函数 f i ( x , y ) , i = 1 , 2 , . . . , n f_i(x, y), i = 1, 2, ..., n ,最大熵模型的学习等价于约束条件最优化问题:
m a x p c H ( P ) = x , y P ~ ( x ) P ( y x ) l o g P ( y x ) max_{p\in c} H(P ) = -\sum_{x, y}\widetilde{P}(x)P(y|x)logP(y|x)
s . t . E P ( f i ) = E P ~ ( f ) , i = 1 , 2 , . . . , n s.t. E_P (f_i) = E_{\widetilde{P}}(f), i = 1 , 2, ..., n
y P ( y x ) = 1 \sum_yP(y|x) = 1

(3)、极大似然估计

对偶函数的极大化等价于最大熵模型的极大似然估计。

参考资料:
【1】统计学习方法——李航

猜你喜欢

转载自blog.csdn.net/weixin_43763859/article/details/106451311