-
第一章人工智能基础概述
人工智能(Artificial Intelligence)是二十世纪人类在科学技术领域取得的重大进展之一。到底什么是人工智能?人工智能是如何产生的?哪些学者在研究人工智能,在研究什么?人工智能到底有哪些用途?这是我们对人工智能应有的一个基本了解。
-
●1.1人工智能的定义及产生背景
什么是人工智能,就要涉及什么是智能;探究智能,就必须了解什么是智力,什么是知识;然后再探究什么是人工智能。归纳起来,人工智能是研究如何将人的智能转化为机器智能,或者是用机器来模拟或实现人的智能。这一节将为你展开这些的内容。
-
第二章用搜索实现求解问题
我们在解决日常生活中碰到的各种问题,都是在实现问题求解。求解问题一般都是采用建模的方法。然而,人类生活中大部分要求解的问题是没有模型可以用的。搜索方法就是当人们碰到不存在现存的求解方法的时候,所采用试探的方法,找出满意解。
-
●2.1搜索求解问题的基本思路
人工智能的问题求解就是将问题求解转化为一种在解空间中的搜索,并借助强大的计算能力来完成这种搜索,以此模拟人类凭借自身智能来解决问题的方法。人工智能用搜索实现问题求解的基本思路是,根据问题的初始条件、约束条件、关联关系构造一个解空间,并在这个空间中寻找目标解。
-
●2.2实现搜索过程的三大要素
利用搜索来实现问题求解是在某个可能的解空间内寻找一个解,这就首先需要把这种可能的解都表示成计算机可以理解的方式并储存起来;然后,要考虑如何使得搜索得以前进;再要考虑搜索到何种状态停止下来。这三者就是实现搜索过程的三大要素。
-
●2.3实现搜索的基本步骤
搜索过程的基本步骤是针对实现搜索过程的三大要素所采取的实际步骤。第一步,根据问题的特征,定义出相应的状态空间;第二步,定义扩展规则,也就是定义一组操作(算子),这些算子能够作用于一个状态后,过渡到另一个状态;第三步,决定一种搜索策略,使得能够从初始状态出发,沿某个路径达到目标状态。
-
●2.4启发式搜索(一)
启发式搜索在搜索时不是任取一个分支进行扩展,而是根据一些启发式信息,选择最佳一个分支往下搜索。一般说来,进行这种搜索的策略和技术需要某些有关具体问题领域的特征信息。这些信息就是启发式信息,常常可以用来简化搜索。
-
●2.5启发式搜索(二)
启发式搜索在搜索时不是任取一个分支进行扩展,而是根据一些启发式信息,选择最佳一个分支往下搜索。一般说来,进行这种搜索的策略和技术需要某些有关具体问题领域的特征信息。这些信息就是启发式信息,常常可以用来简化搜索。
-
●2.6启发式函数设计
启发式函数是一种映射函数,它把对问题的当前状态的描述映射成一种接近目标的程度。使用这个函数,可以引导人们如何解决当前的问题。启发式函数设计得好,对有效引导搜索过程有着重要的作用。
-
第三章图搜索算法
上一章讨论了用搜索求解问题的方法,一般是在隐式图中进行搜索,而根据图对应的实际问题背景,图又可分为“或图”和“与/或图”两种。前一种对应的背景为,搜索扩展时可在若干分支选择其中之一的应用;后一种对应一个问题化为多个子问题(分解为多个分支)时,分解后的多个问题都可能需要求解,也就是多个分支都要选择进行搜索。这两种图都有相应的搜索算法。
-
●3.1或图搜索策略
或图对应的应用背景为,解决一个问题可选择其中某一种解决方法即可,表现在图搜索过程中,进行扩展时可在若干分支中选择其中之一。将这种策略写成算法就是或图通用搜索算法。
-
●3.2或图通用算法分析
或图通用搜索算法是一个搜索算法的框架,具有通用性,我们可以调整算法某些步骤,就可以将它改造为多种搜索算法、如深度优先、广度优先。
-
●3.3或图通用搜索算法的进一步分析
或图通用搜索算法是一个通用的搜索算法的框架。在或图通用搜索算法,每次取出Open表的第一个节点;然后对生成的后继节点,用启发式函数f进行评估,并保证最小者处在Open表的首部。这就默认评估值最小者为最佳者,也就实现了所谓的最佳优先搜索。
-
●3.4A算法与A*算法
如果在上一节的最佳优先搜索,将一个启发式函数定义为:f(n)=g(n)+h(n)的形式,并在新扩展节点加入Open时,将表中的所有节点按启发式函数值的从小到大排列,然后取出第一个节点。这样重新定义的或图通用搜索算法就称为A算法。在A算法基础上进一步可以定义A*算法,A*算法与一般的最佳优先比较,有其特有的优良性质。
-
●3.5使用A算法求解一个智力游戏(一)
这一节首先通过手动操作的演示程序来体验这个游戏。体验手动求解过程后,再尝试启发式搜索方法求解一般的传教士-野人过河问题,最后给出使用A算法求解的演示过程。
-
●3.6使用A算法求解一个智力游戏(二)
这一节首先通过手动操作的演示程序来体验这个游戏。体验手动求解过程后,再尝试启发式搜索方法求解一般的传教士-野人过河问题,最后给出使用A算法求解的演示过程。
-
●3.7与/或图搜索
对于问题求解,有时候要采取“分而治之”的方法,需要将一个大的问题变换成若干子问题,子问题又可分解成更小的子问题,这样一直分解到可以直接求解为止,全部子问题的解构成了整个问题的解。这一类型的问题也可以使用搜索的方法求解,是在一个称为“与/或图”的图中进行搜索。
-
●3.8用与或图搜索求解一个智力问题(一)
这一节要应用与/或图搜索算法来求解一个智力游戏:利用有限次使用天平识别假币。利用与/或图搜索算法求解这个问题,首先必须解决下面两个问题: 问题表示,即如何记录和描述问题的状态;求解程序如何对天平的某种称法进行评价。这是一个比较完美的将一个智力游戏转化为与/或图搜索算法求解的实例。
-
●3.9用与或图搜索求解一个智力问题(二)
这一节要应用与/或图搜索算法来求解一个智力游戏:利用有限次使用天平识别假币。利用与/或图搜索算法求解这个问题,首先必须解决下面两个问题: 问题表示,即如何记录和描述问题的状态;求解程序如何对天平的某种称法进行评价。这是一个比较完美的将一个智力游戏转化为与/或图搜索算法求解的实例。
-
●3.10用与或图搜索求解一个智力问题(三)
这一节要应用与/或图搜索算法来求解一个智力游戏:利用有限次使用天平识别假币。利用与/或图搜索算法求解这个问题,首先必须解决下面两个问题: 问题表示,即如何记录和描述问题的状态;求解程序如何对天平的某种称法进行评价。这是一个比较完美的将一个智力游戏转化为与/或图搜索算法求解的实例。
-
第四章博弈搜索策略
博弈是探索人工智能的一个很好的领域,但也对人工智能提出了巨大的挑战。传统的博弈算法有极小极大搜索算法和α-β剪枝法,这两个算法奠定了计算机博弈算法的基础,而蒙特卡洛树搜索算法则打开了围棋博弈程序的大门,AlphaGo 采用这种搜索算法,取得了里程碑式的胜利,也宣告了人工智能一个新的时代来临。
-
●4.1极小极大搜索算法
好的棋手下棋时能够“深谋远虑”,考虑往前多看很多步棋,而不是仅仅只看眼前一步。极小极大搜索策略是考虑双方对弈若干步之后,从可能的步中选一步相对好的走法,即在有限的搜索深度范围内进行博弈问题求解。
-
●4.2极小极大搜索算法分析(一)
极小极大搜索算法分三个阶段进行。第一阶段,使用宽度优先法自上而下生成规定深度(k层)的全部博弈树,然后对其第k层端节点计算其静态评价函数值;第二阶段,从底向上逐级求非终结点的倒推评价值;第三阶段,根据f(s)是取的哪个分支的值,在T树上标记走哪一步。应用MinMax算法可以指导完成一次落子。
-
●4.3极小极大搜索算法分析(二)
极小极大搜索算法分三个阶段进行。第一阶段,使用宽度优先法自上而下生成规定深度(k层)的全部博弈树,然后对其第k层端节点计算其静态评价函数值;第二阶段,从底向上逐级求非终结点的倒推评价值;第三阶段,根据f(s)是取的哪个分支的值,在T树上标记走哪一步。应用MinMax算法可以指导完成一次落子。
-
●4.4α-β剪枝法(一)
极小极大搜索算法采用广度优先的搜索方法效率是很低的,它有很大的改进空间。α-β剪枝法就是考虑这个因素后把生成后继和评价值倒推结合起来,及时剪掉一些无用分枝,以此来提高算法的效率。
-
●4.5α-β剪枝法(二)
极小极大搜索算法采用广度优先的搜索方法效率是很低的,它有很大的改进空间。α-β剪枝法就是考虑这个因素后把生成后继和评价值倒推结合起来,及时剪掉一些无用分枝,以此来提高算法的效率。
-
●4.6AlphaGo搜索策略
AlphaGo采用了蒙特卡罗树博弈树搜索(MCTS)算法,成功地应用于求解计算机围棋下棋问题。蒙特卡罗方法属于一个纯粹的搜索算法框架,从而具有很大的通用性。它与极大极小搜索类似,搜索树中的每一个节点对应博弈中的一个状态,但是与极大极小搜索不同的是,对节点的评估是通过蒙特卡罗模拟进行的。蒙特卡罗树搜索算法的一个重要特点是选择性地扩展博弈树,逐步改善模拟的策略。
-
第五章遗传算法
遗传算法(Genetic Algorithm,GA)是受遗传学中自然选择和遗传机制启发而提出来的一种搜索算法,它的基本思想使用模拟生物和人类进化的方法求解复杂的优化问题,因而也称为模拟进化的优化算法。
-
●5.1遗传算法的基本概念
遗传算法模拟物种的进化过程中优胜劣汰的机制,将择优与随机信息交换结合在一起,在每一代中,使用上代中最好的,即最适应环境的基因,再采用遗传操作形成新的人工生物集。遗传操作作用于群体而产生新的群体标准的代遗传操作包括:选择(selection或复制reproduction),交叉(crossover)或重组(recombination),变异(mutation)三种基本形式。
-
●5.2遗传编码与适应函数
用遗传算法求解问题时,要在求解问题的表示与遗传算法的染色体结构之间建立起联系,这种建立联系的方法就是进行遗传编码。适应函数是从遗传编码到实数域的一个函数,它的作用是对每一个个体指定一个适应值,从而可以区分种群中个体的好坏。
-
●5.3遗传操作
遗传算法推测新的搜索点的主要手段就是遗传操作,遗传操作作用于群体而产生新的群体。标准的代遗传操作包括:选择,交叉,变异三种基本形式。
-
●5.4遗传算法设计与应用实例
在应用遗传算法时,要进行一个遗传算法设计,其基本工作是:初始化群体、控制参数的设置、算法的终止准则的设定。这个基本工作如果设计得好,应用遗传算法的效果就好。
-
第六章群集智能算法
群集智能的研究是受社会性昆虫行为的启发而产生的。从事计算研究的学者通过对社会性昆虫的模拟产生了一系列对传统优化问题求解的新方法,这些研究就是群集智能的研究。所谓群集智能(Swarm Intelligence)指的是“无智能的主体通过合作表现出智能行为的特性”。
-
●6.1蚁群算法
蚁群算法是一种新型的模拟进化算法,该算法在求解组合优化问题中体现出优良的特性。作为一种基于种群的启发式搜索算法,它能很好的利用蚁群的集体寻优特征来寻找蚁穴和食物之间的最短路径。
-
第七章经典逻辑知识表示和推理
人工智能的求解是以知识为基础的,一个程序具备的知识越多,它的求解问题的能力就越强。人工智能要解决知识的表示和利用的问题,并且要能够从现有的知识中获取新的知识。前者是知识如何表达,后者是知识如何推理,两者构成知识工程的核心问题。
-
●7.1命题逻辑知识表示及推理方法
命题逻辑是一种形式语言,它是把数学中的逻辑论证进行符号化,使我们能够采用数学演绎的方式,证明一个新的命题,即从哪些已知正确的命题推导出一个新命题,从而这个新的命题也是正确的。这一节就是讨论这种推导的机械化。
-
●7.2谓词逻辑知识表示及推理方法
谓词逻辑比命题逻辑有更强的表达能力。同命题逻辑类似,谓词逻辑的表示法通常是由连接符连接谓词,组成谓词逻辑公式来表示知识。由于谓词含有变量,谓词逻辑归结需要解决:如何将任一谓词逻辑表达式变成标准子句形式;如何确定那二个子句作为亲本子句;如何挑选亲本子句才更有效等问题。
-
●7.3合一算法(一)
在谓词逻辑归结过程中,寻找项之间合适的变量置换使表达式一致的过程,称为合一过程。合一算法是要找出这个合适的代换,它的目的是解决如何确定哪二个子句作为亲本子句的问题。
-
●7.4合一算法(二)
在谓词逻辑归结过程中,寻找项之间合适的变量置换使表达式一致的过程,称为合一过程。合一算法是要找出这个合适的代换,它的目的是解决如何确定哪二个子句作为亲本子句的问题。
-
●7.5谓词演算的归结算法
有了前面几节的一系列准备工作,即:将谓词逻辑公式转换为子句形式;用合一算法是要找出这个合适的代换,并确定那二个子句作为亲本子句;将亲本子句归结成新的子句,并判断是否推出矛盾。将这个过程用算法表达出来,就可以实现谓词逻辑的自动归结证明。
-
第八章非经典逻辑知识表示与推理
虽然经典逻辑在人工智能发展的历史上曾有过很重要的地位和作用,但它的表达和推理能力有一定的局限性,因而后来在人工智能领域中又兴起了一些新的逻辑推理理论和方法,即非经典逻辑知识表示与推理。非经典逻辑以模拟高级思维过程和常识为目标,突破了传统演绎逻辑的框架,试图从不同角度拓宽知识体系和解决问题的能力。
-
●8.1非单调推理
非单调推理是相对于经典逻辑单调性推理而言的, 是指在系统中为真的语句数目并非随时间而严格增加,因为新加入语句或定理可能引起原有语句或定理变成无效。这一节讨论的默认推理是典型的非单调推理。
-
●8.2D-S证据理论
证据理论产生于Arther Dempster在多值映射方面的工作,后来他的学生Glen Shafer对它的理论进行了扩充,形成了处理不确定信息的数学理论,即证据理论,也称为D-S证据理论。证据理论认为:相信一个事实和相信该事实的非的程度加起来不一定等于1,当没有信息可用于判断时,人们往往只好采取既不相信事实A又不相信事实~A;这时相信A的程度加上不相信A的程度为:0+0=0,而不是概率等于1,所以在很多情况下它更真实地反映了人们采集证据时,信念值与信念的之间联系。
-
●8.3贝叶斯推理
最常见的不确定性是随机性,因此不确定性推理与概率有许多内在的联系,使用概率进行不确定性推理的方法称为概率推理。在概率推理中,概率一般解释为对证据和规则的主观信任度,其中起支撑作用的是所谓的贝叶斯规则。这一节就是展示如何利用贝叶斯规则进行不确定性推理。
-
第九章神经网络与卷积神经网络
人工神经网络是模拟人脑及其活动的一个数学模型,它由大量的处理单元通过适当的方式互连构成,是一个大规模的非线性自适应系统。在不同的应用中,人工神经网络还可以叫做人工神经系统(ANS)、神经网络(NN)、自适应系统(Adaptive Systems)、自适应网(Adaptive Networks)、联接模型(Connectionism)神经计算机(Neuron Computer)等。卷积神经网络是作为一个深度学习架构提出的,卷积神经网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
-
●9.1单层前向网络
单层前向网络:指拥有的计算节点(神经元)只有一层。单层感知机(Perceptron):属于典型单层前向网络,是一种有导师学习(即有监督学习)的模型。感知机是神经网络用来进行模式识别的一种最简单模型,但这种由单个神经元组成的单层感知机,只能用来实现线性可分的两类模式的识别。感知机模型在神经网络研究中有着重要的意义和地位,因为感知机模型包含了自组织、自学习的思想。
-
●9.2卷积神经网络
卷积神经网络是人工神经网络的一种,在深度学习中占有重要的地位,它是第一个真正成功训练多层网络结构的学习算法,已成为当前语音分析和图像识别、乃至像AlphaGo这样的超级博弈程序等领域的研究热点。
-
第十章机器学习与深度学习
计算机自动获取知识一般称为机器学习。机器学习的一般简单模型就是从环境到学习部件、到知识库、到执行部件,再由执行部件反馈到环境的循环过程。深度学习的出现,并有效地应用于图像识别、自然语言处理和围棋竞赛程序AlphaGo中,使机器学习达到了一个前所未有的高度,给人工智能的研究带来新的突破。
-
●10.1深度学习
最近的十年间,人工智能技术再次出现了前所未有的爆发性增长和繁荣期,是深度学习技术的兴起是本次人工智能繁荣大潮的重要推动力。根本上来说,深度学习是一种用数学模型对真实世界中的特定问题进行建模,以解决该领域内相似问题的过程。
-
●10.2深度学习的直观理解
这一节的讲授中,假设深度学习要处理的数据是信息的“水流”,而处理数据的深度学习网络是一个由管道和阀门组成多层的巨大水管网络;水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后、逐层完全连通的水流系统。这就是一种基本的深度学习网络的连接模型。
-
第十一章数据挖掘与Web挖掘
数据挖掘是指从大量数据中挖掘出隐含的、未知的、对决策有潜在价值的知识和规则的高级处理过程,数据挖掘不仅是面向特定数据库的简单检索查询调用,而且要对这些数据进行微观乃至宏观的统计、分析、综合和推理;Web挖掘指使用数据挖掘技术在WWW数据中发现潜在的、有用的模式或信息,Web挖掘也涉及了多个研究领域,包括数据库技术、信息获取技术、统计学、人工智能中的机器学习和神经网络等。
-
●11.1一般数据挖掘方法
数据挖掘起源于从数据库中发现知识,数据挖掘是从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,这些信息的表现形式为:规则、概念、规律及模式等,可帮助决策者分析历史数据及当前数据,从中发现隐藏的关系和模式,进而预测未来可能发生的行为。
-
●11.2关联规则挖掘
关联规则的挖掘是最为典型的数据挖掘工作之一,推动这种挖掘迅猛发展的是大型零售组织所面临的决策支持问题。关联规则挖掘通过对以往的大量交易数据进行分析,获得有关顾客购买模式的有用信息,从而提高商业决策的质量。
-
第十二章大数据与人工智能
大数据指无法在一定时间范围内用常规软件工具和常规的处理方法进行获取、管理和处理的数据集合,是需要新处理模式和技术才能成为,具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据离不开云计算,在以云计算为代表的技术创新大幕的衬托下,这些原本看起来很难收集和使用的数据开始容易被利用起来了,通过各行各业的不断创新,大数据会逐步为人类创造更多的价值。
-
●12.1大数据与人工智能
数据升华为智能,需要经过:数据收集、数据传输、数据存储、数据分析和处理、数据检索和挖掘等几个步骤,这个过程离不开大数据和云计算,因此云计算、大数据、人工智能都是相互依存的。
-
第十三章专家系统与人工智能工具
专家系统是人工智能应用研究最重要和最活跃的研究课题之一。随着知识工程的日渐丰富和成熟,各种各样的实用专家系统如雨后春笋般地在世界各地不断涌现,取得很大的成功。由于近年来大数据和深度学习的迅猛发展,已取得前所未有的卓越成果,目前有很多非常优秀的人工智能工具相继出现,极大地推动了大数据和深度学习的应用。
-
●13.1专家系统
专家系统是一种具有大量专门知识的计算机智能程序系统,它能运用特定领域一位或众多专家提供的专门知识和经验,并采用推理技术及其他人工智能技术,模拟该领域中解决通常由专家才能解决的各种复杂问题。
-
●13.2人工智能开源工具
随着人工智能和机器学习等新兴技术的应用需求不断增长,不同的AI框架和API应运而生。这一节将介绍一些流行的人工智能开源工具,其中包括微软和亚马逊、谷歌等科技巨头的顶级产品。