《统计学习方法》——逻辑斯谛回归与最大熵模型(上)

news2024/11/25 20:28:06

引言

逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。

由于后面最优化方法中用到了最优化理论中的一些知识,建议先阅读最优化简介。

逻辑斯谛回归模型

定义 6.1(逻辑斯谛分布) X X X施连续随机变量, X X X服从逻辑斯谛分布是指 X X X具有下列分布函数和密度函数:
F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ (6.1) F(x) = P(X \leq x) = \frac{1}{1 + e^{-(x-\mu)/\gamma}} \tag{6.1} F(x)=P(Xx)=1+e(xμ)/γ1(6.1)

f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) (6.2) f(x) = F^\prime(x) = \frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})}\tag{6.2} f(x)=F(x)=γ(1+e(xμ)/γ)e(xμ)/γ(6.2)

其中, μ \mu μ为位置参数, γ > 0 \gamma >0 γ>0为形状参数。

这里推导一下 f ( x ) f(x) f(x)
F ′ ( x ) = ( 1 1 + e − ( x − μ ) / γ ) ′ = − d ( 1 + e − ( x − μ ) / γ ) / d x ( 1 + e − ( x − μ ) / γ ) 2 = − e − ( x − μ ) / γ ⋅ − 1 γ ( 1 + e − ( x − μ ) / γ ) 2 = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 \begin{aligned} F^\prime(x) &= \left(\frac{1}{1 + e^{-(x-\mu)/\gamma}}\right)^\prime \\ &= -\frac{d(1+ e^{-(x-\mu)/\gamma})/dx}{(1 + e^{-(x-\mu)/\gamma})^2} \\ &= -\frac{e^{-(x-\mu)/\gamma} \cdot -\frac{1}{\gamma}}{(1 + e^{-(x-\mu)/\gamma})^2} \\ &= \frac{e^{-(x-\mu)/\gamma}}{\gamma(1 + e^{-(x-\mu)/\gamma})^2} \end{aligned} F(x)=(1+e(xμ)/γ1)=(1+e(xμ)/γ)2d(1+e(xμ)/γ)/dx=(1+e(xμ)/γ)2e(xμ)/γγ1=γ(1+e(xμ)/γ)2e(xμ)/γ
逻辑斯谛分布的密度函数 f ( x ) f(x) f(x)和分布函数 F ( x ) F(x) F(x)的图形如图6.1所示。分布函数属于逻辑斯谛函数,其图形式一条S形曲线。该曲线以点 ( μ , 1 2 ) (\mu, \frac{1}{2}) (μ,21)为中心对称,即满足
F ( − x + μ ) − 1 2 = − F ( x + μ ) + 1 2 F(-x+\mu) - \frac{1}{2} = -F(x+\mu) + \frac{1}{2} F(x+μ)21=F(x+μ)+21
image-20230529140914069

二项逻辑斯谛回归模型

二项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)表示,形式为参数化的逻辑斯谛分布。

随机变量 X X X取值为实数,随机变量 Y Y Y的取值为 1 1 1 0 0 0

定义6.2(逻辑斯谛回归模型) 二项逻辑斯谛回归模型是如下的条件概率分布:
P ( Y = 1 ∣ X ) = exp ⁡ ( w ⋅ x + b ) 1 + exp ⁡ ( w ⋅ x + b ) (6.3) P(Y=1|X) = \frac{\exp(w \cdot x + b)}{1 + \exp(w\cdot x + b)} \tag{6.3} P(Y=1∣X)=1+exp(wx+b)exp(wx+b)(6.3)

P ( Y = 0 ∣ X ) = 1 1 + exp ⁡ ( w ⋅ x + b ) (6.4) P(Y=0|X) = \frac{1}{1 + \exp(w\cdot x + b)} \tag{6.4} P(Y=0∣X)=1+exp(wx+b)1(6.4)

其中, x ∈ R n x \in \Bbb{R}^n xRn是输入, Y ∈ { 0 , 1 } Y\in \{0,1\} Y{0,1}是输出, w ∈ R n w \in \Bbb{R}^n wRn b ∈ R b \in \Bbb R bR是参数, w w w称为权值向量, b b b称为偏置, w ⋅ x w\cdot x wx w w w x x x的内积。

对于给定的输入实例 x x x,按照上面两式分别求得属于 Y = 1 Y=1 Y=1 Y = 0 Y=0 Y=0的概率,然后比较两个概率的大小,将实例 x x x分为概率值较大的那一类。

为了方便,即消掉偏置 b b b,有时将权值向量和输入向量加以扩充,仍然记作 w , x w,x w,x,此时 w = ( w ( 1 ) , w ( 2 ) ⋯   , w ( n ) , b ) T , x = ( x ( 1 ) , x ( 2 ) ⋯   , x ( n ) , 1 ) T w=(w^{(1)},w^{(2)}\cdots,w^{(n)},b)^T,x=(x^{(1)},x^{(2)}\cdots,x^{(n)},1)^T w=(w(1),w(2),w(n),b)T,x=(x(1),x(2),x(n),1)T

此时,逻辑斯谛回归模型可以写成如下形式:
P ( Y = 1 ∣ X ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) (6.5) P(Y=1|X) = \frac{\exp(w \cdot x )}{1 + \exp(w\cdot x)} \tag{6.5} P(Y=1∣X)=1+exp(wx)exp(wx)(6.5)

