机器学习笔记之指数族分布——最大熵原理与softmax激活函数的关系

  • 引言
    • 符号定义
    • 基于多维数据集合的经验概率分布
      • 回顾:经验概率分布
      • 多维数据的经验概率分布
    • Softmax\mathcal SoftmaxSoftmax函数
    • SoftmaxSoftmaxSoftmax函数的推导过程
      • 求解目标
      • 最大熵原理——条件熵
      • 求解过程
    • 总结

引言

上一节介绍了最大熵原理与指数族分布之间的关系,即给定基于样本作为约束条件的情况下,熵最大的概率分布是指数族分布。本节将介绍最大熵原理与softmaxsoftmaxsoftmax函数之间的关联关系。

符号定义

已知一个数据集合DataDataData,该集合共包含两部分:

  • 样本:描述某事物具体性质的信息;
  • 标签:根据样本特征得到的结论信息;

示例:
某样本包含3个样本特征圆脸、长胡子、尖爪
对应的标签包含3个标签特征是猫、不是狗、不是鸭

基于上述示例,对样本集合中的元素进行抽象表示:

  • 定义DataDataData中共包含NNN对样本、标签

  • 样本集合表示为X\mathcal XX,任意一个样本表示为x(k)(k=1,2,⋯,N)x^{(k)}(k=1,2,\cdots,N)x(k)(k=1,2,⋯,N)。则有:
    X={x(1),x(2),⋯,x(N)}\mathcal X = \{x^{(1)},x^{(2)},\cdots,x^{(N)}\}X={x(1),x(2),⋯,x(N)}

  • 标签集合表示为Y\mathcal YY,一个标签表示为y(k)(k=1,2,⋯,N)y^{(k)}(k=1,2,\cdots,N)y(k)(k=1,2,⋯,N)。则有:
    Y={y(1),y(2),⋯,y(N)}\mathcal Y = \{y^{(1)},y^{(2)},\cdots,y^{(N)}\}Y={y(1),y(2),⋯,y(N)}

  • 每一个样本都对应一个标签,将一对样本标签定义为s(k)s^{(k)}s(k):
    s(k)=(x(k),y(k))(k=1,2,⋯,N)s^{(k)} = (x^{(k)},y^{(k)})(k=1,2,\cdots,N)s(k)=(x(k),y(k))(k=1,2,⋯,N)

  • 任意样本x(k)(k=1,2,⋯,N)x^{(k)}(k=1,2,\cdots,N)x(k)(k=1,2,⋯,N)均包含iii个样本特征。即:
    x(k)=(x1(k),x2(k),⋯xi(k))Tx^{(k)} = \begin{pmatrix} x_1^{(k)} , x_2^{(k)} , \cdots x_i^{(k)} \end{pmatrix}^{T}x(k)=(x1(k)​,x2(k)​,⋯xi(k)​​)T

  • 任意样本y(k)(k=1,2,⋯,N)y^{(k)}(k=1,2,\cdots,N)y(k)(k=1,2,⋯,N)均包含jjj个标签特征。即:
    y(k)=(y1(k),y2(k),⋯yj(k))Ty^{(k)} = \begin{pmatrix} y_1^{(k)} , y_2^{(k)} , \cdots y_j^{(k)} \end{pmatrix}^{T}y(k)=(y1(k)​,y2(k)​,⋯yj(k)​​)T

  • 样本集合标签集合表示如下
    X=(x1(1)x1(2)⋯x1(N)x2(1)x2(2)⋯x2(N)⋮⋮⋮xi(1)xi(2)⋯xi(N))Y=(y1(1)y1(2)⋯y1(N)y2(1)y2(2)⋯y2(N)⋮⋮⋮yj(1)yj(2)⋯yj(N))\mathcal X = \begin{pmatrix} x_1^{(1)} \quad x_1^{(2)} \cdots x_1^{(N)}\\ x_2^{(1)} \quad x_2^{(2)} \cdots x_2^{(N)}\\ \vdots \quad\quad \vdots \quad\quad \vdots\\ x_i^{(1)} \quad x_i^{(2)} \cdots x_i^{(N)}\\ \end{pmatrix} \quad \mathcal Y = \begin{pmatrix} y_1^{(1)} \quad y_1^{(2)} \cdots y_1^{(N)}\\ y_2^{(1)} \quad y_2^{(2)} \cdots y_2^{(N)}\\ \vdots \quad\quad \vdots \quad\quad \vdots\\ y_j^{(1)} \quad y_j^{(2)} \cdots y_j^{(N)}\\ \end{pmatrix}X=⎝⎛​x1(1)​x1(2)​⋯x1(N)​x2(1)​x2(2)​⋯x2(N)​⋮⋮⋮xi(1)​xi(2)​⋯xi(N)​​⎠⎞​Y=⎝⎛​y1(1)​y1(2)​⋯y1(N)​y2(1)​y2(2)​⋯y2(N)​⋮⋮⋮yj(1)​yj(2)​⋯yj(N)​​⎠⎞​

  • X,Y,Data\mathcal X,\mathcal Y,DataX,Y,Data的样本空间分别表示如下
    SX=(x1,x2,⋯,xi)TSY=(y1,y2,⋯,yj)TSData=(x1,x2,⋯,xi;y1,y2,⋯,yj)T\mathcal S_{\mathcal X} = (x_1,x_2,\cdots,x_i)^{T} \\ \mathcal S_{\mathcal Y} = (y_1,y_2,\cdots,y_j)^{T} \\ \mathcal S_{Data} = (x_1,x_2,\cdots,x_i;y_1,y_2,\cdots,y_j)^{T}SX​=(x1​,x2​,⋯,xi​)TSY​=(y1​,y2​,⋯,yj​)TSData​=(x1​,x2​,⋯,xi​;y1​,y2​,⋯,yj​)T

  • 组合概念:为了简化理解,将样本空间SX\mathcal S_{\mathcal X}SX​中的每一维度xq∣q=1ix_q\mid_{q = 1}^ixq​∣q=1i​视为伯努利分布,即:
    xq={1if满足xq描述的既定事实0otherwisex_q = \left\{ \begin{array}{ll} 1\quad if \quad 满足x_q 描述的既定事实\\ 0\quad otherwise \end{array} \right. xq​={1if满足xq​描述的既定事实0otherwise​
    同理,ys∣s=1jy_s \mid_{s=1}^jys​∣s=1j​也设定为:
    ys={1if满足ys描述的既定事实0otherwise∑s=1jys=1y_s = \left\{ \begin{array}{ll} 1\quad if \quad 满足y_s 描述的既定事实\\ 0\quad otherwise \end{array} \right. \\ \sum_{s=1}^j y_s = 1 ys​={1if满足ys​描述的既定事实0otherwise​s=1∑j​ys​=1
    基于上述假设,我们可以 将DataDataData中的所有样本划分为若干个组合某一种组合示例:
    SX(l)=(0,1,0,⋯,1,0)SY(l)=(0,1,0,⋯,0,0)SData(l)=(0,1,0,⋯,1,0;0,1,0,⋯,0,0)\mathcal S_{\mathcal X}^{(l)} = (0,1,0,\cdots,1,0) \\ \mathcal S_{\mathcal Y}^{(l)} = (0,1,0,\cdots,0,0) \\ \mathcal S_{Data}^{(l)} = (0,1,0,\cdots,1,0;0,1,0,\cdots,0,0)SX(l)​=(0,1,0,⋯,1,0)SY(l)​=(0,1,0,⋯,0,0)SData(l)​=(0,1,0,⋯,1,0;0,1,0,⋯,0,0)
    统计满足组合SData(l)\mathcal S_{Data}^{(l)}SData(l)​样本的数量,就可以 使用经验概率分布 计算该数据集合中SData(l)\mathcal S_{Data}^{(l)}SData(l)​的 概率密度函数
    p^(s(k)=SData(l))=p^(SData(l))=count(s(k)=SData(l))N\hat p(s^{(k)} = \mathcal S_{Data}^{(l)}) = \hat p( \mathcal S_{Data}^{(l)}) = \frac{count(s^{(k)} = \mathcal S_{Data}^{(l)})}{N}p^​(s(k)=SData(l)​)=p^​(SData(l)​)=Ncount(s(k)=SData(l)​)​

假设一共存在mmm个组合,则有:
∑l=1mp^(SData(l))=1\sum_{l=1}^m \hat p( \mathcal S_{Data}^{(l)}) = 1l=1∑m​p^​(SData(l)​)=1

基于多维数据集合的经验概率分布

回顾:经验概率分布

经验概率分布本质上表示 特定事件发生的次数占总体样本发生的比率,是 概率的频率定义 的一种表达。这里使用p^(x)\hat p(x)p^​(x)表示xxx的经验概率分布。它的具体公式表示如下:
p^(x(j)=xi)=count(xi)N\hat p(x^{(j)} =x_i) = \frac{count(x_i)}{N}p^​(x(j)=xi​)=Ncount(xi​)​
其中,x(j)x^{(j)}x(j)表示样本集合X\mathcal XX内的某一个样本,并且X\mathcal XX中包含NNN个样本,而xix_ixi​表示样本x(j)x^{(j)}x(j)能够选择的特征
该经验分布公式仅表示样本x(j)x^{(j)}x(j)是‘一维随机变量’时的情况,即只能选择一个值。

上述公式表示的含义为:样本集合X\mathcal XX中的某样本x(j)x^{(j)}x(j)的值等于xix_ixi​的概率结果
p^(x(j)),p^(x(j)=xi)\hat p(x^{(j)}),\hat p(x^{(j)} = x_i)p^​(x(j)),p^​(x(j)=xi​)p^(xi)\hat p(x_i)p^​(xi​)在表达取决于∑\sum∑中连加的次数,如果次数是组合数量,它们之间没有区别,如果次数是‘样本数量’,第一个和后两个之间是有区别的。

多维数据的经验概率分布

事实上经验概率分布并非只能存在于1维数据中,多维数据同样可以使用经验概率分布

示例:
包含数据数量N=5N=5N=5的某数据集X′\mathcal X 'X′,具体表示如下:

身高(x1x_1x1​) 性别(x2x_2x2​)
x(1)x^{(1)}x(1) 170 1
x(2)x^{(2)}x(2) 180 1
x(3)x^{(3)}x(3) 170 0
x(4)x^{(4)}x(4) 160 0
x(5)x^{(5)}x(5) 170 1

如果想要计算(x1=170,x2=1)(x_1=170,x_2=1)(x1​=170,x2​=1)经验概率分布的概率密度函数p^(x1=170,x2=1)\hat p(x_1=170,x_2=1)p^​(x1​=170,x2​=1),具体计算方法如下:
p^(x1=170,x2=1)=count(x1=170,x2=1)N=25=0.4\hat p(x_1=170,x_2=1) = \frac{count(x_1=170,x_2=1)}{N} = \frac{2}{5} = 0.4p^​(x1​=170,x2​=1)=Ncount(x1​=170,x2​=1)​=52​=0.4
如果想要计算基于数据集X′\mathcal X'X′的经验概率分布P^(x1,x2)\hat P(x_1,x_2)P^(x1​,x2​):
在本篇中,‘概率分布’PPP与‘概率密度函数’ppp是区分开的。
P^(x1,x2)=(p^(x1=170,x2=1)p^(x1=180,x2=1)p^(x1=170,x2=0)p^(x1=160,x2=0))=(25151515)=(0.40.20.20.2)\hat P(x_1,x_2) = \begin{pmatrix} \hat p(x_1=170,x_2=1) \\ \hat p(x_1=180,x_2=1) \\ \hat p(x_1=170,x_2=0) \\ \hat p(x_1=160,x_2=0) \\ \end{pmatrix} = \begin{pmatrix} \frac{2}{5} \\ \frac{1}{5} \\ \frac{1}{5} \\ \frac{1}{5} \\ \end{pmatrix} = \begin{pmatrix} 0.4 \\ 0.2 \\ 0.2 \\ 0.2 \\ \end{pmatrix}P^(x1​,x2​)=⎝⎛​p^​(x1​=170,x2​=1)p^​(x1​=180,x2​=1)p^​(x1​=170,x2​=0)p^​(x1​=160,x2​=0)​⎠⎞​=⎝⎛​52​51​51​51​​⎠⎞​=⎝⎛​0.40.20.20.2​⎠⎞​

基于上述示例,我们可以使用经验概率方法求解多维随机变量的概率。样本x(k)=SX(l)x^{(k)} = \mathcal S_{\mathcal X}^{(l)}x(k)=SX(l)​的概率分布表示如下:
SX(l)\mathcal S_{\mathcal X}^{(l)}SX(l)​表示样本xxx维度组合中的一种情况。
P^(x(k)=SX(l))=P^(SX(l))=count(x1,x2,⋯,xi)N\hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)}) = \hat P(\mathcal S_{\mathcal X}^{(l)}) = \frac{count(x_1,x_2,\cdots,x_i)}{N}P^(x(k)=SX(l)​)=P^(SX(l)​)=Ncount(x1​,x2​,⋯,xi​)​
同理,一对样本标签s(k)→(x(k),y(k))s^{(k)} \to (x^{(k)},y^{(k)})s(k)→(x(k),y(k)),该s(k)=SData(l)s^{(k)} = S_{Data}^{(l)}s(k)=SData(l)​的概率分布表示如下:
P^(x(k)=SX(l),y(k)=SY(l))=P^(SData(l))=count(s(k)=SData(l))N=count(x1,x2,⋯,xi,y1,y2,⋯,yj)N\begin{aligned} \hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}) & = \hat P(S_{Data}^{(l)}) \\ & = \frac{count(s^{(k)} = \mathcal S_{Data}^{(l)})}{N} \\ & = \frac{count(x_1,x_2,\cdots,x_i,y_1,y_2,\cdots,y_j)}{N} \end{aligned}P^(x(k)=SX(l)​,y(k)=SY(l)​)​=P^(SData(l)​)=Ncount(s(k)=SData(l)​)​=Ncount(x1​,x2​,⋯,xi​,y1​,y2​,⋯,yj​)​​
这两个公式下面推导会用到。

Softmax\mathcal SoftmaxSoftmax函数

SoftmaxSoftmaxSoftmax函数又称归一化指数函数,它的本质目的是将多分类结果以概率的形式展现出来,具体公式表示如下:
Softmax(yi)=eyi∑i=1keyiSoftmax(y_i) = \frac{e^{y_i}}{\sum_{i=1}^k e^{y_i}}Softmax(yi​)=∑i=1k​eyi​eyi​​

其中,y=(y1,y2,⋯,yk)y = (y_1,y_2,\cdots,y_k)y=(y1​,y2​,⋯,yk​)表示经过运算后得到的 预测向量结果 (例如神经网络的输出层),向量中的每个元素yi(i=1,2,⋯,k)y_i(i=1,2,\cdots,k)yi​(i=1,2,⋯,k)表示维度信息。

观察上面的函数,它有许多特点

  • 无论式分母还是分子,它们均有下界——0,即分子、分母大于零恒成立
  • 分子数值是分母的一部分——结合特点1,Softmax(yi)Softmax(y_i)Softmax(yi​)小于1恒成立

但从函数性质来看,用这个函数表示概率确实是个不错的选择。
核心问题
为什么要使用该函数去表示多分类结果的概率分布,换句话说,表示多分类结果的概率分布为什么使用softmaxsoftmaxsoftmax函数,而不是其他函数,是否存在某种理论支撑

SoftmaxSoftmaxSoftmax函数的推导过程

上述的理论支撑是真实存在的,就是最大熵原理。下面将使用最大熵原理去论证,softmaxsoftmaxsoftmax函数的映射结果为什么可以作为多分类结果的概率分布

求解目标

最大熵原理推导指数族分布的思路相同,都是求解 基于上述数据集合构成的约束条件 基础上,求解 能够使熵达到最大的概率分布(概率密度函数) 与SoftmaxSoftmaxSoftmax之间的关联关系。

但由于数据集合中标签的存在,我们不能只求解样本集合X\mathcal XX的概率分布,而是求解给定某一样本 x(k)=SX(l)x^{(k)}=\mathcal S_{\mathcal X}^{(l)}x(k)=SX(l)​条件下,对应标签y(k)=SY(l)y^{(k)}=\mathcal S_{\mathcal Y}^{(l)}y(k)=SY(l)​条件概率的概率密度函数p(y(k)=SY(l)∣x(k)=SX(l))p(y^{(k)}=\mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)}=\mathcal S_{\mathcal X}^{(l)})p(y(k)=SY(l)​∣x(k)=SX(l)​)。

