学习人工智能AI需要哪些最基础的知识?
2017-06-20 15:53
537 查看
人工智能的定义可以分为两部分,即“人工”和“智能”。“人工”比较好理解,争议性也不大。有时我们会要考虑什么是人力所能及制造的,或着人自身的智能程度有没有高到可以创造人工智能的地步,等等。但总的来说,“人工系统”就是通常意义下的人工系统。
关于什么是“智能”,就问题多多了。这涉及到其它诸如意识(consciousness)、自我(self)、思维(mind)(包括无意识的思维(unconscious_mind)等等问题。人唯一了解的智能是人本身的智能,这是普遍认同的观点。但是我们对我们自身智能的理解都非常有限,对构成人的智能的必要元素也了解有限,所以就很难定义什么是“人工”制造的“智能”了。因此人工智能的研究往往涉及对人的智能本身的研究。其它关于动物或其它人造系统的智能也普遍被认为是人工智能相关的研究课题。
人工智能目前在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用--机器视觉:指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统等。
人工智能(Artificial Intelligence)是研究解释和模拟人类智能、智能行为及其规律的一门学科。其主要任务是建立智能信息处理理论,进而设计可以展现某些近似于人类智能行为的计算系统。AI作为计算机科学的一个重要分支和计算机应用的一个广阔的新领域,它同原子能技术,空间技术一起被称为20世纪三大尖端科技。
人工智能学科研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。
知识表示是人工智能的基本问题之一,推理和搜索都与表示方法密切相关。常用的知识表示方法有:逻辑表示法、产生式表示法、语义网络表示法和框架表示法等。
常识,自然为人们所关注,已提出多种方法,如非单调推理、定性推理就是从不同角度来表达常识和处理常识的。
问题求解中的自动推理是知识的使用过程,由于有多种知识表示方法,相应地有多种推理方法。推理过程一般可分为演绎推理和非演绎推理。谓词逻辑是演绎推理的基础。结构化表示下的继承性能推理是非演绎性的。由于知识处理的需要,近几年来提出了多种非演泽的推理方法,如连接机制推理、类比推理、基于示例的推理、反绎推理和受限推理等。
搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个推理步骤中知识被使用的优先关系。可分为无信息导引的盲目搜索和利用经验知识导引的启发式搜索。启发式知识常由启发式函数来表示,启发式知识利用得越充分,求解问题的搜索空间就越小。典型的启发式搜索方法有A*、AO*算法等。近几年搜索方法研究开始注意那些具有百万节点的超大规模的搜索问题。
机器学习是人工智能的另一重要课题。机器学习是指在一定的知识表示意义下获取新知识的过程,按照学习机制的不同,主要有归纳学习、分析学习、连接机制学习和遗传学习等。
知识处理系统主要由知识库和推理机组成。知识库存储系统所需要的知识,当知识量较大而又有多种表示方法时,知识的合理组织与管理是重要的。推理机在问题求解时,规定使用知识的基本方法和策略,推理过程中为记录结果或通信需设数据库或采用黑板机制。如果在知识库中存储的是某一领域(如医疗诊断)的专家知识,则这样的知识系统称为专家系统。为适应复杂问题的求解需要,单一的专家系统向多主体的分布式人工智能系统发展,这时知识共享、主体间的协作、矛盾的出现和处理将是研究的关键问题。
需要数学基础:高等数学,线性代数,概率论数理统计和随机过程,离散数学,数值分析。
需要算法的积累:人工神经网络,支持向量机,遗传算法等等算法;当然还有各个领域需要的算法,比如要让机器人自己在位置环境导航和建图就需要研究SLAM;总之算法很多需要时间的积累。
需要掌握至少一门编程语言,毕竟算法的实现还是要编程的;如果深入到硬件的话,一些电类基础课必不可少。
相关文章推荐
- 心得丨学习人工智能AI需要哪些最基础的知识?
- 心得丨学习人工智能AI需要哪些最基础的知识?
- 人工智能AI需要掌握哪些基础知识?
- 学习Swoole需要掌握哪些基础知识
- 学习CSS需要知道的CSS基础知识
- 成为一名嵌入式Linux开发工程师需要学习哪些知识?
- 【转载】成为一名嵌入式Linux开发工程师需要学习哪些知识?
- Java基础知识?学习java需要什么样…
- 安卓(android)开发应该怎么学?需要哪些基础知识?
- {传智播客} (学习笔记)--Oracle使用需要掌握的基础知识
- daliu_IT学习Android笔记第三篇--学习android开发需要什么知识基础?
- 成为一名嵌入式Linux开发工程师需要学习哪些知识?
- 成为一名嵌入式Linux开发工程师需要学习哪些知识?
- 成为一名嵌入式Linux开发工程师需要学习哪些知识?
- 学习java都需要掌握哪些知识
- 分析学习MYSQL源代码需要哪些方面的知识呢?
- 文科生想成为 iOS 开发者需要学习哪些知识?从一无所知到精通大概需要多长时间?
- 学习C++需要了解的十八个基础知识
- 硬件工程师需要学习哪些知识
- [转]php初级教程(二)php学习需要的资料、B/S基础知识