经典卷积神经网络——AlexNet
一.网络结构
AlexNet由5层卷积层和3层全连接层组成。
论文中是把网络放在两个GPU上进行,为了方便我们仅考虑一个GPU的情况。

上图中的输入是224×224224×224,不过经过计算(224−11)/4=54.75(224−11)/4=54.75并不是论文中的55×5555×55,而使用227×227227×227作为输入,
卷积层C1:处理流程为:卷积、ReLU、LRN、池化、
卷积:输入为227x227x3,使用96个11x11x3的卷积核,步长为4x4,得到FeatureMap为55x55x96
池化:3x3最大池化,步长为2,得到27x27x96的FeatureMap
卷积层C2: 处理流程为:卷积、ReLU、LRN、池化
卷积:输入为27x27x96,使用256个5x5x96的卷积核(padding = 2),步长为1x1,得到FeatureMap为27*27*256
池化:3x3最大池化,步长为2,得到13x13x26的FeatureMap
卷积层C3: 处理流程为:卷积、ReLU
卷积: 输入为13x13x256,使用384个3x3x256的卷积核(padding = 1),,步长为1x1,得到13x13x384的FeatureMap
卷积层C4: 处理流程为: 卷积、ReLU
卷积:输入为13x13x384,使用256个3x3x384的卷积核(padding = 1),,步长为1x1,得到13x13x256的FeatureMap
卷积层C5:处理流程为:卷积、ReLU、池化
卷积:输入为13x13x256,使用256个3x3x256的卷积核,步长为1x1(padding = 1),,得到13x13x256的FeatureMap
池化:3x3的最大池化,步长为2,得到6x6x256的FeatureMap
全连接层FC6: 处理流程为:全连接、ReLU、Dropout
全连接;输入为6x6x256,使用4096个6x6x256的卷积核,得到1x1x4096
全连接层FC7: 处理流程为:全连接、ReLU、Dropout
全连接:输入1x1x4096,使用4096个1x1x4096的卷积核,得到1x1x4096
输出层:第七层4096个数据与第八层1000个神经元进行全连接,输出1000个float值
二.,模型特点
1.ReLU Nonlinearity
标准L-P神经元的输出一般使用tanh或者sigmoid函数作为激活函数,这些饱和的非线性函数计算机梯度的时候要比非饱和函数max(0,x)慢得多,把非饱和线性函数成为Rectified Linear Units(ReLUs)

2.在两个GPU上训练
使用的GPU为GTX 580,内存只有3GB,使用一个GPU可能会限制训练网络的大小规模,因此使用两个GPU。
并行方案为把一半的神经元放在一个GPU上,GPU的交流仅在一些层上。比如第三层的将第二层的所有输出作为输入,但是第四层将第三层只属于同个GPU的输出作为输入。
3.Local Response Normalization
引入LRN,是为了模仿生物上,被激活的神经元抑制相邻神经元,即侧抑制,归一化的目的就是抑制,LRN借鉴侧抑制实现局部抑制。

其中bix,y为归一化后的值,i表示通道的位置,x,y代表像素更新的位置
aix,y为输入值,是激活函数ReLU的输入值
k,alpja,beta,n/2为自定义系数,一般设置k=2,n=5,alpha=1Xe-4,beta=0.75。
∑叠加方向是沿着通道方向,也就是一个点同方向的前面n/2个通道和后n/2个通道的点的平方和(n+1个点)


