




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工业大数据分析方法概述2019年11月21日目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例本章问题*Q1:数据挖掘在数据生命周期中处于什么地位?Q2:什么叫做真正意义上的大数据?Q3:大数据挖掘中的关键技术有哪些?大数据分析技术需求马航MH370失联飞机发动机卫星监控数据服务,成为全球寻找飞机最关键的线索。*大数据分析技术需求GE的商业模式转型远程采集航空发动机的运行数据(转速、温度、油耗、推力、振动………)*大数据地面发动机大数据挖掘与分析中心*飞机发动机汽车曲轴电子产品船用螺旋桨数控机床是制造业的“工作母机”,机床运行状态决定了制造加工质量、精度和效率。大数据分析技术需求大数据分析技术需求智能制造-数据驱动下的制造业德国提出了实施“工业4.0”国家战略,引领第三次工业革命。中国制造2025——数据推动传统制造业转型升级。*大数据分析技术需求什么是数据挖掘从大量的、不完全的、有噪声的、随机的数据中提取含在其中的、预先不被人知的、有用的信息和知识的过程。从功能上来看:从存放在数据库、数据仓库或其它信息库中的大量数据中发现知识的过程。***大数据分析技术需求数据挖掘的流程信息收集数据集成数据约规数据清理数据变换数据挖掘过程结果评估知识表示预处理大数据分析技术需求大数据有多大?*一天之中,互联网产生的全部内容可以刻满1.68亿张DVD;一天之中,发出的邮件有2940亿封之多(相当于美国两年纸质信件数量);一天之中,发出的社区帖子达200万个(相当于《时代》杂志770年的文字量);互联网数据告诉你大数据有多大。大数据分析任务需求大数据有多大?*2016年,据IBM研究称,“整个人类文明所获得的全部数据中,有90%是过去两年内产生的”。而到了2020年,全世界所产生的数据规模将达到2016年的44倍,每一天,全世界会上传超过5亿张图片,每分钟就有20小时时长的视频被分享。大数据分析技术需求大数据有多大?*假设一种数据4个字节,1ms采集一次,一共32种数据。一台机床,4*1000*32*60*60*24=11059200000B/天≈10GB/天;假设一条产线12台机床,一天的数据量大约就是120GB,一个月的数据量可达3.6T;在劲胜的一个智能生产车间,数控机床达180台以上,一个月的数据量就达54T。大数据分析技术需求大数据时代下的数据挖掘*大数据时代对人类的数据驾驭能力提出了新的挑战,在数控、航空、商业、经济及其他领域中,决策将日益基于数据和分析而做出,而并非基于经验和直觉,因此应对大数据的技术则紧随到来。
海量
复杂
强实时*大数据分析技术需求数据挖掘以多学科关键技术作为支撑数据挖掘BECDA分布式并行计算数据库技术物联网其他学科人工智能目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例本章问题*Q1:为什么大数据需要分布式并行计算?Q2:分布式并行计算的设计思想?“古代,人们用牛来拉重物。当一头牛拉不动一根圆木时,他们不曾想过培育更大更壮的牛。同样,我们也不需要尝试开发超级计算机,而应试着结合使用更多的计算机系统。”——GraceHopper分布式并行计算思想分布式并行计算思想超级计算机横向扩展纵向扩展受到计算设备本身架构局限所需的升级成本会快速上升如何调度整个系统、多个计算节点间的资源整个任务及各个子任务如何监控各个计算节点的计算结果如何合理调度系统如何容错如何保证可靠性分布式并行计算思想分布式并行计算=分布式计算+并行计算分布式计算,和集中式计算相对,体现的是“分而治之”,强调的是任务的分布执行。并行计算,是相对于串行计算而言,体现是单个任务的执行粒度,强调的是单个任务的并发执行。分布式并行计算思想什么是分布式并行计算分布式并行计算:把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果负载均衡系统容错数据备份*分布式并行计算思想大数据为什么需要分布式并行计算*ANVFJVFCNDHNFAACNHFNDBUYHNXGB行结果行结果行结果行结果合并=结果串行分布式并行单个计算节点计算节点2计算节点3计算节点4计算节点1行结果+行结果+行结果+行结果=结果分布式并行计算思想分布式并行计算体现的优势高可伸缩性和按需服务高可靠性、高容错性整合多个计算节点的计算能力,具备更高的计算速度和计算效率系统具备高度开放性,本地或远程都可以使用分布式计算服务成本可控分布式并行计算思想常见分布式并行计算框架框架类别MapReduceSparkStorm开发者GoogleUCBerkeleyAMPLabTwitter开发语言JavaScalaJava、Clojure框架性质批处理第二代批处理流式数据实时处理延时性能较高秒级实时存储系统HDFS,磁盘内存内存数据吞吐量一般好较好集群支持数千个点超过1000节点超过1000节点应用平台Facebook、Google、IBM、雅虎等Intel、腾讯、淘宝、中国移动、Google等淘宝、百度、Twittle、Groupon、雅虎等适用场景低时效性(离线式)大批量计算较数据块、高时效性的小批量计算小数据块的实时分析计算目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例本章问题*Q1:简述MapReduce的编程原理?Q2:MapReduce是怎样的体系架构?Q3:MapReduce的数据模型是什么?MapReduce理论基础分布式并行计算原始模型谷歌设计一个新的抽象模型,使用这个抽象模型,普通程序员只要表述他们想要执行的简单运算即可,而不必关心并行计算、容错、数据分布、负载均衡等复杂的细节,这些问题都被封装了,由后台程序来处理。这个模型就是MapReduce。谷歌2004年公布的MapReduce编程模型,在工业界、学术界产生巨大影响,以至于谈大数据必谈MapReduce。*MapReduce理论基础Mapreduce-分布式计算框架*MapReduce是一个编程模型,一个处理和生成超大数据集的算法模型的相关实现。简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。MapReduce理论基础MapReduce数据模型——实现MapReduce架构的基础
主结节得到所有子节点的处理结果,然后把所有结果组合并且返回到输出。主节点读入输入数据,把它分成可以用相同方法解决的小数据块(分而治之),然后把这些小数据块分发到不同的工作节点上,并行处理。
Map映射
Reduce规约MapReduce理论基础Mapreduce编程模型原理*抽象模型是运转在<key,value>键值对上;Map和Reduce的输入是一组<key,value>键值对,同样输出的也是一组或多组<key,value>键值对;历经Partition(分片)、Map、Shuffle(洗牌)、Reduce等四个主要阶段。map:(key1,value1)---->list(key2,value2)
map:(key1,value3)---->list(key2,value4)reduce:(key2,list(value2,value4))---->(key3,value5)MapReduce理论基础MapReduce编程原理——Partition(分片)block1block2blockNfilesplit1split2split3split4split5…HDFS分布式文件系统只是在逻辑上对数据分片,与数据在HDFS系统中的真实存储没有实质性的映射关系。每个Split是一个Map任务的输入;Map计算就近拉取数据;split大小尽量不大于一个block块的大小,降低跨节点拉取数据的概率,降低数据在网络传输上的耗时,提高计算速度;split大小会有一个默认规则,将即为block的1/N(N为整数)。MapReduce理论基础MapReduce编程原理——MapMapReduce理论基础MapReduce编程原理——ReduceMapReduce理论基础MapReduce函数定义Mapper类定义如下:Mapper<LongWritable,Text,Text,IntWritable>Reducer类的模板定义如下:
LetterCountReducer<Text,
IntWritable,
Text,
IntWritable>Mapper的输出是reducer的输入mapper函数:在Map节点执行Map任务reducer函数:在Reduce节点执行Reduce任务MapReduce理论基础Mapreduce编程示例*统计单词所有出现单词的数量。Hello
World
Hello
my
love
Hello
World
,
i
love
youMapReduce理论基础Mapreduce编程示例-Map实现*public
class
WordCountMapper
extends
Mapper<LongWritable,
Text,
Text,
IntWritable>{
/*
*
map方法是提供给map
task进程来调用的,map
task进程是每读取一行文本来调用一次我们自定义的map方法
*/
@Override
protected
void
map(LongWritable
key,
Text
value,Context
context)
throws
IOException,
InterruptedException
{
String
line
=
value.toString();
String[]
words=line.split("
");
//输出<单词,1>
for(String
word:words){
context.write(new
Text(word),
new
IntWritable(1));
}
}
}
MapReduce理论基础Mapreduce编程示例*统计单词所有出现单词的数量。Hello
World
Hello
my
love
Hello
World
,
i
love
you
Hello
1World
1Hello
1my
1love1Hello
1World
1
i
1love
1you
1MapReduce理论基础Mapreduce编程示例-Reduce实现*public
public
class
WordCountReducer
extends
Reducer<Text,
IntWritable,
Text,
IntWritable>{
@Override
protected
void
reduce(Text
key,
Iterable<IntWritable>
values,Context
context)
throws
IOException,
InterruptedException
{
//定义一个计数器
int
count
=
0;
//通过value这个迭代器,遍历这一组kv中所有的value,进行累加
for(IntWritable
value:values){
count+=value.get();
}
//输出这个单词的统计结果
context.write(key,
new
IntWritable(count));
}
}
MapReduce理论基础Mapreduce编程示例*统计单词所有出现单词的数量。Hello
3World
2my
1love
2i
1
you1Hello
1World
1Hello
1my
1love1Hello
1World
1
i
1love
1you
1MapReduce理论基础MapReduce资源调度Client向NameNode节点提交计算任务,NameNode将任务分配给多个DataNode节点进行实际计算(Map计算和Reduce计算),最后将结果反馈给Client。一个MapReduce作业称为一个Job;一个Job会被拆分为很多个子任务,即Task集,分为多个MapTask和多个ReduceTask;一个Job的生命周期可分为4个阶段:Job提交、Task调度与监控、Task执行和Task输出。在Hadoop1.x版本中,MapReduce任务调度系统主要包括三个关键组件:JobTracker、TaskTracker和TaskSchedulerMapReduce理论基础MapReduce资源调度——JobTrackerJobTracker运行在NameNode节点上,在系统中是唯一的,主要任务是将一个Job拆分的多个Task分配给TaskTracker;Job拆分后,得到Map和Reduce的数量,并统计哪些DataNode节点可以处理哪些SplitJobClient向JobTracker传输数据在HDFS系统的存储路径以及JobID;MapReduce理论基础MapReduce资源调度——TaskTrackerJobTracker只是将Task拆分信息缓存在NameNode节点,并不进行实时性分配,也不通知计算节点,而是等待TaskTracker来主动读取;TaskTracker是任务的真正执行者,运行在每一个DataNode节点,并在每一个节点保持唯一;TaskTracker将任务可执行力度设置为“槽(slot)”,通过配置文件设置当前节点可同时执行的最大Map和Reduce任务数量。MapReduce理论基础MapReduce资源调度——心跳机制Client周期性发送一个固定信息给Server,Server收到信息后,回复一个固定信息给Client,如果Server在指定时间内没有收到Client的固定信息,则视Client已断开连接。TaskTracker可告知JobTracker其所在节点是否健康;TaskTracker通过心跳信息将当前节点可用的Map和Reduce任务数目、占用的数目以及所承担Task的详细信息发送给JobTracker,然后JobTracker根据这些信息为TaskTracker提供新的Task信息。MapReduce理论基础MapReduce资源调度——TaskSchedulerTaskScheduler是MapReduce的任务调度器。当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务,而具体应该分派一些什么样的任务给这台TaskTracker。目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例本章问题*Q1:Spark较MapReuce的优势体现在哪里?Q1:简述Spark的编程原理?Q2:Spark是怎样的体系架构?Q3:Spark的数据模型是什么?Q3:Spark的资源调度是如何实现的?Spark理论基础Mapreduce局限性仅支持Map和Reduce两种操作Map中间结果需要写磁盘任务调度和启动开销大无法充分利用内存只能处理离线数据不适合迭代计算*快速支持复杂查询通用多种运行模式Spark理论基础Spark-高效的分布式计算框架Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是基于内存计算的大数据并行计算框架。Spark的内存计算提高大数据环境下的数据处理的实时性,同时保证高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。*Spark理论基础Spark发展史*2009诞生于伯克利大学2010正式开源2013成为Apache基金项目2016发布2.0版本/matei/《大型集群上的快速和通用数据处理架构》Mataizaharia2019发布3.0版本Spark理论基础Spark版本发展*截止2019年11月:Spark的developers比2014年涨了4倍,达到1200多人,来自超过300家公司;Spark的committers来自超过25个组织;在开源社区的贡献下,Spark版本更新速度很快,平均1-2个月推出一个新版本;Spark用户达到1000多个,正不断深入到传统工业界和互联网/传统行业交叉的应用领域。Spark代码贡献者每年的增长曲线Spark理论基础Spark的快速性基于内存计算,执行效率实时数据处理能力。擅长迭代计算,支持机器学习。*实验表明,在处理迭代式应用上Spark比MapReduce快20多倍;计算数据分析类报表的性能提高了40多倍;Spark能够在5-7秒的延时内交互式扫描1TB数据集。Spark理论基础Spark的易用性易用性:Spark通过提供丰富的Scala,Java,PythonAPI及交互式Shell来提高可用性。Scala是Spark框架的开发语言,所以使用Scala语言可以和Spark的源代码进行更好的无缝结合,更方便调用其相关功能。*编程语言运行平台腾讯广点通是最早使用Spark的应用之一。腾讯大数据借助Spark快速迭代的优势,最终成功应用于广点通pCTR投放系统上,支持每天上百亿的请求量。使用SparkSQL,利用其快速查询以及内存表等优势,承担了日志数据的即席查询工作。在性能方面,普遍比Hive高2-10倍,如果使用内存表的功能,性能将会比Hive快百倍。YahooYahoo将Spark用在AudienceExpansion中的应用AudienceExpansion是广告中寻找目标用户的一种方法:首先广告者提供一些观看了广告并且购买产品的样本客户,据此进行学习,寻找更多可能转化的用户,对他们定向广告。淘宝淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。将Spark运用于淘宝的推荐相关算法上。同时还利用Graphx解决了许多生产问题,包括以下计算场景:基于度分布的中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。优酷土豆目前Spark已经广泛使用在优酷土豆的视频推荐(图计算)、广告业务等。通过实践发现Spark性能比MapReduce提升很多。首先,交互查询响应快,性能比Hadoop提高若干倍;模拟广告投放计算效率高、延迟小(同hadoop比延迟至少降低一个数量级);机器学习、图计算等迭代计算,大大减少了网络传输、数据落地等,极大的提高的计算性能。Spark理论基础Spark在互联网中的典型应用案例*Spark之上提供四种应用库:SparkSQL
:为处理结构化数据而设计的模块。SparkStreaming:很容易地创建可扩展和容错性的流式应用。Mllib:可扩展机器学习库。GraphX:并行图计算API。Spark理论基础Spark生态圈*Spark理论基础Spark整体体系架构*SparkSQLSparkStreamingGraphX(graph)MLlib(machinelearning)MesosYARNS3SparkStandalone存储层资源调度层计算层工具层CassandraHbase…TachyonHDFSSpark理论基础Spark核心概念-SparkCoreSparkCore提供Spark最基础与最核心的功能。SparkContext在Spark应用程序的执行过程中起着主导作用,它负责与程序和spark集群进行交互,包括申请集群资源、创建RDD及广播变量等。*Spark理论基础Spark运行架构模型*采用分布式计算中的Master-Slave模型:Master负责整个集群的正常运行,Slave通常被称为Worker,负责接受Master命令执行计算操作。ClusterManager(Master)负责整个系统的计算资源的分配与管理;集群资源管理器:为上层应用提供统一的资源管理和调度;Worker接受主节点命令以及进行状态汇报Executor可以看做是一个计算任务(Task)的监控和执行容器;DriverApp:负责运行程序的main()方法,将上述任务定义转换为RDD和DGA。Spark理论基础Spark核心概念*Spark任务提供多层分解的概念,Spark组件将用户的应用程序分解为内部执行任务并提供执行容器,资源管理为spark组件提供资源调度。HDFSInput1Input2stage2stage3TaskJobstage1Client:负责提交应用;Driver:是应用的逻辑执行起点;Job:可以认为是SparkRDD里面的操作,每个操作的计算会生成一个Job,Job最终会被分为多个Stage和Task;Task:每一个Job被拆分多个Task;Executor:负责Task的调度和执行;Stage:每个Job包含多个Stage,每个Stage包含多个Task。Driver包含用户的应用程序;Driver完成task的解析和生成;Driver向ClusterManager申请运行task需要的资源;集群资源管理器为task分配满足要求的节点,并在节点按照要求创建Executor;创建的Executor向Driver注册;Driver将Spark应用程序的代码和文件传送给分配的Executor;Executor运行task,运行完后将结果返回Driver或者写入HDFS等介质。Spark理论基础Spark端到端流程*DriveProgramSpark理论基础SparkvsMapReduce*拥有DAG(有向无环图)执行引擎,支持内存中对数据进行迭代计算。Spark实现了数据的抽象,称为弹性分布式数据集(RDDs),在很大程度上增加了系统的通用性。中间结果在内存中存取Spark理论基础Spark核心概念-RDD*RDD是什么?RDD,弹性分布式数据集,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark中待处理的数据的抽象,它是逻辑中的实体。RDD存储可以在内存和磁盘之间手动或自动切换;RDD可以通过转换成其它的RDD;RDD可以存储任意类型的数据;RDD数据的计算具备分布式的特点;Task或Stage如果失败会自动进行特定次数的重试;RDD支持缓存,提高存取速度。弹性?Spark理论基础Spark核心概念-RDD来源*rdd1=sparkContext.textFile(“hdfs://…”)rdd1是一个MappedRDD,该RDD是从外部文件创建的。rdd2=rdd1.filter(_.startsWith(“ERROR”))rdd2也是一个FilteredRDD,是从rdd1这个RDD衍生(即计算)得到的。rdd1是rdd2的父节点,即rdd2依赖rdd1。filter是RDD的操作,即每个分片需要计算的函数。创建:从外部数据集中读取,来源于文件系统(HDFS,HBASE,Cassandra等)。转化:从一个RDD生成另一个RDD的过程。Spark用lineage的方式表示各个RDD的依赖关系。Spark理论基础Spark核心概念-RDD操作作用于RDD上的Operation分为转换(transformantion)和动作(action)。Spark中的所有“转换”都是惰性的,在执行“转换”操作,并不会提交Job,只有在执行“动作”操作,所有operation才会被提交到cluster中真正的被执行。这样可以大大提升系统的性能。*Operation转换从现有的数据集创建一个新的数据集即数据集中的内容会发生更改,由数据集A转换成为数据集B。动作在数据集上运行计算后,返回一个值给驱动程序。即数据集的内容会被归约为一个具体的数值。操作名称示例意义MapRDD.map(fun)函数应用于RDD每一个元素,返回值是新的RDDflatmapRDD.flatmap(fun)函数应用于RDD每一个元素,将数据进行拆分,变成迭代器,返回值是新的RDDfilterRDD.filter(fun)过滤distinctRDD.distinct()去重unionRDD.union(RDD1)两个RDD求并集intersectionRDD.intersection(RDD1)两个RDD求交集cartesianRDD.cartesian(RDD1)生成RDD与RDD1的笛卡尔积groupByRDD.groubBy(key)根据key的取值,分组reduceByKeyRDD.reduceByKey()根据key的取值聚合sortByKeyRDD.sortByKey()根据key的值排序Spark理论基础Spark核心概念-RDD常见“转换”操作*操作名称示例意义foreach()RDD.foreach(fun)对RDD中的每个元素使用给定的函数collect()RDD.collect()返回RDD中的所有元素。countByVale()RDD.countByValue()每个元素在RDD中出现的次数。count()RDD.count()统计RDD中元素的个数take()RDD.take(n)返回RDD中的n个元素top()RDD.top(N)返回RDD中的前N个元素takeOrdered()RDD.takeOrdered(n)按照要求的顺序返回前n个元素takeSample()RDD.takeSample(n)从RDD中任意返回n个元素reduce()RDD.reduce(fun)并行整合RDD中所有的元素fold()RDD.fold(num)(fun)提供初始值的reduceSpark理论基础Spark核心概念-RDD常用“动作”操作*Spark理论基础Spark操作示例import
org.apache.spark.SparkContextimport
org.apache.spark.SparkContext._import
org.apache.spark.SparkConfobject
SimpleApp
{ def
main(args:
Array[String])
{ val
logFile
=
"YOUR_SPARK_HOME/README.md"
//Shouldbesomefile val
conf
=
new
SparkConf().setAppName("SimpleApplication")//设置程序名字 val
sc
=
new
SparkContext(conf) val
logData
=
sc.textFile(logFile,
2).cache()//加载文件为RDD,并缓存 val
numAs
=
logData.filter(line
=>
line.contains("a")).count()//包含a的行数 val
numBs
=
logData.filter(line
=>
line.contains("b")).count()//包含b的行数 println("Lineswitha:%s,Lineswithb:%s".format(numAs,
numBs)) }}创建一个RDD转换算子动作算子Spark理论基础Spark核心概念-RDD存储直观上,RDD就是一个只读的数据;但是,RDD其实不存储真实的数据,只存储数据的获取方法、分区方法、以及数据类型。*//只保留两个抽象方法<brdata-filtered="filtered">abstractclassRDD[T:ClassTag](
@transient
private
var
_sc:
SparkContext,
@transient
private
var
deps:
Seq[Dependency[_]]
)
extends
Serializable
with
Logging{
<brdata-filtered="filtered">
//计算某个分区数据的方法
//计算分区信息只会被调用一次
protected
def
getPartitions:
Array[Partition]}通过RDD的这两个抽象方法,可以看出:RDD其实是不存储真是数据的,存储的的只是真实数据的分区信息getPartitions,还有就是针对单个分区的读取方法。Spark理论基础Spark核心概念-RDD分区RDD内部的数据集合在逻辑上被划分为多个分片,每一个分片称为分区。RDD内部使用分区来表示并行计算的一个计算单元。分区的个数决定并行计算的粒度。*TraintPartitionextendsSerializable{Defindex:IntOverridedefhashCode():Int=index}Rdd编号分区编号Data+存储介质宽依赖:一个父RDD的Partition会被多个子RDD的Partition所使用;例如:groupByKey、sort、partitionBy等。Spark理论基础Spark核心概念-RDD依赖RDD针对“转换”操作,都提供了对应的继承自RDD的类型。提供数据的RDD称为父RDD,新的RDD称为子RDD。RDD继承具备单向性。*窄依赖:一个父RDD最多对应一个子RDD;在一个集群节点上管道式执行;比如map、filter、union等。Spark理论基础Spark核心概念-RDD依赖与Stage切分Stage的依据:调度器会计算RDD之间的依赖关系,将拥有持续窄依赖的RDD归并到同一个Stage中,宽依赖则作为划分不同Stage的判断标准。*从后往前推,遇到宽依赖就断开,划分为一个stage;遇到窄依赖,将该RDD加入当前stage。Spark理论基础Spark核心概念—Stage分类ResultStage是最终Stage,不进行输出,而是直接产生结果或存储。ShuffleMapStage
为“非最终Stage”,后面还有其他的Stage,它的输出需要进行Shuffle后作为后续Stage的输入一个Job里面必须包含至少一个ResultStage,但可以没有ShuffleMapStage!Spark理论基础Spark核心概念-RDD依赖与容错机制*RDD实现了基于血统的容错机制(Lineage)。RDD的转换关系构成computechain,便是RDD之间演化的Lineage。在部分计算结果丢失时,只需要根据Lineage重算即可。在很多分布式数据处理系统中通过备份来进行容错,这种容错方式会导致巨大存储消耗,spark的lineage图只需要十几kb存储空间。Spark允许用户将数据cache下来。Spark理论基础Spark核心概念-RDD依赖与容错机制检查点支持(checkpoint):虽然lineage可用于错误后RDD的恢复,但对于很长的lineage的RDD来说,这样的恢复耗时较长。由此,可以考虑将某些RDD进行checkpoint,保存到稳定存储上。Spark提供为RDD设置检查点操作的API,让用户自行决定需要为哪些数据设置检查点操作。由于RDD的只读特性使得比常用的共享内存更容易做checkpoint。由于不需要关心一致性的问题,RDD的写出可在后台进行,而不需要程序暂停或进行分布式快照。*Spark理论基础Spark核心概念-任务调度Scheduler模块主要有两个:DAGScheduler和TaskScheduler。*Spark理论基础Spark核心概念-任务调度*DAGScheduler负责将Task拆分成不同Stage的具有依赖关系的多批任务,然后提交给TaskScheduler进行具体处理。TaskScheduler负责实际每个具体Task的物理调度。Spark理论基础Spark部署模式YARN*ResourceManager(RM)全局的资源管理器,负责系统的资源管理和分配;NodeManager(NM)每个节点的资源和任务管理器;ApplicationMaster(AM)每个应用程序都有一个,负责任务的调度和监视,并与RM调度器协商为任务获取资源。YARN是Hadoop2.0的资源管理系统,目标不再局限于只支持MapReduce,而是朝多种框架统一管理的方向发展(即共享集群),使资源的利用率更高。Spark理论基础Spark部署模式standalone*Driver运行在ClientDriver运行在Worker执行流程描述(Jar的方式起任务)客户端把作业发布到Master;Master让一个Worker启动Driver,并将作业推送给Driver;Driver进程生成一系列task;Driver向Master申请资源;Master让调度的Worker启动Exeuctor;Exeuctor启动后向Driver注册;Driver将task调度到Exeuctor执行;Executor执行结果写入文件或返回Driver。执行流程描述(IDE里面起任务)客户端启动后直接运行用户程序,启动Driver;Driver进程生成一系列task;Driver向Master申请资源;Master让调度的Worker启动Exeuctor;Exeuctor启动后向Driver注册;Driver将task调度到Exeuctor执行;Executor执行结果写入文件或返回Driver。Spark理论基础Spark部署模式YARN*YarnClientYarnClusterDriver运行在AM(ApplicationMaster):客户端把作业发布到YARN;RM为该job在某个NM上分配一个AM,NM启动AppMaster,AppMaster启动Driver;AM启动后完成初始化作业。Driver生成一系列Task;AM向RM申请资源,RM返回Executor信息;AM通过RPC启动相应的SparkExecutor;Driver向Executor分配task;Executor执行结果写入文件或返回Driver。Driver运行在Cleint:客户端启动后直接运行用户程序,直接启动Driver;2.
Driver初始化并生成一系列Task;客户端将AppCommands发布到YARN;RM为该job在某个NM上分配一个AM;AM向RM申请资源,RM返回Executor信息;AM通过RPC启动相应的SparkExecutor;Exeuctor启动后向Driver注册;Driver向Executor分配task;Executor执行结果写入文件或返回Driver。Spark理论基础Spark应用*适用场景Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用。对于增量修改的应用模型不适合。总的来说Spark的适用面比较广泛且比较通用。不适用场景目前大数据在互联网公司主要把Spark应用在广告、报表、推荐系统等业务上。在广告业务方面需要大数据做应用分析、效果分析、定向优化等在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等。这些应用场景的普遍特点是计算量大、效率要求高。Spark恰恰满足了这些要求。目录一、大数据分析技术需求二、分布式并行计算思想三、MapReduce理论基础四、Spark理论基础五、编程示例编程示例编程示例—二维矩阵乘法
编程示例—二维矩阵乘法串行方法intA[m][n],B[n][p],C[m][n];for(i=0;i<m;i++){for(j=0;j<p;j++){C[i][j]=0;for(k=0;k<n;k++)C[i][j]+=A[i][k]*B[k][j];}}采用3层串行循环的方法解决二维矩阵的相乘,计算复杂度为O(n^3)。Spark理论基础编程示例—二维矩阵乘法MapReduce方法MapReduce将矩阵各个元素的值计算进行分离同时并行计算。显而易见,MapReduce可以将计算效率提高至串行计算的约m×n倍。Spark理论基础编程示例—二维矩阵乘法Spark方法//矩阵A,按照行进行并行化valparamatrix1=sc.parallelize(List(Vector(1,2,3),Vector(4,5,0),Vector(7,8,9),Vector(10,11,12)))//矩阵B,按照列进行并行化
valparamatrix2=sc.parallelize(List(Vector(10,0,11),Vector(15,2,9),))valm2=
paramatrix1.cartesian(paramatrix2)valtemp=m2.map(x=>x._1.dot(x._2))你能将spark计算方法补完整吗?你能说出spark计算的优势吗?大家练习一下吧!推荐资料*
AnArchitectureforFastandGeneralDataProcessingonLargeClusters/docs/latest/工业大数据与新一代人工智能目录传统人工智能与新一代人工智能新一代人工智能的基础算法工业大数据在新一代人工智能的定位010203学习目标1.了解人工智能“三起两落”的发展史以及每一阶段的特征2.了解人工智能的基本概念、研究内容和实现方法3.了解新一代人工智能的研究内容及其去传统人工智能的三大区别4.掌握深层神经网络、卷积神经网络、循环神经网络的基本原理5.了解深度学习的发展方向6.了解工业大数据与新一代人工智能的关系01传统人工智能与新一代人工智能传统人工智能与新一代人工智能新一代人工智能及其与传统人工智能区别人工智能发展史人工智能概述人工智能发展史自机械设备使人类从重复繁重的体力劳动中解放以来,人们还希望能从脑力劳动中解放出来,因而研究者们开始转向智能化人工系统的研究。1956年,达特茅斯会议正式标志着人工智能研究进入第一次发展阶段。斯坦福大学JohnMcCarthy教授麻省理工学院MarvinLeeMinsky教授卡内基梅隆大学HerbertSimont卡内基梅隆大学AllenNewell教授在美国召开的达特茅斯会议上正式确立“人工智能”为独立的新兴学科“信息理论之父”ClaudeElwoodShannonIBM公司NathanielRochester第一次发展与低谷阶段知识人为提供,决策固化尽管这些成果在一定程度上可以代替人类重复性的脑力劳动,但当时的AI程序基本属于确定性的输入输出,即输入的对象特征、分析的规则都是人为制定,得到的输出结果同样是确定的,称之为“知识人为提供,决策固化”。显然,这也决定此类算法所能解决问题的局限性,导致第一次研究热潮逐渐褪去。上世纪50~70年代是人工智能发展的第一次黄金时代。1.具有学习特性的“感知机模型”被提出2.“尤尼梅特”作为世界上首款工业机器人在通用公司生产线上服役工作3.IBM公司的360型计算机称为第一款规模化生产的计算机等第二次发展阶段知识人为提供,决策灵活知识层面决策层面上世纪80年代,人工智能开始复苏。专家系统随机算法专家系统是一种可模拟人类专家解决相关领域问题的计算机程序系统,它被众多公司采纳并实现了市场化应用。该系统由人机界面、知识库、推理机、解释器、综合数据库和知识获取六大部分组成。计算机根据知识库通过推理机对问题进行分析学习。以蒙特卡罗树搜索算法为代表的随机算法是将抽取样本进行遍历,减小计算量同时保障较优解来解决上述问题,这种选取较优解的方法使得决策更加灵活。随机算法:蒙特卡罗树搜索算法蒙特卡罗树搜索(MonteCarloTreeSearch,MCTS)算法:它因赌博中多用到随机算法而以赌城蒙特卡罗命名,其基本原理可通过简易的“黑箱摸球”示例理解。假定黑箱中有100个相同大小的球,每球贴有数字,大小不一;随机取一球,再随机取一球,挑数字大者,如此循环,挑出的球的数字至少不比上一次所挑数字小;随取球次数增加,挑出的数字越接近箱中最大数。简言之,经一定搜索采样后,选择样本最优者,其接近全局最优但不一定是全局最优。此类算法受欢迎在于:尽管遍历数据集再作出决策固然能得到最优解,但当输入为高维随机变量时,可能的结果种类将达到指数级的数据量,这对计算机决策而言将造成维数灾难,随机算法采用折中办法,既减小计算量又保障较优解,因而决策灵活。“深蓝”战胜国际象棋世界冠军1997年,IBM公司的超级计算机“深蓝”以3.5:2.5战胜当时的国际象棋世界冠军卡斯帕罗夫。尽管卡斯帕罗夫本人及部分人认为人有情绪波动而计算机无此缺陷,才使深蓝“作弊”勉胜,但是——(1)当时的深蓝计算机已使用专家系统,基于大量棋谱训练集遍历所有走法;(2)由于“下一步棋”的走法可能性过多,故通过蒙特卡罗树搜索决定较优落子方法,使其在国际象棋方面有机会与顶级选手较量。因此,“深蓝”的成功也标志着人工智能往前大跨一步,实现“知识人为提供,决策灵活”。第二次低谷阶段2.人工神经网络的理论模型可以解决专家系统的弊端,但其需要的超级计算能力与海量数据这两大基础在当时无法实现。1.专家系统终究是依赖于人类整理的知识库,无法实现对更复杂问题的求解;因此,人工智能的研究热再次熄灭。第三次发展阶段知识自主学习,决策灵活2016年,区别于深蓝的勉胜,Google公司的智能机器人AlphaGo以4:1的大比分战胜围棋世界冠军李世石,甚至李世石本人也对AlphaGo棋艺的大幅进步而震惊。这一重大事件也标志着人工智能终于迎来全新发展阶段。“深蓝”AlphaGo深蓝严格意义上只可称为“手工”程序。保留深蓝的优点基础上,还真正实现自我学习的能力。李世石与AlphaGo的人机大战第三次发展阶段第三次发展源自计算机的计算量与海量数据两大问题已不再是瓶颈,这也使得人工神经网络得以发挥作用;且“评价网络”与“策略网络”两种深层神经网络成功应用于AlphaGo的围棋算法中。1.评价网络可根据当前局势计算己方最终的胜率;2.策略网络则可以判断对手最可能的落子点;3.决策仍是基于蒙特卡罗树搜索算法确定己方的下一步最佳落子点。受限于专家系统,深蓝更多只可适用于国际象棋的对弈。AlphaGo的算法则因为人工神经网络自学习知识的特点没有领域限制,更容易实现泛化。尽管人工神经网络往往在具备海量数据集的前提下才能发挥优势,这与人类大脑对于任意领域均能实现基于少量样例便可进行演绎推理的能力无法比拟,也正说明与强人工智能的愿景尚有差距,但技术的不断突破与商业化应用无疑使人工智能更进一步。人工智能概述:基本概念人工智能(ArtificialIntelligence,AI)自诞生以来出现过多种定义。美国斯坦福大学人工智能研究中心的尼尔逊(Nelson)教授曾认为,“人工智能是关于知识的学科——即怎样表示知识以及怎样获得知识并使用知识的科学。”美国麻省理工学院的温斯顿(Winston)教授则定义,“人工智能就是研究如何使计算机去做过去只有人才能做的智能工作。”人工智能:研究人类智能活动的规律,通过计算机的软硬件模拟、延伸和扩展人的某些思维过程和智能行为,从而创造出具有一定智能程度的人工系统。从另一个角度,人工智能虽是计算机科学的一个分支,但又涉及心理学、哲学、语言学等多种社会科学,已远远超出计算机科学的范畴,因此她可独立成为一门研究智能理论、方法、技术及应用系统的新技术科学。人工智能概述:研究内容人类通过将小白鼠的听觉中枢与视觉神经进行人为连接,发现听觉中枢拥有视觉功能,验证了包括人类在内的哺乳动物的大脑中各块区域都拥有类似的学习机制,这为研究具有通用性智能的机器或称为具备多元智能的系统提供了理论基础。但是考虑到通用性智能的实现复杂性,研究者们决定先从单一模块分别实现突破。人工智能研究内容人类特征眼耳口鼻舌等感官语言交流能力运动能力学习能力情感规划知识库自主感知自然语言处理运动与控制机器学习情感社交智能规划知识表示法人工智能概述:研究内容【自主感知】包括机器视觉、计算机视觉等图像处理类技术,以及机器听觉、语音识别等技术;【自然语言处理】就狭义角度而言,即将语音识别的结果以及其他来源作为自然语言处理的素材,并转化成适于另一群体使用的语言结果的技术;【运动控制】智能系统如智能机器人能根据环境完成正确的运动并实现自主控制的技术;【机器学习】模拟人类的学习行为获取新的知识并实现知识的转化应用,机器学习也是人工智能的核心技术,是计算机具备智能的根本途径;【情感社交】计算机通过情感计算对人给予的反应作出表情、姿态、语气等的变化,实现人机交互更加和谐;【智能规划】通过建立自我的世界模型,并与真实世界进行对比,根据预测与现实的差别进行计划的制定与调整;【知识表示法】通过逻辑表示法或产生式表示法等表示方法搭建常识知识库,用作计算机决策的知识来源之一。此外,人类也具备创造力,即在某些特定情况下的一种不依赖于量变而产生质变的特殊模式,这也是人工智能尚待研究攻克的内容之一。人工智能概述:实现方法【机器学习】正如Google所言,“先解决智能问题,再用智能解决一切问题。”人的高级属性在于可通过学习获取知识,然后用于解决问题,并且良性循环,不断提高;因而人工智能的关键就在于能否真正使计算机如人类一般进行学习和提高,这便是为什么机器学习是人工智能的核心技术。从学习策略角度,机器学习可进行如下分类。机器学习归纳学习:经验性归纳学习事实上,分类与回归问题本质上均为根据输入对输出作预测,而分类问题的输出是一种定性输出,即离散型变量;而回归问题的输出则是一种定量输出,即连续型变量。经验性归纳学习主要用于解决分类问题和回归问题:分类可理解为数据划分界限,譬如输入人脸图片输出人物身份识别结果;回归可理解为数据拟合,譬如输入人脸图片输出人物年龄预测。经验性归纳学习决策树模型算法朴素贝叶斯模型算法支持向量机算法等逻辑回归算法归纳学习:经验性归纳学习决策树模型决策树模型(DecisionTreeModel,DTM)是在已知各种情况发生概率的基础上,通过构成决策树来求取各期望值的概率(非负数),评价事件风险来判断其可行性的决策分析方法,是直观运用概率分析的一种树状结构的图解法,也是最简单的归纳学习算法,并且决策过程近似于人类在社会环境中的逻辑思维过程。建立决策树模型主要包括四项内容:1.模型欲实现的目标;2.根节点,表示训练数据集;4.叶节点,表示模型的判定结果。3.内部节点,表示多层测试条件,以对数据进行分类纯化;注:训练数据集是已知特征属性的数据样本,是决策树结构形成过程的数据源。归纳学习:经验性归纳学习“高尔夫球场的顾客”问题在不同环境下,高尔夫球场的顾客量会出现很大的波动,这当然也会影响服务员人员的需求量。比如在下雨时,顾客量会很少,服务人员的需求量就会小,而在阴天时,顾客量可能就会多,服务人员的需求量自然就大。因此,球场可以记录不同天气情况下的顾客访问量,从而预测出未来指定时间段内的服务人员需求量。日期天气气温(℃)相对湿度(%)有/无风有/无顾客1晴2985无无2晴2790有无3多云2878无有4雨2196无有5雨2080无有6雨1870有无7多云1765有有8晴2295无无9晴2070无有10雨2480无有11晴2470有有12多云2290有有13多云2775无有14雨2180有无两周高尔夫球场顾客数据集归纳学习:经验性归纳学习“高尔夫球场的顾客”问题建立高尔夫球场顾客问题的决策树模型:归纳学习:经验性归纳学习“高尔夫球场的顾客”问题由此,本示例建立的决策树模型将顾客打球时间与原因进行了有效的分类,并为将来的实际待测数据集提供了预测模型,即只要根据今后的天气相关指标值便可推测出当日是否会有顾客光临,从而灵活调整雇员数量,包括固定员工与临时工的合理搭配等。1.单论天气情况,可得出第一层结论,即多云天气时,顾客总是喜欢打高尔夫球,而晴雨天则视情况而定;2.晴天时,顾客喜欢在相对湿度低于70的日子里打高尔夫球,或在雨天时,只要无风,也有狂热的爱好者前来打球;但在晴雨天的其他情况下,顾客则不会选择打球。上述决策树模型的根节点的训练数据集即来自“两周高尔夫球场顾客数据集”表格,其中天气、气温、相对湿度、有/无风等特征值为测试条件,且须遵从选择可令子集纯度更高的测试条件作为最优特征值进行划分。根据决策树模型可知:归纳学习:经验性归纳学习朴素贝叶斯模型朴素贝叶斯模型(NaiveBayesianModel,NBM)算法也是一种基于概率论的预测算法。其核心法则是基于如下条件概率公式:
假设有特征:性别、有无纹身等,根据这些样貌特征,我们训练出一个标准的“好人模型”和“坏人模型”。这样,当一个品行未知的人来以后,我们迅速获取TA的样貌特征向量,分布输入“好人模型”和“坏人模型”,得到两个概率值。如果“坏人模型”输出的概率值大一些,那这个人很有可能就是个大坏蛋了。归纳学习:经验性归纳学习逻辑回归支持向量机支持向量机(SupportVectorMachine,SVM)算法通过寻找两个平行的超平面并使之距离最大化实现分类。逻辑回归(LogisticRegression,LR)算法通过拟合曲线实现分类或回归。尽管用于分类的算法众多,但因各自优缺点而有各自的适用范围。1.决策树的优点在于属于白盒模型,即无需专业解读,具有天然的解释性;但缺点在于对异常值敏感,易导致树结构的巨大变化,以及对未出现过的值束手无策导致泛化能力不足;2.朴素贝叶斯模型优点是其源于古典数学理论,分类效率稳定,且对缺失数据不敏感;但其缺点在于各个特征相互独立的假设在实际应用中往往不成立,这对概率计算值的真实性造成影响;3.逻辑回归的优点是其计算代价低,易于实现;缺点在于易出现欠拟合,导致分类精度可能不高;4.持向量机的优点在于其对异常值敏感度低,易于泛化;缺点是对大规模训练数据集难以实施,以及难以解决多分类的问题。归纳学习:遗传算法遗传算法的基本过程如下:确定实际问题的参数集并进行编码得到初始化的种群,再通过适应度函数评价种群,若当前解已满足评价要求,则结束,此解即所求期望解;若当前解不满足停止规则,则进行遗传操作,包括选择、交叉和变异,从而迭代产生新一种群,随后重复评估适应度及后续过程,直至得到期望解。遗传算法(GeneticAlgorithm,GA)主要用于解决搜索问题。自上世纪90年代后,它的应用已从函数优化、车间调度等范围扩展至基于遗传算法的机器学习领域,并且遗传算法也正日益和人工神经网络、模糊推理及混沌理论等其他智能计算方法互相渗透融合。归纳学习:遗传算法以典型的“袋鼠跳”来描述遗传算法的求解过程。假定需要求解函数曲线的最大值,而函数曲线图有多个极大、极小值。现将曲线图理解为一座山脉,有多处山峰与山谷,令随机得到的一组解作为第一群袋鼠散落于山脉不同位置中,并让袋鼠不断往高处跳(逼近),直至有袋鼠跳至最高山峰处。袋鼠跳的方法有多种:1.
“爬山法”:由于是依赖随机产生的单点往周边进行跳跃寻找高峰,故易导致到达局部最优解即停止,而可能无法到达全局最优解;1.遗传算法:不以单点跳跃,而是多点并行,即随机产生一群袋鼠散落于山脉中,每隔一个周期,对低海拔的袋鼠进行全体射杀,剩下高海拔的袋鼠存活,并且存活的袋鼠可进行繁殖,在此地产生更多的袋鼠,同时袋鼠可以往周边跳跃寻找附近的高峰;如此循环,最后仅最高峰的袋鼠得以存活,即找到全局最优解。若求最小值同理。2.
“模拟退火法”:通过令袋鼠有较大的跳跃量以解决遇到局部最优解即停止的问题,而可以有足够能量跳过局部点并在接近全局最优解时降低跳跃量直至到达全局最优解,但仍是单点跳跃,跳跃时间长;注:遗传算法具有其独特的优势,即算法与问题涉及领域无关,适用广泛,同时不采用确定性规则而以概率的变迁规则指导搜索方向;但其不足在于搜索速度较慢,欲得到精确解需较长训练时间等。归纳学习:联结学习联结学习主要指人工神经网络(ArtificialNeuralNetwork,ANN)算法,是一种模拟人脑神经元网络的信息处理模型,自上世纪50年代起,至今已发展60余年。经历了浅层神经网络到深层神经网络(深度学习算法)的发展历程。深层神经网络浅层神经网络单层线性感知机模型多层非线性感知机模型归纳学习:联结学习浅层神经网络起初,FrankRosenblatt教授在由美国心理学家McCulloch和数学家Pitts提出的“人工神经元模型”,或称为“M-P神经元模型”的基础上,于1958年正式定义“感知机(MultilayerPerceptron,MLP)模型”。图中的单层单神经元感知机模型中,x1~xn为n个从研究对象提取的特征值,w为权重值,b为激活阈值,所有特征值xi通过线性加权和作为输入,f为激活函数。当模型完成输入后,经激活函数作用,若其值大于设定阈值,则输出阶跃值1激活,反之则输出阶跃值0抑制,从形式上仿照人体神经元突触处的兴奋和抑制机制。归纳学习:联结学习浅层神经网络感知机模型还在于将各输入值的权重定义为可变,通过设置基于误分类的损失函数,利用梯度下降法对损失函数不断迭代求得极小值,即可将权重调整至最接近真实的情况,这也使“感知机模型”被赋予学习的特性。但是单个神经元的输出只有0和1两种情况,而实际对象的输出往往有多种,需要通过多个神经元共同完成分类。右图是单层多神经元感知机模型,由m个神经元构成,最多可区分出2^m种输入模式。但无论神经元个数有多少,它仍是单层的感知机模型。归纳学习:联结学习浅层神经网络在上世纪60年代末70年代初,尽管“感知机模型”调整权值的算法十分简洁,但随着它的深入使用,研究者们遇到三层阻碍:1.单层的感知机模型只能解决可线性分割的问题,对于非线性分割问题如异或门则束手无策;2.当时作为样本输入的数据量缺失;3.由于单层感知机模型的局限性,当问题复杂度提高,多神经元感知机模型的神经元数量增加,分类结果也将呈指数级增长,伴随的是计算难度的指数级增长,而当时计算机的计算量是远远达不到要求的。因此,人工神经网络自身的“单层感知机模型”存在不足与时代发展阶段的外部因素共同限制进一步其发展。归纳学习:联结学习深层神经网络直至80年代,“深层神经网络(DeepNeuralNetwork,DNN)”的出现有效克服了“单层感知机模型”无法解决异或运算的问题。“多层”和“非线性”是“深层神经网络”的两大特性:【多层】区别于单层感知机模型,其在输入和输出层间加入“隐层”,从而扩展为多层感知机模型。【多层】体现在激活函数采用非线性函数。归纳学习:联结学习深层神经网络20世纪80-90年代21世纪至今80年代末90年代初,卷积神经网络与循环神经网络等当下热门的人工神经网络算法,与深层神经网络同样得到较好的发展,并在当下均被称为“深度学习”算法。但同时,神经网络的发展再次遇阻,此时的人工神经网络理论模型已取得可观的进展,却仍然受制于当时的计算机计算能力不足,以及可供使用的数据量无法达到训练深层神经网络所需的要求。直到近年来,云计算等技术极大地提高计算系统的计算量,同时大数据的出现亦使得深层神经网络所需的海量数据不再成为制约,因此人工神经网络在自身理论成熟与外部技术环境支持的共同驱动下,得到了空前的发展与应用,也直接推动了新一代人工智能的到来。演绎学习:分析学习【归纳学习】从经验性归纳学习、遗传算法、联结学习等算法的实现原理可以看出,归纳学习是指在大量样例的前提下总结一般规律,创立新的概念、理论,再用于预测分析、解决智能问题。【演绎学习】指在已知事实规律的前提下就少量样例进行推理分析,并不产生新的概念、知识,是一种基于解释的学习策略,以分析学习为典型实现算法。相对于归纳学习,分析学习在可用训练数据不足的情况下较有优势。以珍稀物种中华鲟的识别为例,若归纳学习需要通过大量中华鲟图片作为训练数据集得到识别中华鲟的算法模型,分析学习则是基于先验知识,即将中华鲟相较其他动物所特有的特征属性与训练数据共同作为输入,分析少量的训练数据,明确这些样例如何满足中华鲟的目标特征,则可基于逻辑推理而非统计推理对样例进行泛化。新一代人工智能及其与传统人工智能区别人工智能自诞生以来每一次发展都会受阻,但沉默期之后也都会重新迎来曙光,现今正处于第三次发展阶段。之所以称为“新一代人工智能”,主要在于社会需求的变化、技术环境的变革以及人工神经网络理论的成熟这三大关键因素,这也是其与传统人工智能的区别所在。有别于上世纪以学术牵引为主的AI研究,21世纪的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法院专项速递合同范本
- 旅馆宾馆转租合同范本
- 埃博拉出血热医院感染防控措施和转运工作流程
- 景观水池施工合同范本
- 音响舞台租赁合同范本
- 病句关联词搭配不当30题及答案
- 2025《上海市房屋租赁合同中介服务版》
- 2025标准办公室租赁合同的范本
- 市政碎石采购合同范本
- 预防医学(山东联盟)知到课后答案智慧树章节测试答案2025年春山东第二医科大学
- 有理数的加法说课课件2024-2025学年人教版数学七年级上册
- GB/T 18655-2025车辆、船和内燃机无线电骚扰特性用于保护车载接收机的限值和测量方法
- 2025年江苏南通苏北七市高三二模语文作文分析
- 吉林省吉林市2024-2025学年高三下学期3月三模试题 生物 含答案
- 辽宁省协作校2024-2025学年度下学期高三第一次模拟考试语文+答案
- 2025年03月中央社会工作部所属事业单位公开招聘11人笔试历年参考题库考点剖析附解题思路及答案详解
- 2025年中高端女装市场趋势与前景深度分析
- 2025年上半年宣城市广德县人民法院招考书记员兼任法警易考易错模拟试题(共500题)试卷后附参考答案
- 2025北京清华附中高三(下)统练一数学(教师版)
- 重庆市南开中学高2025届高三第七次质量检测化学试题及答案
- 华能霞浦核电限公司2025年上半年应届毕业生招聘易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论