【读书笔记】Algorithms for Decision Making(2)

简介: 理性决策需要对不确定性和目标进行推理。不确定性源于预测未来事件能力的实际及理论限制。为了实现其目标,一个强有力的决策系统必须考虑到当前世界状况和未来事件中的各种不确定性来源。

二、概率推理(1)

理性决策需要对不确定性和目标进行推理。不确定性源于预测未来事件能力的实际及理论限制。为了实现其目标,一个强有力的决策系统必须考虑到当前世界状况和未来事件中的各种不确定性来源。

首先,讨论了如何将不确定性表示为概率分布,即如何将现实问题构建为概率模型,如何使用模型进行推理,以及如何从数据中学习模型的参数和结构。然后,介绍了效用原理 (utility theory )的基础,并通过最大期望效用原理说明如何形成不确定性下理性决策的基础。最后,讨论了如何将效用理论的概念纳入上述概率图形模型中,以形成决策网络。


1. 基本概念

由于许多重要问题涉及大量变量的概率分布,此处讨论了一种有效表示联合分布的方法,该方法利用了变量之间的条件独立性。

1.1 概率与置信度

> $\mathbb{P} (A) > \mathbb{P} (B)$ if and only if $A  \succ B$;
> $\mathbb{P} (A) = \mathbb{P} (B)$ if and only if $A  \sim B$;
> $\mathbb{P} (A) \leq \mathbb{P} (B)$ if and only if $A  \preceq B$;

1.2 概率分布

- 离散概率分布:probability mass function(PMF);记$\mathbb{P} (X = 3)$ 为$\mathbb{P} (X^{3})$。
- 连续概率分布:probability density function(PDF);cumulative distribution function(CDF);quantile function/inverse cumulative distribution function(ICDF)。$${\rm cdf}_{X} (x) = \mathbb{P} (X \leq x) = \int_{- \infty}^{x} p(y) \ {\rm d}y = 1 - {\rm icdf}_{X} (x) .$$
> 大部分的常用分布为单峰分布(unimodal),这意味着分布中有一个点,密度在一侧增加,在另一侧减少。有不同的方法来表示多峰(multimodal)的连续分布:一种方法是使用混合模型,它是多种分布的混合,如高斯混合模型;另一种方法通过离散化实现,如可以将连续变量上的分布表示为分段均匀密度,密度由边界指定,概率质量与每个边界关联。

1.3 联合分布的表示法

  • 离散联合分布的表示法

    • 因子表示法
    struct Variable
        name::Symbol
        r::Int # number of possible values
    end
    
    const Assignment = Dict{Symbol,Int}
    const FactorTable = Dict{Assignment,Float64}
    
    struct Factor
        vars::Vector{Variable}
        table::FactorTable
    end
    
    variablenames(ϕ::Factor) = [var.name for var in ϕ.vars]
    
    select(a::Assignment, varnames::Vector{Symbol}) =
        Assignment(n=>a[n] for n in varnames)
    
    function assignments(vars::AbstractVector{Variable})
        names = [var.name for var in vars]
        return vec([Assignment(n=>v for (n,v) in zip(names, values))
            for values in product((1:v.r for v in vars)...)])
    end
    
    function normalize!(ϕ::Factor)
        z = sum(p for (a,p) in ϕ.table)
        for (a,p) in ϕ.table
            ϕ.table[a] = p/z
        end
        return ϕ
    end

    示例 对于一个联合分布的例子,如下表所示

    $X$ $Y$ $Z$ $\mathbb{P} (X, Y, Z)$
    0 0 0 0.08
    0 0 1 0.31
    0 1 0 0.09
    0 1 1 0.37
    1 0 0 0.01
    1 0 1 0.05
    1 1 0 0.02
    1 1 1 0.07

    使用因子表示法:

    # example
    X = Variable(:x, 2)
    Y = Variable(:y, 2)
    Z = Variable(:z, 2)
    ϕ = Factor([X, Y, Z], FactorTable(
        (x=1, y=1, z=1) => 0.08, (x=1, y=1, z=2) => 0.31,
        (x=1, y=2, z=1) => 0.09, (x=1, y=2, z=2) => 0.37,
        (x=2, y=1, z=1) => 0.01, (x=2, y=1, z=2) => 0.05,
        (x=2, y=2, z=1) => 0.02, (x=2, y=2, z=2) => 0.07,
    )) # Julia doesn't have zero ^_^
    • 决策树表示法

    在这里插入图片描述

  • 连续联合分布的表示法
    在某些情况下,以类似于讨论的离散联合分布的表示法,将连续联合分布表示为决策树可能更节省内存。内部节点将变量与阈值进行比较,叶节点是密度值。