P ( Y = 0 ∣ X ) = 1 1 + exp ⁡ ( w ⋅ x ) (6.6) P(Y=0|X) = \frac{1}{1 + \exp(w\cdot x)} \tag{6.6} P(Y=0∣X)=1+exp(wx)1(6.6)

一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果记事件发生的概率为 p p p,那么该事件的几率是 p 1 − p \frac{p}{1-p} 1pp,该事件的对数几率(log odds)或logit函数为
logit ( p ) = log ⁡ p 1 − p \text{logit}(p) =\log \frac{p}{1-p} logit(p)=log1pp
对于逻辑斯谛回归而言,由式 ( 6.5 ) (6.5) (6.5)与式 ( 6.6 ) (6.6) (6.6)
log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = log ⁡ exp ⁡ ( w ⋅ x ) 1 = w ⋅ x \log \frac{P(Y=1|x)}{1 - P(Y=1|x)} = \log\frac{\exp(w\cdot x)}{1} = w\cdot x log1P(Y=1∣x)P(Y=1∣x)=log1exp(wx)=wx
也就是说,在逻辑斯谛回归模型中,输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数表示的模型,即逻辑斯谛回归模型。

模型参数估计

逻辑斯谛回归模型学习中,对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},可以应用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。

设:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x) = \pi (x),\quad P(Y=0|x)= 1-\pi(x) P(Y=1∣x)=π(x),P(Y=0∣x)=1π(x)
似然函数为
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N [\pi(x_i)]^{y_i} [1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]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 ) + log ⁡ ( 1 − π ( x i ) − y i log ⁡ ( 1 − π ( x i ) ] = ∑ i = 1 N [ y i log ⁡ π ( x i ) 1 − π ( x i ) + log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) + log ⁡ ( 1 1 + exp ⁡ ( w ⋅ x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x i ) ) ] \begin{aligned} L(w) &= \sum_{i=1}^N [y_i \log \pi(x_i) +(1-y_i)\log (1-\pi(x_i))] \\ &= \sum_{i=1}^N \left[ y_i \log\pi(x_i) + \log (1-\pi(x_i) - y_i \log (1-\pi(x_i) \right] \\ &= \sum_{i=1}^N \left[ y_i \log\frac{\pi(x_i)}{1-\pi(x_i)} + \log (1-\pi(x_i))\right] \\ &= \sum_{i=1}^N \left[y_i(w \cdot x_i) + \log(\frac{1}{1 + \exp(w\cdot x_i)}) \right] \\ &= \sum_{i=1}^N [y_i(w \cdot x_i) - \log(1 + \exp(w\cdot x_i))] \end{aligned} L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilogπ(xi)+log(1π(xi)yilog(1π(xi)]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yi(wxi)+log(1+exp(wxi)1)]=i=1N[yi(wxi)log(1+exp(wxi))]
L ( w ) L(w) L(w)求极大值,得到 w w w的估计值。

这样,问题就变成了以对数似然函数为目标函数的最优化问题。

假设 w w w的极大似然估计是 w ^ \hat w w^,那么学到的逻辑斯谛回归模型为
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(\hat w \cdot x )}{1 + \exp(\hat w\cdot x)} \\ P(Y=0|X) = \frac{1}{1 + \exp(\hat w\cdot x)} P(Y=1∣X)=1+exp(w^x)exp(w^x)P(Y=0∣X)=1+exp(w^x)1

多项逻辑斯谛回归

上面介绍的逻辑斯谛回归模型用于二分类,可以将其推广为多项逻辑斯谛回归模型(multi-nominal logistic regression model),用于多分类。

假设离散型随机变量 Y Y Y的取值集合是 { 1 , 2 , ⋯   , K } \{1,2,\cdots,K\} {1,2,,K},那么多项逻辑斯谛回归模型是
P ( Y = k ∣ x ) = exp ⁡ ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) , k = 1 , 2 , ⋯   , K − 1 (6.7) P(Y=k|x) = \frac{\exp(w_k \cdot x)}{1 + \sum_{k=1}^{K-1} \exp(w_k \cdot x)} ,\quad k=1,2,\cdots, K-1 \tag{6.7} P(Y=kx)=1+k=1K1exp(wkx)exp(wkx),k=1,2,,K1(6.7)
这里也分成了两部分,上面是 k k k 1 1 1 K − 1 K-1 K1的部分,那么为了保证概率和为 1 1 1 P ( Y = K ∣ x ) = 1 − ∑ k = 1 K − 1 P ( Y = k ∣ x ) P(Y=K|x) = 1- \sum_{k=1}^{K-1} P(Y=k|x) P(Y=Kx)=1k=1K1P(Y=kx)
P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) P(Y=K|x) = \frac{1}{1 + \sum_{k=1}^{K-1} \exp(w_k \cdot x)} P(Y=Kx)=1+k=1K1exp(wkx)1

最大熵模型

最大熵原理

最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型分布中,熵最大的模型就是最好的模型。

通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合汇总选取熵最大的模型。

假设离散随机变量 X X X的概率分布式 P ( X ) P(X) P(X),则其熵是
H ( P ) = − ∑ x P ( x ) log ⁡ P ( x ) (6.9) H(P) = -\sum_x P(x) \log P(x) \tag{6.9} H(P)=xP(x)logP(x)(6.9)

熵的公式可以参考一文弄懂信息熵。

熵满足下列不等式:
0 ≤ H ( P ) ≤ log ⁡ ∣ X ∣ 0 \leq H(P) \leq \log |X| 0H(P)logX
其中, ∣ X ∣ |X| X X X X的取值个数,当且仅当 X X X的分布式均匀分布时 H ( P ) = log ⁡ ∣ X ∣ H(P) = \log |X| H(P)=logX。即,当 X X X服从均匀分布时,熵最大。

