Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

人工智能 饶洋辉老师

Author: 中山大学 17数据科学与计算机学院 YSY

https://github.com/ysyisyourbrother

人工智能 饶洋辉老师
Machine Learning 机器学习
Decision tree 决策树
Entropy 熵
Information gain 信息增益
Overfit 过度拟合
Bayes Learning 贝叶斯学习
Maximum a posteriori (极大后验MAP)
Maximum Likelihood (极大似然ML)
Articial Neural Networks 神经网络
Linear regression 线性回归
Logistic regression 逻辑回归
Forward and backward phases
Search
formalization(形式化)
Property of Search 搜索的属性
Uninformed Search 无信息搜索
Breadth first 宽度优先
Depth first 深度优先
Uniform cost 一致代价搜索
Depth-limited search 深度受限搜索
Iterative deepening search 迭代加深搜索
Bidirectional search 双向搜索
无信息搜索总结
path checking / cycle checking 路径检测/环检测
路径检测
环检测
总结
Heuristic search 启发式搜索
Greedy best-first search (Greedy BFS) 最佳优先搜索
A* Search A*搜索
Admissible 可接纳性
可采纳性意味着最优性
Consistency (Monotonicity) 一致性、单调性
时间复杂度和空间复杂度
环检测的影响
一致性的性质:
IDA* 迭代加深A*算法
Game tree search 博弈树搜索
博弈的特征
basic definition
Nim问题
MiniMax Strategy
MiniMax 算法实现
MiniMax 策略举例
Alpha-beta 剪枝
Alpha cut
Beta cut
Alpha Beta剪枝泛化
alpha-beta剪枝举例:
复杂度
评价函数
CSP (Constraint satisfaction problem)约束满足问题
Formalization 形式化
backtracking 回溯算法
四皇后问题举例
普通回溯存在的
约束传播
Forward checking 向前检测
算法原理
MRV (Minimum Remaining Values Heuristics) 最小剩余启发式
GAC (Generalized Arc Consistency) 整体边一致
KRR(Knowledge representation and reasoning) 知识表示与推理
FOL(First-order logic) 一阶逻辑
Alphabet 字符定义
Interpreatations 解释
定义
举例说明
赋值
Satisfaction
定义
Satisfiability 可满足性
Logical entailment 逻辑蕴含
Clausal form 子句形式
Resolution rule of inference
Derivation 派生/推理
Resolution-based Inference procedure: Refutation
Converting first-order formulas into clausal form
Unification 对于变量的归结
替代 substitution
组合替代 Composition of substitutions
合一 Unifiers
Most General Unifier (MGU)
计算MGU
Resolution 归结
Answer extraction 答案提取
Undecidability in the first-order case 存在的问题
Reasoning under Uncertainty 不确定推理
Probability in General
独立和条件独立:
Bayes rule:
链式法则:
Notation / Terminology:
推断 Inference:
条件独立性:
Bayesian Networks
graph + tables
Construct a Bayes Net
贝叶斯推断 Inference
练习举例
D-Separation
举例说明
Variable Elimination
引入
Factors的性质
乘法性质
加法性质
限制因子
相关Relevant
VE Algorithm:
VE算法举例说明
桶删除
桶删除方法
复杂度分析
超图
在超图中消除节点
删除宽度
树宽
多形树
启发式方法:
贝叶斯参数估计
糖果问题
贝叶斯学习
极大后验概率 MAP
极大似然估计 ML
ML举例:
Laplace 平滑
EM算法

Machine Learning 机器学习


What is ML?

performance in T measured by P improves with E


(experience E, task T, performance measure P)

Decision tree 决策树


结点:标识属性
边:标识属性值
叶子:标识输出值

example:

为了构造一个尽量小的树,我们应该优先选择具有代表性的属性

Entropy 熵

The entropy of a Boolean random variable that is true with probability q:


如果训练集有p个正确n个不正确的例子,则熵为:

Information gain 信息增益

pk / nk: positive/negative examples of the subset

example:

Overfit 过度拟合
可以通过剪枝来去除关联度小的结点从而避免过度拟合

Bayes Learning 贝叶斯学习


Maximum a posteriori (极大后验MAP)

需要考虑各个糖果方案出现的可能性即可得到

