简介
《计算智能》的第二部分——概率,因为各种原因,得分成两部分……
不确定知识与推理
基本概率符号
概率理论中变量被称为随机变量,变量的名字以大写字母开头。每个随机变量有一个定义域,当一个随机变量为布尔变量时,其小写字母表示的是True,例如
当概率
符号
对于连续变量,则
除了单个变量的分布外,还需要符号表示多个变量的分布,即为联合概率分布。
使用完全联合分布进行推理
柯尔莫哥洛夫公理:
边缘化规则(求和消元):
条件化规则:
通用推理过程:
询问变量
,即查询为证据变量
,即观测变量,其观察值为- 隐变量,即其余的未观测变量
贝叶斯规则:
带证据变量
归一化的贝叶斯规则:
给定第三个随机变量
概率推理
贝叶斯网络
利用全联合概率分布计算不确定知识的局限性:
- 变量数目增多时,域的规模会增大到不可操作的程度。
- 为每个原子事件指定概率是很不自然的,而且可能非常困难。
利用贝叶斯网络以一种自然和有效的方式来捕捉不确定知识。该网络是一个用于条件独立断言的简单的图模型,对全联合分布有紧凑的描述形式。
贝叶斯网络,又名:信度网(belief network)、概率网络(probability network)、因果网络(causal network)、知识图(knowledge map)。
定义:贝叶斯网络是一个有向图,其中每个节点都标注了定量概率信息。
- 一个随机变量集组成网络节点。变量可以是离散的或连续的。
- 一个连接点对的有向边或箭头集合。若存在从节点
指向节点 的有向边,则称 是 的父节点。 - 每个节点
都有一个条件概率分布: - 一个有向无环图(DAG)
在简单的例子中,条件概率分布被表示为条件概率表(CPT)。CPT中的每一行包含了每个节点值
对于一个条件事件的条件概率。
贝叶斯网络语义
两种方式理解贝叶斯网络语义:
- 将贝叶斯网络视为对联合分布的表示
- 将其视为对条件依赖语句集合的编码
联合概率分布通过局部条件概率分布定义:
紧致性与节点排序
贝叶斯网络能够对域进行一种完备而冗余的表示,比全联合概率分布紧凑得多。
- 贝叶斯网络是紧致性的
- 局部结构化(locally structure,sparse)
- 每个组成部分都只与数量有限的其他部分发生直接的相互作用,而不考虑组成部分的总数量。
局部结构的复杂度关于变量
- 对布尔变量
,有 个布尔变量的父节点,CPT中就有 个数据。 - 若每个变量的父节点不超过
个,则该网络需要的数据是 - 即关于
是线性的,而全概率分布的数据量是 - 对前面举例的网络,其数据量为
(vs. ) - 例如,一个有30个节点的网络,每个节点有5个父节点,那么,该网络需要960个数据,而全联合概率需要10亿个。
构造贝叶斯网络
选择已排序的节点
For i=1 to n
把
添加到网络从
选择父节点对父节点的选择能保证:
在构造一个局部结构化的域中,
- 不仅要求每个变量只受到少数几个其他变量的直接影响
- 还要求网络的拓扑结构确实反映了合适的父节点集对该变量的那些直接影响
施加直接影响者”将不得不先添加到网络中,因此添加节点的正确次序是首先添加根本原因节点,然后加入受它们直接影响的变量。
贝叶斯网络中的条件独立关系
- 给定父节点,一个节点与它的非后代节点是条件独立的。Johncall与Burglary和Earthquake是条件独立的。
- 给定一个节点的父节点、子节点以及子节点的父节点——即,给定它的Markov覆盖,该节点与网络中的所有其它节点都是条件独立的。 Burglary与Johncalls及Marycalls是独立的。
条件分布的有效表达
不确定关系
- CPT随着父节点个数的增加呈指数增长。
- 在父节点或子节点是连续情况下, CPT规模无限增长 。
- 父节点与子节点之间的关系完全任意
解决办法:采用符合某种标准模式的规范分布。 在该情况下,完整的概率分布表能够通过确定所使用的模式,并提供少数几个参数来指定。
确定性节点的提供。一个确定性节点的取值能够由其父节点的取值完全确定,无不确定性。 这种关系可以是一种逻辑关系,也可以是数值的:例如,父节点是几个经销商销售一种特定型号汽车的价格,子节点是一个喜欢还价的人,最后买这种型号汽车所出的价钱,那么子节点就应该是其全部父节点值的最小值。
不确定关系可以用“噪声” 逻辑关系来刻画。噪声或关系(noisy-OR)是逻辑或关系的推广。噪声或模型考虑到每个父节点引起子节点为真的能力的不确定性—父节点与子节点之间的因果关系有可能被抑制。
采用两个假设:
- 假设所有可能的原因都列出。如果漏掉一些原因,可以增加一个所谓的遗漏节点来涵盖“各种各样的原因”;
- 它假设每个父节点的抑制独立于其它父节点的抑制。
例如,Fever(发烧)为真,当且仅当Cold(感冒)、Flu(流感)、或者Malaria(疟疾)为真。这样不确定性是指,父结点与子结点之间的因果关系有可能被抑制,因此病人可能得了感冒却没有发烧的症状。给定上述假设,Fever为假当且仅当所有为真的父结点都被抑制,这种情况的概率等于每个父结点的抑制概率的乘积。假设各抑制概率如下:
那么,根据这个信息以及噪声或的假设,可以建立完整的条件概率表。通用规则是:
其中的乘积是CPT表中这一行的设置为真的父结点之上的乘积。即
这样,对于其中一个变量依赖于
包含连续变量的贝叶斯网络
连续变量具有无限个可能取值 ,连续变量具有无限个可能取值。
解决方法:
- 离散化随机变量,会导致精度损失,非常巨大的概率表
- 定义标准的概率密度函数族,通过有限个参数进行指定
混合贝叶斯网络
同时包含离散随机变量和连续随机的网络。
父结点为连续变量
- 对于变量
,需要指定 。离散父节点可以通过直接枚举来处理,即分别指定 以及 。 - 指定价格
依赖于 的连续值 是如何分布的,也就是将价格分布的参数指定为 的一个函数。最常见的选择是线性高斯分布。
当离散变量作为连续变量的父节点加入时,网络就定义一个条件高斯分布:给定全部离散变量的任意赋值,所有连续变量的概率分布是一个多元高斯分布(如上)。
子结点为连续变量
概率单位分布:基本的决策过程具有一个硬阈值,但阈值的精确位置受到随机高斯噪声的影响。
贝叶斯网络中的精确推理
推理任务
计算后验边缘概率
通过枚举进行推理
不在查询变量和证据变量中的其他变量,即隐变量,须求和。
直接枚举:
这样对于
改进:
枚举法效率低下,存在重复计算。对于一个有
变量消元算法
从右到左执行求和,存储中间结果(因子)以避免重新计算。
其中,
从因子乘积中对一个变量进行求和消元是直接计算。注意的技巧是,任何不依赖于将被求和消元的变量都可以移到求和符号的外面。
注意直到我们需要将变量从累积乘积中消去前不会进行矩阵乘法。
考虑另一个查询:
其中,
精确推理的复杂度
对于单连接网络(或者多树):如果每个节点的父结点数不超过某个常数,则复杂度与网络节点数呈线性关系。
对于多连接网络:在最坏情况下,具有指数级的时间空间复杂度。
所以可以通过某些算法将多连接网络转化成单连接网络,如:
这类算法称为”聚类算法“,也称为”联合树算法“,也称为”团算法“。
贝叶斯网络中的近似推理
精确推理的局限性:对大规模多连通网络中的精确推理是不可操作的。
近似推理基本思想:
- 从分布
中进行 个样本的采样 - 计算一个逼近的后验概率
- 证明它收敛到真实概率
直接采样算法
任何采样算法中最基本的要素是根据已知概率分布生成样本。
直接采样的思想是按照拓扑顺序依次对每个变量进行采样。变量值被采样的概率分布依赖于父结点已得到的赋值。
假设顺序为
- 从
中采样 ,假设返回 。 - 从
中采样 ,假设返回 。 - 从
中采样 ,假设返回 。 - 从
中采样 ,假设返回 。
这样,PRIOR-SAMPLE(先验采样,即直接采样)返回事件
令
这个事件的采样概率应该是:
因此,在
在任何采样方法中,都是通过对实际生成的样本数来计算答案。假设共有
估计概率在大量样本极限下成为精确值,这样的估计被称为一致估计。
拒绝采样算法
该算法是一种给定一个易于采样的分布,为一个难于采样的分布生成采样样本的通用方法。在其最简单的形式中,它可以用于计算条件概率。
计算步骤:
- 根据网络指定的先验概率分布生成采样样本
- 拒绝所有与证据不匹配的样本
- 在剩余样本中对事件
的出现频繁程度计数从而得到估计概率
拒绝采样能够产生真实概率的一致估计。
假设我们希望采样100个样本来估计
真实的答案是
局限性:拒绝了太多的样本。随着证据变量个数的增多,与证据
似然加权算法
只生成与证据
算法描述:该算法固定证据变量
求解查询
是一个证据变量,其职位 。因此我们设置
不是一个证据变量,因此从 中采样;假设返回 。类似地,从
中采样;假设返回 。 是一个证据变量,其值为 。因此我们设置
这里似然采样返回权值为0.45的事件
上述是书上所写的,这里写下自己的理解:似然采样可以看成是,固定住某些变量,即证据变量的直接采样。目标是查询的变量概率,从而对每个事件赋予一定的权值,即概率,说成权值反倒一些不好理解了。按上述所说的,事件
似然加权分析
令
似然权值
加权采样概率为:
似然加权回到一致估计,使用了所有的样本,效率比拒绝采样高。
局限性:证据变量的个数增加时,它仍然要承受大幅度的性能下降。因为大多数的样本权值都非常低,导致在加权估计中起主导作用的只是那些所占比例很小的、与证据相符合的似然程度不是非常小的样本。
Markov链仿真推理
MCMC:Markov chain Monte Carlo,马尔可夫链蒙特卡洛。
Gibbs采样,一种特殊形式的MCMC算法,特别适合贝叶斯网络。
Gibbs算法描述:
该算法总是通过对前一事件进行随机改变而生成每个事件样本
可以认为网络处于为每个变量指定了值的一个特定的当前状态,而下一个状态则通过非证据变量
进行采样来产生,其取决于 的Markov覆盖中的变量的当前值- 在状态空间中的随机走动,但保持证据变量的值固定不变。
具体来说,查询
- 对节点
采样,给定它的 (马尔可夫覆盖)当前值,即根据 采样(父节点、子节点和子节点的父节点)。假设得到采样结果为 ,即新的状态为 。 - 对节点
采样,给定它的 当前值,即根据 进行采样。假设采样结果为 。新的当前状态是 。
这个过程中所访问的每一个状态都是一个样本,能对查询变量
MCMC工作机理
基本观点:采样过程最终会进入一种动态平衡。
该特性来自于特定的转移概率,即过程从一种状态转移到另一种状态的概率,通过被采样变量在给定Markov覆盖下的条件概率分布定义。令
给定
当
对稳态分布的理解:从每个状态的期望“流出”等于来自于所有状态的期望“流入”。一个明显满足该关系的方式是任何两个状态之间沿两个方向的期望流量相等,称为细致平衡:
细致平衡:
给定Markov覆盖的一个变量独立于其它变量。
给定一个变量的概率正比于给定父节点的变量概率与给定各自父节点的每个子节点条件概率的乘积。
关于时间的概率推理
时间与不确定性
时间片是一个随机变量的集合,其中一部分是可观察的,一部分是不可观察的。
假设所观察到的随机变量属于同一个变量子集:
为 时刻不可观测的状态变量,状态变量从时刻 开始; 为 时刻可观测的证据变量,证据变量从时刻 开始。
假设时间是离散的,时间间隔依赖于具体问题,
转移模型
Markov过程:当前状态只依赖过去有限的已出现状态。最简单的是一阶Markov过程,其中当前状态只依赖于相邻的前一个状态,而与更早的状态无关,即
观察模型
也称为传感器模型。
初始状态模型
由上述三个部分能够确定所有变量上完整的联合概率分布:
若一阶Markov过程不精确,可通过如下方法弥补:
- 提高Markov过程阶数
- 扩大状态变量集合。比如,考虑雨季的历史记录,增加变量
,或者 , , 。
时序模型中的推理
滤波:
滤波的任务是计算信念状态,即给定目前为止的所有证据,计算当前状态的后验概率分布。也称为状态估计。滤波是一个理性Agent为掌握当前状态以便进行理性决策所需要采取的行动。例如,给定目前为止对雨伞携带者的过去的所有观察数据,计算今天下雨的概率。
预测:
对于预测的任务是给定目前为止的所有证据,计算未来状态的后验分布。例如,给定目前为止对雨伞携带者的过去的所有观察数据,计算今天开始三天以后下雨的概率。
平滑:
对于平滑的任务是给定目前为止的所有数据,计算过去某一状态的后验概率。例如,给定目前为止对雨伞携带者的过去的所有观察数据,计算上星期三下雨的概率。平滑为该状态提供了一个比当时能得到的结果更好的估计,因为它结合了更多的证据。
似然解释:
给定观察序列,希望找到最可能生成这些观察结果的状态序列。例如,如果前三天每天都出现雨伞,但第四天没出现,那么最可能的解释是前三天下了雨,而第四天没有下。
除了以上推理任务,还有:
- 学习:如果还不知道转移模型和传感器模型,则可以从观察中学习。和静态贝叶斯网络一样,动态贝叶斯网络的学习可以作为推理的一个副产品而完成。推理为哪些转移确实发生和哪些状态会产生传感器读数提供了估计,而且这些估计可以用于对模型进行更新。更新过的模型又提供新的估计,这个过程迭代至收敛。整个算法是期望最大化算法的一个特例。
注意,学习需要的是平滑,而不是滤波,因为平滑提供了对过程状态更好的估计。通过滤波实现的学习可能不会正确地收敛。
滤波
一个有用的滤波算法需要维持一个当前状态估计并进行更新,而不是每次更新时回到整个感知历史。否则,更新代价会随着时间推移越来越大。也就是说,存在某个函数
该过程称为递归估计。可以看成两部分:
- 将当前的状态分布由时刻
向前投影到时刻 ; - 通过新的证据
进行更新。
重排公式:
得到递归公式。可以认为滤波估计
常数时间,常数空间(与
求
第0天,
第1天,
第2天,
预测
预测是没有增加新证据的条件下的滤波。
类似上述的滤波操作,只是没有新证据能够修正,就只能一直乘转移矩阵……
似然
除了滤波和预测外,还可以利用一种前向递归的方法对证据序列的似然
计算出
不太理解,自己的理解是滤波算的是当前证据变量与当前状态变量的条件概率,而似然算的是当前证据变量与当前状态变量的联合概率,在最后一步求和消元后得到的是,产生这
平滑
其中,
求和式的三个因子中,第一个为观察模型,第三个为转移模型,第二个为递归调用,使用后向的”消息“表示有
和前向递归相同,后向递归中每次更新所需要的时间与空间都是常量,因此与
给定第1天和第2天都观察到雨伞,要计算
第一项由前向滤波得到为
将其代入公式,发现第1天下雨的平滑估计为:
如果我们想平滑整个序列,一个显然的方法就是对每个要平滑的时间步运行一次完整的平滑过程。这导致时间复杂度为
前向-后向算法局限性:
- 对于状态空间规模庞大而序列很长的应用,算法的空间复杂度可能会过高。
- 不适合于联机环境下的计算,在联机环境下算法必须在新证据不断追加到序列末尾的同时,为以前的时间片计算平滑估计。
最大似然解释
给定观察序列,希望找到最可能生成这些观察结果的状态序列。
假设
Viterbi算法:所有时间步上的联合概率。
与滤波相比:
前向消息
被如下消息代替,即到达每个状态
的最可能路径的概率; 之上的求和被 之上的极大值所代替。
上述例子解法:
第1天,
,因为 ,第2天,根据上述公式计算,即
,因为 ,
- 第3天,同上,因为
,
- 第4天,同上,因为
,
- 第5天,同上,因为
,
隐马尔可夫模型
简称HMM。
简化的矩阵算法
设状态变量
例如,雨伞世界的转移矩阵是:
传感器模型,即观察模型,也类似。
前向公式变为:
后向公式变为:
时间复杂度为
前向-后向算法的简单变形
使算法能够在常数空间内执行平滑,而与序列长度无关。
将上述前向公式,向后传递,
修改后的平滑算法首先执行标准的前向过程以计算
不过这个算法有两个显著的限制:
要求转移矩阵必须是可逆的;
要求传感器模型没有零元素,也就是说,在每个状态下每个观察值都是可能的。
有固定延迟的联机平滑
联机平滑存在一种高效的递归算法——即一种时间复杂度与延迟长度无关的算法。假设延迟为
然后,当有了新的观察后,需要为时间片
目标是通过增量方式实现这种计算。首先,由滤波公式,由
因为在旧的后向消息
其中矩阵
可以发现,新旧矩阵
这个公式提供了对
Kalman滤波
隐马尔可夫模型针对的是离散变量;卡尔曼滤波针对的是连续变量。
小鸟的飞行可以用每个时间点的6个连续变量来描述,3个变量用于位置
更新高斯分布
滤波:
如果当前分布
是高斯分布,并且转移模型 是线性高斯的,那么由给出的单步预测分布也是高斯分布。自己理解:从离散扩展到连续,即从求和扩展到积分。
如果预测分布
是高斯分布,传感器模型 是线性高斯的,那么条件化新证据后,更新后的分布也是高斯分布。
因此,卡尔曼滤波的FORWARD算子选取一个高斯前向消息,该消息由均值
序列七点为高斯先验概率,
简单的一维实例
(并不简单。)
假设其先验分布为具有方差
转移模型在当前状态中增加了一个具有常数方差
假设传感器模型具有方差为
现在,已知先验分布
通过配方法将任何二次多项式
现在积分部分就是一个全区间上的高斯分布积分,也就是1.只剩下了二次多项式中的余项。注意到这个预想是关于
也就是说,单步预测分布是一个具有相同均值
之后是第二步,即
再一次合并指数,并配方,得到,
由此得到了状态变量的一个新的高斯分布。可以发现,新的均值和标准差可以由原来的均值和标准差按照下面的公式计算得到:
- 可以把新均值
解释为新观察 和旧均值 的一个简单的加权平均。如果观察不可靠,那么 很大,则更关注旧均值;如果旧均值不可靠(即 很大),或者这个过程高度不可预测( 很大),则更关注观察值。 - 注意到对方差
的更新是独立于观察的。因此可以在事先计算出方差值的序列 - 方差值的序列很快收敛到一个固定的值,这个值只与
和 有关,简化后续计算。
一般情况
(想吐。)
完整的多元高斯分布具有如下形式:
首先用卡尔曼滤波定义一般的时序模型。转移模型和传感器模型都允许一个附加高斯噪声的线性变换的线性变换,因此有:
其中
其中
扩展的卡尔曼滤波器
卡尔曼滤波器所做的假设是相当强的,线性高斯的转移模型和传感器模型。扩展的卡尔曼滤波器试图克服被建模的系统中的非线性。在一个系统中,如果转移模型不能描述为状态向量的矩阵乘法,这个系统就是非线性的。扩展卡尔曼滤波器的工作机理是将在
对于系统“不平滑”或者“表现不良”的情况,标准的解决办法是采用切换的卡尔曼滤波器。
动态贝叶斯网络
雨伞网络以及卡尔曼滤波器网络都是动态贝叶斯网络的一些例子。
总的来说,动态贝叶斯网络中的每个时间片可以具有任意数量的状态变量
精确推理
每次更新所需要的时间空间复杂度是状态变量个数的指数级,最大因子规模
近似推理
- 使用样本本身作为当前状态分布的近似表示
- 将采样集合集中集中于状态空间的高概率区域
粒子滤波
粒子滤波算法的工作机理如下:首先,从先验分布
- 对于每个样本,通过转移模型
,在给定样本的当前状态值 条件下,对下一个状态值 进行采样,使得该样本前向传播。 - 对于每个样本,用它赋予新证据的似然值
作为权值。 - 对总体样本进行重新采样已生成一个新的
样本总体。每个新样本是从当前的总体中选取的;某个特定样本被选中的概率与其权值成正比。新样本是没有被赋权值的。
例子:
- 在时刻
,8个样本指示 (下面),2个样本指示 (不下雨)。通过转移模型对下一个状态进行采样,每个样本都向前传递。在时刻 ,6个样本指示 ,4个样本只是 。 - 在时刻
观察到 。根据每个样本与这个观察的似然程度给样本赋予权值,图中用圆圈的大小表示。 - 得到一个10样本的新集合,结果有2个样本指示
,8个样本指示 。
证明:
假设样本总体开始于在时间
现在,在给定时刻
现在根据每个样本对于时刻
现在考虑重采样步骤。既然每一个样本都以与其权值成正比的概率被复制,重采样后处于状态
因此,经过一轮更新循环后的样本总体正确地表示了时刻