因此,我们在基于最大熵原理的推导过程中不能使用仅包含X\mathcal XX一个变量的信息熵,而是包含条件变量的条件熵作为目标函数

最大熵原理——条件熵

条件熵的表达形式如下
H(Y∣X)=−∑x(k)∈Xp(x(k))⋅H(Y∣x(k))=−∑x(k)∈Xp(x(k))⋅∑y(k)∈Yp(y(k)∣x(k))log⁡p(y(k)∣x(k))=−∑y(k)∈Y,x(k)∈Xp(x(k))⋅p(y(k)∣x(k))log⁡p(y(k)∣x(k))\begin{aligned} \mathcal H(\mathcal Y \mid \mathcal X) & = -\sum_{x^{(k)} \in \mathcal X} p(x^{(k)})\cdot \mathcal H(\mathcal Y \mid \mathcal x^{(k)}) \\ & = -\sum_{x^{(k)} \in \mathcal X} p(x^{(k)})\cdot \sum_{y^{(k)} \in \mathcal Y} p(y^{(k)} \mid x^{(k)}) \log p(y^{(k)} \mid x^{(k)}) \\ & = -\sum_{y^{(k)} \in \mathcal Y,x^{(k)} \in \mathcal X} p(x^{(k)})\cdot p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \log p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \end{aligned}H(Y∣X)​=−x(k)∈X∑​p(x(k))⋅H(Y∣x(k))=−x(k)∈X∑​p(x(k))⋅y(k)∈Y∑​p(y(k)∣x(k))logp(y(k)∣x(k))=−y(k)∈Y,x(k)∈X∑​p(x(k))⋅p(y(k)∣x(k))logp(y(k)∣x(k))​

