人工智能原理第6章:卷积神经网络课件.pptx

上传人(卖家):晟晟文业 文档编号:4171238 上传时间:2022-11-16 格式:PPTX 页数:46 大小:1.78MB
下载 相关 举报
人工智能原理第6章:卷积神经网络课件.pptx_第1页
第1页 / 共46页
人工智能原理第6章:卷积神经网络课件.pptx_第2页
第2页 / 共46页
人工智能原理第6章:卷积神经网络课件.pptx_第3页
第3页 / 共46页
人工智能原理第6章:卷积神经网络课件.pptx_第4页
第4页 / 共46页
人工智能原理第6章:卷积神经网络课件.pptx_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、张明 副教授 人工智能原理:基于Python语言和TensorFlow第六章:卷积神经网络1.卷积神经网络2.卷积神经网络的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练6.1:卷积神经网络应用:是深度学习技术中极具代表的网络结构之一,属于人工神经网络的一种。它在许多最新的神经网络模型中都有具体的应用,并被应用于多个实际领域中,其中应用最频繁,也是应用最成功的领域就是图像处理。在国际标准的ImageNet数据集上,许多成功的模型都是基于卷积神经网络的应用。优点:卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网

2、络的一个卷积层中,通常包含了若干个特征平面,每个特征平面都是由一些矩形排列的神经元所构成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核带来的直接好处就是减少了网络中各层之间的连接,同时又降低了过拟合的风险。子采样层也叫作池化,通常有均值子采样和最大值子采样两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型的复杂度,减少了模型的参数。6.1:卷积神经网络 卷积神经网络(Convolutional Neural Network,CNN)是深度学习技术中极具代表的网络结构之一,属于人工神经网络的一种。其应用最成功的领域就是图像处理。在国际标准的ImageNet数

3、据集上,许多成功的模型都是基于卷积神经网络的应用。卷积神经网络相较于传统的图像处理算法的优点在与避免了对图像处理时复杂的前期预处理过程(提取人工特征等),可以直接输入原始图像。卷积神经网络基本结构如下图所示。1.卷积神经网络通常由若干个卷积层、激活层、池化层以及全连接层组成。2.左图为全连接,右图为局部连接在左图的全连接结构中,每一个节点的输入都是上一层的所有输出,当其中的隐含层节点数目偏多时,整个网络中的参数数量将会变得异常巨大。以图片为例,一般的jpg格式图片在计算机中是以三维矩阵的形式进行存储,如果要对一张分辨率达到10001000的灰度图片进行处理,则一共需要100010003=300

4、0000个整数值。如果将每一个值都看做一个特征维度,经过感知机的变换后保持输出维度不变,则需要1000100010001000=1012个元素的参数矩阵。在右图的局部连接结构中,卷积操作是最核心的部分,它与全连接结构最大的不同就是能够充分利用图片中相邻区域的信息,通过稀疏连接和共享权值的方式来减少参数矩阵的规模,从而减少计算量,同时,也能够提高收敛的速度。例如,在6-2右图中,假如每个神经元只和1010个像素值相连,那么权值数据为1000000100个参数,减少为原来的万分之一。而那1010个像素值对应的1010个参数,其实就相当于卷积操作。第六章:卷积神经网络1.卷积神经网络2.卷积神经网络

5、的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练6.2:卷积神经网络的模型架构1 ImageNet-2010网络结构2 DeepID网络结构Alex的卷积神经网络结构图如下所示:该模型的基本参数为。输入:224224大小的图片,3通道。第一层卷积:1111大小的卷积核96个,每个GPU上48个。第一层max-pooling:22的卷积核。第二层卷积:55大小的卷积核256个,每个GPU上128个。第二层max-pooling:22的卷积核。第三层卷积:与上一层是全连接,33大小的的卷积核384个。分到两个GPU上各192个。第四层

6、卷积:33大小的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。第五层卷积:33大小的卷积核256个,两个GPU上个128个。第五层max-pooling:22的卷积核。第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。第二层全连接:4096维。softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。6.2:卷积神经网络的模型架构1 ImageNet-2010网络结构2 DeepID网络结构DeepID网络结构如下所示:特点:最后只有一层全连接层,然后就是softmax层了。6.3:卷积运算1 输

7、入和卷积核2 降维3 填充4 数据格式卷积是图像处理常用的方法,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均。其中权值由一个函数定义,这个函数称为卷积核,比如说卷积公式:其中f为输入,G为卷积核。(,)(,)(,)Ru vGu i vj f i j6.3:卷积运算1 输入和卷积核2 降维3 填充4 数据格式 降维是通过单幅图像数据的高维化,将单幅图像转化为高维空间中的数据集合,对其进行非线性降维。降维方法分为线性降维和非线性降维。1线性降维方法:PCA、ICA、LDA、LFA、LPP(LE的线性表示)2非线性降维方法又分为以下两种。(1)基于核函数的非线性降维方法