1.4 条件分布

  • the law of total probability $$\mathbb{P} (x) = \sum_{y} \mathbb{P} (x \mid y) \mathbb{P} (y).$$
  • Bayes’ rule $$\mathbb{P} (x \mid y) = \frac{\mathbb{P} (y \mid x) \mathbb{P} (x)}{\mathbb{P} (y)}.$$

1.5 贝叶斯网络(Bayesian Networks)

贝叶斯网络可用于表示联合概率分布。贝叶斯网络的结构由节点和有向边组成的有向无环图定义。

    struct BayesianNetwork
        vars::Vector{Variable}
        factors::Vector{Factor}
        graph::SimpleDiGraph{Int64}
    end

贝叶斯网络的一种实现,其条件概率分布表示为离散因子

    function probability(bn::BayesianNetwork, assignment)
        subassignment(ϕ) = select(assignment, variablenames(ϕ))
        probability(ϕ) = get(ϕ.table, subassignment(ϕ), 0.0)
        return prod(probability(ϕ) for ϕ in bn.factors)
    end

示例 涉及五个二进制变量的卫星监测问题的贝叶斯网络,其贝叶斯网络为下图所示。任何一种故障都可能导致电气系统故障(E)。幸运的是,电池故障(B)和太阳能电池板故障(S)都很罕见,尽管S比B更可能发生。除了B或S之外,可能还有其他电气系统故障的原因,例如电源管理单元的问题。E可导致轨道偏离(D),可通过望远镜从地球上观察到,以及通信中断(C),中断遥测和任务数据向下传输到各个地面站。不涉及电气系统的其他异常可能导致D和C。
在这里插入图片描述

    # example
    B = Variable(:b, 2); S = Variable(:s, 2)
    E = Variable(:e, 2)
    D = Variable(:d, 2); C = Variable(:c, 2)
    
    vars = [B, S, E, D, C]
    factors = [
        Factor([B], FactorTable((b=1,) => 0.99, (b=2,) => 0.01)),
        Factor([S], FactorTable((s=1,) => 0.98, (s=2,) => 0.02)),
        Factor([E,B,S], FactorTable(
            (e=1,b=1,s=1) => 0.90, (e=1,b=1,s=2) => 0.04,
            (e=1,b=2,s=1) => 0.05, (e=1,b=2,s=2) => 0.01,
            (e=2,b=1,s=1) => 0.10, (e=2,b=1,s=2) => 0.96,
            (e=2,b=2,s=1) => 0.95, (e=2,b=2,s=2) => 0.99)),
        Factor([D, E], FactorTable(
            (d=1,e=1) => 0.96, (d=1,e=2) => 0.03,
            (d=2,e=1) => 0.04, (d=2,e=2) => 0.97)),
        Factor([C, E], FactorTable(
            (c=1,e=1) => 0.98, (c=1,e=2) => 0.01,
            (c=2,e=1) => 0.02, (c=2,e=2) => 0.99))
    ]
    
    graph = SimpleDiGraph(5)
    add_edge!(graph, 1, 3); add_edge!(graph, 2, 3)
    add_edge!(graph, 3, 4); add_edge!(graph, 3, 5)
    bn = BayesianNetwork(vars, factors, graph)

1.6 条件独立

Variables $X$ and $Y$ are conditionally independent given $Z$ if and only if $\mathbb{P} (X, Y \mid Z) = \mathbb{P} (X \mid Z) \mathbb{P}(Y \mid Z)$. Moreover, it can be written as $(X \perp Y \mid Z)$.