使用条件概率公式,对P(y(k)∣x(k))P(y^{(k)} \mid x^{(k)})P(y(k)∣x(k))展开:
P(y(k)∣x(k))=P(x(k),y(k))P(x(k))(k=1,2,⋯,N)P(y^{(k)} \mid x^{(k)}) = \frac{P(x^{(k)},y^{(k)})}{P(x^{(k)})}(k=1,2,\cdots,N)P(y(k)∣x(k))=P(x(k))P(x(k),y(k))​(k=1,2,⋯,N)

P(y(k)∣x(k))P(y^{(k)} \mid x^{(k)})P(y(k)∣x(k))是 我们需要使用最大熵原理求解的结果。 但由于数据集合DataDataData是给定的,我同样可以先使用经验概率分布分别得到P^(x(k),y(k)),P^(x(k))\hat P(x^{(k)},y^{(k)}),\hat P(x^{(k)})P^(x(k),y(k)),P^(x(k))的结果
将上面‘经验分布’的结果抄一下;

P^(x(k)=SX(l))=P^(SX(l))=count(x1,x2,⋯,xi)NP^(x(k)=SX(l),y(k)=SY(l))=P^(SData(l))=count(s(k)=SData(l))N=count(x1,x2,⋯,xi,y1,y2,⋯,yj)N\begin{aligned} \hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)}) & = \hat P(\mathcal S_{\mathcal X}^{(l)}) \\ & = \frac{count(x_1,x_2,\cdots,x_i)}{N} \\ \hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}) & = \hat P(S_{Data}^{(l)}) \\ & = \frac{count(s^{(k)} = \mathcal S_{Data}^{(l)})}{N} \\ & = \frac{count(x_1,x_2,\cdots,x_i,y_1,y_2,\cdots,y_j)}{N} \end{aligned}P^(x(k)=SX(l)​)P^(x(k)=SX(l)​,y(k)=SY(l)​)​=P^(SX(l)​)=Ncount(x1​,x2​,⋯,xi​)​=P^(SData(l)​)=Ncount(s(k)=SData(l)​)​=Ncount(x1​,x2​,⋯,xi​,y1​,y2​,⋯,yj​)​​