8、:KPCA、KICA、KDA。(2)基于特征值的非线性降维方法(流型学习):ISOMAP、LLE、LE、LPP、LTSA、MVU。6.3:卷积运算1 输入和卷积核2 降维3 填充4 数据格式什么是填充值呢?提到卷积层,就会不可避免地涉及填充这个名词以及填充值这个名词。那么,什么是填充值呢?如图6-10所示,有一个55的图片,图片中的每一个格子都代表着一个像素,我们依次滑动窗口,窗口大小我们取22,滑动步长我们设定为2,那么,我们会发现图中会有一个像素没有办法滑动完毕,那么,该采用何种办法才能解决这样的问题呢?为了保证滑动操作能够顺利完成,我们需要在不足的部分上再补充一些像素,我们在原先的矩阵图

9、像上添加了一层填充值,使得图片变成了如图6-11所示的66的矩阵图像,按照填充后的图像来进行步长为2的滑动,则刚好能够将所有像素遍历完成,这就是填充值最显著的作用。6.3:卷积运算1 输入和卷积核2 降维3 填充4 数据格式数据格式(data format)是数据保存在文件或记录中的编排格式。可分为数值、字符串或二进制等形式。简单类型:整数类型、实数类型、布尔类型、字符类型和指针类型。复合类型。也被称为组合类型或结构类型,是由简单类型用某种方式组合而成的。如数组类型、记录类型、集合类型、文件类型。6.4:卷积常见层1 卷积层2 池化层 3 归一化4 高级层过滤器(filter)或内核(kern

10、el)下图的图片经过三个卷积核的卷积操作得到三个特征图。需要注意的是,在多核卷积的过程中每个卷积核的大小应该是相同的。6.4:卷积常见层1 卷积层2 池化层 3 归一化4 高级层池化层目的:降维。池化的过程相,如下图所示。6.4:卷积常见层1 卷积层2 池化层 3 归一化4 高级层归一化的目标之一在于将输入保持在一个可接受的范围内。例子:图像中,若比较两张图片(两张图片的样式:通道数、数据格式相同,大小、分辨率可以不同)会有以下两种情况。1比较两张图片大小,需要判断是否相同的时候;2求取较小的一张图片在大图中的位置,需要判断的时候。欧氏距离来作为判断函数,如下。211(,)(,)(,)M Ni

11、jmnDi jS mn Tmn故使用归一化处理。将这个相似性函数展开,可以得到如下公式。欧氏距离来作为判断函数,如下。21111(,)2(,)M NM NmnmnSmnSmn 211(,)(,)MNmnT m nT m n6.4:卷积常见层1 卷积层2 池化层 3 归一化4 高级层为使标准层的定义在创建时更加简单,TensorFlow引入了一些高级网络层。这些层不是必需的,但它们有助于减少代码冗余,同时遵循最佳的实践。第六章:卷积神经网络1.卷积神经网络2.卷积神经网络的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练6.5:Ten

12、sorFlow和图像1 图像加载2 图像格式3 图像操作4 颜色空间变换6.5.1 图像加载 TensorFlow可以快速地从硬盘或其他存储介质中加载图像文件。它的加载过程与其他文件的加载过程类似,唯一的区别是图像的内容需要经过解码的过程。图像加载与二进制文件相同。图像需要解码。输入生成器。找到所需文件,加载到队列。tf.WholeFileReader加载完整图像文件到内存,WholeFileReader.read读取图像。图像是三阶张量。RGB值是一阶张量。加载图像格式为batch_size,image_height,image_width,channels。批数据图像过大过多,占用内存过高

13、,系统会停止响应。大尺寸图像输入占用大量系统内存。训练卷积神经网络需要大量时间,加载大文件增加更多训练时间,也很难存放于多数系统GPU显存。大尺寸图像大量无关本征属性信息,影响模型泛化能力。tf.image.decode_jpeg解码JPEG格式图像。tf.image.decode_png解码PNG格式图像。差别在于alpha(透明度)信息。移除区域alpha值设为0,有助于标识。JPEG图像频繁操作会留下伪影(atrifact)。PNG格式为无损压缩,保留原始文件全部信息(被缩放或降采样除外),文件体积较大。6.5.2 图像格式TensorFlow内置文件格式TFRecord,二进制数据和训

14、练类别标签数据存储在同一文件。模型训练前图像转换为TFRecord格式。TFRecord文件是protobuf格式。数据不压缩,可快速加载到内存。加载图像格式为batch_size,image_height,image_width,channels。批数据图像过大过多,占用内存过高,系统会停止响应。独热编码(one-hot encoding)格式,表示多类分类(单)标签数据。图像加载到内存,转换为字节数组,添加到tf.train.Example文件,SerializeToString序列化为二进制字符,保存到磁盘。序列化将内存对象转换为可安全传输的文件格式,可被加载,可被反序列化为样本格式。直