最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。

下面,通过一个例子来介绍一下最大熵原理。

例 6.1 假设随机变量 X X X有5个取值 { A , B , C , D , E } \{A,B,C,D,E\} {A,B,C,D,E},要估计各个值的概率 P ( A ) , P ( B ) , P ( C ) , P ( D ) , P ( E ) P(A),P(B),P(C),P(D),P(E) P(A),P(B),P(C),P(D),P(E)

这些概率值满足以下约束条件:
P ( A ) + P ( B ) + P ( C ) + P ( D ) + P ( E ) = 1 P(A) +P(B) +P(C) + P(D) + P(E) = 1 P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个约束条件的概率分布有无穷多个。如果没有任何其他信息,一个办法就是认为这个分布中取各个值的概率都是相等的:
P ( A ) = P ( B ) = P ( C ) = P ( D ) = P ( E ) = 1 5 P(A) =P(B) =P(C) =P(D) = P(E) = \frac{1}{5} P(A)=P(B)=P(C)=P(D)=P(E)=51
有时,能从一些先验知识中得到一些对概率值的约束条件,例如:
P ( A ) + P ( B ) = 3 10 P ( A ) + P ( B ) + P ( C ) + P ( D ) + P ( E ) = 1 P(A) +P(B) = \frac{3}{10} \\ P(A) +P(B) +P(C) + P(D) + P(E) = 1 P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这两个约束条件的概率分布仍然有无穷多个。在缺少其他信息的情况下,可以认为 A A A B B B是等概率的, C , D , E C,D,E C,D,E是等概率的,于是,
P ( A ) = P ( B ) = 3 20 P ( C ) = P ( D ) = P ( E ) = 7 30 P(A) =P(B) = \frac{3}{20} \\ P(C)=P(D)= P(E) = \frac{7}{30} P(A)=P(B)=203P(C)=P(D)=P(E)=307
如果还有第3个约束条件:
P ( A ) + P ( C ) = 1 2 P ( A ) + P ( B ) = 3 10 P ( A ) + P ( B ) + P ( C ) + P ( D ) + P ( E ) = 1 P(A) +P(C) = \frac{1}{2} \\ P(A) + P(B) = \frac{3}{10} \\ P(A) +P(B) +P(C) + P(D) + P(E) = 1\\ P(A)+P(C)=21P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
可以继续安装满足约束条件下求等概率的方法估计概率分布。这里稍微复杂一点,可以让 P ( B ) , P ( C ) , P ( D ) , P ( E ) P(B),P(C),P(D),P(E) P(B),P(C),P(D),P(E)都用 P ( A ) P(A) P(A)来表示,最终计算出 P ( A ) P(A) P(A)

最大熵模型的定义

最大熵原理应用到分类得到最大熵模型。

假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) X ∈ X ⊆ R n X \in \mathcal X \subseteq \Bbb R^n XXRn表示输入, Y ∈ Y Y \in \cal Y YY表示输出, X \cal X X Y \cal Y Y分别是输入和输出的集合。这个模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(YX)输出 Y Y Y

给定一个训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}
学习的目标是用最大熵原理选择最好的分类模型。

首先考虑模型应该满足的条件。给定训练数据集,可以确定联合分布 P ( X , Y ) P(X,Y) P(X,Y)的经验分布和边缘分布 P ( X ) P(X) P(X)的经验分布,分别以 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y) P ~ ( X ) \tilde P(X) P~(X)表示。这两个经验分布计算如下:
P ~ ( X = x , Y = y ) = v ( X = x , Y = y ) N P ~ ( X = x ) = v ( X = x ) N \tilde P(X=x,Y=y) = \frac{v(X=x,Y=y)}{N} \\ \tilde P(X=x) = \frac{v(X=x)}{N} P~(X=x,Y=y)=Nv(X=x,Y=y)P~(X=x)=Nv(X=x)
其中, v ( X = x , Y = y ) v(X=x,Y=y) v(X=x,Y=y)表示训练数据中样本 ( x , y ) (x,y) (x,y)出现的频数, v ( X = x ) v(X=x) v(X=x)表示输入 x x x出现的频数, N N N表示训练样本总量。