从而可以先求出经验分布P^(y(k)∣x(k))\hat P(y^{(k)} \mid x^{(k)})P^(y(k)∣x(k)):
P^(y(k)∣x(k))=P^(x(k),y(k))P^(x(k))=P^(x(k)=SX(l),y(k)=SY(l))P^(x(k)=SX(l))\hat P(y^{(k)} \mid x^{(k)}) = \frac{\hat P(x^{(k)},y^{(k)})}{\hat P(x^{(k)})} = \frac{\hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)})}{\hat P(x^{(k)} = \mathcal S_{\mathcal X}^{(l)})}P^(y(k)∣x(k))=P^(x(k))P^(x(k),y(k))​=P^(x(k)=SX(l)​)P^(x(k)=SX(l)​,y(k)=SY(l)​)​

此时已经将经验分布P^(y(k)∣x(k))\hat P(y^{(k)} \mid x^{(k)})P^(y(k)∣x(k))求解完成,但我们的求解目标是熵最大的概率分布P(y(k)∣x(k))P(y^{(k)} \mid x^{(k)})P(y(k)∣x(k))。基于这两种分布的相似性,我们希望这两个概率分布的期望相等。
因此,令f(X,Y)f(\mathcal X,\mathcal Y)f(X,Y)是关于X,Y\mathcal X,\mathcal YX,Y的任意函数,则有:
EP^(Y∣X)[f(X,Y)]=EP(Y∣X)[f(X,Y)]\mathbb E_{\hat P(\mathcal Y \mid \mathcal X)}\left[f(\mathcal X,\mathcal Y)\right] = \mathbb E_{P(\mathcal Y \mid \mathcal X)}\left[f(\mathcal X,\mathcal Y)\right]EP^(Y∣X)​[f(X,Y)]=EP(Y∣X)​[f(X,Y)]
也可以写成如下形式:
∑x(k)∈X,y(k)∈Yp^(y(k)=SY(l)∣x(k)=SX(l))[f(x(k),y(k))]=∑x(k)∈X,y(k)∈Yp(x(k)=SX(l),y(k)=SY(l))[f(x(k),y(k))]\sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y}\hat p(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)}= \mathcal S_{\mathcal X}^{(l)})\left[f(x^{(k)},y^{(k)})\right] = \sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y}p(x^{(k)}= \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)})\left[f(x^{(k)},y^{(k)})\right] x(k)∈X,y(k)∈Y∑​p^​(y(k)=SY(l)​∣x(k)=SX(l)​)[f(x(k),y(k))]=x(k)∈X,y(k)∈Y∑​p(x(k)=SX(l)​,y(k)=SY(l)​)[f(x(k),y(k))]
为了保证推导过程的泛化性,给 每一个组合独立地设计一个函数,从而构成一个函数向量。此时,经验概率的期望结果EP^(X,Y)[f(X,Y)]\mathbb E_{\hat P(\mathcal X,\mathcal Y)}\left[f(\mathcal X,\mathcal Y)\right]EP^(X,Y)​[f(X,Y)]表示为:
注意函数f的下标:
∑x(k)∈X,y(k)∈Yp^(y(k)=SY(l)∣x(k)=SX(l))[fl(x(k),y(k))](l=1,2,⋯,m)\sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y}\hat p(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)}= \mathcal S_{\mathcal X}^{(l)})\left[f_l(x^{(k)},y^{(k)})\right](l=1,2,\cdots,m)x(k)∈X,y(k)∈Y∑​p^​(y(k)=SY(l)​∣x(k)=SX(l)​)[fl​(x(k),y(k))](l=1,2,⋯,m)
如果将mmm种组合对应的样本、标签全部分开,上述公式可以表达为:
El=∑x(k)=SX(l),y(k)=SY(l)p^(y(k)∣x(k))[fl(x(k),y(k))]EP^(X,Y)[f(X,Y)]=∑l=1mEl\mathbb E_l =\sum_{x^{(k)}= \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} \hat p(y^{(k)} \mid x^{(k)})\left[f_l(x^{(k)},y^{(k)})\right]\\ \mathbb E_{\hat P(\mathcal X,\mathcal Y)}\left[f(\mathcal X,\mathcal Y)\right] =\sum_{l=1}^m \mathbb E_lEl​=x(k)=SX(l)​,y(k)=SY(l)​∑​p^​(y(k)∣x(k))[fl​(x(k),y(k))]EP^(X,Y)​[f(X,Y)]=l=1∑m​El​

