人工智能
合理agent:为实现最佳期望结果而行动的agent
Agent的三个部分:传感器、函数、执行器
理性agent:对每一个可能的感知序列,根据已知的感知序列提供的证据和agent具有的先验知识,理性agent应该选择能使其性能度量最大化的行动
任务环境:PEAS=性能+环境+执行器+传感器
完全/部分可观察,单/多agent,确定/随机,片段(每个片段中完成单个行动,下一个片段不依赖于前一个)/延续,静态/动态,离散/连续,已知/未知
简单反射agent:基于当前的感知选择行动,不关注感知历史(考虑随机)
基于模型的反射agent:Agent根据感知历史维持内部状态,Agent随时更新内部状态信息
基于目标的agent:感知历史+目标信息
基于效用的agent:有多种目标,不可能同时达成,要考虑效率,用效用函数评估,如:多目标冲突、多目标在不确定环境中、一个目标有多种行为可以达到
学习agent:性能元件(agent本身)+学习元件(改进与提高)+评判元件(反映性能元件做的如何)+问题产生器(建议探索性行动)
问题求解agent:目标,状态,行动
搜索策略:完备性(能找到存在的解)、最优性(能找到最优解)、复杂度
无信息搜索
宽度优先搜索:FIFO,每生成一个节点做一次目标检测,找到即返回。完备、非最优,时间、空间复杂度O(b^d) !很高
一致代价搜索:最优、如果每一步的代价大于零则完备(不存在0),拓展所有节点,每一次都找最小代价
深度优先搜索:LIFO latest,图搜索在有限状态空间是完备的(不找爹),非最优,空间复杂度较低 O(bm)
深度受限搜索
迭代加深的深度优先搜索
有信息搜索
最佳优先搜索算法:启发函数h(n) = 节点n到目标节点的最小代价路径的代价估计值(如n到目标的直线路径)
贪婪最佳优先搜索:扩展离目标估计值最好的的节点,f(n)=h(n),不完备的,非最优的
A*搜索(缩小总评估代价):f(n)=g(n)+h(n)=已经花的代价+该结点到目标的估计代价,最优性条件 可采纳性:(h(n)是可采纳启发式,即估计值总小于实际值),一致性(更强):称启发式是一致的,如果对于每个结点n和通过任一行动,生成的n的每个后继结点n',从结点n到达目标的估计代价不大于从n到n’的单步代价与从n'到达目标的估计代价之和
启发式函数:有效分支因子b*,总结点数N,解的深度d
松弛问题:问题中的一些条件可以删去,得到的启发式函数以求解,原有问题的最优解一定是松弛问题的解,但不一定是松弛问题的最优解
局部搜索算法:从当前节点出发,通过行为到达它的邻近状态而不保留搜索路径。用很少的内存、在很大或无限的状态空间中找到合理的解
爬山法(贪婪局部搜索):只考虑邻居中状态最好的。不完备 局部最优
模拟退火搜索(爬山法结合随机法):允许向相邻的坏的方向移动,但是这种概率随着时间的推移下降,如果下降足够慢,全局最优概率接近1
局部束搜索:k个节点的爬山法,随机产生k个状态
随机束搜索:随机选择k个后继状态,状态越好,选择它的概率越大
遗传算法:k个初始状态,两个状态可以生成一个后继状态,通常可以用字符串表示一个状态,用一个健康度量函数评价状态好坏(就是选择它来繁衍的概率),有很小概率产生字串一位的突变
不确定性
使用不确定动作的搜索:进行行动后可能有多种结果
与或搜索树:,一个节点如果与先前某一条路径的节点的状态相同,直接返回,删除这一个新的节点(避免循环)
无观察信息搜索:无传感器问题或相容问题
第五章 对抗搜索 (多agent)
博弈:完全可观察、确定、轮流行动的、两个agent、游戏结束时效用值总是想等并且符号相反的零和游戏,分支因子大,注重时间效率
博弈中的优化决策
极小极大算法:深度优先,求底层的min,回传上一层,然后上一层在本层选max再回传,O(b^m)
α-β剪枝:时间复杂度远远降低,最佳时O(b^m/2),平均O(b^3m/4)
截断搜索:固定深度
向前剪枝:
Probcut算法:
随机博弈:除了max min 还有随机节点chance
约束满足问题(CSP)
约束传播:
回溯搜索:
最受约束变量:优先选择最少剩余值的变量来赋值
约束最多变量:优先选择最能约束其他变量的(约束最多的)
最少约束值:选择使得剩余变量赋值空间更大的值
x=0逻辑蕴涵xy=0
CNF:合取范式
向前链接算法:如果式子的所有前提已知,将其添加到事实集中
反向链接算法:从目标开始从后往前推导,避免重复搜索
不确定性量化
概率定理
条件概率
归一化
y是未观测变量
贝叶斯规则
归一化贝叶斯规则
朴素贝叶斯(Effect都互相独立)
贝叶斯网络(有向无环图)
贝叶斯网络中完全联合分布等于局部条件分布的乘积:
枚举精确推理:
近似推理:直接采样法,拒绝采样法(拒绝与e不匹配的样本),似然加权法
Gibbs采样:马尔可夫覆盖包括:父节点+子节点+子节点的父节点;非证据随机初始化,按顺序采样,更新状态
根据原有贝叶斯网络和条件概率表实践大量样本,在样本基础上进行概率统计
训练集:训练目标函数,测试集:测试目标函数好坏
这样分类数据有样本浪费,故采用k-折交叉验证:数据分成k个相等的子集,执行k轮学习,每一轮一组数据作为测试,其他作为训练提高了数据的利用率,增加了学习的精度,在一定程度上可以防止过拟合的发生
过拟合:训练过头了,可采用简单的目标函数以避免
强化学习:以试错的方式学习,通过与环境交互获得奖赏、惩罚,目标是使agent获得最大奖赏,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作,外部提供信息较少,必须靠自身经历去学习。特点:交互式、强化信息有延迟性、无需先验知识、不确定环境可用、增量式的在线学习
朴素贝叶斯 R1(1,1)是f1=1的正样本占所有正样本的比例
决策树:应选择尽量将正样本和负样本区分开来的属性来进行分裂
熵:衡量数据集的纯度
信息收益:原有熵值-分裂后熵值,选择信息收益最大的进行分裂
决策树过拟合:限定每个叶子节点的最小样本数量,限制深度,X方策略删IG小
人工神经网络
感知器算法: 将输入数据分类成两类 是否大于阈值C塔
1.初始化权值w1、w2…以及阈值 学习率α
2.计算Y实际=step(w1*x1+w2*x2…-c塔)
3.错误大小e=Y理论-Y实际
4. Δw=α·x·e 5.w=w+Δw
多层人工神经网络
1. 计算激活函数值
隐藏层神经元输出
输出层神经元输出
2. 更新权值
输出层错误梯度
错误大小
更新输出层权值w=w+Δw
隐藏层错误梯度
错误大小
更新输出层权值w=w+Δw
连续训练周期中错误有着相同符号,增加学习率,错误符号交替,减小学习率
深度卷积神经网络
输入层-卷积层+ReLU-池化层-全连接层-输出层
卷积层:滤波器(矩阵) 卷积操作就是滤波器与原始图片对应相乘得到一个数
步幅(每次划过的像素数) 深度(滤波器的个数) 补零(图像边缘补一圈0)
激活函数:用sigmoid 输出的连续值变化为(0,1)之间的输出,有幂运算,耗时间,有梯度消失问题,收敛速度慢,输出不是零中心化的。
ReLU=max(0,x) 解决梯度消失问题,计算快,收敛快,非零中心化,当输入小于0时,有些神经元可能永远不会被激活,导致相应的参数永远不能被更新
池化层:降低每个特征映射的维度,保留最重要的信息,减少网络中参数计算量,遏制过拟合,增强对输入的小变形、扭曲、平移的鲁棒性,获得不因尺寸而改变的等效图片特征,可能会丢失一些需要的图像信息;会带来平移不变性
最大池化 max pooling
全连接层:softmax为激励函数
防止卷积神经网络过拟合:数据增强、正则化、提前终止(loss不再降低即停止)、Dropout(以概率p舍弃部分神经元)
Logistic回归的线性分类器
Margin是线性分类器导距离最近的样本的宽度
支持向量机:margin最大化的线性分类器,可使用核函数(升维,使数据线性可分) 软margin控制过拟合
向量内积
支持向量机输入的是数据之间的内积而不是数据本身,数据的内积都是预先计算好的,因此输入数据维度增高不会增加在线训练时间
人工神经网络处理非线性问题时增加一些隐藏层,并采用非线性的激活函数,最终得出一个超平面以解决非线性问题;而支持向量机采用核函数将线性不可分的数据映射到线性可分的维度上,用到超平面方程。
在算法最优性上人工神经网络不一定全局最优,但是局部最优;支持向量机能够产生一个全局最优解。