二、概率推理(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}$.