15、接加载TFRecord文件,可以节省训练时间。支持写入多个样本。6.5.3 图像操作TFRecordReader对象读取TFRecord文件。tf.parse_single_example不解码图像,解析TFRecord,图像按原始字节读取(tf.decode-raw)。tf.reshape调整形状,使布局符合tf.nn.conv2d要求(image_height,image_width,image_channels)。tf.expand扩展维数,把batch_size维添加到input_batch。tf.equal检查是否加载同一图像。sess.run(tf.cast(tf_record_f

16、eatureslabel,tf.string)查看从TFRecord文件加载的标签。使用图像数据推荐使用TFRecord文件存储数据与标签。做好图像预处理并保存结果。最好在预处理阶段完成图像操作,裁剪、缩放、灰度调整等。图像加载后,翻转、扭曲,使输入网络训练信息多样化,缓解过拟合。Python图像处理框架为PIL、OpenCV。TensorFlow提供部分图像处理方法。裁剪,tf.image.central_crop,移除图像区域,完全丢弃其中信息,与tf.slice(移除张量分量)类似,基于图像中心返回结果。训练时,如果背景有用,tf.image.crop_to_bounding_box(只

17、接收确定形状张量,输入图像需要事先在数据流图运行),随机裁剪区域起始位置到图像中心的偏移量。tf.image.pad_to_bounding_box,用0填充边界,使输入图像符合期望尺寸。尺寸过大过小图像,边界填充灰度值0像素。tf.image.resize_image_with_crop_or_pad,相对图像中心,裁剪或填充同时进行。6.5.4 颜色空间变换翻转,每个像素位置沿水平或垂直方向翻转。随机翻转图像,可以防止过拟合。tf.slice选择图像数据子集。tf.image.flip_left_right完成水平翻转。tf.image.flip_up_down完成垂直翻转。seed参数控

18、制翻转随机性。编辑过图像训练,误导卷积神经网络模型。属性随机修改,使卷积神经网络精确匹配编辑过或不同光照图像特征。tf.image.adjust_brightness,调整灰度。tf.image.adjust_contrast,调整对比度。调整对比度,选择较小增量,避免“过曝”,达到最大值无法恢复,可能全白全黑。tf.slice突出改变像素。tf.image.adjust_hue,调整色度,色彩更丰富。delta参数控制色度数量。tf.image.adjust_saturation,调整饱和度,突出颜色变化。单一颜色图像,灰度颜色空间,单颜色通道,只需要单个分量秩1张量。缩减颜色空间可以加速训

19、练。灰度图具有单个分量,取值范围0,255。tf.image.rgb_to_grayscale,把RGB图像转换为灰度图。灰度变换,每个像素所有颜色值取平均。第六章:卷积神经网络1.卷积神经网络2.卷积神经网络的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练*train_step=tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)*整个模型的训练可以通过反复运行train_step来完成,代码如下所示。*for i in range(1000):batch

20、=mnist.train.next_batch(50)train_step.run(feed_dict=x:batch0,y_:batch1)*6.6:模型训练用梯度下降法让交叉熵下降,步长为0.01,代码如下所示。第六章:卷积神经网络1.卷积神经网络2.卷积神经网络的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练*correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1)*2.将布尔值转换为浮点数来代表对、错,然后取平均值。*accuracy=tf.reduce_mean

21、(tf.cast(correct_prediction,float)*6.7:模型评估1.用tf.equal来检测我们的预测是否真实标签匹配。*print accuracy.eval(feed_dict=x:mnist.test.images,y_:mnist.test.labels)*3.计算出在测试数据上的准确率第六章:卷积神经网络1.卷积神经网络2.卷积神经网络的模型架构3.卷积运算4.卷积常见层5.TensorFlow和图像6.模型训练7.模型评估8.多GPU的模型训练6.8:多GPU的模型训练数据并行的原理图如下所示。其中CPU主要负责梯度平均和参数更新,而GPU1和GPU2主要负责训练模型副本(model replica)。具体的训练步骤如下:(1)在GPU1、GPU2上分别定义模型参数变量,网络结构;(2)对于单独的GPU,分别从数据管道读取不同的数据块,然后进行前向传播(forward propagation)计算出loss,再计算关于当前Variables的gradients;(3)把所有GPU输出的梯度数据转移到CPU上,先进行梯度取平均操作,然后进行模型参数的更新;(4)重复步骤(1)(3),直到模型参数收敛为止。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(人工智能原理第6章:卷积神经网络课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|