《人工智能初步》PPT课件.ppt
人工智能初步培训讲稿引言人工智能(Artificial Intelligence,缩写为AI)一词自从1956 年在Dartmouth学会上提出至今,研究者们已经发展了众多理论和原理,人工智能的概念也随之扩展。人工智能是一门极富挑战性的科学,它涉及计算机知识、心理学和哲学。人工智能由不同的领域组成,如机器学习,计算机视觉等等。人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。引言 何谓“复杂工作”?不同的时代、不同的人会有不同的理解。例如,繁重的科学和工程计算本来是要人脑来承担的,而现代计算机不但能完成这种计算,而且比人脑做得更快、更准确。当代人已不再把这种计算看作是“需要人类智能才能完成的复杂任务”。复杂工作的定义是随着时代的发展和技术的进步而变化的,人工智能这门科学的具体目标也自然随着时代的变化而发展。它一方面不断获得新的进展,一方面又转向更有意义、更加困难的目标。引言 人工智能在某种意义上,可以把它理解成为机器系统的智能,是机器调度各种知识来解决问题的一是机器调度各种知识来解决问题的一种能力种能力。如果机器有了这种能力,这个机器就可以帮助人去做很多很多的事情,甚至是相当复杂的事情。已经出现的许多不同功能的机器人,可以在很多场合来完成本来应该由人来完成的工作。例如,清洁机器人、机器人足球、在一些具有危险性的场合运用机器人替代人去完成危险的操作,等等。引言 机器的智能,显然要介于植物和人类之间,它可以认识问题、解决问题,甚至能够抽象的认识世界、优化世界。唯一与人不一样的地方它不能够像人一样进行创造性思维。人工智能是要把人的智能的机制和信息科学技术相结合。因此我们讲人工智能是生物学与信息学的一种交叉科学技术。引言 目前能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器就是计算机,人工智能的发展历史是和计算机科学与技术的发展史联系在一起的。除了计算机科学以外,人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。人工智能研究的主要内容人工智能研究的主要内容人工智能学科研究的主要内容包括人工智能学科研究的主要内容包括:1.知识表示2.自动推理和搜索方法3.机器学习和知识获取4.知识处理系统5.自然语言理解6.计算机视觉7.智能机器人8.自动程序设计 知识表示 知识表示是人工智能的基本问题之一,推理和搜索都与表示方法密切相关。常用的知识表示方法有:逻辑表示法、产生式表示法、语义网络表示法和框架表示法等。常识的表示受到人们的关注。已提出多种方法,如非单调推理、定性推理,从不同角度来表达常识和处理常识。自动推理和搜索方法 问题求解中的自动推理是知识的使用过程,由于存在多种知识表示方法,相应地有多种推理方法。推理过程一般可分为演绎推理和非演绎推理。谓词逻辑是演绎推理的基础。结构化表示下的继承性推理是非演绎性的。由于知识处理的需要,近几年来提出了多种非演泽的推理方法,如连接机制推理、类比推理、基于示例的推理、反绎推理和受限推理等。自动推理和搜索方法 搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个推理步骤中知识被使用的优先关系。无信息导引的盲目搜索:无信息导引的盲目搜索:广度优先,深度优先。利用经验知识导引的启发式搜索:利用经验知识导引的启发式搜索:启发式知识常由启发式函数来表示,启发式知识利用得越充分,求解问题的搜索空间就越小。搜索方法的研究已经关注那些具有百万节点的超大规模的搜索问题。出现了诸如模拟退火、遗传算法、蚁群算法等优化搜索算法。机器学习和知识获取 机器学习是人工智能的另一重要课题。机器学习是指在一定的知识表示意义下获取新知识的过程,按照学习机制的不同,主要有归纳学习、分析学习、连接机制学习和遗传学习等。机器学习是要使计算机能模拟人的学习行为,自动地通过学习获取知识和技能,不断改善性能,实现自我完善:三个方面的研究内容:()学习机理研究学习机理研究()学习方法研究学习方法研究()面向任务研究面向任务研究知识处理系统知识处理系统主要由知识库和推理机组成1.知识库存储系统所需要的知识,当知识量较大而又有多种表示方法时,知识的合理组织与管理是重要的。2.在问题求解时,规定使用知识的基本方法和策略,推理过程中为记录结果或通信需要设置数据库或采用黑板机制。3.如果在知识库中存储的是某一领域(如医疗诊断)的专家知识,则这样的知识系统称为专家系统。为适应复杂问题的求解需要,单一的专家系统向多主体的分布式人工智能系统发展,这时知识共享、主体间的协作、矛盾的出现和处理将是研究的关键问题。自然语言理解自然语言处理 自然语言的处理是人工智能技术应用于实际领域的典型范例,经过多年艰苦努力,这一领域已获得了大量令人注目的成果。目前该领域的主要课题是:计算机系统如何以主题和对话情境为基础,注重大量的常识世界知识和期望作用,生成和理解自然语言。这是一个极其复杂的编码和解码问题。智能信息检索技术 受信息技术迅猛发展的影响,信息获取和精化技术已成为当代计算机科学与技术研究中迫切需要研究的课题,将人工智能技术应用于这一领域的研究是人工智能走向广泛实际应用的契机与突破口。智能机器人 机器人一般地可以看作为自动机器。自动机器就是自动机。比方说大家家里用的洗衣机也好,电冰箱也好,甚至你家庭的这些操作系统也好,或者像大家比较熟悉的程控交换机,通信网里头的所有这些装置都是自动机。自动机器的共同特点:由设计机器的人,事先用一个程序来描述机器要做的各种各样的工作。机器只能够按部就班地完成这些程序,它不能做别的事,程序里头没有的事情,机器不会做,它是一个严格受限于设计者事先设计的内容,而且只能解决特定的问题。智能机器人 智能机器它没有一个事先固定的,按部就班的程序。设计者事先给它输入的东西:一、是必要的知识;二、是你的问题;三、是你的规则;四、是你的目标或者成功和失败的准则。当一个问题出现以后,智能机器会针对这个问题,在知识当中去寻找能够解决这个问题的知识,这些知识形成一个规则,然后去解决这个问题。而不是按人类事先指定的程序按部就班地走,这就是它的智能所在。智能化的发展 智能化对我们的现代化和我们国家现在正在推进的信息化,意义是非常大的。智能化模型告诉我们社会的进步依赖于科学技术提供的先进的生产工具,人利用这种工具去跟各种劳动对象打交道,形成先进的生产力。先进的生产力要求先进的生产关系跟它相适应,从而导致先进的经济形态,产生好的产品来满足社会的需求。老的需求满足之后,新的需求又会出现,这样不断地循环,不断地走向更高的阶段。智能化的发展 智能系统除了别的系统具有的功能以外,还具有智能。具有智能的机器,可以帮助人做更多、更好、更复杂、更重要的事情。一切有理想、有抱负的民族和个人都可以在这样一个充满梦想、机会和创新的事业中大显身手。模块学习目标对标准的理解能描述人工智能的概念能描述人工智能的概念 由于人工智能涉及的学科、理论、方法和技术十分广泛,它的应用领域也是十分宽广。我们认为,让学生对“人工智能”有一个初步的、直观的了解,引起他们对该课程的兴趣是重要的。我们选择知识与知识表示、专家系统、搜索技术以及Prolog语言的简单应用等内容作为引导学生了解“人工智能”的入门。尽量结合一些实例介绍有关概念,让学生能够直观地、准确地把握这些概念,尽管介绍是浅显的。对标准的理解 会使用一种人工智能会使用一种人工智能语言解决言解决简单问题,把握,把握其特点其特点 为了让学生能够直观地了解知识表示,我们选用Prolog语言,这是一种逻辑型语言,是基于谓词逻辑知识表示的。希望通过学习,让学生知道计算机是如何通过人工智能语言在计算机上实现“人工智能”的。对标准的理解能利用能利用简易的易的专家系家系统外壳开外壳开发简单的的专家系家系统 在教材中,我们介绍了一个简易的专家系统外壳InterModeller,通过实践体验活动,让同学了解如何使用InterModeller来设计和实现一个简易的专家系统,让他们体会到人工智能的研究和应用是如何走近我们的。对标准的理解知道人工智能知道人工智能对人人类学学习、生活的影响、生活的影响 在教材中,我们引入并设计了若干个实践体验活动来引导学生加深对有关概念的了解和把握。这些活动涉及的问题对同学们来说并不是十分陌生的,只要稍加引导,大家就会感觉到在我们的身边确实会面临这些问题。编写教材的指导思想我们希望通过形象直观的表述,让学生对人工智能的概念有一个初步的了解,同时对人工智能的应用成果有所知晓。内容的安排1.介绍知识及其表示,因为这是在计算机上实现“智能”必须面临的一步。2.介绍Prolog入门,这是一种人工智能语言,通过学习,学生们可以知了解在机器上实现智能的工具,并初步知道如何使用它,这样的安排也许可以引起他们在学习的过程中动手的兴趣。编写教材的指导思想3.“专家系统”是人工智能应用比较成功的一个领域。该系统中,对于知识及其表示,以及知识的应用推理方法,都有比较好的诠释,通过学习,学生可以对知识、知识的表示、知识的应用以及知识的实现会有一个比较完整的认识。编写教材的指导思想4.搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个推理步骤中知识被使用的优先关系。可分为无信息导引的盲目搜索和利用经验知识导引的启发式搜索。启发式知识常由启发式函数来表示,启发式知识利用得越充分,求解问题的搜索空间就越小。对于搜索技术的探索一直是人们关注的焦点。在教材中,我们给出一些简单的介绍,希望引起学生的兴趣和关注。开展本课程教学的基本思路 根据高中阶段学生的认知特点,选择那些中学生易于理解的人工智能实际应用问题作为案例展开教学。充分利用相关媒体上的信息资源和软件资源。在学习的过程中组织学生开展相关讨论,拓展学生的视野,了解人工智能技术对学习、生活的重要作用。教材构思“人工智能初步”分为五章:(一)人工智能的简介(二)知识与知识表示(三)Prolog入门(四)专家系统(五)搜索技术教材结构知识及其表示搜索技术专家系统Prolog入门算法状态空间表示人工智能简介逻辑表示产生式规则表示一种工具一种工具人工智能简介 首先介绍人工智能的基本概念,然后介绍人工智能的几个应用领域。为了引起学生的学习兴趣,让他们知道这些应用并不是纸上谈兵,我们结合已经实现的应用系统,让同学们通过实践体验的方式来体验这些应用。在阅读材料中,我们采用文字加插图来介绍人工智能发展历程中的几件有影响的事,以一种比较形象的方式介绍人工智能发展史。人工智能简介 我们引进一些网站的目的就是希望引导同学主动的去查找一些人工智能的成功应用案例,激发他们自主学习的能力,学会如何从不同的媒体中寻找自己感兴趣的资料和信息。知识与知识表示关于知识的基本概念 知识是人类进行智能活动的基础,是人类对信息和信息之间联系的认识,是人们利用这些认识解决实际问题的方法和策略。介绍知识及其表示的出发点,就是要让学生知道“人人类知知识是什么是什么”?“机器是如何表示知机器是如何表示知识的的”?知识与知识表示几种知识表式的方法 谓词表示法;产生式规则表示法;与或数表示法;状态空间表示法(第五章介绍);语义网络表示法和框架表示法。为了让同学们对知识具有比较完整的了解,我们还介绍了不确定知识的概念。尽管不确定性的概念对于高中生来说似乎抽象了一些,但是我们通过浅显的例子说明知识的不确定性是什么?知识的不确定性又是如何来表示的?以帮助他们的理解。知识与知识表示 通过实践体验的方式将汽车故障诊断系统介绍给大家,使得同学们对这些知识具有直观的了解。通过“知识与知识表示”的学习,希望同学们对这部分的内容有所了解,在教学的过程中,我们建议以介绍谓词表示法、产生式规则表示法、状态空间表示法为主。在学习过程中,如何引起学生的兴趣是重要的,结合实例介绍相关概念就是为了让他们知道在机器上表示知识是如此的直接。组织一些课堂讨论,启发学生用不同的方法表示生活中的各种知识。Prolog入门Prolog的入的入门知知识1.“Prolog程序实例”2.“Prolog工作机理”3.“Turbo Prolog程序设计”4.“用Prolog求解简单问题”通过这些内容的介绍让同学们对Prolog语言有一个初步的了解。Prolog入门 为了使学生快速入门,我们先以家庭关系描述为例,引入人工智能语言Prolog,它能够比较清楚、方便地表示一个家庭中的人际关系,使学生对Prolog语言有一个总体的认识。本章的目的是让学生掌握Prolog语言的三个基本语句,理解Prolog的工作机理,能够运用Turbo Prolog2.0集成开发环境,学会编写简单Prolog程序的方法。Prolog入门 要求学生能够读懂书中介绍的程序,能够在机器上运行它们。同时,能够用Prolog语言表示事实、规则和询问,能够用Prolog语言编制程序来解决简单的人工智能问题。我们给出了使用Turbo Prolog2.0集成开发环境求解简单的人工智能问题的若干实例。这个平台可以从相关网站上下载,鼓励他们实现一些简单的算法,即使在机器上实现我们给出的实例也是有意义的,这有助于他们理解。Prolog入门 “递归”是程序设计中一个非常重要但又比较难以理解和掌握的概念,我们通过描述汉诺塔问题的求解过程介绍递归程序的设计方法,使得他们对其有一个了解,能够理解汉诺塔问题的求解过程,这是我们介绍这个概念的出发点。专家系统简单介绍专家系统的发展历程以及专家系统的基本特征。为了让同学对专家系统有一个比较完整的了解,我们介绍了专家系统的基本结构。通过描述疾病诊断系统MYCIN的一次诊断过程来告诉大家专家系统是什么?我们结合两个典型的专家系统说明专家系统中的知识是如何表示的,它又是怎样运用系统中的知识来解决问题的。专家系统 运用现有的知识通过推理的方式来解决问题是人类专家经常采用的途径。在专家系统中常用的推理方法主要有正向推理、反向推理和双向推理,以及不精确推理。通过具体的例子说明如何实现这些推理过程,使得同学能够直观地理解这些推理方法。不追求全面、严格地介绍推理的原理和方法,而是希望讲清楚基本的概念,让同学们知道推理是如何进行的。专家系统 结合例子介绍专家系统中的解释机制。通过学习,希望学生对专家系统是什么?专家系统又是如何完成任务?这些问题有一个比较明确的了解。介绍一个专家系统的外壳InterModeller,设计了实践体验活动,让同学们在活动的过程中了解如何在InterModeller中运行运行专家系统,如何在InterModeller中设计设计简单的专家系统。专家系统 建议以“正向推理”作为介绍重点,结合一些实例说明推理是如何进行的。可以引导学生思考“在日常生活中是否具有正向推理的案例”?比方说:几何结论的推理过程;代数结论的论证过程等等。引导学生模仿教材中的例子建立一个专家系统。主要让他们知道如何建立规则库、确定推理机制和冲突解决策略。比方说:家庭保洁系统等。专家系统的例案例:假设一个交易系统:客户提出要买的东西,卖交易系统:客户提出要买的东西,卖家提供要卖的东西,如果有符合的,就成交。家提供要卖的东西,如果有符合的,就成交。这是一个很简单的系统,用一般程序语言也可以实现,但是用专家系统开发的方法更简单。1 第一条规则:如果来了新的客户,那么取得这个客户所有需要的商品,并产生新的事实。专家系统的例 假设来了一个客户Danny,先查询规则库,规则1的条件符合,触发这个规则,注意所有的规则之间没有顺序性。然后查询用户所有需要的商品。例如得到的结果是(Computer Keyboard,Mouse),那么规则匹配这些结果,每一个商品都会产生一个新的事实。专家系统的例2 第二个规则:出现一个新卖家,原理和规则2类似。3 最后一个是交易的规则:当有买家购买一个商品,卖家卖一个商品,并且两者有相同的事实时,告诉卖家有人要买该物品,同时也告诉买家有卖家卖出该物品 使用专家系统,是通过定义规则的方式来积累经验,而不是通过If else 这样的代码来积累经验。搜索技术 介绍知识的状态空间表示法的基本概念,通过实例说明如何用状态空间法来表示实际问题。介绍状态空间问题求解的基本方法搜索。搜索是人工智能的核心技术。尽管对于一个高中生来说“搜索或搜索算法”可能还是一个陌生的概念,但是在日常生活中,经常会面临不同的搜索问题。搜索技术 结合八数码问题详细描述了广度优先搜索、深度优先搜索及启发式搜索的搜索过程。广度和深度优先搜索均为盲目搜索,它与启发式搜索不同的是没有应用搜索过程中获得的信息指导后继搜索过程,但它们都可以用状态空间搜索策略来实现。搜索技术 介绍博弈问题。通过几个简单的实例说明如何将实际问题归结为博弈问题。对于两人对局问题,介绍了通过博弈树搜索来求解最优策略的过程。我们认为,启发式搜索似乎抽象了一些,但是只要让学生了解到,由于利用了搜索过程中产生的信息,使得搜索过程消耗的时间减少,达到优化算法的目的,就是一种搜索策略。搜索技术 Open表和Closed表是实在计算机上实现搜索算法是采用的数据结构,结合两个表的介绍,可以让学生知道机器是如何完成搜索任务的。采用Open表和Closed表这样的数据结构,不管是什么样的搜索算法,它们的差别只是体现在如何组织和维护Open表和Closed表。启发式搜索还会涉及启发式信息的获取和表示,但是,这些信息的作用也是体现在对表的维护上。搜索技术 为了提高学生的学习兴趣,建议引导学生运行一些已经实现的算法。比方说,朱福喜、朱三元、伍春香等编著的人工智能基础教程所附的光盘中实现了八数码、野人传教士过河等问题的求解。尽管演示过程中无法看到具体算法如何实现,但是,可以看到求解的过程,可以结合这个过程,来解释搜索算法的思想,还是很有帮助的。对于搜索算法的思想以及状态的表示可以如下介绍:图搜索的一般算法-框架结构:(1)建立一个只含有起始结点S的搜索图G,图中每个结点有一个指向其父结点的指针,S的这一指针为一特殊值(如空指针0),并把S放入未扩展结点表OPEN中;(2)建立已扩展的结点表CLOSED,初始时该表为空;(3)LOOP:若OPEN表为空,则失败退出;(4)把OPEN表中的第一个结点第一个结点移出,放入CLOSED表中,称其为n结点;(5)若n为目标结点,则成功退出。问题的解是沿指针追踪G中从n到S的路径而得到的;图搜索算法搜索算法举例例八数八数码难题初始状态:2 8 3 目标状态:1 2 3 1 6 4 8 0 4 7 0 5 7 6 5应用广度搜索算法(6)扩展结点n,生成不是n的祖先的那些后继结点的集 合M.如果没有后继结点,则转LOOP;(7)把那些不在G中的M的成员作为n的后继结点加入 G,并设置一个通向n的指针,把它们加入OPEN表.对已在G中的M的成员,调整有关指针;(8)按某种方式,重排OPEN表;(不同的排法,对应不同的搜索算法)(9)转LOOP.OPENCLOSED n 2 8 31 6 4 7 0 5 2 8 3 2 8 3 1 6 4 1 6 4 7 0 5 7 0 5 2 8 3 2 8 3 2 8 3 2 8 31 6 4 1 0 4 1 6 4(生成的3个 1 6 40 7 5 7 6 5 7 5 0子结点)7 0 52 8 3 2 8 3 2 8 3 2 8 3 2 8 31 0 4 1 6 4 1 6 4 1 6 4 1 6 47 6 5 7 5 0 7 0 5 0 7 5 0 7 52 8 3 2 8 3 2 8 3 2 8 3 2 8 31 0 4 1 6 4 0 6 4 1 6 4 1 6 47 6 5 7 5 0 1 7 5 7 0 5 0 7 5OPENCLOSED n 2 8 3 2 8 3 2 8 3 2 8 3 2 8 3 2 8 31 6 4 0 6 4 1 6 4 1 6 4 1 0 4 1 0 47 5 0 1 7 5 7 0 5 0 7 5 7 6 5 7 6 52 8 3 2 8 3 2 8 3 2 0 3 2 8 3 2 8 3 2 8 3 2 8 31 6 4 0 6 4 0 1 4 1 8 4 1 4 0 1 6 4 1 6 4 1 0 47 5 0 1 7 5 7 6 5 7 6 5 7 6 5 7 0 5 0 7 5 7 6 5 2 8 3 2 8 3 2 0 3 2 8 3 2 8 3 2 8 3 2 8 3 2 8 3 2 8 30 6 4 0 1 4 1 8 4 1 4 0 1 6 4 1 6 4 1 0 4 1 6 4 1 6 41 7 5 7 6 5 7 6 5 7 6 5 7 0 5 0 7 5 7 6 5 7 5 0 7 5 02 8 3 2 8 3 2 0 3 2 8 3 2 8 3 2 8 3 2 8 3 2 8 3 2 8 30 6 4 0 1 4 1 8 4 1 4 0 1 6 0 1 6 4 1 6 4 1 0 4 1 6 41 7 5 7 6 5 7 6 5 7 6 5 7 5 4 7 0 5 0 7 5 7 6 5 7 5 02 8 31 6 47 0 52 8 31 6 40 7 52 8 31 0 47 6 52 8 31 6 47 5 02 8 30 6 41 7 52 8 30 1 47 6 52 0 31 8 47 6 52 8 31 4 07 6 52 8 31 6 07 5 4283164705283164075283104765283164750283064175283014765203184765283140765283160754083264175283604175283714065023184765230184765280143765283145760283106754083214765280163754803264175203684175283640175803214765208143765283145706283016754203186754283156704283674105208163754830264175863204175230684175830214765813204765283704615283714650123804765023684175123784065283714605280643175283645170283674150283674015123084765234180765CLOSED长:26 OPEN长:21 八数码难题的启发式搜索方法估价函数:f(n)=d(n)+w(n)其中:d(n)为n的深度 w(n)为不在位的棋子数如起始结点2 8 31 6 47 0 5其f值为0+4=4 2 8 3 1 6 4 7 0 5 2 8 3 2 8 3 2 8 31 6 4 1 0 4 1 6 40 7 5 7 6 5 7 5 0 2 8 3 2 0 3 2 8 30 1 4 1 8 4 1 4 07 6 5 7 6 5 7 6 5 0 8 3 2 8 3 0 2 3 2 3 0 2 1 47 1 4 1 8 4 1 8 4 7 6 50 6 5 7 6 5 7 6 5 1 2 3 0 8 4 7 6 5 1 2 3 1 2 3 8 0 47 8 4 7 6 50 6 5CLOSED:6OPEN:8课堂讨论 讨论估价函数的作用体现在哪里?(Missionaries)传教士与(Cannibals)野人过河问题:三个传教士和三个野人来到河边,有一条船可供一人或两人乘渡,在渡河过程中,任一岸的野人数若大于传教士数,野人就会吃掉传教士。他们怎样才能安全过河?状态描述:用左岸的传教士和野人的人数描述,初始状态为(3M,3C),目标状态为(0M,0C)。产生式规则(条件为船所在的岸边要有相应的人数),也就是操作:从左岸到右岸时船的状态:(2M,0C),(0M,2C),(1M,1C),(1M,0C),(0M,1C)从右岸到左岸时船的状态:(0M,1C),(1M,0C),(1M,1C),(0M,2C),(2M,0C)估价函数:M+C 当M=C,0,3 时H=M+C+10 当MC 且 0M3时,此时,某岸的野人多于传教士,存在风险(3M,3C)(1M,3C)(3M,1C)(2M,2C)(2M,3C)(3M,2C)(3M,2C)(2M,3C)(1M,2C)(3M,0C)(2M,1C)(3M,1C)(1M,1C)(2M,0C)(1M,2C)(2M,1C)(2M,2C)左岸到右岸 (2M,0C)(0M,2C)(1M,1C)(1M,0C)(0M,1C)右岸到左岸 (0M,1C)(1M,0C)(1M,1C)(0M,2C)(2M,0C)(2M,1C)讨论第二行中间的一个结点(2M,2C)(船在右岸)与最下面一行的(2M,2C)(船在左岸)是否为相同的状态?