用特征函数(feature function) f ( x , y ) f(x,y) f(x,y)描述输入 x x x和输出 y y y之间的某一个事实。其定义是
f ( x , y ) = { 1 , x 与 y 满足某一事实 0 , 否则 f(x,y) = \left\{ \begin{array}{lr} 1, & x与y满足某一事实\\ 0, & 否则 \end{array} \right. f(x,y)={1,0,xy满足某一事实否则
x , y x,y x,y满足这个事实时区直为 1 1 1,否则取值为 0 0 0

特征函数 f ( x , y ) f(x,y) f(x,y)关于经验分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y)的期望值,用 E P ~ ( f ) E_{\tilde P}(f) EP~(f)表示:
E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{\tilde P}(f) = \sum_{x,y} \tilde P(x,y)f(x,y) EP~(f)=x,yP~(x,y)f(x,y)
特征函数 f ( x , y ) f(x,y) f(x,y)关于模型 P ( Y ∣ X ) P(Y|X) P(YX)与经验分布 P ~ ( X ) \tilde P(X) P~(X)的期望值,用 E p ( f ) E_p(f) Ep(f)表示:
E P ( f ) = ∑ x , y P ( x , y ) f ( x , y ) = ∑ x , y P ( x ) P ( y ∣ x ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_P(f) = \sum_{x,y} P(x,y)f(x,y)= \sum_{x,y} P(x) P(y|x)f(x,y) = \sum_{x,y} \tilde P(x) P(y|x)f(x,y) EP(f)=x,yP(x,y)f(x,y)=x,yP(x)P(yx)f(x,y)=x,yP~(x)P(yx)f(x,y)
这里用 x x x的经验分布 P ~ ( x ) \tilde P(x) P~(x)来代替真实分布 P ( x ) P(x) P(x)

我们无法保证训练数据集得到的经验分布和真实分布完全相同,但我们可以假设它们的期望相同,即
E P ( f ) = E P ~ ( f ) (6.10) E_P(f) = E_{\tilde P}(f) \tag{6.10} EP(f)=EP~(f)(6.10)
或者说
∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) = ∑ x , y P ~ ( x , y ) f ( x , y ) (6.11) \sum_{x,y} \tilde P(x) P(y|x)f(x,y) = \sum_{x,y} \tilde P(x,y)f(x,y) \tag{6.11} x,yP~(x)P(yx)f(x,y)=x,yP~(x,y)f(x,y)(6.11)
我们将式 ( 6.10 ) (6.10) (6.10) ( 6.11 ) (6.11) (6.11)作为模型学习的约束条件。假设有 n n n个特征函数 f i ( x , y ) ,   i = 1 , 2 , ⋯   , n f_i(x,y),\,i=1,2,\cdots,n fi(x,y),i=1,2,,n,那么就有 n n n个约束条件。

定义6.3 (最大熵模型) 假设满足所有约束条件的模型集合为
C ≡ { P ∈ P ∣ E p ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n } (6.12) \mathcal C \equiv \{ P \in \mathcal P| E_p(f_i)=E_{\tilde P}(f_i),\quad i=1,2,\cdots,n \} \tag{6.12} C{PPEp(fi)=EP~(fi),i=1,2,,n}(6.12)
那么定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)上的条件熵为
H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) (6.13) H(P) = -\sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) \tag{6.13} H(P)=x,yP~(x)P(yx)logP(yx)(6.13)
则模型集合 C \cal C C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型,式中的对数为自然对数。

条件熵 H ( Y ∣ X = x ) H(Y|X=x) H(YX=x)为变量 Y Y Y在变量 X X X取特定值 x x x条件下的熵,那么 H ( Y ∣ X ) H(Y|X) H(YX)就是 H ( Y ∣ X = x ) H(Y|X=x) H(YX=x) X X X取遍所有可能的 x x x后取平均的结果。

给定随机变量 X X X Y Y Y,取值分别为 X \cal X X Y \cal Y Y,在给定 X X X条件下 Y Y Y的条件熵定义为:
H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ X = x ) = − ∑ x ∈ X p ( x ) ∑ y ∈ Y p ( y ∣ x ) log ⁡ p ( y ∣ x ) = − ∑ x ∈ X ∑ y ∈ Y p ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) = − ∑ x ∈ X , y ∈ Y p ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) \begin{aligned} H(Y|X) &= \sum_{x \in \cal X} p(x)H(Y|X=x) \\ &= - \sum_{x \in \cal X} p(x) \sum_{y\in \cal Y} p(y|x) \log p(y|x) \\ &= - \sum_{x \in \cal X} \sum_{y\in \cal Y} p(x)p(y|x) \log p(y|x) \\ &= - \sum_{x \in \mathcal X,y \in \mathcal Y} p(x)p(y|x) \log p(y|x) \\ \end{aligned} H(YX)=xXp(x)H(YX=x)=xXp(x)yYp(yx)logp(yx)=xXyYp(x)p(yx)logp(yx)=xX,yYp(x)p(yx)logp(yx)
x x x的经验分布 P ~ ( x ) \tilde P(x) P~(x)来代替真实分布 P ( x ) P(x) P(x),就得到了 ( 6.13 ) (6.13) (6.13)

最大熵模型的学习

最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。

对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}以及特征函数 f i ( x , y ) ,   i = 1 , 2 , ⋯   , n f_i(x,y),\,i=1,2,\cdots,n fi(x,y),i=1,2,,n,最大熵模型的学习等价于约束最优化问题:
max ⁡ P ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) s.t. E P ( f i ) = E P ~ ( f i ) , i = 1 , … , n ∑ y P ( y ∣ x ) = 1 \begin{aligned} &\max_{P \in C} \quad &&H(P) = -\sum_{x,y} \tilde P(x)P(y|x)\log P(y|x)\\ &\text{s.t.}\quad &&E_P(f_i) =E_{\tilde P}(f_i),\quad i=1,\dots,n\\ &&&\sum_y P(y|x) = 1 \end{aligned} PCmaxs.t.H(P)=x,yP~(x)P(yx)logP(yx)EP(fi)=EP~(fi),i=1,,nyP(yx)=1
我们倾向于最小化,所以将最大值问题改写为等价的求最小值问题:
min ⁡ P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) (6.14) \min_{P \in C} -H(P) = \sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) \tag{6.14} PCminH(P)=x,yP~(x)P(yx)logP(yx)(6.14)

s.t. E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , … , n (6.15) \text{s.t.}\quad E_P(f_i) - E_{\tilde P}(f_i)=0,\quad i=1,\dots,n \tag{6.15} s.t.EP(fi)EP~(fi)=0,i=1,,n(6.15)