观察公式El\mathbb E_lEl​,由于fl(x(k),y(k))f_l(x^{(k)},y^{(k)})fl​(x(k),y(k))函数是定义的函数,是已知项;经验分布p^(y(k)=SY(l)∣x(k)=SX(l))\hat p(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)}= \mathcal S_{\mathcal X}^{(l)})p^​(y(k)=SY(l)​∣x(k)=SX(l)​)可以通过 数据集合 求解。因此,El\mathbb E_lEl​可以直接求解。定义求解结果为Δl\Delta_lΔl​:
El=Δl\mathbb E_l= \Delta_lEl​=Δl​

至此,待求解分布P(x(k),y(k))P(x^{(k)},y^{(k)})P(x(k),y(k))与经验概率分布P^(x(k),y(k))\hat P(x^{(k)},y^{(k)})P^(x(k),y(k))的期望相等转化为如下公式
将双方期望按照‘组合’分成对应的mmm份,每一份对应相等。
Δl=∑x(k)=SX(l),y(k)=SY(l)p(y(k)∣x(k))[fl(x(k),y(k))](l=1,2,⋯,m)\Delta_l = \sum_{x^{(k)}= \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} p(y^{(k)} \mid x^{(k)})\left[f_l(x^{(k)},y^{(k)})\right](l=1,2,\cdots,m)Δl​=x(k)=SX(l)​,y(k)=SY(l)​∑​p(y(k)∣x(k))[fl​(x(k),y(k))](l=1,2,⋯,m)
并将该式子作为 1个约束条件,一共包含mmm个约束条件。同时,P(x(k),y(k))P(x^{(k)},y^{(k)})P(x(k),y(k))依然要满足概率分布的定义
∑SY(l)∈SYP(y(k)=SY(l)∣x(k)=SX)=1\sum_{\mathcal S_{\mathcal Y}^{(l)} \in \mathcal S_{\mathcal Y}} P(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)} = \mathcal S_{\mathcal X}) = 1SY(l)​∈SY​∑​P(y(k)=SY(l)​∣x(k)=SX​)=1
至此,我们共得到m+1m+1m+1个约束条件。下面使用最大熵原理求解概率分布。

求解过程