Maximum Likelihood (极大似然ML)

无需考虑各个糖果方案出现的可能性即可得到

example:
Articial Neural Networks 神经网络
Loss function:

Linear regression 线性回归


梯度下降:

:学习率

Logistic regression 逻辑回归


logistic function:
Forward and backward phases
Forward phase:

Backward phase:
example:
Search

formalization(形式化)
1. Formulate a state space (形式化状态空间)

抽象真实问题
2. Formulate actions (形式化动作)

allow one to move between different states

3. Identify the initial state (确定初始状态)

4. Identify the goal or desired condition (确定目标)

5. Formulate heuristic (形式化启发式)

Example:

Property of Search 搜索的属性


Completeness 完备性: will the search always find a solution if a solution exists?
Optimality 最优性 : will the search always find the least cost solution? (when actions have
costs)
Time complexity 时间复杂度: what is the maximum number of nodes than can be
expanded or generated?
Space complexity 空间复杂度: what is the maximum number of nodes that have to be
stored in memory?

Uninformed Search 无信息搜索

Breadth first 宽度优先


将继承者放置到边界末端

example:
完备性、最优性:Yes

从小到大寻求方案,直到找到答案为止

最大继承数:b

最小解决方案步数:d

时间复杂度:

空间复杂度:

Depth first 深度优先


将继承者放置到边界前端

example:
完备性:

最优性:No

最大继承数:b

最小解决方案步数:d

时间复杂度: m是状态空间中最长的路径;若m远远大于d则非常糟糕,但若有多个解往往会比
较快

空间复杂度: 线性,每次仅探索一条路径

Uniform cost 一致代价搜索


边界顺序由代价(cost)决定,永远扩展当前代价最小的路径

完备性、最优性:Yes

C*:最优结果的代价 :每一步的代价

时间、空间复杂度:

Depth-limited search 深度受限搜索


设置的深度:L

Iterative deepening search 迭代加深搜索


初始令L=0,并逐渐增大L

时间复杂度:

空间复杂度:
Bidirectional search 双向搜索

无信息搜索总结

(BFS中的空间和时间改为 )

path checking / cycle checking 路径检测/环检测

路径检测
通向c的路径:

则c不能与 相同

环检测
在整个探索过程中记录结点,确保扩展的结点c不与之前任何状态中的结点相同

总结

Heuristic search 启发式搜索


idea: 得到启发式函数 ,预测从当前节点n到目标节点的花费

Greedy best-first search (Greedy BFS) 最佳优先搜索


用h(n)对边界中的结点进行排序,优先获取low cost的解

该方法忽略了到达n的cost
A* Search A*搜索
evaluation function 评估函数:

是到达结点n的路径花费

是启发式估计从结点n到达终点的花费

是对经过结点n到达终点的估计

Admissible 可接纳性

是从n到达终点的最佳路径的花费

是可容许的如果对于所有节点n都有

Admissible 可容纳的启发式低估真正的花费

,如果n不能到达终点则

可采纳性使得实际成本最小的路径能够被选上。比如下图:

h都低估了实际代价,因此当A到达E的时候,此时选F的代价为
这个数比从另一条路走的代价要大,因此会选择走另外一
条路,如果另外一条路开始那部分高估到了1003,可能最优路径就不会被选择

可采纳性意味着最优性

Consistency (Monotonicity) 一致性、单调性

一致的/单调的,如果对于任意结点 都有
直观的理解就是:随着离终点的N的靠近,启发式函数h的估值和真实的代价越来越接近,直到到达终
点的时候

一致性 可接纳性 Consistency implies admissibility

数学归纳法证明,若一致性则可采纳性:

当 是目标节点的时候,满足 。假设有个节点k,满足 ,又
因为一致性有: 代入前式可得

时间复杂度和空间复杂度

一致代价的时间和空间复杂度的下界也适用于 搜索。 搜索也可能是指数的复杂度,除非找到很好


的h函数

环检测的影响