∑ y P ( y ∣ x ) = 1 (6.16) \sum_y P(y|x) = 1 \tag{6.16} yP(yx)=1(6.16)

只要求解约束最优化问题 ( 6.14 ) ∼ ( 6.16 ) (6.14)\sim(6.16) (6.14)(6.16),所得出的解,就是最大熵模型学习的解。下面来推导一下。

根据补充知识,将约束最优化问题的原始问题转换为无约束最优化的对偶问题。通过求解对偶问题求解原始问题。

首先,引进拉格朗日乘子 w 0 , w 1 , ⋯   , w n w_0,w_1,\cdots,w_n w0,w1,,wn,定义拉格朗日函数 L ( P , w ) L(P,w) L(P,w)
L ( P , w ) ≡ − H ( P ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n w i ( E P ~ ( f i ) − ( E P ( f i ) ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ 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 ) ) (6.17) \begin{aligned} L(P,w) &\equiv -H(P) + w_0\left(1- \sum_y P(y|x) \right) + \sum_{i=1}^n w_i (E_{\tilde P}(f_i) -(E_P(f_i)) \\ &= \sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) + w_0\left(1- \sum_y P(y|x) \right) + \sum_{i=1}^n w_i \left( \sum_{x,y} \tilde P(x,y)f_i(x,y) - \sum_{x,y} \tilde P(x) P(y|x)f_i(x,y) \right) \end{aligned} \tag{6.17} L(P,w)H(P)+w0(1yP(yx))+i=1nwi(EP~(fi)(EP(fi))=x,yP~(x)P(yx)logP(yx)+w0(1yP(yx))+i=1nwi(x,yP~(x,y)fi(x,y)x,yP~(x)P(yx)fi(x,y))(6.17)

最优化的原始问题是
min ⁡ P ∈ C max ⁡ w L ( P , w ) (6.18) \min_{P \in C} \max_w L(P,w) \tag{6.18} PCminwmaxL(P,w)(6.18)
对偶问题是
max ⁡ w min ⁡ P ∈ C L ( P , w ) (6.19) \max_w \min_{P \in C} L(P,w) \tag{6.19} wmaxPCminL(P,w)(6.19)
由于拉格朗日函数 L ( P , w ) L(P,w) L(P,w) P P P的凸函数,原始问题 ( 6.18 ) (6.18) (6.18)的解与对偶问题 ( 6.19 ) (6.19) (6.19)的解是等价的。这样可以通过求解对偶问题 ( 6.19 ) (6.19) (6.19)来求解原始问题 ( 6.18 ) (6.18) (6.18)

这里暂时不证明这个拉格朗日函数是 P P P的凸函数。

首先,求解对偶问题 ( 6.19 ) (6.19) (6.19)内部的极小化问题 min ⁡ P ∈ C L ( P , w ) \min_{P \in C} L(P,w) minPCL(P,w) min ⁡ P ∈ C L ( P , w ) \min_{P \in C} L(P,w) minPCL(P,w) w w w的函数,将其记作
Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) = L ( P w , w ) (6.20) \Psi(w) = \min_{P \in C} L(P,w) = L(P_w,w) \tag{6.20} Ψ(w)=PCminL(P,w)=L(Pw,w)(6.20)

Ψ ( w ) \Psi(w) Ψ(w)称为对偶函数。同时,将其解记作
P w = arg ⁡   min ⁡ P ∈ C L ( P , w ) = P w ( y ∣ x ) (6.21) P_w = \arg\,\min_{P \in C} L(P,w) = P_w(y|x) \tag{6.21} Pw=argPCminL(P,w)=Pw(yx)(6.21)
首先,求 L ( P , w ) L(P,w) L(P,w) P ( y ∣ x ) P(y|x) P(yx)的偏导数
∂ L ( P , w ) ∂ P ( y ∣ x ) = ∑ x , y P ~ ( x ) ( log ⁡ P ( y ∣ x ) + 1 ) − ∑ y w 0 − ∑ x , y P ~ ( x ) ∑ i = 1 n w i f i ( x , y ) = ∑ x , y P ~ ( x ) ( log ⁡ P ( y ∣ x ) + 1 − w 0 − ∑ i = 1 n w i f i ( x , y ) ) \begin{aligned} \frac{\partial L(P,w)}{\partial P(y|x)} &= \sum_{x,y} \tilde P(x)(\log P(y|x) +1) -\sum_y w_0 -\sum_{x,y} \tilde P(x) \sum_{i=1}^n w_i f_i(x,y) \\ &= \sum_{x,y} \tilde P(x) \left(\log P(y|x) + 1 - w_0 - \sum_{i=1}^n w_i f_i(x,y) \right) \end{aligned} P(yx)L(P,w)=x,yP~(x)(logP(yx)+1)yw0x,yP~(x)i=1nwifi(x,y)=x,yP~(x)(logP(yx)+1w0i=1nwifi(x,y))
令偏导数等于0,在 P ~ ( x ) > 0 \tilde P(x) > 0 P~(x)>0的情况下,上式可得
log ⁡ P ( y ∣ x ) + 1 − w 0 − ∑ i = 1 n w i f i ( x , y ) = 0 log ⁡ P ( y ∣ x ) = ∑ i = 1 n w i f i ( x , y ) + w 0 − 1 P ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) + w 0 − 1 ) P ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( 1 − w 0 ) \log P(y|x) + 1 - w_0 - \sum_{i=1}^n w_i f_i(x,y) = 0\\ \log P(y|x) = \sum_{i=1}^n w_i f_i(x,y) + w_0 -1 \\ P(y|x) = \exp\left(\sum_{i=1}^n w_i f_i(x,y) + w_0 -1 \right) \\ P(y|x) = \frac{\exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)} logP(yx)+1w0i=1nwifi(x,y)=0logP(yx)=i=1nwifi(x,y)+w01P(yx)=exp(i=1nwifi(x,y)+w01)P(yx)=exp(1w0)exp(i=1nwifi(x,y))
这样我们把最大熵问题转换成了计算 w i w_i wi的问题,即与拉格朗日乘子有关。

