人工智能原理第6章:卷积神经网络课件_第1页
人工智能原理第6章:卷积神经网络课件_第2页
人工智能原理第6章:卷积神经网络课件_第3页
人工智能原理第6章:卷积神经网络课件_第4页
人工智能原理第6章:卷积神经网络课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

张明副教授人工智能原理:基于Python语言和TensorFlow张明副教授人工智能原理:第六章:卷积神经网络卷积神经网络卷积神经网络的模型架构卷积运算卷积常见层TensorFlow和图像模型训练模型评估多GPU的模型训练第六章:卷积神经网络卷积神经网络6.1:卷积神经网络应用:是深度学习技术中极具代表的网络结构之一,属于人工神经网络的一种。它在许多最新的神经网络模型中都有具体的应用,并被应用于多个实际领域中,其中应用最频繁,也是应用最成功的领域就是图像处理。在国际标准的ImageNet数据集上,许多成功的模型都是基于卷积神经网络的应用。优点:卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网络的一个卷积层中,通常包含了若干个特征平面,每个特征平面都是由一些矩形排列的神经元所构成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核带来的直接好处就是减少了网络中各层之间的连接,同时又降低了过拟合的风险。子采样层也叫作池化,通常有均值子采样和最大值子采样两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型的复杂度,减少了模型的参数。6.1:卷积神经网络应用:是深度学习技术中极具代表的网络结构6.1:卷积神经网络

卷积神经网络(ConvolutionalNeuralNetwork,CNN)是深度学习技术中极具代表的网络结构之一,属于人工神经网络的一种。其应用最成功的领域就是图像处理。在国际标准的ImageNet数据集上,许多成功的模型都是基于卷积神经网络的应用。卷积神经网络相较于传统的图像处理算法的优点在与避免了对图像处理时复杂的前期预处理过程(提取人工特征等),可以直接输入原始图像。6.1:卷积神经网络卷积神经网络(Convolutio卷积神经网络基本结构如下图所示。卷积神经网络基本结构如下图所示。卷积神经网络通常由若干个卷积层、激活层、池化层以及全连接层组成。左图为全连接,右图为局部连接卷积神经网络通常由若干个卷积层、激活层、池化层以及全连接层组在左图的全连接结构中,每一个节点的输入都是上一层的所有输出,当其中的隐含层节点数目偏多时,整个网络中的参数数量将会变得异常巨大。以图片为例,一般的jpg格式图片在计算机中是以三维矩阵的形式进行存储,如果要对一张分辨率达到1000×1000的灰度图片进行处理,则一共需要1000×1000×3=3000000个整数值。如果将每一个值都看做一个特征维度,经过感知机的变换后保持输出维度不变,则需要1000×1000×1000×1000=1012个元素的参数矩阵。在右图的局部连接结构中,卷积操作是最核心的部分,它与全连接结构最大的不同就是能够充分利用图片中相邻区域的信息,通过稀疏连接和共享权值的方式来减少参数矩阵的规模,从而减少计算量,同时,也能够提高收敛的速度。例如,在6-2右图中,假如每个神经元只和10×10个像素值相连,那么权值数据为1000000×100个参数,减少为原来的万分之一。而那10×10个像素值对应的10×10个参数,其实就相当于卷积操作。在左图的全连接结构中,每一个节点的输入都是上一层的所有输出,第六章:卷积神经网络卷积神经网络卷积神经网络的模型架构卷积运算卷积常见层TensorFlow和图像模型训练模型评估多GPU的模型训练第六章:卷积神经网络卷积神经网络6.2:卷积神经网络的模型架构1ImageNet-2010网络结构2DeepID网络结构6.2:卷积神经网络的模型架构1ImageNet-201Alex的卷积神经网络结构图如下所示:Alex的卷积神经网络结构图如下所示:该模型的基本参数为。输入:224×224大小的图片,3通道。第一层卷积:11×11大小的卷积核96个,每个GPU上48个。第一层max-pooling:2×2的卷积核。第二层卷积:5×5大小的卷积核256个,每个GPU上128个。第二层max-pooling:2×2的卷积核。第三层卷积:与上一层是全连接,3×3大小的的卷积核384个。分到两个GPU上各192个。第四层卷积:3×3大小的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。第五层卷积:3×3大小的卷积核256个,两个GPU上个128个。第五层max-pooling:2×2的卷积核。第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。第二层全连接:4096维。softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。该模型的基本参数为。6.2:卷积神经网络的模型架构1ImageNet-2010网络结构2DeepID网络结构6.2:卷积神经网络的模型架构1ImageNet-201DeepID网络结构如下所示:特点:最后只有一层全连接层,然后就是softmax层了。DeepID网络结构如下所示:特点:最后只有一层全连接层,然6.3:卷积运算1输入和卷积核2降维3填充4数据格式6.3:卷积运算1输入和卷积核卷积是图像处理常用的方法,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均。其中权值由一个函数定义,这个函数称为卷积核,比如说卷积公式:其中f为输入,G为卷积核。卷积是图像处理常用的方法,给定输入图像,在输出图像中每一个像6.3:卷积运算1输入和卷积核2降维3填充4数据格式6.3:卷积运算1输入和卷积核

降维是通过单幅图像数据的高维化,将单幅图像转化为高维空间中的数据集合,对其进行非线性降维。降维方法分为线性降维和非线性降维。1.线性降维方法:PCA、ICA、LDA、LFA、LPP(LE的线性表示)2.非线性降维方法又分为以下两种。(1)基于核函数的非线性降维方法:KPCA、KICA、KDA。(2)基于特征值的非线性降维方法(流型学习):ISOMAP、LLE、LE、LPP、LTSA、MVU。降维是通过单幅图像数据的高维化,将单幅图像转化为6.3:卷积运算1输入和卷积核2降维3填充4数据格式6.3:卷积运算1输入和卷积核什么是填充值呢?提到卷积层,就会不可避免地涉及填充这个名词以及填充值这个名词。那么,什么是填充值呢?如图6-10所示,有一个5×5的图片,图片中的每一个格子都代表着一个像素,我们依次滑动窗口,窗口大小我们取2×2,滑动步长我们设定为2,那么,我们会发现图中会有一个像素没有办法滑动完毕,那么,该采用何种办法才能解决这样的问题呢?为了保证滑动操作能够顺利完成,我们需要在不足的部分上再补充一些像素,我们在原先的矩阵图像上添加了一层填充值,使得图片变成了如图6-11所示的6×6的矩阵图像,按照填充后的图像来进行步长为2的滑动,则刚好能够将所有像素遍历完成,这就是填充值最显著的作用。什么是填充值呢?提到卷积层,就会不可避免地涉及填充这个名词以6.3:卷积运算1输入和卷积核2降维3填充4数据格式6.3:卷积运算1输入和卷积核数据格式(dataformat)是数据保存在文件或记录中的编排格式。可分为数值、字符串或二进制等形式。①简单类型:整数类型、实数类型、布尔类型、字符类型和指针类型。②复合类型。也被称为组合类型或结构类型,是由简单类型用某种方式组合而成的。如数组类型、记录类型、集合类型、文件类型。数据格式(dataformat)是数据保存在文件或记录中的6.4:卷积常见层1卷积层2池化层3归一化4高级层6.4:卷积常见层1卷积层过滤器(filter)或内核(kernel)过滤器(filter)或内核(kernel)下图的图片经过三个卷积核的卷积操作得到三个特征图。需要注意的是,在多核卷积的过程中每个卷积核的大小应该是相同的。下图的图片经过三个卷积核的卷积操作得到三个特征图。需要注意的6.4:卷积常见层1卷积层2池化层3归一化4高级层6.4:卷积常见层1卷积层池化层目的:降维。池化的过程相,如下图所示。池化层目的:降维。6.4:卷积常见层1卷积层2池化层3归一化4高级层6.4:卷积常见层1卷积层归一化的目标之一在于将输入保持在一个可接受的范围内。归一化的目标之一在于将输入保持在一个可接受的范围内。例子:图像中,若比较两张图片(两张图片的样式:通道数、数据格式相同,大小、分辨率可以不同)会有以下两种情况。1.比较两张图片大小,需要判断是否相同的时候;2.求取较小的一张图片在大图中的位置,需要判断的时候。欧氏距离来作为判断函数,如下。例子:图像中,若比较两张图片(两张图片的样式:通道数、数据格故使用归一化处理。将这个相似性函数展开,可以得到如下公式。欧氏距离来作为判断函数,如下。人工智能原理第6章:卷积神经网络课件6.4:卷积常见层1卷积层2池化层3归一化4高级层6.4:卷积常见层1卷积层为使标准层的定义在创建时更加简单,TensorFlow引入了一些高级网络层。这些层不是必需的,但它们有助于减少代码冗余,同时遵循最佳的实践。为使标准层的定义在创建时更加简单,TensorFlow引入了第六章:卷积神经网络卷积神经网络卷积神经网络的模型架构卷积运算卷积常见层TensorFlow和图像模型训练模型评估多GPU的模型训练第六章:卷积神经网络卷积神经网络6.5:TensorFlow和图像1图像加载2图像格式3图像操作4颜色空间变换6.5:TensorFlow和图像1图像加载6.5.1图像加载TensorFlow可以快速地从硬盘或其他存储介质中加载图像文件。它的加载过程与其他文件的加载过程类似,唯一的区别是图像的内容需要经过解码的过程。图像加载与二进制文件相同。图像需要解码。输入生成器。找到所需文件,加载到队列。tf.WholeFileReader加载完整图像文件到内存,WholeFileReader.read读取图像。图像是三阶张量。RGB值是一阶张量。加载图像格式为[batch_size,image_height,image_width,channels]。批数据图像过大过多,占用内存过高,系统会停止响应。大尺寸图像输入占用大量系统内存。训练卷积神经网络需要大量时间,加载大文件增加更多训练时间,也很难存放于多数系统GPU显存。大尺寸图像大量无关本征属性信息,影响模型泛化能力。tf.image.decode_jpeg解码JPEG格式图像。tf.image.decode_png解码PNG格式图像。差别在于alpha(透明度)信息。移除区域alpha值设为0,有助于标识。JPEG图像频繁操作会留下伪影(atrifact)。PNG格式为无损压缩,保留原始文件全部信息(被缩放或降采样除外),文件体积较大。6.5.1图像加载TensorFlow可以快速地从6.5.2图像格式TensorFlow内置文件格式TFRecord,二进制数据和训练类别标签数据存储在同一文件。模型训练前图像转换为TFRecord格式。TFRecord文件是protobuf格式。数据不压缩,可快速加载到内存。加载图像格式为batch_size,image_height,image_width,channels。批数据图像过大过多,占用内存过高,系统会停止响应。独热编码(one-hotencoding)格式,表示多类分类(单)标签数据。图像加载到内存,转换为字节数组,添加到tf.train.Example文件,SerializeToString序列化为二进制字符,保存到磁盘。序列化将内存对象转换为可安全传输的文件格式,可被加载,可被反序列化为样本格式。直接加载TFRecord文件,可以节省训练时间。支持写入多个样本。6.5.2图像格式TensorFlow内置文件格式TFR6.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_features['label'],tf.string))查看从TFRecord文件加载的标签。使用图像数据推荐使用TFRecord文件存储数据与标签。做好图像预处理并保存结果。最好在预处理阶段完成图像操作,裁剪、缩放、灰度调整等。图像加载后,翻转、扭曲,使输入网络训练信息多样化,缓解过拟合。Python图像处理框架为PIL、OpenCV。TensorFlow提供部分图像处理方法。裁剪,tf.image.central_crop,移除图像区域,完全丢弃其中信息,与tf.slice(移除张量分量)类似,基于图像中心返回结果。训练时,如果背景有用,tf.image.crop_to_bounding_box(只接收确定形状张量,输入图像需要事先在数据流图运行),随机裁剪区域起始位置到图像中心的偏移量。tf.image.pad_to_bounding_box,用0填充边界,使输入图像符合期望尺寸。尺寸过大过小图像,边界填充灰度值0像素。tf.image.resize_image_with_crop_or_pad,相对图像中心,裁剪或填充同时进行。6.5.3图像操作TFRecordReader对象读取T6.5.4颜色空间变换翻转,每个像素位置沿水平或垂直方向翻转。随机翻转图像,可以防止过拟合。tf.slice选择图像数据子集。tf.image.flip_left_right完成水平翻转。tf.image.flip_up_down完成垂直翻转。seed参数控制翻转随机性。编辑过图像训练,误导卷积神经网络模型。属性随机修改,使卷积神经网络精确匹配编辑过或不同光照图像特征。tf.image.adjust_brightness,调整灰度。tf.image.adjust_contrast,调整对比度。调整对比度,选择较小增量,避免“过曝”,达到最大值无法恢复,可能全白全黑。tf.slice突出改变像素。tf.image.adjust_hue,调整色度,色彩更丰富。delta参数控制色度数量。tf.image.adjust_saturation,调整饱和度,突出颜色变化。单一颜色图像,灰度颜色空间,单颜色通道,只需要单个分量秩1张量。缩减颜色空间可以加速训练。灰度图具有单个分量,取值范围[0,255]。tf.image.rgb_to_grayscale,把RGB图像转换为灰度图。灰度变换,每个像素所有颜色值取平均。6.5.4颜色空间变换翻转,每个像素位置沿水平或垂直方向第六章:卷积神经网络卷积神经网络卷积神经网络的模型架构卷积运算卷积常见层TensorFlow和图像模型训练模型评估多GPU的模型训练第六章:卷积神经网络卷积神经网络*************************************************************************************train_step=tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)*************************************************************************************整个模型的训练可以通过反复运行train_step来完成,代码如下所示。************************************************************************************foriinrange(1000):batch=mnist.train.next_batch(50)train_step.run(feed_dict={x:batch[0],y_:batch[1]})************************************************************************************6.6:模型训练用梯度下降法让交叉熵下降,步长为0.01,代码如下所示。******************************第六章:卷积神经网络卷积神经网络卷积神经网络的模型架构卷积运算卷积常见层TensorFlow和图像模型训练模型评估多GPU的模型训练第六章:卷积神经网络卷积神经网络*************************************************************************************correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))*************************************************************************************2.将布尔值转换为浮点数来代表对、错,然后取平均值。************************************************************************************accuracy=tf.reduce_mean(tf.cast(correct_prediction,"float"))***************************************

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论