1. 如果启发式函数只有可采纳性,则不一定能在使用 了环检测之后仍保持最优性。就拿刚刚上面的A
到F的例子来说,如果F不是最终节点,则有可能出现F先被下面那条路径探索的情况,这样环检测
会导致另外一条路径被剪枝
2. 要启发式函数具备一致性,就能在进行环检测之后仍然保持最优性
3. 如果只有可采纳性: 为了解决这个问题,必须对于之前遍历过的节点,必须记 录其扩展路径的成
本。这样的话,若出现到达已遍历过节 点但成本更低的路径,则需重新扩展而不能剪枝

一致性的性质:

1.

f(n)单调递增

2.

若n2在n1后出现,则
3.

任何f花费小于f(n)的结点必然已经扩展过

4.
第一次扩展到的结点就是最短路径

5. 在单调性的前提下,环检测保证了最佳性

一致性的特点就是:不管是否是终点,第一次探索这个点的时候一定是沿着最优路径搜索的。而可采纳
性只能保证到达最优点的时候是沿着最优路径搜索。这也是为什么一致性搜索可以解决
IDA* 迭代加深A*算法
迭代cutoff value为f-value,而不是原来的L(深度)

边界中以f(n)的大小来排序

在每次迭代的时候,小于划定界限的就是可以选的,大于的不考虑,然后将大于划定界限中最小的那个
作为下一次迭代的划定界限。

放松问题中的最优花费是对于原问题可接受的启发式

Game tree search 博弈树搜索

博弈的特征
零和博弈:游戏一方赢了,另一方输掉同等数量

确定性:没有不确定因素

完整信息:任何层面的状态都是可观察的

basic definition
Player: 两个玩家A(Max), B(Min)
State: 状态集合S
Initial state:一个初始游戏状态 I
Terminal state: 终止状态T
Successors(后继函数,接收状态为输入,返回通过某些动作能到达的状态的函数)
Utility(效益), Payoff function: V 将当前位置状态映射到一个实数(表示当前状态对A多有利或对B
多不利)

Nim问题
开始时有几堆一定数量的火柴,每个回合玩家可以从一堆中移走任意数目火柴,移走最后火柴的玩家失
败。

以下通过枚举所有可能结果来得出结论:
MiniMax Strategy

MiniMax 算法实现
一般使用深度优先搜索来实现博弈树

MiniMax 策略举例

Alpha-beta 剪枝
Two types of pruning:

pruning of max nodes (α-cuts)


pruning of min nodes (β-cuts)

Alpha cut

对极大节点剪枝称为alpha剪枝
Beta cut

对极小结点剪枝称为beta剪枝
Alpha Beta剪枝泛化

比如beta剪枝情况,可以用数学归纳法证明。在对n结点进行beta剪枝的时候,在递归的时候统计每个
结点祖先的alpha beta值情况。如果n结点的祖先中alpha最小的已经大于它当前beta值,则可以进行
剪枝alpha剪枝也同理。

alpha-beta剪枝举例:

使用深度优先搜索的策略,当出现 的情况就进行剪枝
复杂度

Minimax 需要探索 个结点,而alpha-beta剪枝需要探索 个结点。理论上可以搜索决策树


的两倍深度。

评价函数

在实际情况中比如下棋,很难搜索到最后的结点,必须要限制搜索树的深度。因此需要启发式的计算非
终止结点的值。

可以使用加权的评价函数,比如DeepBlue使用了超过8000个特征

这些特征和权重不是规则的一部分
他们是由人类的下棋经验得来的
也可以用机器学习的方法估计得到

CSP (Constraint satisfaction problem)约


束满足问题
Formalization 形式化
A CSP consists of:

A set of variables: V1, … ,Vn


Each variable has a domain: Dom[Vi] ( )
A set of constraints: C1, … ,Cm e.g. C(V1,V2,V4)
goal: 寻找满足条件的解,使得各个变量都有取值

backtracking 回溯算法

启发式应用于挑选变量和挑选值:

四皇后问题举例

普通回溯存在的
对于上面的数独问题,一般的回溯要填红色方块的时候才发现无法满足约束要回溯。可其实在现在的情
况下我们已经可以发现红色方块填不了任何的东西。因此普通回溯会花费很多的时间做无用的探索。

约束传播

约束传播让我们提前检测还未赋值的节点,把已经不满足约束的从domain中去掉

尝试找出一些很明显的错误,比如上面的红色方块无法填任何数字。

即使我们不能发现错误,我们也可以削减domain的大小,加快未来搜索的速度。但约束传播如果很
慢,也可能会影响搜索的效率。

主要有两种约束传播的方法下面会提及:

1. Forward checking
2. GAC

Forward checking 向前检测


算法原理

每当给一个变量实例化的时候,检查那些只含有一个未实例化变量的约束,并去除那个变量所有违
反约束取值。
如果将某个变量的Domain中所有可能的值都去掉了,就返回DWO(domain wipe out)。
一旦检测到DWO,就停止检测其他的约束,并回溯。
在递归的时候,要记住当前阶段进行约束传播时去除了哪些变量的哪些值,因为回溯的时候也需要
把每个变量的域也恢复。
算法是赋值了A后遍历一次所有的待赋值变量BCDE,每个变量循环内遍历一次constraint中和A有
关的,去掉不满足的项。不需要考虑B和C之间的constraint。否则就是GAC。
MRV (Minimum Remaining Values Heuristics) 最小剩余启发式

向前检测的算法还提供了一种选择下一个拓展节点的启发式方法。

先执行剩余满足约束的值域较小的变量,当一个变量只有一个取值时,立即执行,这点在我们玩数独的
时候深有体会

这种方法可以让我们生成在顶端宽度更窄的树,我们就可以探访更少的节点来找到目标解。
GAC (Generalized Arc Consistency) 整体边一致
Some definition:

C(X,Y) is consistent 满足

C(V1,V2, … ,Vn) 关于Vi is GAC 满足

A constraint(C) is GAC 关于它的任何变量都是GAC的


A CSP is GAC 所有限制(C)都是GAC的

如果对于变量V,取值d不能得到一个解,这说d是arc inconsistent(边不一致的)

GAC检查的过程需要不断的循环,因为一个定义域改变可能引起其它定义域变化

GAC必须在每个节点都检查所有限制(C)
Example:http://www.cs.toronto.edu/~fbacchus/csc384/Lectures/Tutorial3_CSP.pdf

KRR(Knowledge representation and


reasoning) 知识表示与推理

知识表示假设:所有AI system都是基于知识的(knowledge-based)

FOL(First-order logic) 一阶逻辑


逻辑是KRR最主要的工具,因为逻辑可以正式的表达智能体的信念

其中KRR最主要的工具是一阶逻辑

比如积木的例子:

如何让机器推理问题答案:

1. 将sentences和question转换成FOL formulas 的形式


2. 检查这个问题的FOL formulas是否逻辑蕴含于sentences中
Alphabet 字符定义
个体:tony,mike,rain,snow

Types:一元谓词 A(x) x是A俱乐部的人

Relationships:二元谓词 L(x,y) x喜欢y

basic facts:

complex facts:

逻辑符号:

非逻辑符号

predicate 谓词符号:0个变量的称为命题,n个参数为n元谓词
function 函数符号:输出为确定的值constants
Terms 项:每个变量都是一个term。以这些变量作为参数的function也是term

Formulas:

如果 是terms而P是一个n元谓词,那么 是原子公式
用逻辑符号连接的formulas都是formulas

sentence:没有自由变量的formula ,就是谓词里的变量都确定了

Substitution: 意味着 v 被term t替换了

Interpreatations 解释

定义
D中的元素就是terms,也就是变量的可能取值

是一个从一个谓词的集合的映射,映射结果是在定义域D内。可以理解是: 找出D中满足特定n元谓词
P的n元变量组合。 相当于满足谓词P的所有可能取值

对于function,一个n元的function相当于从n维映射到一个属于D的一维结果。

举例说明

赋值
一个变量要赋值成 可以看做从变量域D中映射到值 的一个映射

是一个赋值映射,可以作用在一组变量上。如下面的函数例子
Satisfaction

定义
是一个赋值映射,可以作用在一组变量上,变量的取值从D中取

相当于满足谓词P的所有可能取值

赋值 满足谓词P,就相当于对P赋值之后的结果在 中

相当于给变量 v 赋值为 d

这里的点用来分隔谓词和变量名
Satisfiability 可满足性
设S是一组formulas和sentences的集合

如果存在一组赋值,可以让所有的formulas和sentences都满足,则集合S为为可满足的

第二行应该是对每个S中的 ,都能被赋值满足。

当x为a的时候,这三个sentences不能同时为真,因此它不是可满足的

Logical entailment 逻辑蕴含


举例如下:

要证明 ,唯一的办法是找到一个赋值满足KB,但不满足

Knowledge-based system:一般是智能体被告知或者自己学习到的知识

Inference procedure:我们想要计算机去检查KB是否逻辑蕴含

Resolution-based Inference procedure: Refutation 驳斥

Clausal form 子句形式


literal: 原子公式或者它的取反

clause:literal的析取,可以用集合来表示

注意:空的子句 (),表示为假

formula:是子句的合取

Resolution rule of inference


resolvent:归结两个子句

Derivation 派生/推理

如果子句的集合 S 通过归结可以得到空子句,就说明 子句集合S是不可满足

推理和蕴含的区别:推理是要目标子句的形式都可以通过 S 通过归结得出,而蕴含只要求S为真的时候
目标子句也为真。
Resolution-based Inference procedure: Refutation
根据蕴含的定义我们可以得出:

上图中蕴含 其实就相当于 ,我们可以把formula转换成clause form然后进行归结运算

如果子句中出现了与运算,就把他们拆开变成多个子句加入知识库KB

要让计算机做上面的操作,我们需要:
1. 一个将KB和query转换成clausal form的方法
2. 对包含变量的子句进行归结

Converting first-order formulas into clausal form


1. Eliminate implications using (消去蕴含)

2. Move negations inwards using (将括号外,量词外的非挪到里面,注意全称和存在量词变


换)

3. Standardize Variables (规范变量名称,使每个量化变量都unique)

4. Skolemize 去掉所有的存在量词
对于只有一个存在量词的,用一个新的常数来代替:

对于有其他全称量词的,将所有带有存在量词的变量,转换为关于全称量词变量的函数。因
为这个时候z的取值是和x的取值有关系的,不是独立的。

这里要注意:要留意存在量词和什么全称量词相关

5. Convert to prenex form (转换为前束范式,即将所有量词提到最前面)

6. Disjunctions over conjunctions (把合取提出来)


7. Flatten nested conjunctions and disjunctions

8. Convert to Clauses (去除全称量词,把合取的拆成多个子句)

Unification 对于变量的归结

包含变量的子句可以看作是有全称量词,也可以看做把所有可能的x代入,形成无数个具体化后的无变
量子句。

由代入x得到的某些子句,可能可以和别的具体化后的子句做归结,但我们不可能把所有的x取值代入然
后再归结,相当于得到一些特殊的形式,比如P(a),但它本质还是包含在P(x)中的。如果这些特殊的形
式如P(a)已经可以推出空子句,那么说明原来一定是不可满足的。

根据这种思想,我们想要找到最一般化的合一方法,让原子公式对应相同,然后就可以带着变量对子句
进行归结操作。

替代 substitution
合一的关键步骤是替代:

组合替代 Composition of substitutions


合一 Unifiers
合一的目标就是找到一个替代,让两个原子公式等价

不是所有的公式都可以合一的,替代只能影响变量,比如下面例子:

Most General Unifier (MGU)


MGU的目标是:用最不特殊的方法让包含变量的原子公式匹配

一个代入 是一个最一般的代入,满足以下条件:

如果两个句子可以合一,那么他们一定存在唯一的MGU。
计算MGU

要注意,只能将值赋给一个变量,函数也不行,比如

就不能做归结,因为不能将f(a)赋值给g(x),而且赋值的时候两者不能有相同变量,如下面都不行:

Resolution 归结
对于带变量的字句要做归结,我们先把对应可以归结的原子公式归一化成一样的形式,然后再用之前的
归结方法归结两个字句:
红色部分为大括号!

Answer extraction 答案提取

直接在Clausal form下的query插入answer(x)即可

可以理解为,加入一个answer(x)在待查询语句中,这样待查询语句的变量被替换的时候,answer的变
量也会跟着被替换,而这个替换就是原来问题的解。answer把这个解保留了下来,到最后输出出来。
Undecidability in the first-order case 存在的问题
归结只能推理出不可满足的

如果形成的子句集合是可满足的,可能归结就无法停下来。

Reasoning under Uncertainty 不确定推理


Probability in General

Conditional probabilities(条件概率):

全集分割: (不交,不漏)

Sumout rule:

独立和条件独立:
(B is independent of A)
Bayes rule:

链式法则:

Notation / Terminology:

Pr(X) == Pr(X=d) for all d in Dom[X]

推断 Inference:
要确定上面的式子,需要多少个参数?如上面标注,一共需要1+2+2+2+2=9个

计算方法是:对任意P(Q|Par(Q)),Par(Q)是和变量Q相关的其他变量,我们需要 个,如果不是
条件概率,就只需要1个。

比如要推出前两个也就是得到P(C)的值,需要下面圈出的变量:

条件独立性:

在下图中,给定A的话,B就和E、C条件独立了。

给定C的话,A就和E条件独立了,以此类推

Bayesian Networks

graph + tables
example:

Construct a Bayes Net


Step 1 Apply the Chain Rule

Step 2 移除所有无关变量

Step 3 建立一个图(DAG)

Step 4 确定CPT(conditional probability table)条件概率表格

由条件概率的链式法则,任何共同发生概率比如P(A,B,C,D,E)都可以写成一个链式法则,不过即使写成了
链式法则,也需要知道很多的先验知识。我们的条件概率表至少需要 个数才能计算包含n个变量
的条件概率。

但事实上,我们可以用特定的顺序来写出链式法则,然后用条件独立消除某些无关的变量,可以减少
CPTs的大小,如下面的例子:
贝叶斯推断 Inference

练习举例
D-Separation
D-分离包含以下三种情况
举例说明
注意上面的第七条,A和E的path并没有被完全阻隔。

Variable Elimination

引入
如果我们要计算下面的式子,我们先把它写成求和的形式,之后用构建贝叶斯网络的方法先用链式法则
将概率展开,再删除无关的变量。

我们可以将求和符号分开写进去。然后从内层到外层一层层计算
在消除前两个的时候,因为分别只和变量JK相关,所以求和后直接为一个常数,这里为1。

不过在计算第三个的时候,该式和GF同时相关,而F在外层还有别的因子,所以在这一层我们选择对G
求和把变量G消除。

这里的式子就是因子,包含变量的概率式(可能是一般的概率,也可能是条件概率),我们不需要知道
他们的具体形式,只需要知道他们的概率表对应的值即可。比如我们当前因子是F(G,F) 对G求和后得到
的因子为H(F),我们可以通过F的概率表(包含每个变量取某一个值的时候的式子值)对G求和,就可以
求出H的概率表,所以每个因子都是前面的因子概率表一层层推理得到的。

注意:这里说的F(G,F)虽然只有这两个变量,但它可能还包含别的变量的具体值,比如可能是一个条件
概率P(G|F,a,b,c),但其他的值是确定的,所以只有G、F两个变量。因此两个因子F(A)和H(A)一般是不一
样的。

Factors的性质
这些方法帮助我们构建新生成的因子的概率表

乘法性质
加法性质

限制因子
相关Relevant

我们可以知道在给定h和-i之后求D这个问题中,J和K是无关的。

查询的时候,我们可以只关心相关的变量。如何判断相关变量?

假如给定E要查询Q:

1. Q自身是相关的
2. 如果节点Z是相关的,那么Z的祖先节点也是相关的
3. 如果E是一个相关变量的后代,则E是相关的
VE Algorithm:
变量消除的核心是将某个变量的所有可能取值代入之后求和,这其实就是在做上面引入部分说的求和。
求和的目的其实也就是为了消除那个变量。

Given:

Bayes Net with CPTs factors F,


query variable Q,
evidence variables E (observed to have values e),
remaining variables Z.

Now Compute Pr(Q|E)

1. 用已知事实E替换变量
2. 将需要被删除的变量Zj按顺序删除
3. 用关于其它变量的函数表示,从而消去Zj,将包含Zj的用fi表示,并将它们全部消去最后加入新产
生的gi
4. 最后只剩下查询变量
从条件概率的角度看就是:

VE算法举例说明
桶删除
桶删除方法

桶删除是一种变量消除的框架

第一步:把每个变量按顺序列出,然后将每个因子按照优先顺序放入每个桶里,目标变量放在最后

第二步:按照桶的顺序消除变量,删除对应变量之后把新的因子放入桶中,如果因子包含多个变量,放
在优先顺序高的桶里
依次类推,最后剩下D桶中的因子,我们对他进行一个归一化:

复杂度分析

VE的复杂度由最大的CPT决定。当我们进行变量消除的时候,有可能会产生包含很多变量的因子,这个
时候CPT表的会指数增长。我们需要找到一个变量消除的顺序,使得新产生的因子变量数最小。

超图
每个节点会和它的父节点形成超边,其实就是每个因子一个超边:
在超图中消除节点

1. 将目标节点删除
2. 将包含它的超边都删除
3. 将原本和c组成超边的节点组成一个超边
以此类推

删除宽度

上面例子的删除宽度是4,{A,B,E,D}是最大的超边

树宽

树宽:所有可能删除顺序中(n!)最小的删除宽度 - 1

但要找到树宽是一个NP完全问题

多形树

优先删除单连接的节点:多形树的树宽为所有节点中最大父节点数量,比如下面的例子就是2
启发式方法:

每次删除使产生因子规模最小的节点
贝叶斯参数估计

糖果问题
有5种袋子,糖果比例不同。你选择一个袋子,通过一直吃糖,预测当前吃的是哪个袋子。

贝叶斯学习

已经吃的糖果为数据集d

需要知道袋子分布比例,也就是先验知识P(H),假如袋子各有一个这里是每个袋子被抽到的几率是
1/5。

假如我们想知道下一颗糖果口味的概率X,我们先用当前吃的糖果经验d来判断吃的是哪一个袋子 ,然
后用每个袋子的概率来预测下一个糖果X口味的概率:
这种方法相当于给每个袋子都计算了一个可能性,然后在计算下一个糖果口味的时候考虑了每个可能袋
子的贡献。

下面的图像中,袋子的数量不是相同的,是存在先验的

计算p(h|d)的方法是:

假如拿的一直是柠檬口味的,计算 发现, 一直为1,归一化后,就会发现 趋向于


1而其他越来越小趋近于0:

如果先验给的合理,贝叶斯一定是最优的,也不会存在过拟合问题。但存在的问题是,假如假设空间很
大,有很多先验,无法叠加每种先验情况,因此无法用贝叶斯估计的方法

极大后验概率 MAP
如果不知道有多少种先验假设,没办法考虑所有的袋子然后求和,所以只能直接选择可能性最大的袋子
来预测下一个糖果。
这种方法容易过拟合,就容易认定某一个袋子,导致其他袋子的概率为0。

MAP的方法比贝叶斯的方法不准,因为它步依赖于先验,不过MAP和贝叶斯的方法最终收敛结果是一样
的,因为假如我们拿的袋子是第i个,最终用贝叶斯算出来的 会一直接近1,就像上面的图一样,
其他的会很小,就和直接选择了这个袋子的结果一样。

计算 的方法如下:

极大似然估计 ML
ML也是取概率最大的,不过它连袋子的先验都不知道,就直接用d来计算最大概率的袋子
ML举例:

Laplace 平滑

如果樱桃口味从来没有吃过,这样计算出来的参数值就是0了,但事实上可能只是数量太少没有拿到而
已,所以可以用加一平滑的方法。

EM算法
若一个k值变量C,我们要估计C的取值概率分布。C有多个属性

假如我们有一批C的属性数据用来估计C:
我们可以用统计的方法统计出一张概率表:

然后利用条件概率公式和C的属性相互独立,我们可以推出:

当然有了统计表,C的属性 取其他值的情况,上述式子也可以算出来。

若式子1和k-1的概率值分别为0.1和0.8,我们就把记录更新到概率表中,然后在重新统计更新概率表后
的上面k-1条式子,反复迭代。

1. E步基于当前的C的概率分布更新数据集
2. M步从数据集中推理出每个属性X的条件概率,进而计算C的后验概率分布

一般从随机的数据开始,最终会收敛到局部的最大值

E步
原来t f t t这种情况count是100,并且没有标签,我们利用了概率分布后,将100拆成了3个部分并打上
了标签。

M步

利用新的数据集,根据统计的方法,我们可以计算C的先验概率,还有每个属性X的条件概率,进而我们
可以再求出C的后验概率。

You might also like