博舍

人工智能——背景知识、知识体系、应用领域 人工智能知识体系庞大技术层面有

人工智能——背景知识、知识体系、应用领域

一、背景知识1、图灵测试

图灵在1950年提出,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者提问。进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。

2、人工智能定义

人工智能科学的主旨是研究和开发出智能实体,在这一点上它属于工程学。也可以说是一门综合性学科,因为其研究领域涉及数学、逻辑学、归纳学、系统学、控制学、工程学、计算机科学,还包括对哲学、心理学、生物学、神经科学、仿生学、经济学、语言学等其他学科的研究。

3、人工智能的层次弱人工智能:擅长于单个方面,如有能战胜围棋世界冠军的人工智能,但只会下围棋。强人工智能(通用人工智能):人类级别的人工智能,各方面和人类比肩,人类能干的脑力活它都能干。到达该层次很难。超人工智能:在几乎所有领域都比最聪明的人类大脑都聪明很多,包括科学创新、通识和社交技能。4、阿西莫夫机器人三定律第一定律:机器人不得伤害人类个体,或者目睹人类个体将遭受危险而袖手不管。第二定律:机器人必须服从人给予它的命令,当该命令与第一定律冲突时例外。第三定律:机器人在不违反第一、第二定律的情况下要尽可能保护自己的生存。5、社会经济影响产业变革:人工智能导致很多商业模式重新洗牌,对创业者来说是机会也是挑战。失业和社会保障问题:可重复性工作将被机器人取代,导致很多人失业,从而带来一系列社会问题。贫富差距问题:利用人工智能,有钱人更有钱,穷人因为失去了工作而更穷。地区发展不平衡问题:人工智能这一高科技产业可以提高生产效率,使得两个科技实力差别较大的区域的经济失衡。产业结构调整:人与机器的分工,会促进产业结构的调整。二、知识体系1、数学基础微积分线性代数概率统计信息论集合论和图论博弈论2、技术基础计算机原理程序设计语言操作系统分布式系统算法基础3、机器学习算法机器学习基础:估计方法、特征工程线性模型:线性回归逻辑回归决策树模型:GBDT支持向量机贝叶斯分类器神经网络——深度学习:MLP、CNN、RNN(LSTM)、GAN聚类算法:K均值算法4、机器学习分类监督学习:分类任务、回归任务无监督学习:聚类任务迁移学习强化学习5、问题领域语言识别字符识别:手写识别机器视觉自然语言处理:机器翻译自然语言理解知识推理自动控制游戏理论和人机对弈:象棋、围棋、德州扑克、星际争霸数据挖掘6、机器学习架构加速芯片:CPU、GPU、FPGA、ASIC(TPU)虚拟化:容器(Decker)分布式结构:Spark库和计算框架:TensorFlow、scikt-learn、Caffe、MXNET、Theano、Torch、MicrosoftCNTK7、可视化解决方案8、云服务AmazonMLGoogleCloudMLMicrosoftAzureML阿里云ML9、数据集和竞赛ImageNetMSCOCCKaggle阿里天池10、其他相关技术知识图谱统计语言模型专家系统遗传算法博弈算法:纳什均衡三、应用领域1、互联网和移动互联网应用搜索引擎内容推荐引擎精准营销语音和自然语言交互图像和视频内容理解、检索用户画像反欺诈2、自动驾驶、指挥交通、物流、共享出行自动驾驶汽车:传感器、感知、规划、控制、整车集成、车联网、高精度地图、模拟器智慧公路网络和交通标志共享出行自动物流车辆和物流机器人智能物流规划3、智能金融银行业:风控和反欺诈、精准营销、投资决策、智能客服保险业:风控和反欺诈、精准营销、智能理赔流程、智能客服证券、基金、投行等:量化交易、智能投顾4、智慧医疗医学影像智能判读辅助诊断病例理解和检索手术机器人康复智能设备智能制药5、家用机器人和服务机器人智能家居老幼伴侣生活服务6、智能制造业工业机器人智能生产系统7、人工智能辅助教育智慧课堂学习机器人8、智慧农业智慧农业管理系统智慧农业设备9、智能新闻写作写稿机器人收集资料机器人10、机器翻译文字翻译声音翻译11、机器仿生动物仿生器官仿生12、智能律师助理智慧法律咨询案例数据库机器人13、人工智能驱动的娱乐业14、人工智能艺术创造15、智能客服

人工智能知识体系梳理

本文将从以下几个角度阐述AI的知识体系:基础算法&模型,NLP,机器学习(深度学习),数据挖掘(大数据处理),开发语言选择,主流第三方库(框架)。

简单来说,我们要开始人工智能的工作,基础设施有三个重要部分,1.开发语言(python及其主流的类库和工具包);2.数据计算引擎(spark及其基本算法类库,es,以及大数据存储);3.机器学习(深度学习)框架的熟练运用Scikit-learn,TensorFlow。

基础算法

首先说说涉及到的基础知识,包括高等数学,线性代数,概率论以及统计学。基础算法有线性回归,逻辑回归,决策树,贝叶斯,神经网络等等。常用算法如下图:

注意算法与模型的关系:算法是指一系列解决问题的清晰指令,它代表着用系统的方法解决问题的策略机制。模型是一种相对抽象的概念,在机器学习领域特指通过各种算法对数据训练后得到的中间件,当有新的数据后会有相应的结果输出,这个中间件就是模型。模型会因算法和训练数据的不同而产生变化。

