这部分讨论决策理论与 PGM 的关系,一个主要的思路就是将决策与 PGM 的 inference 完美的融合在一起。

MEU

为了引入决策理论中的 maximum expected utility 原则,我们先引入一些概念:

  • lottery(彩票)是一个结果与概率的映射关系,用户对不同的 lottery 的偏好能显示其对风险的不同评估方式
  • 决策问题一般有一组结果 ,一组行为 ,结果的概率模型,即给定某个行为后,得到结果上的一个分布(lottery),一个 utility function,它给出用户对不同结果的偏好

所谓的 MEU 原则是

事实上也有做其他的选择的原则的,比如 min max risk,最大风险最小化

我们这里只考虑前者。那么一般说来合理的 utility function 要求满足,

  • orderability,即对任意两个 lottery,或者选其一或者两个倾向一样
  • transitivity,即如果两两比较 ,则有
  • continuity,即若 ,则存在 使得 与 compound lottery
  • monoticity,若 ,则
  • substitutability,若 ,则这两个 lottery 可替换:
  • decomposability,

可证明对满足以上六点的 lottery 存在 utility function 使得 当且仅当 。这里

一般说来一个 utility function 对 money 的曲线一般是单调增,在正象限是 concave 的,表示 diminishing utility,这一般表示的是 risk averse:即选择带随机的收益和无随机的收益(两者平均 utility 相等)两种 lottery 的时候会倾向后者。与此相反有 risk seeking 和 risk neutral,前者是 convex 的而后者是线性函数。但是很多时候人并不是一成不变或者一味有理智的,他们的 utility function 可能会变化。但是实际情况下的 outcome 可能并不是 money 这么简单,我们往往面对的是多个 attribute 造成的影响建立对应的 utility model。简单的说这是一个多元函数如何能写出表达式的问题。事实上,如果这些 attribute 满足某些性质,我们可以将这个函数 decompose 成为若干 attribute 上各自的 utility。为此我们引入一些概念,

  • 是 attributes 的一个 partition,称 是 preferentially independent of ,当且仅当对任意 ,给定 时有 ,当且仅当给定 时也有
  • 以上是说这个 attribute 的 partition 之间有这样一个无关性,其中一个取定不会影响另外一个的 preference,我们可以将其延拓到分布上,为此引入 conditional preference structure,当 对任意 成立时,记为
  • 这样我们就可以定义 utility independence,即对任意 如果两个 lottery 的 preference 是恒定的

可以证明:如果 attributes 是 utility independent of ,当且仅当 。这个定理的推论是,如果每个子集 满足它和它的补集是 utility independent 的,当且仅当存在以下分解

或者

这也就是说 utility function 的最终形式大约是一个关于 attributes 子集上 utility function 的 multilinear function。如果我们只考虑相加这种形式(后者)往往会降低我们的 utility function modeling power,但是它也有一些自己的特点,比如所谓 additive independence,就是说对任意的 attribute margin 来说发现两个 lottery 的 preference 都是一样的,这种情况下的 utility function 必然能写成每个 attribute 上 utility function 的和。类似我们可以定义 conditional additive independence,这是在给定某个 attribute 值(如 )的情况下任两个 lottery 的 preference 在任意两个 margin 上(如 )是一致的,这时的 utility function 会 decompose 成为几个 utility function,即 。事实上我们甚至可以用 MRF 表示 CAI-map,这样 utility function 的 decomposition 也会变成对应几个 clique 上 utility function 的和。事实上上述要求 disjoint attribute 可以被松弛,这称为 generalized additive independence,对应情况下的 utility function 分解仍然成立。

一个基本的求解 MEU 的策略是使用 decision tree,根据每个随机变量的取值进行分叉,最后得到每个 leaf 上的 utility function value,这样一来最优的 decision 就是能导致走到 utility 最高的 leaf 上的策略。而另一种也就是前面提到对 BN 的扩展是在 BN 中加入 decision variable(对应 action)和 utility variable(对应最终的 utility),而原先的 r.v.s 称为 chance variable。这个新的图模型称为 influence diagram。很快我们就可以发现 MEU 实际上就是要求 或者对应有一定的 observation 时要求 。这里 utility function 是对应节点 的父节点的(确定性)函数。影响 action variable 的 edge 也叫 information edge,而我们需要的 decision rule 。通常我们求解 MEU 策略和前面的 inference 过程也呈现了某种相似之处。我们分几种情况讨论

  • 如果没有 decision variable,我们只需要 marginalize 所有的东西就得到了 expected utility
  • 如果只有一个 decision variable,记为 ,那么我们可以 marginalize 掉除了 以外的东西,即得到的函数为 ,这样取
  • 如果有多个,可以采用 iterated optimization algorithm,即每次固定别的 decision rule,更新当前的,这种算法在某些特定条件下能收敛到全局最优,一个充分的条件是满足 perfect recall,即存在某个 r.v.s 的顺序使得按照这个顺序走的时候后面的 decision variable 的 parent 必须在之前的 decision variable 及其 parent 里面。

