人工智能实践教程(一)

 本文为《人工智能实践教程》学习总结和感悟,先写书中内容,再写自己的思考     2017年10月20日,实验室    

 现在人工智能就是用计算机去模拟人类智能。为什么计算机可以模拟人类的智能?

这是因为人和计算机都是物理符号系统。能够实现输入符号、输出符号、存储符号、复制符号、通过找出符号间关系建立符号结构、条件性迁移就是一个完整的物理符号系统。假设物理符号系统的6种功能是智能的充分必要条件,那么就可以推出,人有智能,所以人是物理符号系统,计算机是物理符号系统所以计算机能有智能。当然现在,人类无论是获取、存储信息还是初级处理都与计算机大不相同,所以计算机和人相比智能水平有限。

人工智能有哪些学派?智能的起源究竟是什么?

人工智能主要有符号主义、连接主义和行为主义学派。符号主义学派。符号主义学派的观点是智能行为可以通过符号操作来实现,人工智能源于数理逻辑。以此依据,符号主义学派做出了定理证明系统。联结主义学派认为人的思维基元是神经元,智能是相互联结的神经元竞争与协作的结果。代表作品为人工神经网络。行为主义学派认为人工智能源于控制论,代表作品就是与环境可以交互的智能机器人。这三个学派各有所长,实际工程中可以融合使用,以解决问题为目的。

对于智能起源问题我的看法是低级智能是伴随生物的竞争和进化出现的,如从远古单细胞动物到草原中的狮子,生物对环境的感知和自身能动性越来越强。而高级智能的起源我认为是语言,语言构造的庞杂丰富的知识(如诗词歌赋)让人类具有了决策能力,想象力,好奇心等。在此只做简介,另一篇博文中《人工智能的思考》详细介绍。

人工智能有哪些领域?

1.智能感知   模式识别:首先通过传感器把各种物理量转化为数值或符号。再通过消除噪声,排除不相干的信号,特征计算等识别有效信息,然后通关特征选择和提取形成特征

                                           空间,模式分类或匹配在特征空间基础上进行。可以类比人类的识字过程。

                  自然语言理解:让计算机理解人类语言不像人类查字典就可以理解,理解必须依赖于知识背景,习惯用法,具体情境。

计算机视觉:光学图像取样量化得到灰度值组成的二维阵列,提取边缘,周长,惯性矩等特征,匹配特征库中的已知物体,得出结果。可以想象计算机 怎么识别

猫。

2.智能推理    推理与逻辑相辅相成。

搜索技术:简单来讲就是在有限时间内或者有限空间里通过一定方法找出问题的解。

定理证明,专家系统;用程序推理,实现知识。

3.智能学习    学习方法:归纳学习、类比学习、分析学习、连接学习和遗传学习。

记忆与联想:传统方法的联想是指针、链表等,机器是按地址存取方式进行的,如“int a=1;”开辟一块内存区域放入1,计算机可以通过a或者内存区域的地址访 问。而人脑的联想按内容,说起西瓜就能想到椭圆,不必关心椭圆存在人脑的位置。

神经网络:利用大量简单计算单元,组成一个大网络,通过大规模并行计算来完成。很少利用先验知识,直接通过数据学习与训练,自动建立计算模型。比如:加

一操作,你不事先编辑程序,而是输入{(1,2),(2,3)……}让它学会加一

进化计算和遗传算法:学习不仅可以通过单个生物体的适应实现,而且可以通过一个种群的多代进化适应发生。如吃豆子游戏,将生存表现好的豆子双性繁殖。

4.智能行动    依赖良好的感知、推理和学习。

智能控制:驱动智能机器自主实现其目标,注意力不在数学模型而在任务和世界模型的描述。比如:你让小孩去打酱油,你让他出门左拐走100米再右拐500米是

传统的做法,现在你告诉他红灯停,绿灯行,靠右行走,商店是尖顶红瓦,让他自己去规划路径并打回来酱油。

规划和机器人学:和智能控制类似,本质是以一种允许对不断变化的环境做出响应的方式来做出规划,比如上面的小孩在道路被封了以后选择·其他合理路径。

分布式人工智能:各智能体之间的合作和对话,具有全局概念·,如机器人足球比赛,无人驾驶。

数据挖掘与知识发现:综合运用统计学,粗糙集,模糊数学,机器学习从大量数据中提炼出抽象的知识。

人工生命和游戏。


S先生与P先生谜题
有大于等于2但小于等于99的两个数:m、n
S先生知道两数的和(m+n),P先生知道两数的积(mn)
二人进行了如下对话
S先生:我知道 你不知道m、n是什么,我也不知道
P先生:现在我知道m、n是什么了
S先生:现在我也知道m、n是什么了


对话导致知识的增加为推理提供了依据。

