最大熵算法及简单样例

最大熵算法及简单样例

      近期在学模式识别,正在看Introduction to Pattern Recognition这本书,挺不错的一本书。好。以下和大家一起来学习最大熵算法。

首先,最大熵算法是干什么的呢?通常是用来预计一个分布,至于把分布预计出来之后用来干什么,那要视详细问题而定。

那这里的“熵”是什么意思呢?它是指信息熵,一个分布的均匀程度能够用熵的大小来衡量。熵越大,就越均匀。而最大熵就是要求在满足特定约束下,分布最大熵算法及简单样例是什么样的时候。熵最大。也就是越均匀越好。

       为什么在满足特定约束下越均匀越好?由于你已经没有足够的信息来支持你的推断了。你不能偏袒当中随意一方。你仅仅能把它们一视同仁。

举一个超级简单的样例。比方说我如果一辆车开到了一个T字型的路口。限定它必需要么左转。要么右转,设左转的概率是最大熵算法及简单样例,右转的概率是最大熵算法及简单样例,除此之外没有不论什么信息了,问怎样预计最大熵算法及简单样例最大熵算法及简单样例?你如今有的信息仅仅是最大熵算法及简单样例而已。按最大熵的思想,既然你没有其它不论什么信息来说明向左转的可能性比向右转的可能性大(或小)。那就应该把它们两一视同仁。同等对待。不能偏袒其一。于是就应该是最大熵算法及简单样例,这就是最大熵的思想。

细致想想还是挺有道理的,如果你认为这样不是最合适的解,你给出了还有一个解最大熵算法及简单样例,那就要问了。凭什么往左转的概率比往右转的大呢?已经没有不论什么信息再支持你的推断了呀。

因此,仅仅能把它们两同行对待了。其实,最大熵算法及简单样例这个分布的熵比最大熵算法及简单样例这个分布的熵要大,由于前者比后者均匀。越均匀熵越大,就越是同等对待(均匀的意思就是大家都一样)。

        说了半天。熵究竟长什么样?以下给出对于一个分布。它的熵定义为:

最大熵算法及简单样例

        对于分布最大熵算法及简单样例,它能够有一些约束条件,什么叫约束条件?继续刚才开车的样例,一个最简单的约束条件就是最大熵算法及简单样例,由于要保证概率之和是1(注:这里的最大熵算法及简单样例最大熵算法及简单样例实际上是离散分布,最大熵算法及简单样例是连续的分布,只是事实上原理都一样,都适合最大熵原理,仅仅是写出来的形式看起来不一样而已)。当然还能够有其他约束条件。比如我给出这样一个条件:向左转的概率是向右转的2倍,那么这个条件就是一个约束条件,增加这个条件之后。那么最大熵的解就不是最大熵算法及简单样例了,那就要计算最大熵算法及简单样例最大熵算法及简单样例在满足最大熵算法及简单样例最大熵算法及简单样例 的条件下,和是什么的时候熵最大。

        约束条件是以下这个样子滴:

最大熵算法及简单样例

        当中M就是约束条件的总数。最大熵算法及简单样例最大熵算法及简单样例的不同组合,就构成了不同的约束条件。比如。大家回忆上面的约束条件:最大熵算法及简单样例。就是说要保证概率和为一,假设我取最大熵算法及简单样例,就有最大熵算法及简单样例注:相应的离散情况下的实际上就是最大熵算法及简单样例,这里再强调一下,连续和离散的形式,仅仅是形式上不同,都能够用最大熵原理)。

        好,如今问题变成:已知有约束:

最大熵算法及简单样例

        求当最大熵算法及简单样例是什么时。熵最大,即下式最大:

最大熵算法及简单样例

        这就是求有约束的极值,用拉格朗日乘子法能够求(注:拉格朗日乘子法在高等数学中学过哟,还记得吗?)。写出拉格朗日函数:

最大熵算法及简单样例
         再对最大熵算法及简单样例求偏导数。注意。这里是对最大熵算法及简单样例求偏导,而我们曾经在高等数学中做题目的时候。通常是对最大熵算法及简单样例求偏导。由于那时是要求当最大熵算法及简单样例是什么的时候,目标函数取得极值,而这里是要求当最大熵算法及简单样例是什么的时候,目标函数取得极值,也就是说,把最大熵算法及简单样例看成一个总体来求偏导,得到下式:
最大熵算法及简单样例
         令偏导数等于0,解出最大熵算法及简单样例得到:
最大熵算法及简单样例
         这时候就求出来了最大熵算法及简单样例在满足约束条件的情况下,最大熵算法及简单样例长这个样子的时候,最大熵算法及简单样例的熵最大~以下再给出简单的样例,大家能够自己动手算一下。这样能够体会得更深刻:

         题目1有满足例如以下条件的概率分布最大熵算法及简单样例

最大熵算法及简单样例

         求当它是什么样的时候,它的熵最大?

         好,大家对比着前面看,先看看最大熵算法及简单样例的熵最大的时候。它的形式:

最大熵算法及简单样例

         然后看题目,把相应的约束(即最大熵算法及简单样例)找出来。我们看约束条件的形式:

最大熵算法及简单样例

         再看题目:

最大熵算法及简单样例

        是不是一眼就看出,有一个约束条件最大熵算法及简单样例,除此之外。还有别的约束条件吗?没有了~(注意。不要把最大熵算法及简单样例最大熵算法及简单样例取值范围的约束和这里的约束条件混淆~)。

如今把求得的约束往最大熵算法及简单样例中代入,得到:

最大熵算法及简单样例

        而依据题意又有:

最大熵算法及简单样例

        解出最大熵算法及简单样例 ,再代回最大熵算法及简单样例。就大功告成了~终于结果例如以下:

最大熵算法及简单样例

       怎么?还只是瘾?那再来看一题~

       题目2有满足例如以下条件的概率分布最大熵算法及简单样例
最大熵算法及简单样例

       求当它是什么样的时候,它的熵最大?

       如今你应该有思路了吧?先去找最大熵算法及简单样例呗~将题目给的约束:

最大熵算法及简单样例

      和约束的形式对照:

最大熵算法及简单样例

      相信你已经找出最大熵算法及简单样例了~有2个:

最大熵算法及简单样例最大熵算法及简单样例
      好,把它们往最大熵算法及简单样例代入得:
最大熵算法及简单样例
     再把这个最大熵算法及简单样例代入题目的那两个条件最大熵算法及简单样例中,两个方程两个未知数,就能够解啦~(注:这一步的积分略微有点麻烦。假设有同学积不出来请留言,我会提供手写版的具体过程供參考~)。终于结果:
最大熵算法及简单样例

     呼~相信你已经对最大熵算法有了一定的了解,非常高兴能和大家一起学习,欢迎交流。若有写得不正确或者不好之处欢迎批判指正及吐槽哈~

    參考:《Introduction to Pattern Recognition》。这本书还是挺不错的~