为了更好地刻画什么时候 local optimal 的 decision 能够导致 global 的 optimal decision,我们需要研究改变某个 decision rule 时如何会不影响到其他的 decision rule(这样各自保持最优),这样以上 iterated optimization algorithm 就能减少迭代次数。为此引入了 strategically relevant 和 s-reachability 的概念,并证明两者的等价,可以证明满足 perfect recall 性质对应的 relevance graph 一定是 acyclic 的。那么实际上如果 relevance graph 本身是 acyclic 的直接用 iterated optimization algorithm 也定能获得最优解。

在 marginalize 其他的 r.v.s 的时候注意到 information edge 的作用(传递有用的 message),而某些信息其实是对 MEU 无用的,这一般是不存在一条 active trail 会产生的现象(此时称为 irrelevant information edge),去掉 irrelevant edge 不会改变 optimal decision。

一个很重要的问题是我们是否能通过某种方式确定某个观测对决定的影响。对单个 decision observation 而言,我们可以使用所谓 value of perfect information 来衡量,即增加一条 information edge 从该 r.v. 到 decision variable 后 MEU 的变化,记为 ,可以证明这个值不小于零。也就是说知道更多决策不会变差。多个的情况会变复杂很多,一般只能用近似。

——————
And it came to pass at that time, that Abimelech and Phichol the chief captain of his host spoke to Abraham, saying, God is with you in all that you do:

pgm17的更多相关文章

随机推荐

  1. <转>七种测试驱动模式

    本文转载自微信公众号:中国软件测试联盟 在进行软件测试时,我们都需要一个出发点,从哪里开始分析?测试设计是基于什么?简单说,就是什么驱动测试工作的进行? 基于对软件工程.产品质量和测试的理解,归纳出以 ...

  2. 利用git向github上远程提交一个自己的开源项目

    1.在电脑的系统变量中的path路径中配置git的环境变量: 找到git安装路径中bin的位置,如:X:\Git\bin 找到git安装路径中git-core的位置,如:X:\Git\libexec\ ...

  3. JVM有哪些分区?(解释详细 通俗易懂)

    JVM的分区可以分为两种:线程私有的内存区和线程共享的内存区 一.JVM中线程私有的内存区: 1.程序计数器:当前线程所执行的字节码行号计数指示器,是线程私有的,即每个线程都有自己的程序计数器,需要注 ...

  4. VC++编写简单串口上位机程序

    VC++编写简单串口上位机程序   转载: http://blog.sina.com.cn/s/articlelist_1809084904_0_1.html VC++编写简单串口上位机程序 串口通信 ...

  5. 在lua中创建字段安全的对象

    lua萌新,刚刚学习和使用不到一个月.有不对的地方,还望各路大神不吝赐教. lua中可以用table来模拟对象,但table是可以任意增加键值的.在对象模拟中,暂且也叫它为字段(field)吧.如果在 ...

  6. win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

    win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...

  7. MiniProfiler工具介绍(监控EF生成的SQL语句)--EF,迷你监控器,哈哈哈

    十年河东,十年河西,莫欺少年穷... 今天是抄袭的别人的博客,不过我感觉蛮好,挺有用,特别是老板让你优化EF项目SQL耗时的情况下,你可以采用这种方式来优化你的LINQ. 时间很宝贵,废话还是不多说, ...

  8. C#获取当前堆栈的各调用方法列表

    在使用.NET编写的代码在debug时很容易进行排查和定位问题,一旦项目上线并出现问题的话那么只能依靠系统日志来进行问题排查和定位,但当项目复杂时,即各种方法间相互调用将导致要获取具体的出错方法或调用 ...

  9. Pycharm: 代码跳转如何回退 (小技巧)

    背景 玩Python已经有段时间了, 一般都是通过vim和Pycharm来开发, 真心觉得这两个是神器. Vim神器暂且不说, 今天来分享Pycharm的一个小技巧. 用Pycharm的童鞋都知道, ...

  10. Nginx反向代理中使用proxy_redirect重定向url

    在使用Nginx做反向代理功能时,有时会出现重定向的url不是我们想要的url,这时候就可以使用proxy_redirect进行url重定向设置了.proxy_redirect功能比较强大,其作用是对 ...