AlexNet模型
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
<∂L∂W|wi>Di<∂L∂W|wi>Di为参数对应的梯度,ϵϵ为学习速率。
AlexNet模型的更多相关文章
- AlexNet模型的解析及tensorflow实现
AlexNet是ImageNet LSVRC 2012比赛中分类效果第一的深度神经网络模型,点击链接下载论文http://papers.nips.cc/paper/4824-imagenet-clas ...
- 基于Caffe训练AlexNet模型
数据集 1.准备数据集 1)下载训练和验证图片 ImageNet官网地址:http://www.image-net.org/signup.php?next=download-images (需用邮箱注 ...
- 吴裕雄 python 神经网络——TensorFlow实现AlexNet模型处理手写数字识别MNIST数据集
import tensorflow as tf # 输入数据 from tensorflow.examples.tutorials.mnist import input_data mnist = in ...
- Ubuntu下caffe:用自己的图片训练并测试AlexNet模型
参考博客:https://blog.csdn.net/eereere/article/details/79118645#commentBox 目录 1.准备图片 2. 将 图片路径写入txt 参考 这 ...
- 大话CNN经典模型:AlexNet
2012年,Alex Krizhevsky.Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LS ...
- #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet
上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...
- TensorFlow实战之实现AlexNet经典卷积神经网络
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络AlexNet
上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...
随机推荐
- Let's Encrypt 安装配置教程,免费的 SSL 证书
官网:https://letsencrypt.org/ 安装Let's Encrypt 安装非常简单直接克隆就可以了 git clone https://github.com/letsencrypt/ ...
- CSS3——伸缩布局及应用
CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用. 主轴:Flex容器的主轴主要用来配置Flex项目,默认是水 ...
- XAMPP的安装及使用教程
https://blog.csdn.net/qq_36595013/article/details/80373597#3%E9%85%8D%E7%BD%AEapache
- eax,ebx,ecx,edx,esi,edi,ebp,esp寄存器的作用
位的寄存器.如果用C语言来解释,可以把这些寄存器当作变量看待. 比方说:add eax,-2 ; //可以认为是给变量eax加上-2这样的一个值. 位寄存器有多种用途,但每一个都有"专长 ...
- iOS开发之SceneKit框架--SCNScene.h
1.SCNScene SCNScene是一个场景图——具有附加几何形状.光照.摄像机和其他属性的节点的层次结构,共同形成可显示的3D场景. 2.相关API简介 初始化方法 //懒加载 + (insta ...
- day 70 Django基础五之django模型层(二)多表操作
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...
- MME、PGW、SGW和PCRF的介绍
1.简介原文连接:https://blog.csdn.net/Rong_Toa/article/details/94983607 用户面和控制面板分离2.什么是HSS?HSS有什么主要功能?HSS与H ...
- .net core模糊查询及分页
在项目文件夹中,创建 PaginatedList类,然后用以下代码替换模板代码. using Microsoft.EntityFrameworkCore; using System; using Sy ...
- Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
关于NameNode高可靠需要配置的文件有core-site.xml和hdfs-site.xml 关于ResourceManager高可靠需要配置的文件有yarn-site.xml 逻辑结构: Nam ...
- tensorflow识别验证码(1)-tensorflow安装,验证码生成
什么是TensorFlow? TensorFlow是Google开发的一款神经网络的Python外部的结构包, 也是一个采用数据流图来进行数值计算的开源软件库.TensorFlow 让我们可以先绘制 ...