1. 如果S是以下数的话,根据2≤X≤Y≤99,S先生可直接知道X和Y
S = 4时,X = 2,Y = 2 
S = 5时,X = 2,Y = 3 
S = 197时,X = 98,Y = 99 
S = 198时,X = 99,Y = 99
由S先生的第一句话的后半部分知,S不可能是以上4个数中的任何一个数.
2. 如果X和Y均为素数的话,则P先生在得知P的情况下,可以轻松算出X和Y,如P = 481 = 13×37.所以由S先生的第一句话的前半部分得知,S不可能被表示为两个素数的和,即X和Y不可能都是素数.举个例子:如果S = 84的话,则可能有X = 5,Y = 79,则这时P可能是P = 5 × 79 = 395,P先生可以轻松得出X和Y.所以,如果S是84的话,S先生是不能肯定P先生不知道X和Y的,所以
S是不能被表示为两个素数的和的数 (a)
先别忙算,还可以缩小S的取值范围.
3. 如果X或Y中,仅有一个是素数,且该数大于50,则P先生还是能在仅知道P的情况下解出X和Y的.设P可以分解为以下几个素数的积:
P = p0p1p2...pn
其中pn是大于50的素数,因为
pn > 50
故对任何素数p,均有
pnp> 100
故X和Y中必有一数等于pn,而另一数等于p0p1p2...pn-1.大于50的最小素数为53,故如果
53 + 2 ≤S ≤ 53 + 99
即当
55 ≤S ≤ 152
时,S先生是不能肯定P先生不能算出X和Y的.小于99的最大素数为97,故当
97 + 2 ≤S ≤ 97 + 99
即当
99 ≤S ≤ 196
时,S先生也不能肯定P先生不能算出X和Y的.
故根据S先生的第一句话,S取值范围为:
6 ≤S ≤ 54 (b)
4.根据哥德巴赫猜想的验证,可以轻松确定,区间[6, 54]中的所有偶数均能被表示为两个素数的和(如果不怕麻烦,也可以自己验证一下嘛),故S是区间[7, 53]中的某个奇数.因为2是素数,故也有一些奇数也可以表示为两个素数的和,找出[3, 53]中的素数,与2相加,再进一步剔除区间[6, 54]中能被表示为两个素数之和的奇数:
7 = 2 + 5
9 = 2 + 7
13 = 2 + 11
15 = 2 + 13
19 = 2 + 17
21 = 2 + 19
25 = 2 + 23
31 = 2 + 29;
33 = 2 + 31
39 = 2 + 37
43 = 2 + 41
45 = 2 + 43
49 = 2 + 47
故根据S先生的第一句话,可以确定S的值只可能是以下几个数之一:
11, 17, 23, 27, 29, 35, 37, 41, 47, 51, 53
设集合A={11,17,23,27,29,35,37,41,47,51,53},则
S∈A (c)
5.由P先生的那句话,得知P先生根据S先生的第一句话,得出了结论c,在已知P的情况下算出了X和Y.
设P的素数分解为:
P = p0p1p2... pi...pn (n>2)
则存在唯一的
X = p0p1p2... pi
Y = pi+1...pn
满足
X + Y = S∈A
将这个结论(条件)命为d,满足这个条件的P组成集合B.
举例说明,设P=130,对P进行素数分解有:
P = 2×5×13
这时X和Y的解可能为(2,65)、(5,26)或(10,13),但仅有(10,13)这组解满足:
10+13=23∈A
于是当P=130时,根据结论c,P先生可解出X和Y.但当P=18,24,28,……时,P先生也可以求出X和Y来.
6.S先生根据P先生的那句话,也解出了X和Y来,也即是对于S先生所知的S根据条件d,解出了X和Y.即在S的和表达式
S = X0 + Y0
S = X1 + Y1
S = X2 + Y2
……
S = Xn + Yn 
中仅有一组(Xi,Yi)的积P满足条件d,即满足
P = Xi×Yi
P ∈ B
这样S先生才能解出X和Y.
现对集合A中的元素逐一验证:
当S=11时,有
S = 2 + 9,P = 2×9 = 18∈B
S = 3 + 8,P = 3×8 = 24∈B
S = 4 + 7,P = 4×7 = 28∈B
当S=17时,仅有
S = 4 + 13,P = 4×13 = 52∈B
当S=23时,有
S = 4 + 19,P = 4×19 = 76∈B
S = 7 + 16,P = 7×16 = 112∈B
S = 10 + 13,P = 10×13 = 130∈B
……
总之,只有当S=17时,才存在唯一的一组(4,13)满足
S = 4 + 13 = 17∈A
P = 4×13 = 52∈B
解得X=4,Y=13


你可能感兴趣的:(人工智能)