再利用 ∑ y P ( y ∣ x ) = 1 \sum_y P(y|x) =1 yP(yx)=1,把上式两边加上 ∑ y \sum_y y
∑ y P ( y ∣ x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ⁡ ( 1 − w 0 ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( 1 − w 0 ) ∑ y ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( 1 − w 0 ) = 1 ⇒ exp ⁡ ( 1 − w 0 ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) \sum_y P(y|x) = \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\sum_y\exp(1-w_0)}= \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)\sum_y} \\ \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)} = 1 \Rightarrow \exp(1-w_0) = \sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) yP(yx)=yexp(1w0)yexp(i=1nwifi(x,y))=exp(1w0)yyexp(i=1nwifi(x,y))exp(1w0)yexp(i=1nwifi(x,y))=1exp(1w0)=yexp(i=1nwifi(x,y))
上式这个 exp ⁡ ( 1 − w 0 ) \exp(1-w_0) exp(1w0)的表达式我们计算出来了,就是所谓的规范化因子,改变 w w w就得到了不同的函数,所以是和 w w w有关的,而 y y y已经被求和约掉了,只剩下参数 x x x,记为 Z w ( x ) Z_w(x) Zw(x),称作规范化因子。


Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) (6.22) Z_w(x) = \sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) \tag{6.22} Zw(x)=yexp(i=1nwifi(x,y))(6.22)
Z w ( x ) Z_w(x) Zw(x)代入到上面的 exp ⁡ ( 1 − w 0 ) \exp(1-w_0) exp(1w0),得到 P ( y ∣ x ) P(y|x) P(yx)的表达式:
P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) (6.23) P_w(y|x) = \frac{1}{Z_w(x)} \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) \tag{6.23} Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))(6.23)
不同的一组 w w w会得到不同的概率分布,所以写成 P w ( y ∣ x ) P_w(y|x) Pw(yx)

其中 f i ( x , y ) f_i(x,y) fi(x,y)是特征函数; w i w_i wi对应的权重。

由式 ( 6.22 ) (6.22) (6.22) ( 6.23 ) (6.23) (6.23)表示的模型 P w = P w ( y ∣ x ) P_w=P_w(y|x) Pw=Pw(yx)就是最大熵模型。这里 w w w是最大熵模型中的参数向量。

所以,最大熵模型的学习,学的就是特征函数对应的权重。

之后,求解对偶问题外部的极大化问题
max ⁡ w Ψ ( w ) (6.24) \max_w \Psi(w) \tag{6.24} wmaxΨ(w)(6.24)
将它的解记为 w ∗ w^* w,即
w ∗ = arg ⁡ max ⁡ w Ψ ( w ) (6.25) w^* = \arg \max_w \Psi(w) \tag{6.25} w=argwmaxΨ(w)(6.25)
此时,可以应用最优化算法求对偶函数 Ψ ( w ) \Psi(w) Ψ(w)的极大化,得到 w ∗ w^* w,用来表示 P ∗ ∈ C P^* \in \cal C PC

这里, P ∗ = P w ∗ = P w ∗ ( y ∣ x ) P^*=P_{w^*} = P_{w^*} (y|x) P=Pw=Pw(yx)是学习到的最优模型(最大熵模型)。

说明最大熵模型的学习归结为对偶函数 Ψ ( w ) \Psi(w) Ψ(w)的极大化。

我们来看一个例题。

例 6.2 学习例6.1中的最大熵模型。

为了方便,分别以 y 1 , y 2 , y 3 , y 4 , y 5 y_1,y_2,y_3,y_4,y_5 y1,y2,y3,y4,y5表示 A , B , C , D , E A,B,C,D,E A,B,C,D,E,于是最大熵模型学习的最优化问题是
min ⁡ − H ( P ) = ∑ i = 1 5 P ( y i ) log ⁡ P ( y i ) s.t. P ( y 1 ) + P ( y 2 ) = P ~ ( y 1 ) + P ~ ( y 2 ) = 3 10 ∑ i = 1 5 P ( y i ) = ∑ i = 1 5 P ~ ( y i ) = 1 \begin{aligned} &\min \quad &&-H(P) = \sum_{i=1}^5 P(y_i)\log P(y_i) \\ &\text{s.t.}\quad &&P(y_1) + P(y_2) = \tilde P(y_1) + \tilde P(y_2) = \frac{3}{10}\\ &&&\sum_{i=1}^5 P(y_i) = \sum_{i=1}^5 \tilde P(y_i)=1 \end{aligned} mins.t.H(P)=i=15P(yi)logP(yi)P(y1)+P(y2)=P~(y1)+P~(y2)=103i=15P(yi)=i=15P~(yi)=1
这里我们要找到使得负熵最小的那个分布 P P P

