• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

最大熵理论推导

ml admin 4个月前 (03-16) 193次浏览 0个评论 扫描二维码

先给出一个例子抛出最大熵的问题。。

掷骰子,骰子总共有 6 个点数,现在你觉得每个点数掷到的概率多大?
你毫不犹豫的说 1/6,此时你就使用了最大熵模型来解决这个问题,只是你自己不知道。
在没有任何约束的情况下,你认为等概率事件是最好的结果,如果现在继续告诉你 1 点和 2 点的概率占比 1/2,
那么剩下的四个点数的总规律是 1/2,此时你又要做均分了,你认为 3 点到 6 点掷到的概率是 1/8,此处再次使用了最大熵
并且是在有约束的情况下给出答案。
实践经验和理论计算都告诉我们,在完全无约束状态下,均匀分布等价于熵最大(有约束的情况下,不一定是概率相等的均匀分布。 比如,给定均值和方差,熵最大的分布就变成了正态分布 )。
因此,也就引出了最大熵模型的本质,它要解决的问题就是已知 X,计算 Y 的概率,且尽可能让 Y 的概率最大(实践中,掷骰子和拿到不同颜色的球),从而根据已有信息,尽可能最准确的推测未知信息,这就是最大熵模型所要解决的问题。 相当于已知 X,计算 Y 的最大可能的概率,转换成公式,便是要最大化下述式子 H(Y|X):
\[ max H(Y|X) =\sum_{}p(x,y)*log\frac{1}{p(y|x)} \]
且满足以下 4 个约束条件:
\[ \begin{align}
p(1)+p(2) &=\frac{1}{2} \\
p(3)+p(4)+p(5)+p(6) &=\frac{1}{2}
\end{align} \]
现在给出一个特征函数的概念,是反映输入与输出之间的一个事实,值只有 0 和 1
继续拿上面的掷骰子来说明,现在你要是
(1)掷骰子是 1 点和 2 点我就给你一个红色的球
(2)掷骰子是 3 点和 4 点我就给你一个黄色的球
(3)掷骰子是 5 点和 6 点我就给你一个蓝色的球
Ok,那么的输入 x 就是骰子的点数 1 到 6,y 输出就是红黄蓝球
因此可以定义下面的公式
\[y = \begin{cases}
1,\quad if \quad x=1 \quad and \quad y=red ball \\
0 ,\quad else
\end{cases} \]
根据以上信息我们给出最大熵的定义
\[ max H(Y|X) =\sum_{}p(x,y)*log\frac{1}{p(y|x)} \]
特征函数在样本中的期望为
\[ \tilde{E}(f)=\sum_{x,y} \tilde{p}(x,y) f(x,y) \]
实际的
\[ \begin{align}
E(f) &=\sum_{x,y} p(x,y) f(x,y) \\
&=\sum_{x,y} p(y|x)p(x)f(x,y) \\
&=\sum_{x,y} py|x)\tilde{p}(x) f(x,y)
\end{align} \]
换言之,如果能够获取训练数据中的信息,那么上述这两个期望值相等,即:
\[ E(f)=\tilde{E}(f) \]
所以最大熵的模型公式最终确定如下所示:
\[ argmax H(Y|X) =\sum_{x,y}p(y|x)*\tilde{p}(x)*log\frac{1}{p(y|x)} \]
约束条件如下
\begin{align}
E(f) &=\tilde{E}(f)
\sum_{y}p(y|x)=1
\end{align}
求解上面模型的方法与 svm 类似,使用拉格朗日求解,获取对偶模型求解,下面给出手写推导公式过程,

使用 latex 编辑实在是公事太多了。。。。原谅我偷懒了


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明最大熵理论推导
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!