当前课程知识点:人工智能 > 第六章 不确定性推理 > 6.5隐马尔可夫模型 > Video
这一节我们来讲一下时间上的概率推理
也就是说如果智能体所处的环境是随着时间在变
化的时候
那么智能体就需要跟踪和预测它所处的状态
基本思想就是每个时间步都根据智能体收集到的
证据来更新它所处的状态
比如说我们用Xt来表示在时间t不可观察的变量集
也就是在时间t智能体所处的状态
比如说在糖尿病的控制中
用这个变量来表示在t时刻的血糖
用这个变量来表示胃里面的食物内容
那么用Et来表示在时间t可观察变量集
也就是用Et来表示证据变量
比如说在糖尿病控制中
这个变量来表示在t时刻测量到的血糖
这个变量来表示在t时刻测量到的心率
这个变量用来表示在t时刻他吃下去的食物
那么要进行时间上的推理 就需要先建立起来
转移模型 传感器模型以及先验概率分布
什么叫转移模型呢 转移模型就是来描述智能体
所处的这个世界是如何演变的
也就是说在告知过去时刻状态条件下
当前时刻状态的概率分布
它就描述了给定过去时间的世界状态条件下
当前时间状态变量的概率分布
然后传感器模型有时候也称为观察模型
它就是在告知过去到现在为止的状态条件下
以及过去的感知序列条件下
当前这个感知的概率分布
所以它描述了证据变量是如何得到的
也就是说描述了给定当前世界状态条件下
每个感知的概率分布
然后我们的先验概率分布就是告知世界是如何开
始的
也就是说给出零时刻的状态分布
那么这些转移模型 传感器模型以及先验概率分布
一般都是从数据中学习得到的
有了这些模型之后才能进行时间上的概率推理
有了这些模型之后才能进行时间上的概率推理
我们来介绍一下一阶马尔可夫模型
它假定它的转移模型是这样子的
也就是说当前时刻的状态只依赖于前一时刻的状
态
所以这也是它称为一阶的意思
那么它的传感器模型是这样子的
它当前时刻感知到的证据变量的概率分布呢
只依赖于当前时刻的状态
就像前面的糖尿病控制那个例子当中
当前时刻测量到的血糖只依赖于当前时刻的血糖
水平
那么我们把一阶马尔可夫模型
用贝叶斯网络的方法表达出来
就是把那种依赖关系表达出来
那么就会形成一个链式结构
那么这里是一个一阶马尔科夫模型的贝叶斯网络
或者说动态贝叶斯网络
因为它这个随机变量有时间下标
并且它是给出转移模型和传感器模型的
不是给出条件概率分布表
看到这里一样它的状态变量就是一个下不下雨的
bool型变量
它的观察变量就是带不带伞的bool型随机变量
那么它给出的这个转移模型在这里
它给出的传感器模型在这里
那么转移模型就是要给出前一时刻
在不同取值情况下当前时刻的概率分布
就像这里一样 前一时刻下雨
那么当前时刻下雨的概率是0.7 不下雨就是0.3
那么前一时刻不下雨当前下雨的概率是0.3
那么不下雨就是0.7
这个是我们的传感器模型
就是给出当前状态在不同取值情况下
我们的证据变量的概率分布表
那么当前时刻下雨情况下 带伞的概率是0.9
那么不带伞就是0.1
那么当前时刻不下雨带伞的概率是0.2
不带伞的概率就是0.8
那么有了这些转移模型以及观察模型
以及我们的先验概率之后 我们就可以进行一些推
理
像滤波推理 滤波推理就是根据到目前为止观察到
的证据来估计当前状态
所以它也是称为状态估计
它的目的就是要去根据搜集到的证据
感知到的信息来解释现在的所处状态
那么还有一种推理任务就是预测
就是根据到目前为止感知到的证据
去预测未来时刻的状态
还有一种推理任务就是平滑 平滑就是理解过去
也就是说根据到目前为止搜集到的证据
去重新计算过去某一时刻的概率分布
我们来看一下滤波推理任务
也就是说根据1到t+1时刻的证据
来估计t+1时刻的状态的概率分布
那么我们首先把这t+1个证据进行拆分
拆分成1~t和t+1时刻的证据
然后呢再把这个式子根据贝叶斯公式拆分成两项
这个当成一个固定的条件 然后再看到这一项
这一项的话 t+1时刻的证据在给定t+1时刻的
状态之后 它是独立于1~t时刻的证据的
所以这个式子就变成了这个式子
然后我们再把这个式子进行改写
引入一个Xt这个随机变量
然后再把Xt的各种取值情况下的概率进行累加
那么其实上它就是等于这个式子的
这是概率基础里面的东西
我们再利用乘法公式把这个式子拆分成两项
拆分成这两项之后呢我们再看这个式子
t+1时刻的状态在给定t时刻状态条件下是
条件独立于1~t时刻的证据的
所以呢这个式子就等于这个式子
最后我们就推得t+1时刻的状态估计
或者说t+1时刻的滤波就等于这个式子
那我们来解读一下这个式子 这个式子就是
利用t时刻的状态估计 然后呢再乘以转移模型
就转移到t+1时刻了 然后再根据t+1时刻的最新的
证据
来估计出t+1时刻的状态分布
所以这个是我们的滤波公式
所以大家看到这个公式可以利用t时刻的滤波值
和t+1时刻的新的证据来估计t+1时刻的状态分布
所以我们把这个式子也称作前向传播
所以我们把这个式子呢用Forward来表示
根据t时刻的状态估计和t+1时刻的证据
来估计出t+1时刻的状态
也就是说这个f1~t就表示的是
根据1~t时刻的证据来估计t时刻的状态
也就是t时刻的滤波
那么我们根据我们的初始值就可以
一个时间部一个时间部往前计算出
最新时刻的状态估计
那么初始的时候就是t=0的时候
状态估计就是我们的先验概率分布
就是P(X0)这个是给定的
那么我们来看到这个滤波的例子
那么我们假设有一个人在房间里它没有办法观察
到外面的天气情况
只能根据进来的人有没有带伞来判断有没有下雨
所以我们的状态变量就是有没有下雨
我们的证据变量就是有没有带伞
那么初始这一天在没有任何证据情况下
我们设定为下雨的概率是0.5不下雨的概率是0.5
然后第一天它观察到有人带伞了
那么我们第一天下雨的概率是多少不下雨的概率
是多少呢
我们利用我们刚才的滤波公式
首先根据零时刻的状态估计乘以转移模型
得到这么一个分布 然后再根据它观察到了
带伞了 利用我们的传感器模型乘以这个
就得到了这个分布 也就是说得到了下雨的概率是
0.818 不下雨的概率是0.182
然后第二天它又观察到带伞了
同样的道理 把第一天的这个状态估计
乘以我们的转移模型得到这个状态估计
然后呢再根据第二天观察到带伞了
乘以我们的观察模型就得到了这么一个分布
就是下雨的概率是0.883 不下雨的概率是0.117
那么我们来看一下什么叫隐马尔可夫模型
隐马尔可夫模型就是一种特定表达的马尔可夫模
型
它的状态变量是一个 它的证据变量也只有一个
那当你需要多个变量来描述状态的时候怎么办呢
你可以把这多个变量并成一个大变量
那么假设我们的状态变量的值域是1~s
也就是它有s个不同的取值
我们把这些s个不同的取值按顺序编好号
比如说我们前面讲过的那个例子
状态变量下不下雨的值域是true和false
假设第一种值表示true 第二种值表示false
那么我们的转移模型就可以表达成一个s行s列的
方阵 用T来表示 那它的第i行第j列的值表达的就是
前一时刻取第i种值这一时刻取第j种值的概率
比如说像这个方阵就是我们的前面那个下不下雨
的转移模型 那么0.7表示的就是第一行第一列
那么第一行表示的是前一天它取第一种值
也就是下雨 前一天下雨 那么第一列表示的就是
当天也取第一种值 就是下雨
那么这个0.7就表示前一天下雨当天也下雨的概率
是0.7
同样的他的传感器模型也可以用一个矩阵来表示
这个矩阵是一个对角矩阵 我们用O来表示
那么这个对角矩阵的第i列的对角元素值表示的就
当前时刻取第i种状态情况下观察到当前证据的概
率
比如说这个0.9表示的就是当前时刻取第一种值
用我们那个下不下雨那个例子来表示就是
当前时刻下雨观察到当前证据 我们的证据变量是
带不带伞 观察到带伞的概率是0.9
那么第二列就是 当前时刻等于第二种值
也就是当前时刻不下雨观察到带伞的概率是0.2
那么转移模型和传感器模型都用矩阵表示出来
之后呢 我们的推理运算就全部可以变成矩阵运算
就像我们讲过的滤波推理运算一样 就可以变成
一个矩阵运算 那么t+1时刻的滤波就等于一个归一
化因子乘以t+1时刻的传感矩阵再乘以转移矩阵
的转置 这一撇是转置再乘以t时刻的状态估计
就可以得到我们t+1时刻的状态估计
那么我们再把前面那个例子看一下
我们知道初始时刻下雨的概率是0.5 不下雨的概率
也是0.5 那么在第一天观察到有人带了伞之后
我们推断下雨的概率是多少 不下雨的概率又是
多少呢 我们利用这个矩阵运算来进行
那么第一天 就t=1的时候 那我们的归一化因子
乘以一个观察矩阵 再乘以转移矩阵的转置
再乘以0时刻的状态估计 这是我们的观察矩阵
这是我们的转移矩阵
这是我们零时刻给出来的先验概率
那么这三个矩阵相乘就得到这个式子
得到这个式子之后呢 因为我们要的是第一天
就是t=1的时候它下雨和不下雨的概率 是一种分布
所以要对这个进行归一化 就要把这两项的和变成1
那么就是0.45/0.45+0.1就等于0.818 这个也是
这个就等于0.1\0.1+0.45就等于0.182
这个α表示归一化因子
那么同样的道理 第二天他又观察到有人带伞了
那么我们下雨的概率和不下雨的概率又是多少呢
同样的利用这个矩阵运算 那么t=2的时候就等于
α乘以第二天观察到的这个观察矩阵和我们的
转移矩阵的转置和第一天的这个估计
所以我们把它写到这里来 写到这里来之后呢
运算出来就等于这个结果 然后再进行归一化
就等于这个结果 就知道第二天下雨的概率是0.883
不下雨的概率是0.117
-1.1 人工智能概念
-第一章 绪论--1.1 人工智能概念
-1.2 什么是理性智能体
--1.2理性智能体
-第一章 绪论--1.2 什么是理性智能体
-2.1.1问题求解智能体
-第二章 无信息搜索策略--2.1.1问题求解智能体
-2.1.2问题形式化
--Video
-2.1.3 树搜索算法
--Video
-第二章 无信息搜索策略--2.1.2问题形式化
-2.1.4树搜索算法的实现
--Video
-2.2.1搜索策略
--Video
-第二章 无信息搜索策略--2.1.3树搜索算法
-2.2.2宽度优先搜索
--Video
-2.2.3一致代价搜索
--Video
-第二章 无信息搜索策略--2.1.4树搜索算法的实现
-2.3.1深度优先搜索
--Video
-2.3.2有限深度搜索
--Video
-2.3.3迭代深入搜索
--Video
-第二章 无信息搜索策略--2.2.2宽度优先搜索
-2.3.4迭代深入深度搜索性能分析
--Video
-2.4无信息搜索策略小结
--Video
-第二章 无信息搜索策略--2.2.3一致代价搜索
-第二章 无信息搜索策略--2.3.1深度优先搜索
-第二章 无信息搜索策略--2.3.2有限深度搜索
-第二章 无信息搜索策略--2.3.3迭代深入搜索
-第二章 无信息搜索策略--2.3.4迭代深入深度搜索性能分析
-第二章 无信息搜索策略--2.4无信息搜索策略小结
-3.1贪婪搜索算法
--Video
-3.2.1A星搜索算法
--Video
-第三章 有信息搜索策略--3.2.1A星搜索算法
-3.2.2A星搜索算法的最优性
--Video
-3.2.3可采纳的启发式函数
--Video
-第三章 有信息搜索策略--3.2.2A星搜索算法的最优性
-3.3爬山搜索算法
--Video
-3.4模拟退火搜索算法
--Video
-第三章 有信息搜索策略--3.2.3可采纳的启发式函数
-3.5遗传算法
--Video
-第三章 有信息搜索策略--3.3爬山搜索算法
-第三章 有信息搜索策略--3.5遗传算法
-4.1.1什么是约束满足问题
--Video
-第四章 约束满足问题--4.1.1什么是约束满足问
-4.1.2约束满足问题的标准搜索形式化
--Video
-4.2.1回溯搜索算法
--Video
-第四章 约束满足问题--4.1.2约束满足问题的标准搜索形式化
-4.2.2回溯搜索的变量赋值顺序策略
--Video
-4.2.3回溯搜索的前向检查及约束传播
--Video
-第四章 约束满足问题--4.2.1回溯搜索算法
-4.2.4 AC-3弧相容算法
--Video
-4.3约束满足问题的局部搜索方法
--Video
-第四章 约束满足问题--4.2.2回溯搜索的变量赋值顺序策略
-第四章 约束满足问题--4.2.3回溯搜索的前向检
-第四章 约束满足问题--4.3约束满足问题的局部搜索方法
-5.1博弈及极小极大值概念
--Video
-5.2极小极大值决策算法
--Video
-第五章 对抗搜索--5.2极小极大值决策算法
-5.3.1剪枝的概念
--Video
-5.3.2 alpha-beta算法
--Video
-5.3.3 alpha-beta剪枝示例
--Video
-5.4 不完美的实时决策
--Video
-第五章 对抗搜索--5.3.3 alpha-beta剪枝示例
-第五章 对抗搜索--5.4 不完美的实时决策
-6.1不确定性量化
--Video
-第六章 不确定性推理--6.1不确定性量化
-6.2使用完全联合分布进行推理
--Video
-6.3贝叶斯规则及其应用
--Video
-6.4贝叶斯网络推理
--Video
-第六章 不确定性推理--6.2使用完全联合分布进行推理
-6.5隐马尔可夫模型
--Video
-6.6卡尔曼滤波器
--6.6
-第六章 不确定性推理--6.4贝叶斯网络推理
-第六章 不确定性推理--6.3贝叶斯规则及其应用
-第六章 不确定性推理--6.6卡尔曼滤波器
-结课测试