使用最大熵原理求解条件概率分布P(Y∣X)P(\mathcal Y \mid \mathcal X)P(Y∣X)本质熵任然是最优化问题。因此,依然使用拉格朗日乘数法解决该问题。

  • 定义 目标函数:目标函数自然是最大化条件熵
    这里将p(x(k))p(x^{(k)})p(x(k))替换为p^(x(k))\hat p(x^{(k)})p^​(x(k)):
    max⁡H(Y∣X)=max⁡−∑y(k)∈Y,x(k)∈Xp(x(k))⋅p(y(k)∣x(k))log⁡p(y(k)∣x(k))=min⁡∑y(k)∈Y,x(k)∈Xp^(x(k))⋅p(y(k)∣x(k))log⁡p(y(k)∣x(k))\begin{aligned} \max \mathcal H(\mathcal Y \mid \mathcal X) & = \max - \sum_{y^{(k)} \in \mathcal Y,x^{(k)} \in \mathcal X} p(x^{(k)})\cdot p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \log p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \\ & = \min \sum_{y^{(k)} \in \mathcal Y,x^{(k)} \in \mathcal X} \hat p(x^{(k)})\cdot p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \log p(\mathcal y^{(k)} \mid \mathcal x^{(k)}) \end{aligned}maxH(Y∣X)​=max−y(k)∈Y,x(k)∈X∑​p(x(k))⋅p(y(k)∣x(k))logp(y(k)∣x(k))=miny(k)∈Y,x(k)∈X∑​p^​(x(k))⋅p(y(k)∣x(k))logp(y(k)∣x(k))​
  • m+1m+1m+1个约束条件
    Δl=∑x(k)=SX(l),y(k)=SY(l)p(y(k)∣x(k))[fl(x(k),y(k))](l=1,2,⋯,m)∑SY(l)∈SYP(y(k)=SY(l)∣x(k)=SX)=1\Delta_l = \sum_{x^{(k)}= \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} p(y^{(k)} \mid x^{(k)})\left[f_l(x^{(k)},y^{(k)})\right](l=1,2,\cdots,m) \\ \sum_{\mathcal S_{\mathcal Y}^{(l)} \in \mathcal S_{\mathcal Y}} P(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)} = \mathcal S_{\mathcal X}) = 1 Δl​=x(k)=SX(l)​,y(k)=SY(l)​∑​p(y(k)∣x(k))[fl​(x(k),y(k))](l=1,2,⋯,m)SY(l)​∈SY​∑​P(y(k)=SY(l)​∣x(k)=SX​)=1

构建拉格朗日函数
L(P(Y∣X),λ,λl∣l=1m)=∑x(k)∈X,y(k)∈Yp^(x(k))p(y(k)∣x(k))log⁡p(y(k)∣x(k))+λ(1−∑SY(l)∈SYP(y(k)=SY(l)∣x(k)=SX))+∑l=1mλl(Δl−∑x(k)=SX(l),y(k)=SY(l)p(y(k)∣x(k))[fl(x(k),y(k))])\mathcal L(P(\mathcal Y \mid \mathcal X),\lambda,\lambda_l\mid_{l=1}^m)= \sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y} \hat p(x^{(k)}) p(y^{(k)} \mid x^{(k)}) \log p(y^{(k)} \mid x^{(k)}) + \lambda (1 - \sum_{\mathcal S_{\mathcal Y}^{(l)} \in \mathcal S_{\mathcal Y}} P(y^{(k)} = \mathcal S_{\mathcal Y}^{(l)} \mid x^{(k)} = \mathcal S_{\mathcal X})) + \sum_{l=1}^m \lambda_l(\Delta_l - \sum_{x^{(k)}= \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} p(y^{(k)} \mid x^{(k)})\left[f_l(x^{(k)},y^{(k)})\right])L(P(Y∣X),λ,λl​∣l=1m​)=x(k)∈X,y(k)∈Y∑​p^​(x(k))p(y(k)∣x(k))logp(y(k)∣x(k))+λ(1−SY(l)​∈SY​∑​P(y(k)=SY(l)​∣x(k)=SX​))+l=1∑m​λl​(Δl​−x(k)=SX(l)​,y(k)=SY(l)​∑​p(y(k)∣x(k))[fl​(x(k),y(k))])

  • 对P(X,Y)P(\mathcal X,\mathcal Y)P(X,Y)求解偏导:
    ∂L(P(Y∣X),λ,λl∣l=1m)∂P(Y∣X)=∑x(k)∈X,y(k)∈Yp^(x(k))[p(y(k)∣x(k))⋅1p(y(k)∣x(k))+log⁡p(y(k)∣x(k))]−∑SY(l)∈SYλ+∑l=1mλl(−∑x(k)=SX(l),y(k)=SY(l)p^(x(k))fl(x(k),y(k)))\frac{\partial \mathcal L(P(\mathcal Y \mid \mathcal X),\lambda,\lambda_l\mid_{l=1}^m)}{\partial P(\mathcal Y \mid \mathcal X)} = \sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y} \hat p(x^{(k)})[p(y^{(k)} \mid x^{(k)}) \cdot \frac{1}{p(y^{(k)} \mid x^{(k)})} + \log p(y^{(k)} \mid x^{(k)})] - \sum_{\mathcal S_{\mathcal Y}^{(l)} \in \mathcal S_{\mathcal Y}} \lambda + \sum_{l=1}^m \lambda_l (-\sum_{x^{(k)} = \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}}\hat p(x^{(k)}) f_l(x^{(k)},y^{(k)}))∂P(Y∣X)∂L(P(Y∣X),λ,λl​∣l=1m​)​=x(k)∈X,y(k)∈Y∑​p^​(x(k))[p(y(k)∣x(k))⋅p(y(k)∣x(k))1​+logp(y(k)∣x(k))]−SY(l)​∈SY​∑​λ+l=1∑m​λl​(−x(k)=SX(l)​,y(k)=SY(l)​∑​p^​(x(k))fl​(x(k),y(k)))

