




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能技术基础第五章深度学习01人工智能基本概念02深度学习概述01机器学习回顾机器学习内容回顾什么是机器学习?(一句话概括)机器学习分为哪些类别?机器学习算法的求解一般过程?数据挖掘实战的通用流程?Python中使用到的工具包?1.机器学习是什么?一句话的解释:机器学习(MachineLearning,ML)是指从有限的观测数据(训练数据)中学习(或“猜测”)出具有一般性的规律(Function),并利用这些规律对未知数据进行预测的方法。“5-5”(下一步走棋位置)PlayingGo:“猫”图像分类:“你好,吃了吗?”语音识别:2.机器学习的类别回归:输出是一个实数预测PM2.5的数值f明日PM2.5数值
今日PM2.5温度O3浓度垃圾邮件过滤是/否f分类:
输出属于的类别PlayingGO(19x19classes)2.机器学习的分类创造有结构化的物件(图片,文本,音乐等)结构化学习回归:输出是一个实数分类:
输出属于的类3.机器学习算法的求解一般过程4、预测数据计算Loss查看效果
训练过程Training测试过程Testing4.数据挖掘实战的通用流程?业务理解:确定要做什么任务数据采集:收集数据数据清洗:去除异常值,补充空缺值……特征工程:特征选择,特征转换,降维……数据建模:拆分数据集,建模,调参……验证调优:交叉验证,f1-score……模型融合:多模型ensemble……模型部署:投入生产数据预处理5.Python中使用到的工具包?业务理解数据采集:爬虫Scrapy,json解析BS4数据预处理:Pandas,Numpy,Matplotlib/Seaborn数据建模、调优:Sklearn模型部署第五章深度学习02深度学习概述01机器学习回顾WhatisDeepLearning?+什么是深度学习概念源于人工神经网络的研究由GeoffreyHinton等人于2006年提出通过组合底层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示深度学习模型可以自动提取很多复杂的特征通过多层次的非线性变换,它可以将初始的“底层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类学习任务什么是深度学习深度=很多很多的网络层数什么是深度学习第一次兴起:1943年由McCulloch和Pitts首次提出了神经网络中的神经元模型——M-P神经元模型。1958年,感知器perceptron诞生。由于无法解决异或问题陷入低谷期第二次兴起:1986年,Hinton提出多层感知机(MLP),加上非线性激活函数,解决了异或问题。并且提出了BP反向传播算法,来训练模型。受限于理论不完善(解释性差等)最终暂时败于SVM,陷入第二次低谷期第三次兴起,突破,2006年前后GoeffreyHinton提出pre-training方法训练DBN(深度信念网络)以及YannLeCun将BP与CNN结合推出Le-Net。2009:GPU兴起。2012年以后:语音、图像,文本深度学习发展历程神经网络发展史:深度学习再次飞跃发展的因素:大规模高质量标注数据集的出现并行运算(例如GPU)的发展更好的非线性激活函数的使用:ReLU代替Sigmoid更多优秀的网络结构的发明:ResNet,GoogleNet,AlexNet等深度学习开发平台的发展:TensorFlow,Pytorch,Theano和MXNet等新的正则化技术的出现:批标准化、Dropout等更多稳健的优化算法:SGD的变种,如RMSprop,Adam等深度学习发展历程ImageNet:一个大型可视化数据库。拥有超过1400万的标注图像,包含2万多个类别。2010年以来,ImageNet项目每年举办一次软件竞赛,即ImageNet大规模视觉识别挑战赛(ILSVRC)。挑战赛使用1000个“整理”后的非重叠类,比赛内容是:正确分类、并检测目标及场景。图像识别人类平均错误率约5.1%,15年ResNet以3.57%的错误率首次突破人类水平,16年冠军Trimps-Soushen错误率仅2.99%,17年SeNet错误率只有2.25%深度学习应用-图像类应用ZFDeep深度学习应用-物体检测与分割/matterport/Mask_RCNN深度学习应用-风格迁移/zhanghang1989/MXNet-Gluon-Style-Transfer/深度学习应用-人脸合成2017年的DeepFakes和2019年手机APP-ZAO用换脸技术在互联网社交平台上人气火爆,一度成为热门话题通过摄像头采集脸部特征(根据指示对镜头完成一些动作)无监督的图像到图像转换的生成对抗网络深度学习应用-人脸识别Google神经机器翻译系统在多种语言间的翻译性能获得大幅突破,接近人类的翻译水平深度学习应用-自然语言处理生成莎士比亚诗集生成藏头诗深度学习应用-自动生成文本深度学习应用-文本生成图片/blog/dall-e/在语音识别领域极具挑战性的SwitchBoard任务中,GMM-HMM传统方法一直未能有突破2011年使用DNN后获得较大突破2015年,IBM再次将错误率降低到6.9%,接近人类的水平(4%)2016年,Microsoft将错误率降低到5.9%,进一步接近人类水平公开语料库:
/resources.php中文:THCHS-30,清华大学,30小时连续普通话语音数据库深度学习应用-语音识别2015年10月,AlphaGo击败樊麾,成为第一个无需让子即可在19路棋盘上击败围棋职业棋手的电脑围棋程序。2016年3月,AlphaGo与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜。2017年5月23日到27日,在中国乌镇围棋峰会上,AlphaGo以3比0的总比分战胜排名世界第一的世界围棋冠军柯洁。2017年10月18日,DeepMind团队公布了AlphaGoZero,从空白状态学起,在无任何人类输入的条件下,AlphaGoZero能够迅速自学围棋,用40天超越了所有旧版本。深度学习应用-AlphaGo深度学习是一种特殊的机器学习深度学习VS机器学习人工智能ArtificialIntelligence机器学习MachineLearning深度学习DeepLearning(1)数据依赖性
当数据很少时,深度学习算法的性能并不好。因为深度学习算法需要大量的数据才能很好理解其中蕴含的模式。(2)硬件依赖深度学习算法需要进行大量的矩阵运算,GPU
主要用来高效优化矩阵运算,所以GPU是深度学习正常工作的必须硬件。与传统机器学习算法相比,深度学习更依赖安装GPU的高端机器。深度学习VS机器学习(3)特征处理机器学习需要专家人为定义特征,并编码为一种数据类型。特征工程处理过程非常耗时且需要相应的专业知识。机器学习的模型效果好坏极大取决于特征工程。深度学习尝试从数据中直接获取特征,这是深度学习与传统机器学习算法的主要的不同。例如,卷积神经网络尝试在前边的层学习低等级的特征(边界,线条),然后学习部分人脸,然后是高级的人脸的描述。深度学习VS机器学习(4)问题解决方式传统机器学习通常会将问题分解为多个子问题并逐个子问题解决最后结合所有子问题的结果获得最终结果。深度学习提倡直接的端到端的解决问题机器学习会将问题分解为两步:物体检测和物体识别。首先,使用一个边界框检测算法扫描整张图片找到可能的是物体的区域;然后使用物体识别算法(例如SVM结合HOG)对上一步检测出来的物体进行识别。
深度学习会直接将输入数据进行运算得到输出结果。例如可以直接将图片传给YOLO网络(一种深度学习算法),YOLO网络会给出图片中的物体和名称。多物体检测任务:深度学习VS机器学习(5)执行时间
机器学习的训练会消耗的时间相对较少,只需要几秒钟到几小时的时间。根据数据量和机器学习算法而定。
深度学习训练需要很长的时间:这是因为深度学习算法中参数很多,因此训练算法需要消耗更长的时间。最先进的深度学习算法ResNet完整地训练一次需要消耗两周的时间。所以需要GPU来大大提升训练速度。(6)可解释性
机器学习中的类似决策树、逻辑回归这样的算法具备规则的可解释性,可以帮助决策者了解背后的逻辑推理。
深度学习算法的结果不具备可解释性。
深度学习VS机器学习TensorflowPyTorchCaffeTheanoKeras…深度学习业务开源框架简介课程实验代码:Tensorflow2.0Tensorflow官方:/guide?hl=zh-cnKeras官方:https://keras-zh.readthedocs.io/二、深度学习概述知识点回顾什么是深度学习深度学习发展历程深度学习应用深度学习与机器学习比较深度学习概述知识点回顾人工智能技术基础5.2全连接神经网络第五章深度学习01从感知机到神经网络02全连接网络生物神经元人类的大脑(生物神经元):树突细胞体轴突树突M-P神经元模型神经元受生物神经元启发,1943年由McCulloch和Pitts首次提出了神经网络中的神经元模型——M-P神经元模型神经元模型z…a1a2
aK+b偏差Bias权重Weightsw1w2wK…1、加权求和的值:
激活函数ActivationFunction2、经过激活函数的神经元输出:
常见的激活函数11.符号函数Sign符号函数sign的值域为+1或-1,即当输入大于等于0时,输出+1,小于0时输出-1,2.阶跃函数Sgn阶跃函数与符号函数非常接近,区别在于当输入小于0时,阶跃函数输出是0,而符号函数输出是-1常见的激活函数23.sigmoid函数值域为(0,1)该激活函数如今并不常用,因为梯度太容易饱和,不过RNN-LSTM网络如今还会需要用到它。4.tanh函数值域为(-1,1)该激活函数因为ReLU
函数的普及使用而不那么流行了。常见激活函数35.ReLU(修正线性单元)解析表达式可写为ReLU(x)=max(0,x)。值域为[0,+∞)ReLU是如今应用最广泛的激活函数。但是ReLU可以kill神经元:一旦ReLU后=0,该神经元将不会被再激活。6.LeakyReLU
(渗漏线性单元)值域为(−∞,+∞),α一般是很小的常数,保留了一些负轴的值,使得负轴信息不会全部丢失。不管输入到神经元的是什么值,其至少能得到一个非零的数值。思考:激活函数可以是线性函数吗?单层感知机感知机(Perceptron)是FrankRosenblatt在1957年就职于康奈尔航空实验室(CornellAeronauticalLab)时所发明的一种人工神经网络,可以被视为是一种最简单形式的神经网络,是一种二元线性分类器。1.单层感知机:仅包含输入和输出层两层结构应用:单层感知机实现逻辑与(AND)
11-2
激活函数用阶跃函数sgn单层感知机单层感知机是一种线性可分模型,仅能解决线性可分的数据问题课堂练习1:单层感知机实现逻辑或(OR)OR
操作
?
??
课堂练习2:单层感知机实现逻辑异或(XOR)XOR
操作
?
??无解。。。多层感知机多层感知器(MultilayerPerceptron,缩写MLP)是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量,网络结构可以有多层,输出节点也可以有多个。也叫多层神经网络,是最典型的神经网络模型,能解决线性不可分问题。
输入层
隐藏层输出层
课堂练习2:单层感知机实现逻辑异或(XOR)XOR
操作010111100000000神经网络分类按神经网络的结构,介绍三种最常用的神经网络结构:1.前馈网络前馈网络中各个神经元按接收信息的先后分为不同的层,每一层中的神经元接收前一层神经元的输出作为输入,计算后将该层的输出传递到下一层神经元。整个网络中的信息朝一个方向传播,没有反向的信息传播。常见的前馈网络包括全连接前馈网络、卷积神经网络等。2.记忆网络记忆网络,也被称为反馈网络,网络中的神经元不仅可以接收其他神经元的信息,也可以接收自己的历史信息,并且在不同的时刻可以具有不同的状态。记忆神经网络中的信息可以是单向传递,也可以是双向传递。常见的记忆网络包括循环神经网络、Hopfield网络、玻尔兹曼机等。3.图网络前馈网络和记忆网络都要求输入是向量形式,但实际应用中很多数据是图结构的,比如知识图谱、社交网络数据等,图网络是可以处理图结构数据的神经网络。节点之间的连接可以是有向的,也可以是无向的,每个节点可以收到来自相邻节点或自身的信息。图网络是前馈网络和记忆网络的泛化,常见的图网络包括图卷积网络、图注意力网络等。第五章深度学习01从感知机到神经网络02全连接网络1.网络结构-全连接神经网络基本单元62+3偏差Bias权重Weights1-2-1σ(z)
激活函数ActivationFunction-110.9971.网络结构-全连接前馈神经网络全连接前馈神经网络(FullyConnect
FeedforwardNetwork)
神经元之间两两都连接,链式结构,前后次序给定;上一层的输出为下一层的输入。输出层OutputLayer隐藏层Hidden
Layers输入层InputLayer输入层神经元数量=特征的维度输出层神经元数量=分类的数量Eg:猫狗识别:2手写体0-9识别:10x2……xNLayer
2……Layer
L…………………………Outputy1y2yMInput Layer
1x1……1.网络结构-输出层表示二分类问题:sigmoid函数(单节点)多分类问题:softmax函数输出层OutputLayer隐藏层Hidden
Layers输入层InputLayerx2Input Layer
1x1……xN……Layer
2……Layer
L…………………………Outputy1y2yMSoftmax
1.网络结构-输出层表示输入:256维向量输出:10维向量神经网络均方误差(MSE)预测值和真值的欧式距离均方误差损失函数常用于回归问题中输出层配套的激活函数一般为:linear输出神经元数量:1个交叉熵(cross-entropy)来源于信息论中熵的概念目前神经网络处理分类问题常用的损失函数输出层配套的激活函数一般为:sigmoid(二分类)、softmax(多分类)多分类神经元数量=分类的数量神经网络的损失函数特征:•非负性•预测值和真实值接近时,损失函数值趋于零2.常见损失函数类别K的标签(实际概率)属于类别K的预测概率3.寻找最优参数–梯度下降法
超参数:学习率(learningrate)迷雾下山:每次沿着当前位置最陡峭的方向走一步,直到谷底不同的初始点,可能走到不同的局部最小点问题?假设输入层1000,隐层1000,隐层1000,输出10,权重:1*e10个。如何高效更新参数?误差反向传播(Backpropagation)BP算法3.寻找最优参数–BP算法(误差反向传播)BP算法计算流程反向传播算法过程:【权重初始化】通常将参数初始化为一个很小的,接近零的随机值。【前向计算】依次计算各层神经元的加权和z和激活值a,计算损失值L。【反向传播】根据损失值L,由后向前,依次计算各层参数的梯度,运用梯度下降迭代更新权重值。如此循环,直到满足终止条件,更新迭代完成。人工智能技术基础5.3神经网络优化技术第五章深度学习01深度学习中的优化方法02正则化过拟合和欠拟合损失epoch验证集训练集欠拟合过拟合深度学习的优化参数学习算法的优化SGD/mini-batchSGD自适应学习率AdaGradRMSprop动量法Momentum减少每次训练量Adam手动调整学习率随机失活DropoutL1、L2正则化提前终止Earlystopping欠拟合(训练集效果不好)过拟合(训练集效果好,但验证集效果不好)梯度下降:使用全部训练集样本,计算代价太高。(更新一次参数,使用全部训练样本)随机梯度下降(stochasticgradientdescent,SGD):
为了减少每次迭代的计算开销,通常在每次迭代中,随机均匀采样一个样本计算梯度,更新一次参数。
小批量随机梯度下降(mini-batchSGD):
实际使用往往使用mini-batchSGD,即每次迭代中随机均匀采样多个样本组成小批量,然后使用这个小批量来计算梯度,不仅能减少梯度估计的方差,还能充分利用计算资源,计算更快!1.参数最优化–随机梯度下降SGD
SGD缺点:1、容易收敛到局部最小值。2、选择合适的learningrate比较困难-对所有的参数更新使用同样的learningrateSmallBatchv.s.LargeBatchBatchsize=20(Fullbatch)每次看全量数据每个epoch更新一次每次看1个数据每个epoch更新20次总样本(N=20)Batchsize=1SmallBatchv.s.LargeBatchMNISTCIFAR-10经验:较小的batch-size效果较好深度学习的优化参数学习算法的优化SGD/mini-batchSGD自适应学习率AdaGradRMSprop动量法Momentum减少每次训练量Adam手动调整学习率随机失活DropoutL1、L2正则化提前终止Earlystopping欠拟合(训练集效果不好)过拟合(训练集效果好,但验证集效果不好)2.参数最优化–手动调整梯度:动量法很难找到最佳的网络参数在平坦处梯度下降缓慢停留在鞍点
停留在局部最小点
驻点(CriticalPoint)局部最小值鞍点普通GradientDescent
移动方向梯度……
带动量的梯度下降
MovementGradient
移动方向不仅由负梯度方向决定,还要考虑上次的动量Movementofthelaststep
4.参数最优化–自适应学习率Adagrad
学习率太小→训练收敛太慢学习率太大→来回震荡,损失未必会减低梯度变化小,希望η较大梯度变化大,希望η较小Adagrad:𝑤←𝑤−
𝜕𝐿∕𝜕
𝑤小常数,防止分母为0前面梯度的平方的总和OriginalSGD: 𝑤←
𝑤−𝜂
𝜕𝐿∕𝜕𝑤𝜂
通常每次参数更新时,对于所有参数使用相同的学习率。AdaGrad算法的思想是:每一次参数更新,不同的参数使用不同的学习率。对于梯度较大的参数,学习率会变得较小;对于梯度较小的参数,学习率会变大。这样可以使得参数在平缓的地方下降的稍微快些,不至于徘徊不前。5.参数最优化–自适应学习率RMSpropRMSprop(rootmeansquareprop均方根传递):RMSProp增加了一个衰减系数α来控制历史信息的获取多少使用指数衰减平均,以丢弃遥远过去历史梯度。降低了对早期历史梯度的依赖历史的梯度被逐渐减弱Adam(AdaptiveMomentEstimation)
Momentum
(用动量来累积梯度)RMSprop(收敛速度更快、波动幅度更小)。Adam特点:结合AdaGrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点对内存需求较小为不同的参数计算不同的自适应学习率第五章深度学习01深度学习中的优化方法02正则化深度学习的正则化参数学习算法的优化SGD/mini-batchSGD自适应学习率AdaGradRMSprop动量法Momentum减少每次训练量Adam手动调整学习率随机失活DropoutL1、L2正则化提前终止Earlystopping欠拟合(训练集效果不好)过拟合(训练集效果好,但验证集效果不好)1.防止过拟合–L1、L2正则化由于深度网络的表达能力很强,模型复杂度高,很容易导致过拟合,泛化能力降低深度学习中的正则化的目的:防止过拟合,提高泛化能力损失epoch验证集训练集L1正则化L2正则化
L1正则化项是所有参数的绝对值之和,可以抑制参数的大小,但是易产生稀疏解,即一部分为0,一部分非零实数。L2正则化项是参数的平方和。倾向于让参数数值上尽可能小,最后构造出一个所有参数都比较小的模型,一定程度上避免过拟合。L1使权重稀疏,L2使权重平滑。常用L2正则。λ(惩罚系数)越大,权重总体越小。2.防止过拟合–提前停止(Earlystopping)模型的泛化能力通常是使用验证集评估得到的。随着不停的迭代,模型在训练集上的误差越来越小,而验证集上误差往往会先减少后变大,因此可以在验证集上效果变差的时候,提前停止。损失epoch验证集训练集提前停止在深度学习网络的训练过程中,每次更新参数之前,每个神经元都有p的概率被丢弃dropout是防止过拟合提高的泛化性的利器3.防止过拟合–随机失活(Dropout)人工智能技术基础5.4循环神经网络(RNN)第五章深度学习
01RNN概论
02RNN网络结构及各层工作原理
03LSTM详解
04GRU详解生活中的序列数据73文本序列数据时间序列数据何人无不见,此地自何如。一夜山边去,江山一夜归。山风春草色,秋水夜声深。何事同相见,应知旧子人。何当不相见,何处见江边。一叶生云里,春风出竹堂。何时有相访,不得在君心。为什么需要RNN?全连接网络、CNN网络:前一个输入和后一个输入是完全没有关系的某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。任务输入输出词性标注我吃苹果我/nn吃/v苹果/nn文本分类手机不买很吃亏1时间序列预测(每天气温)(次日气温)同步翻译IloveChina我爱中国下一个出现位置预测基站A、B、C基站D为什么需要循环神经网络(RNN)?为什么需要循环神经网络(RNN)?7575RNN是为了对序列数据进行建模而产生的。传统神经网络(包括FCN、CNN),输入和输出都是互相独立的。RNN针对:序列数据(例如文本,是字母和词汇的序列;语音,是音节的序列;视频,是图像的序列;气象观测数据,股票交易数据等等)输出的内容与之前的内容是相关的。传统神经网络(包括FCN、CNN),要求有固定的输入和输出的尺寸,而在文本领域,根据不同任务需要处理1-1,1-多,多-多,多-1等多种情况。RNN网络结构较为灵活。核心思想:样本间存在顺序关系,每个样本和它之前的样本存在关联。引入“记忆”的概念,来处理前后数据的相关性。第五章深度学习
01RNN概论
02RNN网络结构及各层工作原理
03LSTM详解
04GRU详解RNN结构
输入层隐藏层输出层MemoryCell循环神经网络基本结构
SimpleRNN在计算时,把上一次隐藏层的结果数据,作为下一次的一个输入源,与下一次的x合并后,再传入隐藏层。这个过程,保留了之前数据的信息。RNN的过程中,共享同一个权重矩阵A。这个A就是W和U的拼接。RNNexampleRNN处理序列数据,按序将数据一个一个传入网络计算RNNexampleEg:根据用户的输入,判断用户的说话意图(多分类)RNN存在的问题RNN的缺陷:1.RNN有短期记忆问题,无法处理很长的输入序列由于反向传播BPTT(backpropthroughtime)算法普遍存在梯度消失的问题,但是由于RNN是序列计算,所以早期的步骤的梯度就非常小了。短期的记忆影响较大(如橙色区域),但是长期的记忆影响就很小(如黑色和绿色区域)由于RNN的短期记忆问题,后来又出现了一系列基于RNN的优化算法。RNN应用举例——预测股价83Wt-1Wt+1Wt输入最近两天的股价,预测第三天的股价RNN应用举例——预测位置84输入用户已经走过点的经纬度,预测用户下一时刻的经纬度。RNN基础RNN使用场景时序数据、文本、语音等设计原因数据有时间上的先后依赖关系记忆单元工作原理,数据连接方式总结人工智能技术基础5.4卷积神经网络(CNN)第五章深度学习01CNN为什么适用于图像02CNN网络结构及各层工作原理图像的表示88灰度图片:18*18*1彩色图片(RGB)48*48*3RGB每个通道的每个像素用[0,255]之间的数字表示为什么CNN适用于图像?8989图像识别的输入X是shape为(width,height,depth)的三维张量。直接展开至一维向量作为全连接的输入层会非常大。1、彩色图片维度很大…………softmax……10003x
107100x100x
3100100为什么CNN适用于图像?90识别猫
→识别猫眼睛、猫耳朵等特征2、特征往往小于图片3、特征会出现在图片的任何位置检测中间偏右是否有猫眼睛检测中间偏左是否有猫眼睛几乎做完全一样的事,用完全一样的参数设置为什么CNN适用于图像?4、图片压缩大小不会改变特征下采样下采样
→保留特征+减小图片尺寸→网络中节点数变少→参数变少→加快训练第五章深度学习01CNN为什么适用于图像02CNN网络结构及各层工作原理CNN基本网络结构卷积层非线性池化X?是:0.08否:0.92全连接向量化…1.卷积运算9494卷积前:6x61×1+0×(-1)+0×(-1)+0×(-1)+1×1+0×(-1)+0×(-1)+0×(-1)+1×1=3
-1-3-1-310-3-3-3013-2-2-1卷积后:4x4
Filter1(过滤器):3x331.卷积运算95卷积前:6x6-11-1-11-1-11-1-1-1-1-1-1-1-21-1-1-21-10-43卷积后:4x4
Filter2(过滤器):3x31-1-1-11-1-1-113-1-3-1-310-3-3-3013-2-2-1叠加后:4
x4x2特征图-11-1-11-1-11-11.卷积中的填充与步长96步长1,零填充0步长2,零填充0步长1,零填充1步长2,零填充11000010100100011001000100100100010106x6
image1.彩色图片的卷积9797彩色图像2.CNN中的非线性98和前馈神经网络一样,经过线性组合和偏移后,会加入非线性增强模型的拟合能力。将卷积所得的FeatureMap经过ReLU变换(elementwise)后所得到的output就如下图所展示。3.池化运算(MaxPooling)9999-11-1-11-1-11-1Filter
2Filter
11-1-1-11-1-1-113-1-3-1-310-3-3-3013-2-2-1-1-1-1-1-1-1-21-1-1-21-100-4331000010100100011001000100100100010106x6
image卷积池化0000000100010003-1-1-1-1-1-1-21-1-1-21-10-4301033-1-3-1-310-3-3-3013-2-2-1非线性层、池化层计算原理小结30000100000130003031正数→不变负数→0ReLU:MaxPooling:池化块大小:2x2块内保留最大数网络可视化小工具101
NetscopeConvNetDraw体验地址:/netscope/quickstart.html体验地址:/convdraw/CNN网络结构使用场景图像分类、目标定位检测、人脸识别、语音等设计原因图像原始维度大、特征小、不固定、可压缩卷积层池化层全连接层过滤器、卷积计算、特征图、非线性池化快、最大值向量化课堂实战手写体数字识别总结第六章知识图谱01什么是知识图谱02知识图谱架构03知识图谱构建04知识图谱应用01什么是知识图谱机器知识库自动推理辅助决策人脑知识库人类思维决策知识图谱人脑思维知识图谱是知识工程的一个分支,是以知识工程中的语义网络作为理论基础,结合了机器学习、自然语言处理、知识表示和知识推理等相关技术,以结构化的形式来描述客观世界中的各种概念和实体间的关系,使机器在信息表达方面能够更加接近人类的思维方式。什么是知识图谱:一般定义传统的搜索引擎主要采用基于关键词的搜索技术,搜索结果是一个包含关键词的网页列表。基于知识图谱的搜索引擎采用语义网络的搜索技术,搜索结果直接给出用户需要的答案,极大改善了用户体验。搜索结果直接给出了答案给出了人物的关系图谱什么是知识图谱:语义搜索知识图谱本质上是一种叫做语义网络(SemanticNetwork)的知识库,是一个采用有向图结构建立起来的知识库,旨在描述真实世界中存在的各种实体或概念及其关联关系,其构成一张巨大的语义网络图。
节点表示概念或者实体,边则由关系和属性构成。高质量的搜索效果归功于搜索引擎背后的知识图谱什么是知识图谱:语义网络知识的一个经典定义来自于柏拉图:一条陈述能称得上是知识则必须满足三个条件,即知识一定是被验证过的、正确的、被人们相信的,这也是科学与非科学的区分标准。数据是反映客观事物运动状态的信号通过感觉器官或观测仪器感知而形成的文本、数字、事实或者图像等符号形式的记录。数据是原始的记录,未被加工解释,没有回答特定的问题,与其他数据之间没有建立相互联系。信息是对数据进行加工处理,使数据之间建立相互联系,形成回答了某个特定问题的文本,以及能够被解释成有具体意义的数字、事实、图像等。信息是隐藏在数据背后的规律,需要人类的挖掘和探索才能够发现。数据信息知识来源于数据和信息,但不是数据和信息的简单积累。知识是可用于指导实践的信息,是人们在改造世界的实践中所获得的认识和经验的总和,是人类对物质世界以及精神世界探索的结果总和,是数据和信息更加高级抽象的概念。知识什么是知识图谱:知识的定义本体通常用来描述领域知识,是从客观世界中抽象出来的一个概念模型,这个模型包含了某个学科领域内的基本术语和术语之间的关系,或者称为概念以及概念之间的关系。本体表示法知识表示的方法有很多种,而在知识图谱中应用最为广泛的是本体表示法和语义网络表示法概念是某一领域内相同性质对象集合的抽象表示形式。例如在教育领域的本体中,教师、学生、课程都是概念实例是概念中的特定元素,一般都对应着客观世界的具体事物,例如《人工智能技术基础》课程是课程概念的一个实例关系是概念与概念之间或者概念与实例之间的关系类型,例如羊和绵羊这两个概念之间存在概念与子概念的层次关系,绵羊属于羊什么是知识图谱:知识表示(1)语义网络是一种通过概念及其语义联系来表示知识的有向图,其基本单元是节点和边。节点表示事物、概念、情况、属性、状态、事件和动作等,边表示节点之间的联系或关系。语义网络表示法知识表示的方法有很多种,而在知识图谱中应用最为广泛的是本体表示法和语义网络表示法什么是知识图谱:知识表示(2)猪和羊是动物猪和羊都是哺乳动物野猪是猪,生活在森林里山羊是一种羊,头上长着角绵羊是羊,能够生产羊毛语义网络描述的是事实/知识第六章知识图谱01什么是知识图谱02知识图谱架构03知识图谱构建04知识图谱应用02知识图谱架构
数据层(DataLayer)是将事实以“实体-关系-实体”或“实体-属性-属性值”三元组的形式进行存储,形成一个网状的知识库。在知识图谱的数据层,用节点表示实体,用边表示实体间关系或实体的属性。举例:(中国,首都,北京)模式层(SchemaLayer)是知识图谱的概念模型和逻辑基础,对数据层进行规范约束,多采用本体作为知识图谱的模式层,借助本体定义的规则和公理来约束知识图谱的数据层,即按照模式层的规范来组织和管理数据层。举例:(国家,拥有,人口)数据层模式层数据层存储和管理的是以事实为单位的知识;模式层位于数据层的上层,是知识图谱的核心层,存储和管理的是经过提炼和抽象的知识。知识图谱架构:逻辑架构知识抽取从原始数据中抽取知识要素知识表示将知识单元表示成计算机可以理解和处理的形式知识融合将不同来源的知识整合起来质量评估对不准确或者错误的知识进行修正知识推理模拟人类思维的推理方式,挖掘隐含的知识从最原始的数据出发,采用一系列自动或者半自动的技术手段,从原始数据和第三方知识库中提取知识事实,并将其存入知识库的数据层和模式层知识图谱架构:技术架构第六章知识图谱01什么是知识图谱02知识图谱架构03知识图谱构建04知识图谱应用03知识图谱构建根据知识图谱的逻辑架构,知识图谱的构建过程就是模式层和数据层的实现过程。
知识图谱的构建是以原始数据为输入,依次经过数据处理、知识抽取、知识融合、知识存储、知识计算和知识服务多个流程,最终通过服务接口对外提供服务,支撑各行各业的知识应用。知识图谱构建(1)知识图谱的核心是基于语义网络的知识库,一条条知识是以计算机能够处理和理解的形式保存在知识库中,数据是知识的来源和基础,特别是来自互联网的数据具有丰富性和多样性的特点,因此要求知识图谱能够处理大规模的异构数据。
按照不同类型数据的特点,通常将数据分为三类:结构化数据、非结构化数据和半结构化数据。1.原始数据结构化数据关系数据库二维表半结构化数据HTMLXMLJSON非结构化数据文档图片声音视频结构化数据示例半结构化数据示例知识图谱构建(2)知识建模的理论基础是本体论,根据概念间的上下位关系将概念组织成树结构或者有向图无环结构,根据概念间的上下位关系及其组织结构能够进行知识推理。知识图谱对接外部数据源进行原始数据的采集和处理,包括结构化数据、半结构化数据、非结构化数据。
针对不同类型的原始数据,有着不同的处理技术。2.知识建模3.数据处理知识抽取主要是从数据中抽取构成知识的基本元素,主要包括实体、关系、属性、属性值以及事件信息,将知识元素组织成知识条目。4.知识抽取知识图谱构建(3)知识融合的目的就是将不同来源的知识进行合并整合,消除知识之间的不一致性、歧义性、冲突性、冗余性。
知识融合所涉及的技术主要包括实体对齐、实体消岐和指代消解。经过知识融合和质量评估处理之后,得到的是最终确定的高质量的知识,需要存储到知识库中永久保存。
通常采用两种知识存储的方式:RDF三元组和属性图。5.知识融合6.知识存储受到当前技术水平的限制,从外部公共开放域采集并抽取的知识有可能存在质量问题,甚至可能存在错误,同时通过知识推理产生的新知识也可能不准确,因此知识在存储到知识库之前,需要有一个质量评估的过程。7.知识管理知识图谱构建(4)知识图谱的语义网络知识库是一个庞大的图形结构的知识网络,在各种图算法的支持下,提供了强大的图计算能力,能够高效地进行图遍历、路径计算、社群计算、相似子图计算、本体推理、规则推理等一系列的计算。知识服务是将知识图谱的知识计算能力封装成一种服务能力,提供给上层的知识应用,上层应用可以通过服务API接口调用知识图谱的能力,从而支撑应用实现相应的业务场景。8.知识计算9.知识服务目前基于知识图谱的应用非常广泛,已渗透到各行各业。例如搜索引擎的语义搜索、语音助理的智能问答、电子商务网站的个性化推荐、公安机关的情报分析、金融行业的风险控制等,都是知识图谱大显身手的领域。10.知识应用知识图谱构建(5)第六章知识图谱01什么是知识图谱02知识图谱架构03知识图谱构建04知识图谱应用04知识图谱应用行业应用金融证券公安电商生活娱乐农业医疗制造其他智能语义搜索金融反欺诈智能制造股票投研分析公安情报分析智能问答个性化推荐应用场景知识图谱应用本章学习了知识图谱的基本概念、知识表示、逻辑架构、技术架构、构建方法、关键技术,总结了知识图谱的强大能力及其在行业中的代表性应用通过上述学习之后,应充分认识到知识图谱不同于传统的感知智能,它是认知智能的典型代表,是更高层次的人工智能技术,也是人工智能未来的演进方向本章小结第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介深度学习框架介绍scikit-learn专注于传统的机器学习算法,对常用的机器学习算法进行了封装,包括回归、分类、聚类等方法。Keras
是一个用Python编写的高级神经网络API,它能够以TensorFlow,CNTK,或者Theano作为后端运行错误!未找到引用源。。TensorFlow是谷歌推出的深度学习框架,是一个端到端开源机器学习平台。借助TensorFlow,初学者和专家可以轻松创建适用于桌面、移动、网络和云端环境的机器学习模型错误!未找到引用源。。TensorFlow作为后端框架,提供张量运算、微分运算等低层次的运算。Keras作为前端框架,提供了模型级的API。TensorFlow是目前最流行的深度学习框架,本书主要介绍此框架的基础知识和使用。Pytorch也是一个端到端开源机器学习框架。和TensorFlow相比,Pytorch在学术届广泛使用,而TensorFlow在工业界广泛使用。PaddlePaddle(飞桨)以百度的深度学习技术研究和业务应用为基础,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体TensorFlow系统架构CAPI把TensorFlow分割为前端和后端,前端(Python/C++/JavaClient)基于CAPI触发TensorFlow后端程序运行。Traininglibraries和Inferencelibs是模型训练和推导的库函数,为用户开发应用模型使用。DistributedMaster将用户的请求转换为一系列任务的执行。给定一个计算图和操作定义后,它将计算图分解为子图,不同的子图分片运行在不同的设备上。DataflowExecutor处于各个任务中,它接收Master发过来的请求,调度执行子图操作。Kernel为TensorFlow中算法操作的具体实现,如卷积操作,激活操作等。RPC和RDMA为网络层,主要负责传递神经网络算法参数。CPU和GPU为设备层,主要负责神经网络算法中具体的运算操作。第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介系统要求Python3.5-3.8,若要支持Python3.8,需要使用TensorFlow2.2或更高版本。pip19.0或更高版本。操作系统:Windows7或更高版本(64位)。Ubuntu16.04或更高版本(64位)。macOS10.12.6(Sierra)或更高版本(64位)(不支持GPU)。4.如要使用GPU运算,需要支持CUDA®的显卡(适用于Ubuntu和Windows)。软件版本信息WindowsWindows10,64位Python3.8.xTensorFlow2.4.x安装方式1:从Python开始下载Python安装文件配置清华镜像安装常用科学计算包安装TensorFlow第一个TensorFlow代码安装方式2:从Anaconda开始安装Anaconda配置清华镜像源安装TensorFlow第一个TensorFlow代码第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介张量张量(Tensor)是具有统一类型(称为
dtype)的多维数组。所有张量都是不可变的,永远无法更新张量的内容,只能创建新的张量。张量有最重要的2个属性:形状shape:张量的每个维度(轴)的长度(元素数量)数据类型dtype:float32、int32、或者string等张量0D张量只包含一个数字,有0个维度,又称为标量。rank_0_tensor=tf.constant(4)print(rank_0_tensor)张量1D张量包含一个一维数组,可以看作由0D张量组成的数组,有1个维度,又称为向量。示例代码如下:rank_1_tensor=tf.constant([2.0,3.0,4.0])print(rank_1_tensor)张量2D张量可以看作由1D张量组成的数组,有2个维度,又称为矩阵。示例代码如下:rank_2_tensor=tf.constant([[1,2],[3,4],[5,6]],dtype=tf.float16)
print(rank_2_tensor)7.1.6 张量3D张量可以看作由2D张量组成的数组,有3个维度。示例代码如下:rank_3_tensor=tf.constant([[[0,1,2,3,4],
[5,6,7,8,9]],
[[10,11,12,13,14],
[15,16,17,18,19]],
[[20,21,22,23,24],
[25,26,27,28,29]],])
print(rank_3_tensor)张量4D张量可以看作由3D张量组成的数组,有4个维度。示例代码如下:#生成一个(3,3,2,5)的4维数组,值为[0,2)之间的随机整数rand_4_array=np.random.randint(0,2,size=(3,3,2,5))
#将4维numpy数组转化维4D张量
rank_4_tensor=tf.convert_to_tensor(rand_4_array)
print(rank_4_tensor.shape)
print(rank_4_tensor.numpy())
程序打印出4D张量rank_4_tensor的形状和数据信息,运行结果如下:(3,3,2,5)[[[[00011][10110]]
[[10001][01100]]
[[10111][01001]]]……张量在TensorFlow中,各个维度的含义是有规范的。一般按照从全局到局部的顺序进行排序:首先是批次维度,随后是空间维度,最后是每个位置的特征。示例代码中4D张量4个维度的典型顺序含义为(Batch,Width,Height,Features)张量张量运算可以分为标量运算、向量运算、以及矩阵运算。标量运算:对张量实施逐元素运算,包括加、减、乘、除、乘方以及三角函数、指数、对数等常见函数。#张量运算:标量运算a=tf.constant([[1,2],
[3,4]])
b=tf.constant([[0,0],
[1,0]])
print(a+b)
print(a-b)
print(a*b)
print(a/b)
张量向量运算:只在一个特定轴上运算,将一个向量映射到一个标量或者另外一个向量。#张量运算:向量运算A=tf.constant([[2,20,30,3,6],
[1,1,1,1,1]])
print(tf.math.reduce_sum(A))
print(tf.math.reduce_max(A))
B=tf.constant([[2,20,30,3,6],
[3,11,16,1,8],
[14,45,23,5,27]])
print(tf.math.reduce_sum(B,0))#沿0轴,求和
print(tf.math.reduce_sum(B,1))#沿1轴,求和
print(tf.math.reduce_max(B,0))#沿0轴,求最大值
print(tf.math.reduce_max(B,1))#沿1轴,求最大值张量矩阵运算:矩阵必须是二维的,包括矩阵乘法、矩阵转置、矩阵逆、矩阵行列式、矩阵求特征值、矩阵分解等运算#张量运算:矩阵运算#矩阵转置
A_trans=tf.linalg.matrix_transpose(A)
print(A_trans)
#矩阵点积
print(tf.linalg.matmul(B,A_trans))激活函数relu函数(RectifiedLinearUnit),即线性整流函数。我们可以使用matplotlib画出函数曲线,代码及图形如下:#生成x轴数据,-10到10之间平均分布的100个数x=np.linspace(-10,10,100)
fig,ax=plt.subplots()#创建图形对象及坐标系
ax.plot(x,keras.activations.relu(x),label='relu')#设置x轴及y轴的数据
ax.set_xlabel('xlabel')#设置x轴标签
ax.set_ylabel('ylabel')#设置y轴标签
ax.set_title("ReluPlot")#设置标题
ax.legend()#显示图例激活函数sigmoid函数也叫Logistic函数,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。我们可以使用matplotlib画出函数曲线,代码及图形如下:#生成x轴数据,-10到10之间平均分布的100个数x=np.linspace(-10,10,100)
fig,ax=plt.subplots()#创建图形对象及坐标系
#设置x轴及y轴的数据
ax.plot(x,keras.activations.sigmoid(x),label='sigmoid')
ax.set_xlabel('xlabel')#设置x轴标签
ax.set_ylabel('ylabel')#设置y轴标签
ax.set_title("SigmoidPlot")#设置标题
ax.legend()#显示图例激活函数softmax函数又称归一化指数函数,能将一个含任意实数的K维向量z“压缩”到另一个K维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。该函数多用于多分类问题中,为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。层卷积层Convolutionlayers常用在图像数据中,对二维输入进行滑动窗卷积。tf.keras.layers.convolutional.Conv2D( filters,kernel_size,strides=(1,1),padding="valid",data_format=None,dilation_rate=(1,1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None)参数名说明filters卷积核的数目(即输出的维度),例如:16kernel_size卷积核的宽度和长度。如为单个整数,则表示各个维度长度相同。例如:3strides卷积的步长。如为单个整数,则表示在各个维度的相同步长。padding补0策略,取值为valid、same。valid表示不补0;same代表保留边界处的卷积结果,这样输出shape与输入shape相同。activation激活函数。如果不指定该参数,将不会使用任何激活函数。data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。层池化层Poolinglayers以2维最大值池化层(MaxPooling2Dlayer)为例,该层常跟在卷积层后,对卷积层的输出进行采样,减少需要计算的元素。tf.keras.layers.MaxPooling2D(pool_size=(2,2),strides=None,padding="valid",data_format=None)参数名说明pool_size整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。strides整数或长为2的整数tuple,或者None,步长值。padding补0策略,取值为valid、same。valid表示不补0;same代表在边界处补0,这样输出shape与输入shape相同。data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。层压平层(Flattenlayer)用来将输入压平,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。参数名说明data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。tf.keras.layers.Flatten(data_format=None)层丢弃层(Dropoutlayer)将在训练过程中每次更新参数时按一定概率随机断开输入神经元,用于防止过拟合。tf.keras.layers.core.Dropout(rate,noise_shape=None,seed=None)参数名说明rate0~1之间的浮点数,控制需要断开的神经元的比例层丢弃层(Dropoutlayer)将在训练过程中每次更新参数时按一定概率随机断开输入神经元,用于防止过拟合。tf.keras.layers.core.Dropout(rate,noise_shape=None,seed=None)参数名说明rate0~1之间的浮点数,控制需要断开的神经元的比例模型创建模型最简单的模型是Sequential顺序模型,它由多个网络层线性堆叠。定义tf.keras.Sequential()示例#使用Sequential创建包含3个层的顺序模型model=keras.Sequential(
[
layers.Dense(2,activation="relu",name="layer1"),
layers.Dense(3,activation="relu",name="layer2"),
layers.Dense(4,name="layer3"),
]
)
#调用模型
x=tf.ones((3,3))
y=model(x)模型编译模型在完成了模型的构建后,可以使用compile方法来编译模型,这一步需要配置优化器、损失函数。定义Mpile(optimizer="rmsprop",loss=None,metrics=None,loss_weights=None,weighted_metrics=None,run_eagerly=None,steps_per_execution=None
)参数名说明optimizer优化器名称或优化器类实例,见tf.keras.optimizers。可选优化函数如下:SGD、RMSprop、Adam、AdadeltaAdagrad、Adamax、Nadam、Ftrl。loss损失函数名称、损失函数或tf.keras.losses.Loss类实例。可选损失函数如下:概率损失函数binary_crossentropy、categorical_crossentropy、sparse_categorical_crossentropy、poisson、kl_divergence回归损失函数mean_squared_error、mean_absolute_error、mean_absolute_percentage_error、mean_squared_logarithmic_error、cosine_similarity、huber、log_cosh铰链损失函数hinge、squared_hinge、categorical_hinge模型定义Model.fit(
x=None,y=None,batch_size=None,epochs=1,verbose=1,callbacks=None,alidation_split=0.0,validation_data=None,shuffle=True,lass_weight=None,sample_weight=None,initial_epoch=0,teps_per_epoch=None,validation_steps=None,validation_batch_size=None
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件技术员考试应试能力训练试题及答案
- 高考数学人物访谈及试题及答案
- 自我反思与生活的启示-高考作文考试试题及答案
- 法学概论的历史发展脉络及试题与答案
- 商铺委托转租协议
- 2025年网络安全评估标准试题及答案
- 基于云计算的仓库管理新模式计划
- 学术活动组织与实施方案计划
- 2025年软考软件设计师答题技巧试题及答案
- 软考网络标准化知识试题及答案
- 国宝大熊猫的资料介绍三年级8篇
- 古诗词诵读《念奴娇+过洞庭》课件+2023-2024学年统编版高中语文必修下册
- (正式版)JTT 1495-2024 公路水运危险性较大工程安全专项施工方案审查规程
- 公安情报学试卷附有答案
- 西方影视欣赏智慧树知到期末考试答案章节答案2024年济宁医学院
- 新生儿消化道出血的护理查房
- 2024年贵州省贵阳市南明区中考一模考试物理试题
- 电梯维护保养规则(TSG T5002-2017)
- 六年级择校考试卷
- 髂总动脉瘤的护理查房
- 红色美术鉴赏智慧树知到期末考试答案2024年
评论
0/150
提交评论