文章目录
一、卷积池化层原理
该层的顺序是:卷积——>ReLU——>池化——>归一化。
卷积池化层原理:
根据神经元公式:h(x)=f(wx+b)
上式子就是神经元所表示的函数,x表示输入(图片矩阵),w表示权重(卷积核参数),b表示偏置,f表示激活函数(ReLU),h(x)表示输出,输出后的数据经过池化,然后归一化。形成完成的卷积池化层。
训练卷积神经网络的过程就是不断调整权重w(卷积核参数)与偏置b的过程,以使其输出h(x)达到预期值。
总结:
首先对输入的图片与卷积核w进行运算,并且每个卷积核参加卷积运算时添加偏置b,然后用激活函数处理卷积运算结果,激活后的图片尺寸不变,然后再进行池化运算,池化运算可以降低图片尺寸,然后对池化后的结果进行归一化处理。
二、全连接层原理

根据神经元公式:h(x)=f(wx+b)
全连接层x表示上一层的输出值,w表示本层的神经元权重,权重数量等于本全连接层神经元数目,然后再加偏置b,偏置数量等于本层神经元数目。
三、模型参数详解
原始论文中的图如下:网络模型由5个卷积池化层,3个全连接层组成,最后一层全连接层的输出是1000维softmax的输入,softmax会产生1000类标签的分布。
注:AlexNet论文错误点
:原始论文中的图有点小错误,输入图片的大小应该是227 x 227,而不是224 x 224,否则后面参数将不能被整除。

为了更加清晰的说明参数,引入如下更全的网络结构。


1.卷积池化层1


(1)卷积运算
第一层输入数据为原始的227x227x3的图像,这个图像被11x11x3的卷积核进行卷积运算,卷积核对原始图像的每次卷积都生成一个新的像素。卷积核沿原始图像的x轴方向和y轴方向两个方向移动,移动的步长是4个像素。因此,卷积核在移动的过程中会生成(227-11)/4+1=55个像素,行和列的55x55个像素形成对原始图像卷积之后的像素层。共有96个卷积核,会生成55x55x96个卷积后的像素层。
(2)分组
96个卷积核分成2组,每组48个卷积核。对应生成2组55x55x48的卷积后的像素层数据。
(3)激活函数层
这些像素层经过relu1单元的处理,生成激活像素层,尺寸仍为2组55x55x48的像素层数据。
(4)池化层
经过激活函数的像素层经过pool运算的处理,池化运算的尺度为3x3,运算的步长为2,则池化后图像的尺寸为(55-3)/2+1=27。 即池化后像素的规模为27x27x96。
(5)归一化处理
归一化运算的尺度为5x5,即选择5x5的像素区域进行批归一化处理。第一卷积层运算结束后形成的像素层的规模为27x27x96。分别对应96个卷积核所运算形成。这96层像素层分为2组,每组48个像素层,每组在一个独立的GPU上进行运算。
(6)参数数量
卷积层的参数 = 卷积核大小 x 卷积核的数量 + 偏置数量(即卷积核的数量)。
本层参数数量为: (11 x 11 x 3 x 96) + 96 = 34848, 注:参数分为2部分 w 和 b ,“+”前面一部分是 w 的数量, “+”后面那部分是 b 的数量,后面的层也按这个思路来计算。
2.卷积池化层2


(1)卷积运算
第二层输入数据为第一层输出的27x27x96的像素层,为便于后续处理,每幅像素层的左右两边和上下两边都要填充2个像素;27x27x96的像素数据分成272748的两组像素数据,两组数据分别再两个不同的GPU中进行运算。每组像素数据被5548的卷积核进行卷积运算,共有256个5x5x48卷积核。卷积核沿原始图像的x轴方向和y轴方向两个方向移动,移动的步长是1个像素。因此,卷积核在移动的过程中会生成(27-5+2x2)/1+1=27个像素。即会生成27x27x256个卷积后的像素层。
(2)分组
这256个卷积核分成两组。会生成两组27x27x128个卷积后的像素层。
(3)激活函数层
这些像素层经过relu2单元的处理,生成激活像素层,尺寸仍为两组27x27x128的像素层。
(4)池化层
这些像素层经过pool运算(池化运算)的处理,池化运算的尺度为3*3,运算的步长为2,则池化后图像的尺寸为(57-3)/2+1=13。 即池化后像素的规模为2组13x13x128的像素层;
(5)归一化处理
然后经过归一化处理,归一化运算的尺度为5x5,即选择5x5的像素区域进行批归一化处理。第二卷积层运算结束后形成的像素层的规模为2组13x13x128的像素层。分别对应2组128个卷积核所运算形成。
(4)参数数量
卷积层, 使用256个5x5x48卷积核,节点数量:27x27x128x2 = 186624,参数数量:(5x5x48x128+128)x2 = 307456,最后"*2"是因为网络层均匀分布在两个GPU上,分2组,先计算单个GPU上的参数,再乘以GPU数量2。
3.卷积层3

(1)卷积运算
第三层输入数据为第二层输出的2组13x13x128的像素层;为便于后续处理,每幅像素层的左右两边和上下两边都要填充1个像素;2组像素层数据都被送至2个不同的GPU中进行运算。每个GPU中都有192个卷积核,每个卷积核的尺寸是3x3x256。因此

本文详细介绍了AlexNet模型的卷积池化层和全连接层的原理,包括卷积运算、分组、激活函数、池化、归一化和参数数量。通过实例分析了每一层的参数细节,指出原始论文中的错误,并提供了PyTorch实现的概述。
最低0.47元/天 解锁文章
3775

被折叠的 条评论
为什么被折叠?