整理得:
∂L(P(Y∣X),λ,λl∣l=1m)∂P(Y∣X)=∑x(k)∈X,y(k)∈Yp^(x(k))[1+log⁡p(y(k)∣x(k))]−∑l=1mλ−∑l=1mλl∑x(k)=SX(l),y(k)=SY(l)p^(x(k))fl(x(k),y(k))\frac{\partial \mathcal L(P(\mathcal Y \mid \mathcal X),\lambda,\lambda_l\mid_{l=1}^m)}{\partial P(\mathcal Y \mid \mathcal X)} = \sum_{x^{(k)} \in \mathcal X,y^{(k)} \in \mathcal Y} \hat p(x^{(k)})[1 + \log p(y^{(k)} \mid x^{(k)})] -\sum_{l=1}^m \lambda - \sum_{l=1}^m \lambda_l \sum_{x^{(k)} = \mathcal S_{\mathcal X}^{(l)},y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} \hat p(x^{(k)}) f_l(x^{(k)},y^{(k)})∂P(Y∣X)∂L(P(Y∣X),λ,λl​∣l=1m​)​=x(k)∈X,y(k)∈Y∑​p^​(x(k))[1+logp(y(k)∣x(k))]−l=1∑m​λ−l=1∑m​λl​x(k)=SX(l)​,y(k)=SY(l)​∑​p^​(x(k))fl​(x(k),y(k))

令该式为0:
p(y(k)∣x(k))=eλ0−1e∑l=1mλlfl(x(k),y(k))=e∑l=1mλlfl(x(k),y(k))e1−λ0\begin{aligned} p(y^{(k)} \mid x^{(k)}) & = e^{\lambda_0 - 1}e^{\sum_{l=1}^m \lambda_l f_l(x^{(k)},y^{(k)})} \\ & = \frac{e^{\sum_{l=1}^m \lambda_l f_l(x^{(k)},y^{(k)})}}{e^{1- \lambda_0}} \end{aligned}p(y(k)∣x(k))​=eλ0​−1e∑l=1m​λl​fl​(x(k),y(k))=e1−λ0​e∑l=1m​λl​fl​(x(k),y(k))​​

可以将∑l=1mλlfl(x(k),y(k))\sum_{l=1}^m \lambda_l f_l(x^{(k)},y^{(k)})∑l=1m​λl​fl​(x(k),y(k))看成两个向量之间的乘法形式:
∑l=1mλlfl(x(k),y(k))=(λ1,λ2,⋯,λm)⋅(f1(x(k),y(k))f2(x(k),y(k))⋮fm(x(k),y(k)))=ΛTf(x(k),y(k))\sum_{l=1}^m \lambda_l f_l(x^{(k)},y^{(k)}) = (\lambda_1,\lambda_2,\cdots,\lambda_m)\cdot \begin{pmatrix}f_1(x^{(k)},y^{(k)}) \\ f_2(x^{(k)},y^{(k)}) \\ \vdots \\ f_m(x^{(k)},y^{(k)})\end{pmatrix} = \Lambda^{T}f(x^{(k)},y^{(k)})l=1∑m​λl​fl​(x(k),y(k))=(λ1​,λ2​,⋯,λm​)⋅⎝⎛​f1​(x(k),y(k))f2​(x(k),y(k))⋮fm​(x(k),y(k))​⎠⎞​=ΛTf(x(k),y(k))
那么,上述式子表示如下:
p(y(k)∣x(k))=eΛT⋅f(x(k),y(k))e1−λ0p(y^{(k)} \mid x^{(k)}) = \frac{e^{\Lambda^{T}\cdot f(x^{(k)},y^{(k)})}}{e^{1-\lambda_0}}p(y(k)∣x(k))=e1−λ0​eΛT⋅f(x(k),y(k))​

又由于概率密度积分的定义:
∑y(k)=SY(l)p(y(k)∣x(k))=1\sum_{y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} p(y^{(k)} \mid x^{(k)}) = 1y(k)=SY(l)​∑​p(y(k)∣x(k))=1

因此:
∑y(k)=SY(l)eΛT⋅f(x(k),y(k))e1−λ0=1e1−λ0=∑y(k)=SY(l)eΛT⋅f(x(k),y(k))\begin{aligned} \sum_{y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}}\frac{e^{\Lambda^{T}\cdot f(x^{(k)},y^{(k)})}}{e^{1-\lambda_0}} = 1 \\ e^{1- \lambda_0} = \sum_{y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} e^{\Lambda^{T}\cdot f(x^{(k)},y^{(k)})} \end{aligned}y(k)=SY(l)​∑​e1−λ0​eΛT⋅f(x(k),y(k))​=1e1−λ0​=y(k)=SY(l)​∑​eΛT⋅f(x(k),y(k))​

最终:给定样本x(k)x^{(k)}x(k)条件下,y(k)y^{(k)}y(k)的概率密度函数为
p(y(k)∣x(k))=eΛT⋅f(x(k),y(k))∑y(k)=SY(l)eΛT⋅f(x(k),y(k))p(y^{(k)} \mid x^{(k)}) = \frac{e^{\Lambda^{T}\cdot f(x^{(k)},y^{(k)})}}{\sum_{y^{(k)} = \mathcal S_{\mathcal Y}^{(l)}} e^{\Lambda^{T}\cdot f(x^{(k)},y^{(k)})}}p(y(k)∣x(k))=∑y(k)=SY(l)​​eΛT⋅f(x(k),y(k))eΛT⋅f(x(k),y(k))​

即SoftmaxSoftmaxSoftmax激活函数。