两个最常用的模型:逻辑回归和决策树。逻辑回归解决分类问题,对看似没有规律,聚合在一起的数据,进行二分化,找到最准确的分类线条是他的主要工作。逻辑回归可以理解为拟合,用一条直线对一些数据点进行拟合(该线称为最佳拟合直线),而拟合过程称作回归。通常都会每个特征上都乘以一个回归系数,而逻辑回归的主要工作就是求这个最佳的回归系数。

逻辑回归参考:逻辑回归算法  逻辑回归原理及其python和sklearn实现

决策树参考:决策树算法原理

NLP(自然语言处理)

该领域分为以下三个部分:

1.语音识别:将口语翻译成文本。

2.自然语言理解:计算机理解人类的能力。

3.自然语言生成:计算机生成自然语言。

其中,声学模型,语言模型,语意分析,句法分析非常重要。

具体的搭建方式,参考基于深度学习的中文语音识别系统框架

机器学习与深度学习

1.首先看看他们的关系与区别:机器学习就是机器通过一系列「任务」从「经验」(数据)中学习,并且评估「效果」如何,是人工智能传统且重要的应用方式,可替换大量人工重复的劳动。但是如果无法从数据中「学习到」更好的特征表达,也是徒劳。同样的数据,使用不同的表达方法,可能会极大影响问题的难度。一旦解决了数据表达和特征提取问题,很多人工智能任务也就迎刃而解。但是对机器学习来说,特征提取并不简单。特征工程往往需要人工投入大量时间去研究和调整,就好像原本应该机器解决的问题,却需要人一直在旁边搀扶。深度学习便是解决特征提取问题的一个机器学习分支。它可以自动学习特征和任务之间的关联,还能从简单特征中提取复杂的特征。简言之,深度学习是发现内在规律,总结重大特征的机器学习方式。让机器能够像人脑进行演变和进化。

参考机器学习与深度学习的区别

2.机器学习(深度学习)算法与框架推荐:Scikit-Learn和Tensorflow, Keras(Keras更适合作为接口来使用。它提供了更高级别,更直观的抽象集合,使得无论后端科学计算库如何,都可以轻松配置神经网络)

3.深度学习框架选择要素

深度学习框架是一种界面、库或工具,它使我们在无需深入了解底层算法的细节的情况下,能够更容易、更快速地构建深度学习模型。深度学习框架利用预先构建和优化好的组件集合定义模型,为模型的实现提供了一种清晰而简洁的方法。利用恰当的框架来快速构建模型,而无需编写数百行代码,一个良好的深度学习框架具备以下关键特征:

优化的性能易于理解和编码良好的社区支持并行化的进程,以减少计算自动计算梯度

4. 深度学习高级开发框架Keras与TensorFlow的比较Keras用Python编写,可以在TensorFlow(以及CNTK和Theano)之上运行。TensorFlow的接口具备挑战性,因为它是一个低级库,新用户可能会很难理解某些实现。而Keras是一个高层的API,它为快速实验而开发。因此,如果希望获得快速结果,Keras会自动处理核心任务并生成输出。Keras支持卷积神经网络和递归神经网络,可以在CPU和GPU上无缝运行。 可以将Keras中的模型大致分为两类: 4.1.序列化模型的层是按顺序定义的。这意味着当我们训练深度学习模型时,这些层次是按顺序实现的4.2.Keras函数API用于定义复杂模型,例如多输出模型或具有共享层的模型。

数据挖掘(大数据处理)

人工智能离不开背后的数据平台,需要实时运算,实时处理的引擎。这里会涉及到大数据平台架构,如何做出更好的人工智能产品,搭建一个高效的数据平台至关重要。

如上图所示,我们可以看到SparkStorm,ES等大数据技术栈在其中所处的关键位置。除了能提供分布式高性能的流式处理以外,如Spark,已有强大的SparkMLlib机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。那么在数据处理平台(框架)中直接部署&应用需要的机器学习算法,变得非常高效和方便。

参考机器学习-数据处理技术栈

开发语言选择

了解了算法,基本概念,机器学习,数据处理之后。让我们回到日常工作中最使用频率最高的话题:开发语言的选择。开发语言的选择要从一下几个角度考虑:团队技术栈的掌握范围和集中度,主流第三方类库的丰富程度和稳定性。

目前的选择是Python和Java,主要的考虑是目前数据团队以Python为主要开发语言,而核心系统,大数据平台团队使用Java

Python作为开发语言的优势:

Python中可用库的数量是其他语言所无法企及的。NumPy已经变得如此普遍,以至于几乎成为了张量运算的标准API,Pandas将R的强大而灵活的数据帧带入Python。对于自然语言处理(NLP),您可以使用久负盛名的NLTK和快如闪电的SpaCy。对于机器学习,有经过实战检验的Scikit-learn。当谈到深度学习时,当前所有的库(TensorFlow,PyTorch,Chainer,ApacheMXNet,Theano等)都是在Python上首先实现的项目。

推荐一个非常棒的在线开发手册 

Java的优势:

Java的优势在于团队对他天然的亲近^_^,Anyway, JVM系列语言(Java,Scala,Kotlin,Clojure等)对AI应用开发的来说,也是非常棒的选择。自然语言处理(CoreNLP)、张量运算(ND4J)还是完整的GPU加速深度学习堆栈(DL4J),都可以使用大量的库来管理流水线的各个部分。最重要的是,Java体系里面的大数据技术栈,可以让人工智能平台轻松与Spark和Hadoop等大数据平台进行构建和整合。

参考:最适合的人工智能开发语言

总结:目前人工智能的框架已经非常成熟了,不要重复造轮子,我们是要重新定义一些计算模型和算法实现,来创新网络结构和训练方法,能够在众多普通的移动设备端进行分布式机器学习,甚至不需要多余的硬件支持或抑制内存开销,这样的深度学习算法会更加有效。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