引进拉格朗日乘子 w 0 , w 1 w_0,w_1 w0,w1,定义拉格朗日函数
L ( P , w ) = ∑ i = 1 5 P ( y i ) log ⁡ P ( y i ) + w 1 ( P ( y 1 ) + P ( y 2 ) − 3 10 ) + w 0 ( ∑ i = 1 5 P ( y i ) − 1 ) L(P,w) =\sum_{i=1}^5 P(y_i)\log P(y_i) + w_1\left(P(y_1) + P(y_2) -\frac{3}{10} \right) + w_0\left( \sum_{i=1}^5 P(y_i) - 1\right) L(P,w)=i=15P(yi)logP(yi)+w1(P(y1)+P(y2)103)+w0(i=15P(yi)1)
根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,所以求
max ⁡ w   min ⁡ P L ( P , w ) \max_w \,\min_P L(P,w) wmaxPminL(P,w)
首先求解 L ( P , w ) L(P,w) L(P,w)关于 P P P的极小化问题。为此,固定 w 0 , w 1 w_0,w_1 w0,w1,求偏导数:
∂ L ( P , w ) ∂ P ( y 1 ) = log ⁡ P ( y 1 ) + 1 + w 1 + w 0 ∂ L ( P , w ) ∂ P ( y 2 ) = log ⁡ P ( y 2 ) + 1 + w 1 + w 0 ∂ L ( P , w ) ∂ P ( y 3 ) = log ⁡ P ( y 3 ) + 1 + w 0 ∂ L ( P , w ) ∂ P ( y 4 ) = log ⁡ P ( y 4 ) + 1 + w 0 ∂ L ( P , w ) ∂ P ( y 5 ) = log ⁡ P ( y 5 ) + 1 + w 0 \frac{\partial L(P,w)}{\partial P(y_1)} = \log P(y_1) + 1 + w_1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_2)} = \log P(y_2) + 1 + w_1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_3)} = \log P(y_3) + 1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_4)} = \log P(y_4) + 1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_5)} = \log P(y_5) + 1 + w_0 \\ P(y1)L(P,w)=logP(y1)+1+w1+w0P(y2)L(P,w)=logP(y2)+1+w1+w0P(y3)L(P,w)=logP(y3)+1+w0P(y4)L(P,w)=logP(y4)+1+w0P(y5)L(P,w)=logP(y5)+1+w0
令各偏导数等于0,解得
P ( y 1 ) = P ( y 2 ) = e − w 1 − w 0 − 1 P ( y 3 ) = P ( y 4 ) = P ( y 5 ) = e − w 0 − 1 P(y_1)=P(y_2) = e^{-w_1-w_0-1}\\ P(y_3) =P(y_4)=P(y_5) = e^{-w_0-1} P(y1)=P(y2)=ew1w01P(y3)=P(y4)=P(y5)=ew01
把它们代入到 L ( P , w ) L(P,w) L(P,w)中,于是,
min ⁡ P L ( P , w ) = L ( P w , w ) = − 2 e − w 1 − w 0 − 1 − 3 e − w 0 − 1 − 3 10 w 1 − w 0 \min_P L(P,w) = L(P_w,w) = -2e^{-w_1-w_0-1} - 3e^{-w_0-1} -\frac{3}{10}w_1 -w_0 PminL(P,w)=L(Pw,w)=2ew1w013ew01103w1w0
再求解 L ( P w , w ) L(P_w,w) L(Pw,w)关于 w w w的极大化问题:
max ⁡ w L ( P w , w ) = − 2 e − w 1 − w 0 − 1 − 3 e − w 0 − 1 − 3 10 w 1 − w 0 \max_w L(P_w,w) = -2e^{-w_1-w_0-1} - 3e^{-w_0-1} -\frac{3}{10}w_1 -w_0 wmaxL(Pw,w)=2ew1w013ew01103w1w0
分别求 L ( P w , w ) L(P_w,w) L(Pw,w) w 0 , w 1 w_0,w_1 w0,w1的偏导数并令其为0,得到
e − w 1 − w 0 − 1 = 3 20 e − w 0 − 1 = 7 30 e^{-w_1-w_0-1} = \frac{3}{20}\\ e^{-w_0-1}= \frac{7}{30} ew1w01=203ew01=307
于是得到所要求的概率分布为
P ( y 1 ) = P ( y 2 ) = 3 20 P ( y 3 ) = P ( y 4 ) = P ( y 5 ) = 7 30 P(y_1) = P(y_2) = \frac{3}{20} \\ P(y_3) = P(y_4) =P(y_5)= \frac{7}{30} P(y1)=P(y2)=203P(y3)=P(y4)=P(y5)=307

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python开发环境的安装方法

Python开发环境的安装方法 Python已经成为了当今最流行的编程语言之一,它易于学习和使用,而且庞大的社区提供了大量的资源和库。那么,如果你是一位Python初学者或新手,本篇文章将为您介绍如何安装Python开发环境。 Python环境的…

技巧:win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章,《Windows10下美化字体,达到类似mac的效果》,当时还很迷恋macType这个软件的使用,觉得好牛逼…

DAY11——栈与队列part2

双端队列Deque——Double ended Queue 插入和删除为O(1), 查询为O(n) 使用Deque - 廖雪峰的官方网站 (liaoxuefeng.com) Priority Queue 优先级队列 插入操作 O(1) 取出元素O(logN)——按照元素的优先级取出 底层数据结构为heap,bst... 题目一 最近相关性——使…

《Reinforcement Learning: An Introduction》第3章笔记