总结

推导过程有一点崩了~,但是我们需要知道SoftmaxSoftmaxSoftmax函数自身是怎么得到的,或者说为什么能用最大熵的方式推导出来,哪些步骤影响它得到这个结果:

核心:样本组成:它是一个包含样本、标签两种量的数据集合,由于样本、标签之间的关联关系导致我们选择 条件熵作为最大熵原理 的目标函数。

其次,仍然是样本组成:标签自身存在多种类别,从而导致这些标签的后验概率分布相加结果是1,这也 直接影响到SoftmaxSoftmaxSoftmax函数结果分母的构成

和指数族分布推导过程相比,我们知道了函数向量是从组合中得到的结果,相比之前泛化性的解释更加具有实际意义。

下一节继续回归指数族分布。

相关参考:
王木头学科学——最大熵

机器学习笔记之指数族分布——最大熵原理与softmax激活函数的关系相关推荐

  1. 白板机器学习笔记 P39-P45 指数族分布

    视频地址:https://www.bilibili.com/video/BV1aE411o7qd?p=39 笔记地址:https://www.yuque.com/books/share/f4031f6 ...

  2. 最大熵学习笔记(二)最大熵原理

    生活中我们经常听到人们说"不要把鸡蛋放到一个篮子里",这样可以降低风险.深究一下,这是为什么呢?其实,这里边包含了所谓的最大熵原理(The Maximum Entropy Prin ...

  3. 机器学习-白板推导-系列(八)笔记:指数族分布/充分统计量/对数配分函数/最大熵

    文章目录 0 笔记说明 1 背景 1.1 指数族分布的一般形式 1.2 共轭先验 2 高斯分布的指数族形式 3 对数配分函数与充分统计量 4 极大似然估计与充分统计量 5 熵 5.1 最大熵⇔x服从均 ...

  4. [吴恩达机器学习笔记]14降维3-4PCA算法原理

    14.降维 觉得有用的话,欢迎一起讨论相互学习~Follow Me 14.3主成分分析原理Proncipal Component Analysis Problem Formulation 主成分分析( ...

  5. 机器学习笔记16——决策树剪枝算法原理及python实现案例

    决策树剪枝算法 引言 1.算法目的 2.算法基本思路: 3.决策树损失函数 4.剪枝类型: 4.1 预剪枝 4.2 后剪枝 4.3 两种剪枝策略对比 引言 \quad \quad在决策树.ID3.C4 ...

  6. 机器学习笔记(十)——Logistic Function AND Softmax Function

    一.说明 在逻辑回归和一些机器学习算法中, Logistic函数和Softmax函数是常用到的,今天就先讨论下这两个函数. 二.Logistic Function Logistic function一 ...

  7. 一文了解什么是指数族分布

    前言 指数分布族是一系列分布的统称,包含连续和离散的相关分布.例如,正态分布(Gaussian).泊松分布(Poisson).二项分布(Bernoulli).指数分布(exponential).Gam ...

  8. 最大熵学习笔记(三)最大熵模型

    生活中我们常常听到人们说"不要把鸡蛋放到一个篮子里",这样能够减少风险.深究一下,这是为什么呢?事实上,这里边包括了所谓的最大熵原理(The Maximum Entropy Pri ...

  9. 机器学习笔记(十一)——逻辑回归

    一.引言 虽然说是逻辑回归,其实既可以用它做回归,也可以用它做分类.一般我们从最简单的二分类问题开始了解他,当然也可以做多分类. 二.Logistic Regression 的一般步骤 找一个合适的假 ...

最新文章

  1. python输入变量_Python如何获取用户输入
  2. golomb哥伦布编码——本质上就是通过0来区分商和余数
  3. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)
  4. pulsar配置文件常用配置项
  5. android prgoressBar setProgressDrawable 在4.0系统式正常,在2.3系统上不能正常使用的问题...
  6. 编译源码时出现 Checking API: checkapi-last (unknown): error 17解决方法
  7. Linux下打开Android调试器DDMS的方法
  8. 深入浅出MySQL全文 下载
  9. (十一)可编辑表格EditorGridPanel
  10. 【C语言编程】切比雪夫多项式
  11. win10主题更换_WIN10好用的小软件
  12. Oracle VM VirtualBox固定ip
  13. pandas计算对数收益率
  14. Open-DrainPush-Pull
  15. 基于BP神经网络控制+Simulink双闭环直流调速系统仿真
  16. 超大日志文件分割方法
  17. 简单拖拉拽就能做数据可视化分析图表
  18. HTML之在JavaScript中定义函数
  19. 1个顶11个?程序员效率差距的量化分析
  20. 用javascript编写的小游戏-打砖块

热门文章

  1. r语言 html gif,推荐 :6步教你用R语言制作动图
  2. 搜索其他计算机共享的打印机,打印机共享后其他电脑搜索不到_共享打印机查找不到_打印机品牌排行榜...
  3. 微信生态中关注、点击等各种微信消息处理的后端服务实现WxMpMessageRouter
  4. HDU - 2147 巴什博弈(必败点和必胜点)
  5. Windows10 下安装mmdetection 问题之“cannot import name ‘deform_conv_cuda‘”
  6. Stata因子变量:虚拟变量-交乘项批量处理
  7. 轻松上手UAI-Train,拍拍贷人脸识别算法优化效率提升85.7%
  8. 网络营销专家分析SNS社区一般推广方式及要点
  9. VMware 安装 黑苹果 镜像下载地址 体验一下OS
  10. 翼支付成烫手山芋 被电信“倒手”后的几大猜想