但是其他较晚产生的卷积神经网络模型基本不含LRN层,因为LRN的效果不明显,但是会增加2倍的前馈、反馈时间。
同时,LRN对激活函数的选择也有些要求,LRN对于ReLU这种不存在上限边界的激活函数比较有用,因为LRN层的原理就是从多个卷积核响应中选择值比较大的那一个,但是不适合sigmod或tanh这种由上下固定边界的的激活函数,因为这种边界本身就抑制了较大的输入值。
3.4Overlapping pooling
重叠池化有助于减少过拟合。
设池化的大小为zxz,步长为s,如果s<z,即每次池化都会和相邻池化有一部分重叠,称为重叠池化
三.减少过拟合操作
1数据增强
模型随机从256x256大小的原始图像中截取224x224大小的区域,同时还得到图片进行水平翻转后的镜像,相当于数据扩充了2048倍(2^(5+5+2))
测试时,模型会先截取一张图片的四个角加中间位置,并进行左右翻转,这样会获得10张图片,将10张图片作为预测的输入并对得到的10个预测结果求平均值,就是这样图片的预测结果。
2.dropout
在训练过程中,对全连接的神经元按照一定的概率将其暂时从网络中丢弃,暂时是指在此次训练中,被丢弃的神经元不进行前馈和BP了。
对于随机梯度下降来说,由于是随机丢弃,故每一个batch都是在训练一个不同的网络,这样就可以综合多个网络的训练结果。
经典卷积神经网络——AlexNet的更多相关文章
- TensorFlow实战之实现AlexNet经典卷积神经网络
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...
- 经典卷积神经网络(LeNet、AlexNet、VGG、GoogleNet、ResNet)的实现(MXNet版本)
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. 其中 文章 详解卷 ...
- 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...
- 经典卷积神经网络算法(2):AlexNet
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 经典卷积神经网络的学习(一)—— AlexNet
AlexNet 为卷积神经网络和深度学习正名,以绝对优势拿下 ILSVRC 2012 年冠军,引起了学术界的极大关注,掀起了深度学习研究的热潮. AlexNet 在 ILSVRC 数据集上达到 16. ...
- 经典卷积神经网络算法(5):ResNet
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 经典卷积神经网络的学习(二)—— VGGNet
1. 简介 VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发的深度卷积神经网络,其主要探索了卷积神经网络的深度 ...
- 经典卷积神经网络算法(1):LeNet-5
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 经典卷积神经网络算法(3):VGG
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
随机推荐
- 10 | MySQL为什么有时候会选错索引?
前面我们介绍过索引,你已经知道了在MySQL中一张表其实是可以支持多个索引的.但是,你写SQL语句的时候,并没有主动指定使用哪个索引.也就是说,使用哪个索引是由MySQL来确定的. 不知道你有没有碰到 ...
- leetcode解题报告(12):Maximum Subarray
描述 Find the contiguous subarray within an array (containing at least one number) which has the large ...
- 集合家族——stack
一.概述 在 Java 中 Stack 类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的 它通过五个操作对类 Vector 进行了扩展 ,允许将向 ...
- C# 窗体 类似framest 左侧点击右侧显示 左侧菜单右侧显示
首先托一个splitContainer调节大小位置 然后进行再新创建一个窗体名为add 在左侧拖入button按钮 进入代码阶段 更改属性 public Main() { InitializeComp ...
- MySQL监控利器-PMM
本篇文章来简要介绍一下MySQL监控利器-PMM的部署过程. 环境: 主机名 IP 功能 系统 数据库版本 pmmclient 192.168.91.34 PMM-client RHEL7.4 p ...
- ICEM—倾斜孔
原视频下载:https://yunpan.cn/cS3UGMEscrYpL 访问密码 839b
- ASP.NET的MVC设计模式
当开发者听到“设计模式”这个词时,他们通常联想到两个场景.一组开发者正在讨论许多创造性意见,正在开会,但是却没有进行编码.另外一组人能制定出正确的计划,保证系统能够开发成功,代码可以重用. 而现实一般 ...
- js闭包小实验
js闭包小实验 一.总结 一句话总结: 闭包中引用闭包外的变量会使他们常驻内存 function foo() { var i=0; return function () { console.log(i ...
- PHP多进程开发与Redis结合实践
原文:https://blog.51cto.com/laok8/2107892?source=drh 业务逻辑介绍: 用户在 APP 上发帖子,然后存储到 Redis 的 List 列表中 利用 Li ...
- 多线程循环打印ABC
主要是利用线程的wait()和notify()来实现 public class MyThread implements Runnable { private String name; private ...