课程部分笔记,依据《人工智能 一种现代化方法》第三版

目录

  • 智能概述
  • 搜索search
    • Uninformed Search
    • Informed Search
  • 约束满足问题CSP
  • MDP
    • 值迭代方法
    • 策略迭代
  • RL
  • 朴素贝叶斯
  • 其他

智能概述

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)=maxaQ⋆(s,a)Q∗(s,a)=∑s′P(s,a,s′)[R(s,a,s′)+γV⋆(s′)]V∗(s)=maxa∑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)=amax​Q⋆(s,a)Q∗(s,a)=s′∑​P(s,a,s′)[R(s,a,s′)+γV⋆(s′)]V∗(s)=amax​s′∑​P(s,a,s′)[R(s,a,s′)+γV⋆(s′)]

  1. 初始时V0(s) = 0
  2. 对所有状态执行Vk+1(s)=maxa∑s′P(s,a,s′)[R(s,a,s′)+γVk(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)=amax​s′∑​P(s,a,s′)[R(s,a,s′)+γVk​(s′)]
  3. 重复2,直至收敛
    收敛后,可间接得到策略:
    π∗(s)=argmaxa∑s′P(s,a,s′)[R(s,a,s′)+γVk(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)=aargmax​s′∑​P(s,a,s′)[R(s,a,s′)+γVk​(s′)]


存在的问题:

  1. It’s slow – O(S2A) per iteration
  2. The “max” at each state rarely changes
  3. The policy often converges long before the values

策略迭代

  1. Policy evaluation策略评估
    calculate utilities for some fixed policy (not optimal
    utilities!) until convergence
    V0π(s)=0Vk+1π←∑s′P(s,π(s),s′)[r(s,π(s),s′)+γVkπ(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′)]
  2. Policy improvement策略改进
    update policy using one-step look-ahead with resulting converged (but not optimal!) utilities as future values
    πi+1(s)=argmaxa∑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)=aargmax​s′∑​P(s,a,s′)[R(s,a,s′)+γVπi​(s′)]
  3. 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

高级人工智能课程笔记相关推荐

  1. 高级人工智能 读书笔记

    高级人工智能 史忠植 3ed 教学园地 有该书 ppt  值得阅读,写得不错 参考书: Artificial Intelligence: Foundations of Computational Ag ...

  2. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载

    主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...

  3. 人工智能课程笔记:自然语言处理与循环神经网络

    文章目录 1.语言处理技术 1.1.自然语言处理概述 1.2.自然语言处理的研究内容 1.3.自然语言处理的应用 2.词向量学习 2.1.与词向量有关的基本概念 2.2.CNN文本分类模型 3.循环神 ...

  4. 王元红老师JS高级语法课程笔记

    //BigInt ES11之前 const maxInt =Number.MAX_SAFE_INTEGER console.log(maxInt)//9007199254740991console.l ...

  5. 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(1-5章)

    关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...

  6. 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(6-9章)

    关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...

  7. 高级人工智能(国科大2021-2022秋季学期课程)-基础概念及算法

    高级人工智能-沈华伟-国科大2021-2022秋季学期课程 连接主义(神经网络.深度学习) 搜索问题 启发式算法 贪婪最佳优先搜索 A*搜索 A*树搜索 A*图搜索 传教士和野人问题 归结原理中的应用 ...

  8. 【高级人工智能】国科大《高级人工智能》联结主义 笔记 + 考试回忆

    国科大<高级人工智能>吴老师部分--联结主义笔记 吴老师上课dddd,上课东西太多太杂,听不太懂比较煎熬,但是课后花点时间理解理解,还是挺有帮助的 考试按照重点复习即可,虽然答疑时提到的传 ...

  9. 侯捷C++课程笔记01: 面向对象高级编程(上)

    本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(上) pdf版本笔记的下载地址: 笔记01_面向对象高级编程(上),排版更美观一点(访问密码:3834) 侯捷C++课程笔记01: 面向对象高 ...

最新文章

  1. 便利vector_C++面试题之list和vector的区别
  2. 仿BlogEngine.NET的cnBlog主题
  3. linux中iso文件怎么安装系统文件,我有linux的iso文件,要怎么安装系统
  4. CVPR 2021 involution:超越convolution和self-attention的神经网络新算子
  5. Can't create directory 'E:\Repositories\***\db\transactions\138-41.txn':
  6. 前端学习(1866)vue之电商管理系统电商系统之登录退出实现表单的数据验证
  7. PrintArea打印,@media screen解决移动web开发的多分辨率问题,@media print设置打印的样式...
  8. oracle客户端 tsnping时出现TNS-03505:无法解析名称
  9. 腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc
  10. SessionHelper
  11. java编码技巧_编码小技巧 让java编程更便捷
  12. ipv4转换ipv6工具_IPv4与IPv6的区别,不仅仅是地址变长而已
  13. XGBoost原理及在Python中使用XGBoost
  14. 条件变量的陷阱,惊群效应(转载)
  15. php ruby 优缺点,php,python,ruby,perl的优缺点?
  16. 微信公众号模板消息推送
  17. 软件测试中的测不准原理
  18. matlab进行复数计算
  19. 计算机毕业设计ssm吃到撑零售微商城
  20. 2022年Q1手机银行用户规模达6.5亿,加强ESG个人金融产品创新

热门文章

  1. 18张含金量最高的大数据证书
  2. rman备份报RMAN-00571、RMAN-00569、RMAN-03009
  3. 女王祖白绿和糖饭桌子的故事(二)
  4. 学习笔记 ,不断更新。
  5. MyBatis原理及搭建教程
  6. 用JavaScript写了一个自动给抖音商家发私信的脚本分享给大家
  7. nacos在国产银河麒麟系统飞腾CPU部署安装
  8. 恰逢人间四月天,来听听她们的故事吧
  9. centos7 grub2 引导win7
  10. 解决了个bug,想说点啥但又难以启齿