AlexNet神经网络

首先输入层数据是224*224*3的特征图,使用两个GPU同时进行运算,神经网络图:

神经网络一般越往后层,越要获得细节特征,所以前面的网络层可以设置卷积核大一点,粗略获取特征。

AlexNet神经网络_第1张图片

说明: ALexNet是使用两个GPU同时对模型进行训练,所以第一层得到的55*55*96的特征图, 实际上是每个GPU训练 55*55*48的特征图,最后将两个GPU上的特征图合并即可。

首先输入层是224*224*3,先用padding将图片特征变换成227*227*3的特征图。特征提取过程:

AlexNet神经网络_第2张图片

AlexNet网络的过程:

AlexNet网络,

1. 使用一个卷积将图片通道变成55*55*96      使用池化将特征图压缩到27*27*96

2. 使用一个卷积增宽通道为 27*27*256        使用池化将特征图压缩 13*13*256

3.使用卷积将通道增加为13*13*384,         继续使用卷积不改变特征图规格13*13*384

4.使用卷积将通道数减少 13*13*256           使用池化将特征图压缩 6*6*256

5.将特征图展开成一维向量,由上一层6*6*256=9216, 所以全连接层变成 [9216,1]的向量

6.减少神经元结点,全连接层变为 [4096,1]的向量,

7.神经元个数不变,继续添加全连接层,依然为[4096,1]的向量,

8.到达输出层,是一个1000分类的模型,所以变成 [1000,1]的向量。

 AlexNet神经网络特点:

AlexNet神经网络每个卷积层和每个全连接层都使用Relu激活函数,输出层使用softmax激活函数

AlexNet包含8层神经网络, 5个卷积层, 3个全连接层,

AlexNet将sigmoid激活函数改成Relu激活函数后,使激素按更简单,网络更容易训练

AlexNet通过Dropout来控制全连接层的模型复杂度。

AlexNet使用了大量图像增强,如翻转,颜色变化,裁剪,从而扩大数据集,来缓解过拟合

第一层:

第一层卷积核: 两个48@11*11*3 (合并起来就是96@11*11)          步长:4   

首先输入层是224*224*3,先用padding将图片特征变换成227*227*3的特征图。

AlexNet ,输入变为227*227,经过第一层卷积后,每个GPU得到55*55*48的特征图,一共两个GPU,如果合并,则是55*55*96    卷积使用Relu激活函数

第一层Max_pool池化核:  3*3   步长为:2             padding=0  

得到的特征图为:27*27*96,每个GPU上是27*27*48的

运算公式:

hight是图的高度, padding是添0的边数  size是卷积核的高度, stride是步长

hight = ((hight+2*padding-size)/stride )+ 1

hight = ((227 + 2*0 - 11) / 4) + 1 = 55

weight = ((227 + 2*0 - 11) / 4) + 1 = 55,

每个GPU上卷积核通道数48, 所以每个GPU得到的特征图为 55*55*48

第二层 :

第二层:卷积层2, 输入为上一层卷积的feature map, 卷积核的个数为256个,论文中的两个GPU分别有128个卷积核。卷积核的大小为: 5 × 5 × 48      pad = 2,    stride = 1;   激活函数使用Relu激活函数, 最后 max_pooling, pool_size = (3, 3), stride = 2;
 

第三层

在第三层神经网络将两个数据进行相互融合(不是合并),   模型是放在两个GPU上训练的,所以GPU1 和GPU2都各得到了13*13*128的特征图, 怎么进行融合呢, 就是把GPU1得到的特征图在这一层去和GPU2的卷积层进行卷积运算, 把GPU2得到的特征图去和GPU1的卷积层进行卷积运算。
卷积核个数为384    kernel_size = ( 3 × 3 × 256 )    padding = 1    第三层没有做池化   使用Relu激活函数   

第四层

 卷积核个数为384, kernel_size=( 3 × 3 ), padding = 1,使用Relu激活函数 第四层没有做池化

第四层操作与第三层完全一样

第五层

 卷积核个数为256, kernel_size = ( 3 × 3 ), padding = 1      使用Relu激活函数

使用最大池化,MaxPool,  池化核为3*3     步长为2

 全连接层

全连接层将两个GPU的特征合并成一个向量。每层全连接层都使用Relu激活函数。

第6,7,8层是全连接层,每一层的神经元的个数为4096,最终输出softmax为1000,因为上面介绍过,全连接层中使用了Dropout。

你可能感兴趣的:(深度学习,深度学习,机器学习,神经网络)