AlexNet模型

《ImageNet Classification with Deep Convolutional Neural Networks》阅读笔记 
一直在使用AlexNet,本来早应该读这篇经典论文了。可能是这篇论文涉及到的理论有点多,解释不是很通俗,有了一段时间的实际经验后读完这篇论文深有感悟。 
下面按论文的标题分别记录:

The Dataset

ILSVRC:1000类,每类约1000张图片,大约有120w训练图片,5w张验证图片,15w张测试图片。

AlexNet输入为固定尺寸:256*256,从原始图片进行resize and crop得到。唯一一个预处理是所有图像在进入网络时减去整体均值。

ReLU Nonlinearity

ReLU是一种不饱和非线性函数,相对传统的饱和非线性函数具 有更快的收敛速度,可以加速拟合训练集。Jarrettet用ReLU来阻止过拟合。 

Training on Multiple GPUs

使用多个两个GPU是为了解决单个GPU内存限制了网络大小,将 原网络拆成两半,比如说第一层卷积应该输出55×55×96,现拆成两个55×55×48。这里GPU只 在某些层进行互相通信。 

Local Response Normalization

论文中提出的LRN属于CROSS_CHANNEL的,作用是模拟生物神经 上的侧抑制( lateral inhibition,或者叫邻近抑制),使相邻神经元的激活值之间产生竞争。因为每个神经元的激活值需要除以相邻神经元的激活值的平方和,因此如果相邻神经元含有较大激活值的话,本身LRN后的激活值 就变小了。

Reducing Overfitting

论文介绍了两种防止过拟合的方法: 
1.Data Augmentation 
Data Augmentation是通过少量的计算从原始图片变换得到新的训练数据。第一种是随机裁剪,原图256×256,裁剪大小为224×224,由于随机,所以每个epoch中对同一张图片进行了不同的裁剪,理论上相当于扩大数据集32×32×2=2048倍!32是256-224;2是由于水平翻转。 
在预测(deploy)阶段,不是随机裁剪,而是固定为图片四个边角,外加中心位置。翻转后进行同样操作,共产生10个patch。 
2.Dropout 
Dropout是借鉴了多个模型结合的想法,对于一个分类问题,如果有多个训练完备的不同的模型,同时对一个输入做出预测,然后少数服从多数,显然会减小错误率。实际的做法是:每个隐层神经元的输出有0.5的概率置为0,置为0的神经元就不 会参加前向传播和反向更新。这样做的好处是有效防止过拟合,但是缺点是网络收敛需要的迭代次数增加一倍。

Details of learning

batch size=128
momentum=0.9
weight decay=0.0005
initial learining rate=0.01 reduce three times(factor :10)
iter epoch=90
  • 1
  • 2
  • 3
  • 4
  • 5

The update rule for weight w was

 
vi+1:=0.9⋅vi−0.0005⋅ϵ⋅wi−ϵ⋅<∂L∂W|wi>Divi+1:=0.9·vi−0.0005·ϵ·wi−ϵ·<∂L∂W|wi>Di
 
wi+1:=wi+vi+1wi+1:=wi+vi+1

<∂L∂W|wi>Di<∂L∂W|wi>Di为参数对应的梯度,ϵϵ为学习速率。

AlexNet模型的更多相关文章

  1. AlexNet模型的解析及tensorflow实现

    AlexNet是ImageNet LSVRC 2012比赛中分类效果第一的深度神经网络模型,点击链接下载论文http://papers.nips.cc/paper/4824-imagenet-clas ...

  2. 基于Caffe训练AlexNet模型

    数据集 1.准备数据集 1)下载训练和验证图片 ImageNet官网地址:http://www.image-net.org/signup.php?next=download-images (需用邮箱注 ...

  3. 吴裕雄 python 神经网络——TensorFlow实现AlexNet模型处理手写数字识别MNIST数据集

    import tensorflow as tf # 输入数据 from tensorflow.examples.tutorials.mnist import input_data mnist = in ...

  4. Ubuntu下caffe:用自己的图片训练并测试AlexNet模型

    参考博客:https://blog.csdn.net/eereere/article/details/79118645#commentBox 目录 1.准备图片 2. 将 图片路径写入txt 参考 这 ...

  5. 大话CNN经典模型:AlexNet

    2012年,Alex Krizhevsky.Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LS ...

  6. #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  7. 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet

    上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...

  8. TensorFlow实战之实现AlexNet经典卷积神经网络

    本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...

  9. 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络AlexNet

    上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...

随机推荐

  1. MySQL sql_mode 说明(及处理一起sql_mode引发的问题)

    转自:https://segmentfault.com/a/1190000005936172 1. MySQL 莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app ...

  2. 在VMware中创建一个新的虚拟机 ,安装Linux4.X系统 ,之后在此基础上安装openfiler(网络存储管理实用程序)

    到此为止虚拟机的前期设置准备好了 下面来为此虚拟机添加iso镜像 (这个是在http://www.openfiler.com/community/download  openfiler官网上面下载的) ...

  3. HTML清楚塌陷问题

    /* 清除浮动塌陷问题 */.clearfix:after { clear: both;} .clearfix:after,.clearfix:before { content: " &qu ...

  4. java反射快速入门

    笔记记在了掘金,发现掘金的markdown编辑器比博客园样式要好看不少 https://juejin.im/post/5d4e575af265da03e4674e9f

  5. 几个dp的陈年老题

    真 陈年老题 都是基础的dp优化 主要是展现我基础薄弱,菜得抠脚 1.四边形不等式 四边形不等式:w[i][j]+w[i+1][j+1]<=w[i+1][j]+w[i][j+1] 对于f[i][ ...

  6. python三元运算符公式/出错怎么看

    成功 if 条件 else 失败 Tip:问题要从下往上看,出问题的是最底下的问题,

  7. python常用包及功能介绍

    1.NumPy数值计算 NumPy是使用Python进行科学计算的基础包,Numpy可以提供数组支持以及相应的高效处理函数,是Python数据分析的基础,也是SciPy.Pandas等数据处理和科学计 ...

  8. <前端>简单实现开心网注册

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 移植 TinyLogin

    下载 从 http://tinylogin.busybox.net/downloads/tinylogin­1.4.tar.bz2下载 tinylogin­1.4 到/tmp 目录当中,并解压. 修改 ...

  10. Expression表达式 实现and、or搜索

    用法: [HttpPost] public ActionResult GetBannerList(int pageIndex, int pageSize, string search) { Resul ...