热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Deeplearning论文笔记一:ImageNetClassificationwithDeepConvolutionalNeuralNetworks

1.简介ImageNetClassificationwithDeepConvolutionalNeuralNetworks发表在NIPS2012上
      1.简介

       ImageNet Classification with Deep Convolutional Neural Networks 发表在NIPS2012上面,在当时引起了不小的轰动,因为这篇文章的方法在ImageNet LSVRC-2010数据集上的分类效果比其他分类效果好很多,Top 5的错误率由25%降到17%。

       这篇文章的主要贡献如下:

        1.训练了一个大型的卷积神经网络并且效果是目前为止所有方法里面最好的;

2.实现了一个基于GPU的2D卷积网络,并且我们使用该框架进行了CNN的训练。文章对CNN进行了很多的优化,提高了网络的训练速度和分类效果。

       数据集使用ImageNet。ImageNet拥有超过1500万张高清图片,图片有22000多个类别。从2010年开始,ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)每年都会举行一次。在ImageNet数据集上,我们使用两个评价标准:top-1和top5。top-1错误率是指测试的图片的真正标签没有出现在所预测出的前五个标签中的图片的比例,也就是说,连续预测5次都没有预测正确的图片的比例。ImageNet里面的图片分辨率不一,需要将图片通过缩小和裁剪得到256*256像素的图片,除此之外不对图片进行任何处理。
2.架构
ReLU:对神经元输出进行建模的标准方法是将它的输入x看成是f的函数:
在用梯度下降法训练的时候,这些饱和非线性函数要比非饱和非线性函数慢很多,比如
我们称这类非线性神经元为改正的线性单元(Rectified Linear Units),如下图所示,其训练速度比tanh函数要快很多。

Training on Multiple GPUs: 框架使用多个GPU并行计算,并且GPU之间可以直接访问对方memory,不用经过主机内存。此外,框架还有一个trick:GPU通信只在某些层进行,因此可以提高运算效率。

Local Response Normalization: 局部响应归一化有助于提高泛化能力,计算公式如下:



Overlapping pooling: 传统的pooling方法只对相邻单元处理并且有重合,本文对pooling层进行了部分重合,减少了过拟合,提高了分类效果。

      框架架构如下图所示,共8层,五个卷积层和三个全连接层,最后是一个1000-way的softmax分类器,将图片分成1000个类别。该实验在两个GPU上进行运算,从图中可以看到,第二,第四和第五个卷积层只和在同一块GPU上的上层连接,因此减少了GPU之间数据的交换,提高了运算效率。全连接层的神经元与上一层的全部神经元相连接。局部响应正则化层在第一和第二卷积层之后,pooling层在第一第二响应正则化层之后和第五卷积层之后。ReLU用于五个卷积层和三个全连接层的输出。

第一个卷积层使用96个11*11*3的卷积核处理输入的224*224*3的图片,步长为4个像素;第二个卷积层使用256个5*5*48大小的卷积核。第三个卷积层有384个3*3*256的卷积核;第四个卷积层有384个3*3*192的卷积核。第五个卷积层使用256个3*3*192的卷积核。全连接层每层有4096个神经元。



3. Reducing Overfitting

该方法的神经网络有6000万个参数,虽然ILSVRC有1000个类别,但是还是无法避免过拟合的问题,因此本文采用了两种方式来避免过拟合。

3.1.data Augmentation

本文使用了两种方法来实现数据扩展,两种方法只需要很小的计算量,而且是在CPU上运算的,并不会占用GPU的计算资源。

第一种是图片平移和水平翻转(image translations and horizontal reflections),我们从246*256的图片中提取出来5个224*224的图片(四个角+一个中心),同时水平翻转后再提取出来五个子图片,共10个图片,在softmax层对这些图片分别进行预测,对预测结果求平均值作为图片的预测结果。

第二种是改变图片的RGB通道的强度,对图片进行PCA分析,图片的像素值*(与之对应的特征值)*(服从均值为0标准为0.1的高斯分布的随机数),因此,对于每个RGB像素Ixy=
对它们添加如下量:其中,pi和是3*3协方差矩阵的RGB像素值的特征向量和特征值,a是前面提到的随机变量,一张图片在训练过程中a是固定的,这个方法能够捕捉到自然图片的重要属性,并且使top-1错误率降低了1%。

3.2Dropout

后面会细讲。

4. 训练过程

使用随机梯度下降法进行训练,batch=128,momentum=0.9, weight decay=0.0005,权重w的更新方式如下:


i是迭代系数,v是动量值,是学习率
每层权值的初始值为服从均值为0,标准差为0.01的高斯分布的随机数,第二,四,五卷积层和三个全连接层的biases均设置为1,其他设为0。所有层的学习率都是一样的,在训练时会调整,调整的启发式算法是:如果当前学习率下验证集的错误率不在改变时,就将学习率除以10,总共调整三次后停止,用120万张照片训练了大约90个循环。

训练结果如下图所示:




5. 结果分析

如下图所示,是网络学习到的卷积核,网络学习到了不同频率,方向和颜色块的核,框架中的GPU连接方式,使得GPU产生了特化,上半部分的核是GPU1学习得到的,下半部分的核是GPU2学习得到的,两者有很大的区别,GPU2 感知到了颜色而GPU1没有,这种现象每次均会发生。


我们可以通过计算两张图片最后一层生成的4096维向量的欧氏距离的大小来确定他们的相似度,距离越小,图片的相似度越高。

此外,通过欧式距离计算向量的相似度效率不高,我们可以通过训练一个auto-encoder来将这些向量压缩为短的二值编码来提高计算效率。这种图片搜索方式比直接将auto-encoder用于原始的像素效果要好,因为后者没有利用图片的标签信息只是检索有相似的边的模式,而不是检索语义上的相似。


此外,为了简化实验,本文并没有采用任何非监督的预训练,因为我们已经有足够的计算能力来增大网络的大小,因此不需要增加有标记数据的数量。


推荐阅读
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 卷积神经网络(CNN)基础理论与架构解析
    本文介绍了卷积神经网络(CNN)的基本概念、常见结构及其各层的功能。重点讨论了LeNet-5、AlexNet、ZFNet、VGGNet和ResNet等经典模型,并详细解释了输入层、卷积层、激活层、池化层和全连接层的工作原理及优化方法。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 浪潮AI服务器NF5488A5在MLPerf基准测试中刷新多项纪录
    近日,国际权威AI基准测试平台MLPerf发布了最新的推理测试结果,浪潮AI服务器NF5488A5在此次测试中创造了18项性能纪录,显著提升了数据中心AI推理性能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 随着技术的发展,黑客开始利用AI技术在暗网中创建用户的‘数字孪生’,这一现象引起了安全专家的高度关注。 ... [详细]
author-avatar
木头人2幸福
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有