Artificial Intelligence Review Note | 人工智能复习笔记
启发式搜索—— 算法
在启发式搜索里面,会考虑两个集合,一个叫 Open set
一个叫 Closed set
- Open:表示当前需要考虑的,还未完成搜索的节点
- Closed:表示已经处理完毕,不会再考虑的节点
启发式搜索的大概步骤是:
- 把初始的节点加入到Open集合中
- 将Open set中的节点按照评估函数
的大小从小到大排序,选出最小的那个,设置成当前的节点(CS),如果已经没有可以选的了,结束,表示未搜索到 - 如果CS是终点,结束操作
- 将CS的所有可达节点进行以下操作:
- 如果节点在Closed list中,继续下一个
- 否则加入到 Open list中
- 将CS加入Closed list中,回到第2步
由于上面的定义,不难发现,
这里的
应当理解为从点n到终点的真实代价
推理
谓词推理
推理规则一共有如下几条:
- 取式假言推理:已知
和 为真,那么 为真 - 拒式假言推理:已知
为假且 为真,那么 为假 - 与消除:已知
为真,那么 和 分别为真 - 与引入:已知
和 分别为真,那么 为真 - 全称例化:已知
为真,且 为 定义域中的一个,那么有 为真
合一算法
合一算法的目的是看能否找到一组 置换 让两个谓词表达式匹配。首先定义什么是 置换
一个替换(Substitution)就是形如
注意,一个替换中的元素都是项,换句话说,
其步骤如下:
- 首先算Skloem 范式,去掉所有的存在(具体步骤是将存在约束的部分中的所有变量换成一个新的常元,如果存在被一个任意约束,那么就换成一个任意约束的变量的函数)
- 然后运行算法:
- 递归地对初始成分进行合一化,如果成功,将返回的表达式应用到两个表达式的剩余部分,以这两个表达式为参数继续进行
- 如果最终都匹配了,那么就成功,否则失败
- 基础的合一化如下:
- 如果传入的
是常元或者空表,如果 那么无需替换且成功,否则失败 - 如果
是一个变元: - 如果
在 中出现,那么就失败 - 否则
- 如果
- 如果
是一个变元同上
- 如果传入的
归结算法
参考维基百科的连接归结原理 - 维基百科,自由的百科全书
- 首先把所有的量词处理掉:
- 存在量词换成Skloem范式里面的Skloem函数(只有存在的换成常量,被任意修饰的存在换成被任意修饰部分的函数)
- 全称量词直接省略,因为你可以用很多个替换实现
- 注意,在有很多个带全程量词的子句的时候,每一个换掉的变量名应该不同
- 然后把所有子句换成合取范式(内层是
外层是 的),然后拆分成只有 和 的子句 - 只使用消解规则和替换进行推导,弄出证明树
贝叶斯网络
基本连接方式
顺序连接
形如:
1 | flowchart LR |
- 在Y已知的情况下, X到Z被 阻断 所以X和Z独立
- 在Y未知的情况下,X到Z 没有被阻断 所以X和Z不独立
分支链接
形如
1 | graph TD |
- 在给定Y的情况下,X到Z被 阻断 ,X和Z独立
- 在没有给定Y的情况下,X到Z未被阻断,X和Z不独立
汇合连接
形如:
1 | graph TD |
- 在Y已知的情况下,X和Z是不独立的,X和Z之间未被阻断
- 在Y未知的情况下,X到Z被阻断
分支汇合连接
这个其实可以看成两个顺序连接
1 | graph TD |
这里面X和Z独立当且仅当Y和W都已知
Summary
上面的四种情况里面,只有汇合连接是在中间节点及其子节点都未知的情况下,才能阻断X到Z的,否则都是路径上有一个节点已知就阻断
判断d可分
问题定义
判定变量集
算法
考虑
在贝叶斯网络上推理
- 首先,对于所求的询问节点的条件概率,用所给证据节点和询问节点的所有因节点的联合概率进行重新表达。
- 然后,对所得表达式进行适当变形, 直到其中的所有概率值都可以从问题贝叶斯网络的CPT中得到。
- 最后,将相关概率值代入概率表达式进行计算即得所求询问节点的条件概率。
注意事项
在扩展形如
马尔科夫网络
势函数
对于马尔科夫网络中的每一个 团 ,可以定义一个势函数
为了方便表示,这里一般把它写成指数的形式,即:
按照PPT上的写法是:
其中的
这里面的
对数线性模型
为了方便统计,现在定义一个特征函数
在马尔科夫网络中判断独立性
这玩意的算法非常简单,因为马尔科夫网络是无向图,所以在考虑已知
符号学习
ID3算法
定义熵
这里的
定义 信息增益
后面一项被称为条件熵
信息增益换言之,就是在使用
ID3算法递归地进行,即首先选择出信息增益最大的一个,然后放到第一层里面,提取该属性下的所有样本继续进行,如果某个属性下只有一个值了,那么放上对应的标签
易错点
注意这里算信息增益的时候,要加权,前面有一项
C4.5算法
这里定义一个信息分裂程度 Split Information
为:
注意这个和Gain的区别,Gain是
这里面的 Split Information
可以认为是每个属性自己的熵,而C4.5通过
作为指标来选取属性
感知机
感知机在课程里面是一层的,如下图:
这里面更新的方程是:
其中的
这里也可以选取偏置单元,即在最前面再加上一个项来训练,不过考试也可以不取
强化学习
Bellman 方程式
对于一个状态
注意在考试中,让求每一个状态的价值函数的方法是把所有的贝尔曼方程列出来联立求解,并且所有的策略都是贪心的,即求最大的R
博弈论
纳什均衡的定义
一个纳什均衡
这里面的
纳什均衡的纯策略求法
在一个博弈矩阵里面,先看Player1在固定了他的策略的情况下,Player2选择哪一个动作能够获得最大的收益,在那个位置下面划线,然后反过来固定Player1再来做,例如下面的博弈矩阵(A 的收益在左,B 的收益在右):
B1 | B2 | |
---|---|---|
A1 | (3, 2) | (1, 1) |
A2 | (0, 0) | (2, 3) |
- 首先,假设B选择动作B1,那么对A来说,A1的收益是3大于A2的收益0,所以在3下面划线,假设B选择动作B2,那么对A来说,A1的收益是1小于A2的收益2,所以在2下面划线
- 然后,假设A选择动作A1,对于B而言,B1的收益是2大于B2的收益1,所以在2下面划线,假设A选择动作A2,对于B而言,B1的收益是0小于B2的收益3,所以在3下面划线,
- 最后,发现
两个数都划线了,同时 两个也都划线了,所以这里有两个纳什均衡的解,分别是
混合策略的纳什均衡求法
在上例中,假设A以概率
而相关均衡要求
帕累托最优和帕累托改进
先定义帕累托改进:在不损害任何一个人的收益的前提下,使得至少一部分的人的收益增加。
而帕累托最优就是没有帕累托改进空间的局面。
下面有一个例子
这个局面里面之所以这三个都是帕累托最优是因为这三个局面里面都没有不损伤一方而使至少一部分人收益增加的了,但是只有