热门标签 | 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用于原始的像素效果要好,因为后者没有利用图片的标签信息只是检索有相似的边的模式,而不是检索语义上的相似。


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


推荐阅读
  • 浪潮AI服务器NF5488A5在MLPerf基准测试中刷新多项纪录
    近日,国际权威AI基准测试平台MLPerf发布了最新的推理测试结果,浪潮AI服务器NF5488A5在此次测试中创造了18项性能纪录,显著提升了数据中心AI推理性能。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 随着技术的发展,黑客开始利用AI技术在暗网中创建用户的‘数字孪生’,这一现象引起了安全专家的高度关注。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • vivo Y5s配备了联发科Helio P65八核处理器,这款处理器采用12纳米工艺制造,具备两颗高性能Cortex-A75核心和六颗高效能Cortex-A55核心。此外,它还集成了先进的图像处理单元和语音唤醒功能,为用户提供卓越的性能体验。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 新手指南:在Windows 10上搭建深度学习与PyTorch开发环境
    本文详细记录了一名新手在Windows 10操作系统上搭建深度学习环境的过程,包括安装必要的软件和配置环境变量等步骤,旨在帮助同样初入该领域的读者避免常见的错误。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文旨在探讨机器学习与数据分析之间的差异,不仅在于它们处理的数据类型,还包括技术背景、业务应用场景以及参与者的不同。通过深入分析,希望能为读者提供清晰的理解。 ... [详细]
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社区 版权所有