Chapter 3 Finite Markov Decision 本章正式介绍有限马尔科夫决策过程(finite Markov decision processes, finite MDP), 它包括第二章介绍的评估性反馈和关联(associative)—在不同情景下选择不同的状态。 MDP是序贯决策问题的经典形式化表达,它的动作…

【玩转Linux操作】硬链接和软连接

🎊专栏【玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 欢迎大家访问“在下小吉.”(偷偷告诉你这个是我的大号哦&#…

创客匠人5月活动总结

为了帮助老师做好知识变现、拓客增长,让好老师走进千万家,让知识创造价值,五月,创客匠人组织了一系列线上线下干货满满的赋能活动! 一、老蒋商业变现营线上 5月10日-5月14日,在线上举办了首期【老蒋商业变现…

C++作业day1

思维导图 有以下定义,说明哪些量可以改变哪些不可以改变? const char *p; p指向的指向不能修改 const (char *) p; char *const p; p不能改 const char* const p; 都不能修改 …

Python对接亚马逊电商平台SP-API的一些概念理解准备

❝ 除了第三方服务商,其实亚马逊卖家本身也可以通过和SP-API的对接,利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作,简单的应用比如可以利用SP-API的对接,实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…

分享两个小众的办公软件

01 Apache OpenOffice是一款开源办公套件软件,主要用于文档处理、电子表格、演示文稿和数据库管理等方面。它包括Writer、Calc、Impress、Draw和Base五个组件。 Writer是Apache OpenOffice的文本编辑器,可用于创建各种类型的文档,如信函、报…

四、文字到语音模型库之Bark

随着人工智能技术的发展,文本到音频(Text-to-Audio,简称 TTA)转换已经成为一个热门的研究领域,旨在通过深度学习模型将任意文本转换为逼真的音频,包括语音、音乐、声效等。近日,一家名为 Suno 的公司在 GitHub 上开源了一个名为 Bark 的 TTA 模型,引起了广泛关注。Bark…

Java stream多字段分组(groupingBy)

近期的项目里&#xff0c;遇到一个需求&#xff1a;对于含有多个元素的List<Person>&#xff0c;按照其中的某几个属性进行分组&#xff0c;比如Persion::getAge、Persion::getType、Persion::getGender等字段。下面就让我们讨论一下如何比较优雅的按多字段进行分组group…

vue3 使用element plus 打包时 报错

vue3vitetselementPlus中运行正常打包出错 能正常运行&#xff0c;但是打包出错 解决打包时出现导入element plus相关的爆红&#xff0c;导致无法打包的问题 如若出现类似于&#xff1a;Module ‘“element-plus”’ has no exported member ‘ElMessage’. Did you mean to …

使用Fiddler进行Mock测试的原理和方法

叨叨在前&#xff1a;之前工作中&#xff0c;做的纯接口测试&#xff0c;当时公司有自己的Mock平台&#xff0c;可以进行接口Mock测试。后来离开公司后&#xff0c;再想做Mock测试&#xff0c;就只能使用开源工具&#xff0c;或者自己用Flask写Mock了。今儿整理一下&#xff0c…

二、视频换脸

介绍一个优秀的开源项目,DeepFaceLab。开发者是来自俄罗斯的Iperov,同时,他也是曾经应用最广泛的DeepFaceLab的开发者质之一。开源地址:https://github.com/iperov/DeepFaceLab 而这种高质量伪造图像的背后,依托的是“生成对抗网络”(GAN)技术。这类网络由两个 AI 代…

chatgpt赋能python:Python嵌入包:让你的程序更灵活

Python嵌入包&#xff1a;让你的程序更灵活 Python是一种动态、面向对象、高级编程语言&#xff0c;被广泛应用于科学计算、Web开发、大数据、人工智能等领域。Python提供了大量的标准库和第三方库&#xff0c;让开发者能够快速、高效地实现各种功能需求。 但是&#xff0c;在…

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

ROS EKF 机器人位姿估计功能包&#xff1a;robot_pose_ekf 安装&#xff08;Ubuntu20.04&#xff09; 功能包简介安装 功能包简介 robot_pose_ekf软件包用于基于来自不同来源的&#xff08;部分&#xff09;位姿测量值来估计机器人的3D姿势。它使用带有6D模型&#xff08;3D位…

想要精通算法和SQL的成长之路 - 两两交换链表中的节点

想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改…

1.8w 字的 SQL 优化大全

目录 1、MySQL的基本架构 1&#xff09;MySQL的基础架构图 2&#xff09;查询数据库的引擎 ① show engines; ② show variables like “%storage_engine%”; 3&#xff09;指定数据库对象的存储引擎 2. SQL优化 1&#xff09;为什么需要进行SQL优化&#xff1f; 2&am…

迷你版ChatGPT开源,教你怎么用nanoGPT训练一个写小说的AI机器人!

大家好,我是千与千寻,好久不见,最近太忙了,去医院拔了颗智齿,这不是刚休息一天,就立刻来给大家分享ChatGPT的新奇项目了。 ChatGPT的功能确实是好用,但是我觉得有一个小缺点,就是反应的时间比较慢,原因是GPT-3.5/GPT-4.0的模型体积较大,比较占用内存空间。 同时大模…

MySQL存储引擎介绍、InnoDB和MyISAM的区别

存储引擎是MySQL的核心组件&#xff0c;是存储数据、建立索引、更新/查询数据等技术的实现方式&#xff0c;存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可被称为表类型。以在创建表的时候&#xff0c;来可以指定选择的存储引擎&#xff0c;如果没…