网络架构

  • 这是论文中的图

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

PS:这个图的input尺寸应该是标错了??227*227*3吧?? 

上图中,其实能明显地看出上面一层和下面一层。上下两层各由一个GPU进行计算(其实是硬件条件补星2333)。这两个GPU只在固定的几层之间进行交流。

  • 一个易于计算的示意图

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

网络总共的层数为8层,5层卷积,3层全连接层。

  • 简化的图
     

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

  •  也有人理解成模块

其中前5模块四卷积模块,用于提取图片特征,后3个模块是全链接层,用于图像分类。

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

(1)第一、二模块

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

 

(2)第三、四模块

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

(3)第五模块

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

 

(4)第六模块

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

(5)第七、八模块

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

 

创新点

  • ReLu函数 ----------  f(x)=max(0,x)

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

 什么是饱和函数?

基于ReLU的深度卷积网络比基于tanhsigmoid的网络训练快数倍,下图是一个基于CIFAR-10的四层卷积网络在tanh和ReLU达到25%的training error的迭代次数:

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

  • 标准化(Local Response Normalization)LRN

 

在神经网络中,我们用**函数将神经元的输出做一个非线性映射,但是tanh和sigmoid这些传统的**函数的值域都是有范围的,但是ReLU**函数得到的值域没有一个区间,所以要对ReLU得到的结果进行归一化。也就是Local Response Normalization。局部响应归一化的方法如下面的公式:

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks

【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks表示输入的(x,y)位置做第i次卷积并通过relu单元的结果,而【AlexNet】ImageNet Classification with Deep Convolutional Neural Networks是对应的归一化相应结果。 n是指相同位置的第i 次前后附近的n次卷积,而N是总的卷积次数。而且,这个卷积核作用的次序是在训练前就已经定好了。实际上,这个局部响应归一化是模拟生物神经元的侧抑制作用,当前神经元的作用受附近神经元作用的抑制,这样我们就理解为何上图公式,在归一化阶段仅仅除以相同位置附近前后几次的神经元响应的平方,而不是N次结果响应的平方。
 

  • Dropout

​​​​​​​之前转载的一篇blog(理解dropout)

  • 数据增强(data augmentation​​​​​​​

在深度学习中,当数据量不够大时候,一般有4解决方法:

(1) data augmentation——人工增加训练集的大小——通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据

(2)Regularization——数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大. 通过在Loss Function 后面加上正则项可以抑制过拟合的产生. 缺点是引入了一个需要手动调整的hyper-parameter。

(3)Dropout——也是一种正则化手段. 不过跟以上不同的是它通过随机将部分神经元的输出置零来实现

(4) Unsupervised Pre-training——用Auto-Encoder或者RBM的卷积形式一层一层地做无监督预训练, 最后加上分类层做有监督的Fine-Tuning
 

 

参考

什么叫非线性处理单元,非饱和**函数?

详解深度学习之经典网络架构(二):AlexNet 有代码实现

深入理解AlexNet网络​​​​​​​

深入理解AlexNet网络​​​​​​​

相关文章: