课程部分笔记,依据《人工智能 一种现代化方法》第三版
智能概述
Rational Decisions理性决策
rational理性意味着最大化期望效用maximize your expected utility
An agent is an entity that perceives and acts.感知和行动(决策)的主体
A rational agent selects actions that maximize its (expected) utility.
智能:能够理性的思考和行动,理性意味着
人工智能:人类通过算法使机器能够想人类一样理性思考和理性行动
逻辑推理:从一般性的前提出发,通过推导即“演绎”,得出具体陈述或个别结论的过程。是从一般到特殊的推理。例如所有乌鸦是黑的,这个鸟是乌鸦,则它是黑色的,区别于归纳推理(数学归纳法属于演绎推理)
utility function 是否clear(下棋是clear的)
一个问题的形式化定义:状态、动作、转移模型、目标测试、路径消耗
搜索search
Uninformed Search
Uninformed Search Methods无信息搜索(仅用到问题定义本身的信息)
包括DFS、Breadth FS、Iterative Deepening、UCS
完备complete、最优optimal
State Space Graphs and Search Trees状态空间图和搜索树。状态空间图中,每个状态只出现一次,树中的叶子结点是图中的一条完整路径。如果图中存在环路,那么树是无穷大的。
展开讲搜索树
DFS在搜索树中不完备,在图中完备,但都不是最优的
树搜索中的Depth-First Search (DFS)深度优先搜索不是完备或完全的complete(仅当不存在环路,即对应搜索树深度有限时可找到可行解,这可行解也不会是最优,leftmost),是针对搜索树来说的。如图,是一个状态空间图和搜索树,可行解是G,DFS总是先扩展最深的结点(当存在环时,搜索树则深不见底,无法跳出);且不是最优的,找到的是“leftmost” solution。时间复杂度O(b^m)
Breadth First search,是完备的且是最优的(当边权为1时,准确来说是相等时)(总是扩展,最浅层的结点,当探索到可行解时,距离最短),时间复杂度O(b^s)
把问题描述为搜索树,当解在右边,且靠近搜索树的顶层时,BFS更优;当解在左边,且远离顶层(靠近底层),DFS更优。
迭代深入搜索Iterative Deepening:结合了DFS的空间优势和BFS的时间优势
以上三个算法(尤其是BFS)都是求解边权为1的图,即最短路、最短步数(图中任意连接的两点距离视为1),而不是最小花费或代价cost
Uniform Cost Search代价一致搜索:扩展累积代价(起点到当前结点)最小的结点,完备的且最优的(会回溯,找到可行解后继续找),但仍然是无信息的盲目搜索,会在每一个方向上进行扩展。
BFS用于找到每个边的权值是一样的图的最短路径,如果图中每个边的权值不一样了,就用到了UCS。
Informed Search
Informed Search有信息搜索(用到问题给予算法的额外信息 )
包括Heuristics Greedy Search(也叫贪心搜索、最佳优先搜索best first?,只用启发式信息)、A* Search、Graph Search f(n)=g(n)+h(n)
Heuristic: A function that estimates how close a state is to a goal
贪心搜索不是完全的且不是最优的
A是代价一致搜索(考虑当前节点到起点的累积代价g)和贪心搜索(考虑当前结点到目标的代价h)的结合。f(n) = g(n) + h(n)。启发式函数需要是admissible Admissible(对树),即启发式函数的估计代价小于等于真实代价。(对启发式函数极端情况的分析)。当h=0,即UCS,h=0满足admissible,印证了UCS是最优的(特殊的A搜索)。
描述不同搜索算法间的区别(例如代价一致搜索与A*的区别),五个角度分析:
1.描述算法本身
2.有信息还是无信息
3.实现结构:FIFO等
4.时空复杂度
5.完备性、最优性分析
可能让设计一个admissible的heuristic,不在位的棋子数、曼哈顿距离
开始讲图搜索,上面都是搜索树
图搜索的思想:never expand a state twice(扩展结点前,会检测是否探索过)
store the closed set as a set, not a list
一致性:类似三件不等式,沿途的代价是递增的。图搜索中,A最优需要启发式是一致的,树搜索中,A最优需要启发式可采纳性。
Consistency implies admissibility
A* uses both backward costs and (estimates of) forward costs
A* is optimal with admissible(对树搜索) / consistent heuristics(对图搜索)
约束满足问题CSP
CSP和搜索问题的区别
1.SP的状态是黑盒,是原子的或不可见的,CSP的状态是带值的变量(变量都有赋值,且满足所有约束,问题解决)
2.搜索解决的是到目标的动作序列,CSP解决的是对所有变量赋值,使满足所有约束
CSP可以大量剪枝,求解速度更快
求解CSP的方法:回溯搜索和局部搜索
回溯搜索算法=DFS+剪枝,当没有合法的值(约束限制)赋值给当前变量时就回溯,选择该变量值域中的另一个值
局部搜索,(书:从单个当前结点出发,而不是多条路径,一般不保留搜索路径)改进单一选项,直至不能改进,不是完全的且是局部最优,依赖于起点。但是更快,更低的内存开销
爬山法是贪心局部搜索、改进的方法模拟退火、遗传算法,跳出局部最优
和搜索不同的是,局部搜索的目标仅是最优状态,而搜索(DFS等)关注的是到达目标的路径(动作序列)
最小冲突的局部搜索被应用在CSP(将皇后移动在最小冲突的方格里
MDP
五元组(S,A,R,P,γ)
马尔可夫:将来状态与过去状态无关,只与当前状态无关,无后效性
对MDP:意味着动作的结果(转移的概率)只依赖当前状态
Why discount?
o Think of it as a gamma chance of ending the process at every step?
o Also helps our algorithms converge
求解MDP,用动态规划方法,分为值迭代和策略迭代两种。
值迭代方法
递归定义:
V
∗
(
s
)
=
m
a
x
a
Q
⋆
(
s
,
a
)
Q
∗
(
s
,
a
)
=
∑
s
′
P
(
s
,
a
,
s
′
)
[
R
(
s
,
a
,
s
′
)
+
γ
V
⋆
(
s
′
)
]
V
∗
(
s
)
=
m
a
x
a
∑
s
′
P
(
s
,
a
,
s
′
)
[
R
(
s
,
a
,
s
′
)
+
γ
V
⋆
(
s
′
)
]
V^*(s)=\underset{a}{max}\;Q^\star(s,a)\\ Q^*(s,a)=\sum_{s^\prime}P(s,a,s^\prime)[R(s,a,s')+\gamma V^\star(s')]\\ V^*(s)=\underset{a}{max}\sum_{s^\prime}P(s,a,s^\prime)[R(s,a,s')+\gamma V^\star(s')]
V∗(s)=amaxQ⋆(s,a)Q∗(s,a)=s′∑P(s,a,s′)[R(s,a,s′)+γV⋆(s′)]V∗(s)=amaxs′∑P(s,a,s′)[R(s,a,s′)+γV⋆(s′)]
- 初始时V0(s) = 0
- 对所有状态执行 V k + 1 ( s ) = m a x a ∑ s ′ P ( s , a , s ′ ) [ R ( s , a , s ′ ) + γ V k ( s ′ ) ] V_{k+1}(s)=\underset{a}{max}\sum_{s^\prime}P(s,a,s^\prime)[R(s,a,s^\prime)+\gamma V_k(s^\prime)] Vk+1(s)=amaxs′∑P(s,a,s′)[R(s,a,s′)+γVk(s′)]
- 重复2,直至收敛
收敛后,可间接得到策略:
π ∗ ( s ) = a r g m a x a ∑ s ′ P ( s , a , s ′ ) [ R ( s , a , s ′ ) + γ V k ( s ′ ) ] \pi^*(s)=\underset{a}{argmax} \sum_{s^\prime}P(s,a,s^\prime)[R(s,a,s^\prime)+\gamma V_k(s^\prime)] π∗(s)=aargmaxs′∑P(s,a,s′)[R(s,a,s′)+γVk(s′)]
存在的问题:
- It’s slow – O(S2A) per iteration
- The “max” at each state rarely changes
- The policy often converges long before the values
策略迭代
- Policy evaluation策略评估
calculate utilities for some fixed policy (not optimal
utilities!) until convergence
V 0 π ( s ) = 0 V k + 1 π ← ∑ s ′ P ( s , π ( s ) , s ′ ) [ r ( s , π ( s ) , s ′ ) + γ V k π ( s ′ ) ] V_0^{\pi}(s)=0\\ V_{k+1}^{\pi }\leftarrow\sum_{s'}P(s,\pi(s),s')[r(s,\pi(s),s')+\gamma V_k^\pi(s')] V0π(s)=0Vk+1π←s′∑P(s,π(s),s′)[r(s,π(s),s′)+γVkπ(s′)] - Policy improvement策略改进
update policy using one-step look-ahead with resulting converged (but not optimal!) utilities as future values
π i + 1 ( s ) = a r g m a x a ∑ s ′ P ( s , a , s ′ ) [ R ( s , a , s ′ ) + γ V π i ( s ′ ) ] \pi_{i+1}(s)=\underset{a}{argmax} \sum_{s'}P(s,a,s')[R(s,a,s')+\gamma V^{\pi_i}(s')] πi+1(s)=aargmaxs′∑P(s,a,s′)[R(s,a,s′)+γVπi(s′)] - Repeat steps until policy converges
converge (much) faster under some conditions,每一次迭代的时间复杂度O(S2)
Without the maxes, the Bellman equations are just a linear system
RL
unknown MDP
朴素贝叶斯
特征间相互独立
http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
其他
L11概率
计算后验概率,即由果求因,p(因是先验概率)
L12朴素贝叶斯分类,朴素的意思:特征间相互独立,贝叶斯网络
L13感知机和逻辑回归
L14优化和神经网络
L15 DL
2-D卷积(类似滤波器,用于提取图像的局部特征,功能不同的卷积核)、padding(使得卷积后大小和原图一样)、池化(去除冗余信息,降低输出数量,类似降维,原理是相同特征是聚在一起出现。一般是简单的最大值、最小值、均值实现)
NLP word2vec
用独热编码,向量太过于稀疏,同时只简单表示了单词在字典中的位置,没法体现单词之间的关联性。例如每个单词之间的距离都是欧式距离都是0,没法计算单词之间的相似性。
SUV
SVM通过升维解决分类问题。即将原始的低维中线性不可分的数据点通过核函数映射到高维空间,使得线性可分。寻找到一个超平面对样本分类,并且使不同类别间的间隔最大。
神经网络作为黑盒,端到端的学习,自动1特征,一般不需要人为的进行特征工程
SVM无法得到映射函数,且其核函数需要手工设计。
SVM有理论输出的是全局最优解,神经网络则不一定,例如对二分类问题,使用二元交叉熵作为损失函数,训练好的神经网络的输出可能完全和标签对应上,但大概率不能向SVM那样不仅分类成功还使两类的距离最大(最优结果)
Sigmoid,值域在(0,1)常作用于输出层,作为概率输出用于二分类。易产生梯度消失,即当x的绝对值较大时,该函数的梯度趋于0。其次,该函数的值域不是0均值,会产生偏移现象
Tanh双曲正切,相比于sigmoid,tanh值域是0均值,但同样存在梯度消失问题
Relu,常用作隐藏层的激活函数,在正区间解决了梯度消失问题,只有线性运算,计算速度快。但它也不是0均值。
relu存在多种变体,如leaky relu,selu等
Softmax,常作用于输出层用于多分类,相当于argmax的soft版本,即给非最大概率一个较小值,而不是用0来处理。输出每个类别的概率,和为1