免费服务热线:020-988635871

产品列表

完成了在PYNQ-Z2开发板上编写并运行python程序
发布时间:2019-03-26 08:55

  ,将不同池化方式对图像分类的影响进行了分析对比,采用重叠池化和dropout技术,较好地解决过拟合问题。与传统神经网络相比,该方法在CIFAR-10数据集上获得了较好的结果,在测试集上准确率比训练集上准确率高9%左右。

  随着互联网和多媒体技术的快速发展,图像数据呈现出爆发式的增长,如何对海量图像进行高效的分类和检索成了一项新的挑战。图像分类是图像检索、物体检测和识别等应用的基础,也是模式识别和机器学习中的研究热点。

  深度学习是一种对数据进行表征学习的方法[1],起源于神经网络,已有几十年之久,但是一度发展缓慢。直至2012年,HOMTPM G和他的团队在ImageNet大型图像识别竞赛中取得极其优异的成绩,将top-5的错误率由26%降到15%,从此,深度学习引起了越来越多研究者的关注,进入快速发展时期。

  深度学习技术在神经网络模型训练过程中常常会引起过拟合的问题。所谓过拟合(Overfitting),是指模型对训练集的数据拟合得很好,而对它未学习过的数据集拟合并不好,泛化能力较弱,即对学习过的样本效果很好,推广到更一般、更具普适性的样本上表现并不好。

  本文针对神经网络模型中常见的过拟合问题,将不同池化方式对图像分类的影响进行了分析对比,提出了一种采用重叠池化和dropout技术的卷积神经网络,在一定程度上缓解了过拟合问题,能够应对更加复杂多变的数据环境。

  卷积神经网络(Convolutional Neural Network,CNN)是深度学习最常用的网络模型之一,在语音分析、图像识别等领域广泛应用。传统的神经网络是全连接的,参数数量巨大,训练耗时甚至难以训练,而卷积神经网络受到现代生物神经网络的启发,通过局部连接、权值共享等方式降低了模型复杂度,减少权重数量,降低了训练的难度。

  图像卷积实际上是对图像的空间线性滤波,滤波本是频域分析常用的方法,图像中也经常使用空间滤波进行图像增强。滤波所用的滤波器也就是卷积中的卷积核,通常是一个邻域,比如一个3×3大小的矩阵。

  卷积过程是把卷积核中的元素依次和图像中对应的像素相乘求和作为卷积后新的像素值,然后把该卷积核沿着原图像平移,继续计算新的像素值,直至覆盖整个图像。卷积过程如图1所示。

  图1是忽略了偏置项的卷积过程,输入图像大小是5×5,卷积核大小是3×3,卷积后的输出大小也是3×3。具体运算过程是卷积核从输入图像的左上角开始进行线性求和运算,然后每次向右移动一个像素的距离,直至最右侧,再向下移动一个像素,依次进行,便可得到卷积输出。如果想让输出和输入大小相同,可以在原图像周围补一圈“0”变成7×7的大小,然后再进行卷积运算即可。

  卷积的作用过程虽然很简单,但却能根据不同的卷积核对图像产生很多不同的效果。上述卷积过程实质上是一种相关作用,与严格的图像处理中的卷积稍有不同,严格的卷积需要把卷积核先旋转180°再进行相关运算。

  对图像进行卷积操作,实际上是在对图像进行特征提取,卷积可以消除图像旋转、平移和尺度变换带来的影响[2]。卷积层特别擅长在图像数据中提取特征,并且不同层能提取不同的特征。

  卷积神经网络的特点是逐层提取特征,第一层提取的特征较为低级,第二层在第一层的基础上继续提取更高级别的特征,同样,第三层在第二层的基础上提取的特征也更为复杂。越高级的特征越能体现出图像的类别属性,卷积神经网络正是通过逐层卷积的方式提取图像的优良特征。

  图像经过卷积之后会产生多个特征图,但是特征图的大小与原始图像相比并没有改变,数据量仍然很大,计算量也会很大,为了简化运算,常常会把特征图进行下采样。卷积神经网络采取池化(Pooling)的方式进行下采样,常见的池化方法有两种:最大值池化(MaxPooling)和平均值池化(AvgPooling),两种池化过程如图2所示。

  图2中,窗口大小是2×2,步长是2。最大值池化是在窗口覆盖的4个像素内选择最大的像素值作为采样值;平均值池化是计算窗口内4个像素的平均值,每次把窗口向右或者向下移动2个像素的距离,所以4×4的特征图池化后大小变为2×2。

  本文参考VGGNet中卷积块[3]思想设计了一种卷积神经网络模型,在卷积层和全连接层加入了dropout层,一定程度上缓解了过拟合问题,还对不同池化方式和池化窗口对分类效果的影响进行了分析对比。

  该网络模型如表1所示,共有11层,包括4个卷积层,3个池化层,主要包括3个部分。首先第一层是输入层,本文使用的数据集有10个种类,是大小为32×32的彩色图像,使用RGB颜色空间,所以输入层大小是32×32×3。第一部分包括2个卷积层和2个池化层,2个卷积层的特征图数量都是32;第二部分包括2个卷积层和1个池化层,2层卷积的特征图都是64个;第三部分是稠密连接层,即全连接层,第1层全连接层是512个神经元,第2层是10个,即划分到10个种类,然后使用Softmax回归进行分类。表1中的Conv(3,3)-32代表该层是卷积层,且卷积核大小是3×3有32个特征图;MaxPool(2,2)是指最大值池化,且窗口大小是2×2;FC-512是指该层是全连接层,神经元数目是152个。

  使用CIFAR-10数据集结合Rmsprop优化方法训练该网络,把所有训练集中的图像训练一遍为一个周期(epoch)。在训练100个周期后,训练过程准确率变化如图4所示。

  在训练过程中每一个周期都会计算训练数据集和测试数据集的准确率,可以看出在40个周期之前,测试集的准确率随着训练集的准确率一起上升,在第40个周期时达到0.74;之后训练集的准确率继续上升,而测试集的准确率上升很小,而且有小幅波动;在70个周期之后,训练集准确率仍继续上升,而测试集准确率保持平稳,变化很小。本次训练的损失函数如图5所示。

  从图5也可以看出,开始时测试集随着训练集的损失值一起下降,40个周期之后测试集的损失值一直在0.72~0.75之间波动,而训练集的损失值还一直保持着下降的趋势,第80个周期下降到0.50,最后下降到0.42。损失函数的变化也从侧面印证了该模型出现了较为严重的过拟合问题。

  使用重叠池化可以缓和过拟合问题,使用正则化也可以解决过拟合问题。HINTON G E于2012年提出了dropout技术[4],针对神经网络的过拟合问题有了较大改善。dropout是指在训练网络的过程中按照一定的比例随机丢弃部分神经元,即把某层中的神经元随机选取一部分使其输出值为0,这样会使得这部分被选中的神经元对下一层与其相连的神经元输出没有贡献,失去作用。

  多次实验发现,针对该网络模型最大值池化比平均值池化效果相对较好,使用重叠池化也可以改善效果,训练100个周期训练集和测试集的准确率如表2所示。

  表2记录的是针对不同网络结构在100个周期内训练集和测试集的最高准确率。第1种和第2种模型分别采用平均值和最大值的非重叠池化,可以看出最大值池化相对平均值池化效果更好,但是二者都有过拟合问题;第3种模型是最大值重叠池化,一定程度上缓解了过拟合问题;第4种模型使用了最大值重叠池化和dropout技术并加上了适量正则化,可以看出训练集的准确率远低于测试集,其准确率上升还有较大潜力。因此,选择第4种作为优化后的网络结构,完整的网络结构如表3所示。

  优化后的网络结构与原结构相比分别在第5层和第9层最大值重叠池化层后加入了0.25比例的dropout层,在第11层全连接层后加入了0.5比例的dropout层。另外对卷积层和全连接层的网络权重使用了L2正则化,正则化因子较小只有0.000 1,仍然使用Rmsprop学习方法训练300个周期之后的准确率如图6所示。

  从图6的训练过程可以看出,dropout技术较好地解决了过拟合问题,测试集准确率随着训练集的准确率一起上升,而且训练集准确率一直都低于测试集,300个周期内训练集准确率最高是73.49%,测试集最高准确率可以达到82.15%,可见dropout技术大大改善了过拟合问题。

  dropout在训练过程中随机丢弃部分神经元,每一批次的数据训练的都是一个不同的网络结构,相当于训练了多个网络,把多个不同结构的网络组合在一起,集成多个训练的网络于一体,可以有效防止单一结构网络的过度拟合。

  本文提出了一种用于图像分类的卷积神经网络模型,针对传统卷积神经网络出现的过拟合问题,使用不同的池化方式和dropout技术,优化了网络结构,提高了模型的图像分类性能,在CIFAR-10数据集上取得较好的分类效果。

  文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

  David,加州大学物理博士,美国著名电商数据科学家。本课程介绍什么是深度学习, 深度学习与机器学习的关系,几种神经网络

  图像处理,还有视频处理,曾经是很多工业产品的基础,现在电视,手机还有相机/摄像头等等都离不开,是技术....

  训练之前一定要执行参数初始化,否则可能减慢收敛速度,影响训练结果,或者造成Nan数值溢出等异常问题。

  使用TensorFlow开发的一款通用深度学习框架,侧重于针对语言相关任务的序列模型

  在构建 Lingvo 时,我们秉持着协作研究的理念,通过在不同任务之间共享公共层的实现来提升代码复用....

  由知名咨询公司博思艾伦(Booz Allen Hamilton)赞助的女性早期职业加速计划汇集了来自....

  数据科学家们将能够借助NVIDIA全新CUDA-X AI库实现速度的大幅提升

  CUDA-X AI包含十几个专用加速库,能够将机器学习和数据科学工作负载加速至高达50倍。它已经在通....

  比尔·盖茨:人工智能对我们来说是一项福音,我们应该利用AI来改善健康和教育

  但事实并非一成不变。他指出,医疗和教育是AI可以给人类带来福祉的两大领域。“这是促进社会科学的一次大....

  Nvidia Research开发的深度学习模型,轻松地将粗糙的涂鸦变成照片级的写实杰作

  GauGAN 可以为从建筑师、城市规划者到景观设计师和游戏开发商的每个人提供一个强大的工具来创建虚拟....

  自从作物被驯化以来,培育集抗性强、优质、高产等性状为一体的作物品种一直是育种家的梦想。DNA分子结构....

  ANYMAL与被植入了硬性程序的机器人不同,在深度强化学习的加持下,ANYMAL具有自我学习、自我升....

  这张图真实的体现了在通常情况下,学生面对老师传授知识、或者技能时候的一种状态。很多人对此深有同感:在....

  Google AI的研究人员的最新研究提出一个全新概念:刚度(Stiffness)

  学习率的选择对学习函数的刚度特性有显著影响。高学习率会导致函数逼近在更大的距离上“更刚”(stiff....

  本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。全书分为3章和两个附录。第1章介....

  其次,在单个数据节点上训练模型:可以使用一两个训练数据点(data point)以确认模型是否过度拟....

  CUDA-X AI能够将机器学习和数据科学工作负载加速多达50倍,由十几个专用加速库组成。这些库包括....

  这篇 GAN 论文来自 NVIDIA Research,提出以一种渐进增大(progressive ....

  对图结构数据的预处理比较麻烦。例如在处理异构网络时,有时需要对每种类型的节点进行独立地编号、为每种关....

  智能机器学习系统极易受到干扰的问题引发了广泛的担忧。这些研究成果及其理论框架无疑为以后的研究提供了有....

  从2007年开始,普通计算机用户可以记录下自己关于某个星系属于哪个类别的最佳猜测,来帮助天文学家完成....

  上面的示例显示了MF因为使用一个简单的和固定的内积,来估计在低维潜在空间中用户-项目的复杂交互,从而....

  用在生成依存句法树上,则具体表示为从空状态开始,通过动作转移到下一个状态,一步一步生成依存句法树,最....

  由于技术的进步引发的新话题层出不穷,我们不断被动地接收新的理念。越来越多的人发现,人类开始进入“无人....

  随后,贾扬清离职Facebook的消息在知乎上被爆料,Facebook软件工程师晓飞在知乎上确认了贾....

  【PYNQ-Z2试用体验】基于PYNQ-Z2的神经网络图形识别[结项]

  前言前面我们简单讲解了神经网络的基本概念和工作原理,接下来,将通过具体的python代码来完成基于神经网络的图形识别。这里使用...

  “在人工智能领域,我国多项技术处于世界领先地位。”张颐介绍说,在基础研究方面,我国已拥有人工智能研发....

  这套人工智能预防犯罪系统基于人工智能复杂的算法,该算法对超10万个小时的监控视频进行深度学习,可以分....

  Apollo 线上感知模块提供基于深度学习的点云动态障碍物的检测,通过集联多层的神经网络,使其提取出....

  由于只需换脸,所以第一步就是要识别图片上的脸部,找到要替换的位置,确定方向和大小。如下图,就像照片的....

  生成建模方法与传统模拟方法有联系,但二者之间有很大不同。 Schawinski说,模拟“基本上是由假....

  本文档的主要内容详细介绍的是MATLAB神经网络30个案例分析源代码免费下载。

  目前,包括计算机视觉、语音识别和机器人在内的诸多人工智能应用已广泛使用了深度神经网络(Deep Ne....

  说的专业些,这个叫做函数逼近。就是说我们想找到一个接近于我们目标函数(我们假设它存在)的方程,可以满....

  小语机器人正是公司15年通讯领域从业经验和技术积累,与最新的语音识别技术、先进的深度学习技术、机器学....

  正是对机器学习的过程中的痛苦有切身体会,我希望能做一份教程,以浅显易懂的方式去讲解它,降低大家的学习....

  旷科技MegBox B2R是一款以单片Zynq-7020作为神经网络核心计算加速单元的智能视频分析盒....

  大华股份基于深度学习技术研发的目标分割技术,取得了实例分割排行榜第一名

  在本次国际比赛上,大华股份自主研发的深度学习平台,采用迁移学习的方法,借鉴Mask R-CNN、PA....

  但是,当对视频本身进行分类时,会遇到一系列独特的挑战。例如,描述某个东西正在“打开”(opening....

  为什么bigram或者trigram的LM很重要呢?去做一个语言模型的问题,实现深度模型之前,第一步....

  用12个示例解释了使用TensorFlow 2.0 + Keras 的一些重要技巧

  你可以通过在 GradientTape 中调用 layer 来自动检索该层权重的梯度。使用这些梯度,....

  数据科学对资源方面要求很高,因此,开发人员和运营部门必须共同努力,快速为客户带来稳定的新功能。在我看....

  李飞飞、李佳均是斯坦福大学教授,事实上二者可谓是企业界与学界的“双担”:李飞飞于2017年入职谷歌,....

  计算机有大量的应用摆在它们面前:彻底变革办公室工作,通过电脑游戏娱乐,改变我们沟通、购物和使用银行系....

  谷歌正式推出ARCore 1.7版本,为其添加了前置摄像头AR自拍能力以及动画效果支持

  我们的机器学习工作流由两个协同工作的实时深度神经网络模型组成:一个是探测器,它在整张图像上运行并计算....

  中国青年报社近日联合人工智能行业领先企业旷视科技进行的一项调查显示,89.4%的受访者看好人工智能产....

  作者:德州仪器Joe Folkens 在未来的某个时候,人们必定能够相对自如地运用人工智能,安全地驾车出行。这个时刻...

  【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车-搭建神经网络

  在之前的帖子中,我们完成了神经网络自动驾驶小车的硬件搭建与底盘控制。当小车通过WiFi无线连接到网络后,已经可以对其进行远...

  过去十年里,人们对机器学习的兴趣经历了爆炸式的整长。我们几乎每天都可以在计算机程序、行业会议和媒体上看到机器学习的身影。...

  【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车-多路电机控制

  在上一篇帖子中,我们完成了“基于PYNQ的神经网络自动驾驶小车”的硬件搭建。本文我们将继续完善小车的软件框架,为小车的底...

  【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车 - 硬件搭建

  根据项目规划,本篇帖子将详解“基于PYNQ的神经网络自动驾驶小车”的硬件搭建。 一、材料清单 制作小车所需的主要部件与...

  前言前面我们通过notebook,完成了在PYNQ-Z2开发板上编写并运行python程序。我们的最终目的是基于神经网络,完成手写的数字...

  【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车 - 项目规划

  本次试用PYNQ-Z2的目标作品是“基于PYNQ的神经网络自动驾驶小车”。 在之前的一个多月内,已经完成了整个项目初步实...

  机器学习算法篇--卷积神经网络基础(Convolutional Neural Network)...