对应到贝叶斯网络的图表示中,需要验证$d$-分离($d$-separation)。

A path between $A$ and $B$ is $d$-separated by $\mathcal{C}$ if any of the following is true:
(1) The path contains a chain of nodes, $X \to Y \to Z$, such that $Y$ is in $\mathcal{C}$.
(2) The path contains a fork, $X \leftarrow Y \to Z$, such that $Y$ is in $\mathcal{C}$.
(3) The path contains an inverted fork (also called a $v$-structure), $X \to Y \leftarrow Z$, such
that $Y$ is not in $\mathcal{C}$ and no descendant of $Y$ is in $\mathcal{C}$.

相关文章
|
机器学习/深度学习 人工智能 算法
The 10 Algorithms Machine Learning Engineers Need to Know
The 10 Algorithms Machine Learning Engineers Need to Know
|
算法 决策智能
【读书笔记】Algorithms for Decision Making(14)
本部分将简单游戏扩展到具有多个状态的连续上下文。马尔可夫博弈可以看作是多个具有自己奖励函数的智能体的马尔可夫决策过程。
363 0
【读书笔记】Algorithms for Decision Making(14)
|
算法 关系型数据库 数据建模
【读书笔记】Algorithms for Decision Making(4)
本部分讨论从数据学习或拟合模型参数的问题,进一步讨论了从数据中学习模型结构的方法,最后对决策理论进行了简单的概述。
【读书笔记】Algorithms for Decision Making(4)
|
机器学习/深度学习 API
【读书笔记】Algorithms for Decision Making(8)
解决存在模型不确定性的此类问题是强化学习领域的主题,这是这部分的重点。解决模型不确定性的几个挑战:首先,智能体必须仔细平衡环境探索和利用通过经验获得的知识。第二,在做出重要决策后很长时间内,可能会收到奖励,因此必须将以后奖励的学分分配给以前的决策。第三,智能体必须从有限的经验中进行概括。
208 0
【读书笔记】Algorithms for Decision Making(8)
|
机器学习/深度学习 人工智能 算法
【读书笔记】Algorithms for Decision Making(1)
我自己的粗浅看法:机器学习要不是拟合逼近(经常提及的machine learning),要不就是决策过程(reinforcement learning),这本书主要讲述后者的前世今生。
327 0
【读书笔记】Algorithms for Decision Making(1)
|
机器学习/深度学习 算法 vr&ar
【读书笔记】Algorithms for Decision Making(9)
与基于模型的方法相比,无模型方法不需要构建转移函数和奖励函数的显性表示,而是直接作用于值函数建模。进一步地,考虑模拟学习来重建奖励函数。
【读书笔记】Algorithms for Decision Making(9)
|
机器学习/深度学习 算法 流计算
【读书笔记】Algorithms for Decision Making(6)
对于较大状态空间的问题,计算精确解需要极大的内存量,因而考虑近似解的方法。常使用approximate dynamic programming的方法去寻求近似解,进而使用在线方法实现实时计算。
163 0
【读书笔记】Algorithms for Decision Making(6)
|
算法
【读书笔记】Algorithms for Decision Making(3)
上一部分给出了概率分布的表示论。本部分将展示如何使用概率表示进行推理,即确定一组给定观察变量相关值的一个或多个未观察变量的分布。在该部分中首先介绍直接推断的办法,然后给出几种有效的近似方法。
155 0
|
vr&ar
【读书笔记】Algorithms for Decision Making(5)
此前讲述了在某个时间点做一个单一的决定的问题,但许多重要的问题需要做出一系列的决定。序列环境中的最佳决策需要对未来行动和观察序列进行推理。
115 0
|
机器学习/深度学习
【读书笔记】Algorithms for Decision Making(7)
策略搜索即搜索策略空间,而无需直接计算值函数。策略空间的维数通常低于状态空间,并且通常可以更有效地搜索。本部分首先讨论在初始状态分布下估计策略价值的方法。然后讨论不使用策略梯度估计的搜索方法和策略梯度方法。接着介绍Actor-Critic方法用值函数的估计来指导优化。