`
deepfuture
  • 浏览: 4400356 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80074
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70040
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103346
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285800
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15012
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67555
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32147
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45987
社区版块
存档分类
最新评论

动态规划与信息熵,最大熵

 
阅读更多

最优化原理
   1951年美国数学家R.Bellman等人,根据一类多阶段问题的特点,把多阶段决策问题变换为一系列互相联系的单阶段问题,然后逐个加以解决。一些静态模型,只要人为地引进“时间”因素,分成时段,就可以转化成多阶段的动态模型,用动态规划方法去处理。与此同时,他提出了解决这类问题的“最优化原理”(Principle of optimality):
    “一个过程的最优决策具有这样的性质:即无论其初始状态和初始决策如何,其今后诸策略对以第一个决策所形成的状态作为初始状态的过程而言,必须构成最优策略”。简言之,一个最优策略的子策略,对于它的初态和终态而言也必是最优的。
    这个“最优化原理”如果用数学化一点的语言来描述的话,就是:假设为了解决某一优化问题,需要依次作出n个决策D1,D2,…,Dn,如若这个决策序列是最优的,对于任何一个整数k,1 < k < n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1,Dk+2,…,Dn也是最优的。
    最优化原理是动态规划的基础。任何一个问题,如果失去了这个最优化原理的支持,就不可能用动态规划方法计算。能采用动态规划求解的问题都需要满足一定的条件: 
    (1) 问题中的状态必须满足最优化原理
    (2) 问题中的状态必须满足无后效性
    所谓的无后效性是指:“下一时刻的状态只与当前状态有关,而和当前状态之前的状态无关,当前的状态是对以往决策的总结”。

问题求解模式 
    动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。

   初始状态→│决策1│→│决策2│→…→│决策n│→结束状态
     图1 动态规划决策过程示意图

    (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。
    (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。
    (3)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两段各状态之间的关系来确定决策。
    (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。

算法实现
    动态规划的主要难点在于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。使用动态规划求解问题,最重要的就是确定动态规划三要素:问题的阶段,每个阶段的状态以及从前一个阶段转化到后一个阶段之间的递推关系。递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的核心之处。确定了动态规划的这三要素,整个求解过程就可以用一个最优决策表来描述,最优决策表是一个二维表,其中行表示决策的阶段,列表示问题状态,表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值(如最短路径,最长公共子序列,最大价值等),填表的过程就是根据递推关系,从1行1列开始,以行或者列优先的顺序,依次填写表格,最后根据整个表格的数据通过简单的取舍或者运算求得问题的最优解。下面分别以求解最大化投资回报问题和最长公共子序列问题为例阐述用动态规算法求解问题的一般思路。

 

 

 

 

定义

一个 X 值域为{x1, ..., xn}的随机变量的熵值 H 定义为:

H(X)  =  \operatorname{E}(I(X))

其中,E 代表了期望函数,而 I(X) 是 X 的信息量(又称为信息本体)。I(X) 本身是个随机变量。如果 p 代表了 X 的机率质量函数(probability mass function),则熵的公式可以表示为:

H(X) = \sum_{i=1}^n {p(x_i)\,I(x_i)} = -\sum_{i=1}^n {p(x_i) \log_b p(x_i)}

在这里 b 是对数所使用的底,通常是 2, 自然常数 e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是 nat;而当 b = 10,熵的单位是 dit。

pi = 0时,对于一些i值,对应的被加数0 logb 0的值将会是0,这与极限一致。

\lim_{p\to0+}p\log p = 0.

[编辑] 范例

抛硬币的熵H(X)(即期望自信息),以比特度量,与之相对的是硬币的公正度 Pr(X=1).

注意图的最大值取决于分布;在这里,要传达一个公正的抛硬币结果至多需要1比特,但要传达一个公正的抛骰子结果至多需要log2(6)比特。

如果有一个系统S内存在多个事件S = {E1,...,En},每个事件的机率分布 P = {p1, ..., pn},则每个事件本身的讯息(信息本体)为:

I_e = -\log_2 {p_i} (对数以2为底,单位是比特(bit))
I_e = -\ln {p_i} (对数以e为底,单位是纳特/nats)

如英语有26个字母,假如每个字母在文章中出现次数平均的话,每个字母的讯息量为:

I_e = -\log_2 {1\over 26} = 4.7

而汉字常用的有2500个,假如每个汉字在文章中出现次数平均的话,每个汉字的信息量为:

I_e = -\log_2 {1\over 2500} = 11.3

熵是整个系统的平均消息量,即:

H_s = \sum_{i=1}^n p_i I_e = -\sum_{i=1}^n p_i \log_2 p_i

因为和热力学中描述热力学熵的玻尔兹曼公式形式一样,所以也称为“熵”。

如果两个系统具有同样大的消息量,如一篇用不同文字写的同一文章,由于是所有元素消息量的加和,那么中文文章应用的汉字就比英文文章使用的字母要少。所以汉字印刷的文章要比其他应用总体数量少的字母印刷的文章要短。即使一个汉字占用两个字母的空间,汉字印刷的文章也要比英文字母印刷的用纸少。

实际上每个字母和每个汉字在文章中出现的次数并不平均,因此实际数值并不如同上述,但上述计算是一个总体概念。使用书写单元越多的文字,每个单元所包含的讯息量越大。

 

 



 

 

 



 

  • 大小: 46.8 KB
  • 大小: 40.3 KB
分享到:
评论

相关推荐

    信息熵_C++_图像信息熵C++_

    在计算机科学领域,尤其是图像处理和数据分析中,信息熵是一个重要的概念。它是衡量信息不确定性的度量,由信息论的创始人克劳德·香农在1948年提出。本篇文章将深入探讨信息熵的基本原理,以及如何使用C++语言来...

    latmab文件.zip_图像 熵_图像分割_图像熵_最大熵

    最大熵法(Maximun Entropy Method,MEM)是一种基于信息熵最大化原则的图像分割方法。该方法的基本思想是在满足一定先验信息或边界条件的情况下,寻找一个最佳分割方案,使得图像的整体熵达到最大。这可以通过求解...

    基于信息熵的图像分割阈值迭代改进算法

    ### 基于信息熵的图像分割阈值迭代改进算法 #### 一、引言 在图像处理领域,图像分割是一项关键的技术,旨在通过特定的运算将图像划分成多个具有相似特性的区域,例如根据颜色、纹理或者密度等特征。图像分割主要...

    8. 熵及最大熵模型1

    在最大熵模型的表示中,我们可能需要解决一个非线性规划问题,其中目标函数是熵H(Y|X),而约束条件可能包括一些先验知识,如边缘概率、条件概率或者某些特定事件的概率。解这个优化问题可以得到最佳的概率分布,用于...

    二维最大熵阈值分割算法

    3. **二维最大熵阈值法**:与一维最大熵方法相比,二维最大熵阈值法考虑了像素点的灰度值及其邻域灰度均值,从而生成一个二维直方图。该方法能够更全面地利用图像的空间信息,提高分割精度。 4. **二维直方图**:...

    基于信息熵图像分割技术

    在实际应用中,最大Shannon信息熵方法可能会与其他技术结合,比如区域生长、边缘检测或机器学习算法,以提高分割的准确性和鲁棒性。此外,为了应对实际问题的复杂性,可能还需要考虑其他因素,如纹理分析、上下文...

    BMELIB2.0b.zip_BMELib_数据融合_最大熵_熵_贝叶斯最大熵

    贝叶斯最大熵方法是最大熵原理与贝叶斯统计的结合。贝叶斯统计是一种处理概率问题的方法,其中先验知识(即在观察数据之前已知的信息)和观测数据一起被用来更新对模型参数的理解。在贝叶斯最大熵模型中,我们首先...

    最大熵复原方法_matlab_最大熵_图像处理_blur_最大熵复原_

    熵在信息理论中代表着不确定性,因此最大熵原则意味着在所有可能的复原方案中选择最不偏倚的一个,即保留了最多的原始信息。 在MATLAB环境中,我们可以编写脚本来实现最大熵图像复原。在给定的描述中,提到了两个...

    图像处理最大熵阈值分割法

    本文将深入探讨“最大熵阈值分割法”这一关键概念,这是一种基于信息熵理论的图像分割技术。 最大熵阈值分割法(Maximum Entropy Thresholding)是基于熵最大化原则的图像二值化方法。熵在信息论中表示信息的不确定...

    基于最大熵原则的阈值分割

    (1) 信息熵与最大熵原则 信息熵是信息论中的基础概念,由克劳德·香农提出,用来衡量信息的不确定性或无序性。在图像处理中,如果图像的灰度分布非常集中,即图像的各个像素值相近,那么信息熵较低,表示图像较为...

    最大熵原理与应用PPT课件.pptx

    最大熵原理是 Jaynes 在 1957 年提出的一个统计推断方法,基于信息熵的概念,用于确定随机变量集合概率分布。该方法基于部分信息建立概率分布的构造性准则,导致被称作最大熵估计的一种统计推断方法。这是根据给定...

    基于信息熵的图像阈值选取算法 (2010年)

    信息熵可以表征图像的灰度信息,并用以区分图像中的目标和背景.文中研究了最大熵法的分割效果、对数熵的运算时间,然后使用指数熵代替对数熵,并对二维最大熵法进行了改进,在结合大津法的同时,加入了4邻域外像素灰度的...

    基于最大熵方法的鲁棒自适应滤波及其应用_基于最大熵的自适应滤波算法_最大相关熵_自适应_最大相关熵_

    最大熵方法是信息理论中的一个概念,其核心思想是假设模型具有最大的不确定性(即熵最大),除非有充分的理由去限制它。在自适应滤波中,这种理念被用来设计滤波器,使得在满足一定约束条件下,滤波器的输出尽可能地...

    用matlab编写的二维最大熵和最小交叉熵实现图像的分割-CSDN下载.2018_03_16

    资源包中的"二维最大熵与交叉熵结合.rar"可能包含了完整的实现流程,用户可以通过解压并运行其中的代码来体验这一过程。 总的来说,这个资源包提供了从理论到实践的完整示例,对于学习和理解二维最大熵和最小交叉熵...

    基于一维和二维最大熵分割

    基于一维和二维最大熵的图像分割方法,是利用信息熵理论解决图像分割问题的有效手段。它们不仅提供了对图像特征的量化描述,还能在一定程度上克服噪声干扰。通过MATLAB实现,这些方法可以灵活地应用于各种图像处理...

    两个matlab实现最大熵法图像分割程序.zip_matlab最大熵法_二维最大熵_图像分割matlab_最大熵分割_最大熵方法

    本文提供了两种方法计算二维最大图像信息熵

Global site tag (gtag.js) - Google Analytics