一、最大熵原理

    最大熵原理是概率模型学习的一个准则。最大熵原理认为,在学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵模型也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
    假设离散型随机变量 X <script type="math/tex" id="MathJax-Element-578">X</script>的概率分布式P(X)<script type="math/tex" id="MathJax-Element-579">P(X)</script>,则其熵是:

H(P)=xP(x)logP(x)
<script type="math/tex; mode=display" id="MathJax-Element-580"> H(P)=-\sum_x P(x) \log P(x) </script>
熵满足下列不等式:
0H(P)log|x|
<script type="math/tex; mode=display" id="MathJax-Element-581"> 0 \le H(P) \le \log|x| </script>
式中, |X| <script type="math/tex" id="MathJax-Element-582">|X|</script>是 X <script type="math/tex" id="MathJax-Element-583">X</script>取值个数,当且仅当X<script type="math/tex" id="MathJax-Element-584">X</script>的分布是均匀分布时右边的等号成立。这就是说,当 X <script type="math/tex" id="MathJax-Element-585">X</script>服从均匀分布时,熵最大。

二、最大熵模型的定义

     假设分类模型是一个条件概率分布P(Y|X)XXRn<script type="math/tex" id="MathJax-Element-6949">P(Y|X), X \in \mathcal{X} \subseteq \mathbb{R}^n</script>, 表示输入, YY <script type="math/tex" id="MathJax-Element-6950">Y \in \mathcal{Y}</script>表示输出, X,Y <script type="math/tex" id="MathJax-Element-6951">\mathcal{X},\mathcal{Y}</script>分别是输入和输出的集合。这个模型表示的是对于给定的输入 X <script type="math/tex" id="MathJax-Element-6952">X</script>,以条件概率P(Y|X)<script type="math/tex" id="MathJax-Element-6953">P(Y|X)</script>输出 Y <script type="math/tex" id="MathJax-Element-6954">Y</script>.
    给定一个训练数据集

T={(x1,y1),(x2,y2),,(xN,yN)}
<script type="math/tex; mode=display" id="MathJax-Element-6955"> T = \{(x_1, y_1),(x_2, y_2),\dots,(x_N, y_N)\} </script>
学习的目标是用最大熵原理选择最好的分类模型。
     对于给定的数据集,我们可以确定联合分布的经验分布和边缘分布的经验分布。用特征函数 f(x,y) <script type="math/tex" id="MathJax-Element-6956">f(x,y)</script>描述 x,y <script type="math/tex" id="MathJax-Element-6957">x,y</script>之间的一个事实,即:
f(x,y)={1,0,xy
<script type="math/tex; mode=display" id="MathJax-Element-6958"> f(x, y) = \left\{ \begin{array}{ll} 1, & x与y满足某一事实 \\ 0, &否则 \end{array} \right. </script>

特征函数 f(x,y) <script type="math/tex" id="MathJax-Element-6959">f(x,y)</script>关于经验分布 P˜(X,Y) <script type="math/tex" id="MathJax-Element-6960">\widetilde{P}(X,Y)</script>的期望值, 用 Ep¯(f) <script type="math/tex" id="MathJax-Element-6961">E_{\bar{p}}(f)</script>表示。

Ep¯(f)=x,yP˜(x,y)f(x,y)
<script type="math/tex; mode=display" id="MathJax-Element-6962"> E_{\bar{p}}(f) = \sum_{x, y} \widetilde{P}(x,y) f(x,y) </script>

特征函数 f(x,y) <script type="math/tex" id="MathJax-Element-6963">f(x,y)</script>关于模型 P(Y|X) <script type="math/tex" id="MathJax-Element-6964">P(Y|X)</script>与经验分布 P˜(X) <script type="math/tex" id="MathJax-Element-6965">\widetilde{P}(X)</script>的期望值, 用 Ep(f) <script type="math/tex" id="MathJax-Element-6966">E_{p}(f)</script>表示

Ep(f)=x,yP˜(x)P˜(y|x)f(x,y)
<script type="math/tex; mode=display" id="MathJax-Element-6967"> E_{p}(f) = \sum_{x, y} \widetilde{P}(x)\widetilde{P}(y|x) f(x,y) </script>

如果模型可以获得训练数据中的信息, 我们就可以假设这两个期望相等:

Ep¯(f)=Ep(f)
<script type="math/tex; mode=display" id="MathJax-Element-6968"> E_{\bar{p}}(f) = E_{p}(f) </script>

定义(最大熵模型) 假设满足所有约束条件的模型集合为

C{PP|Ep¯(fi)=Ep(fi),i=1,2,n}
<script type="math/tex; mode=display" id="MathJax-Element-6969"> \mathcal{C} \equiv \{P \in \mathcal{P} |E_{\bar{p}}(f_i) = E_{p}(f_i), i = 1, 2 \dots, n\} </script>
定义在条件概率分布 P(Y|X) <script type="math/tex" id="MathJax-Element-6970">P(Y|X)</script>上的条件熵为:
H(P)=x,yP˜(x)P(y|x)logP(y|x)
<script type="math/tex; mode=display" id="MathJax-Element-6971"> H(P) = -\sum_{x, y} \widetilde{P}(x) P(y|x) \log P(y|x) </script>
则模型集合 C <script type="math/tex" id="MathJax-Element-6972">\mathcal{C}</script>中条件熵 H(P) <script type="math/tex" id="MathJax-Element-6973">H(P)</script>最大的模型称为最大熵模型,对数为自然对数。后续将继续给出求解最大熵模型的过程。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