AlexNet笔记

AlexNet的一些参数:

卷积层:5层
全连接层:3层
深度:8层
参数个数:60M
神经元个数:650k
分类数目:1000类
由于当时的显卡容量问题,AlexNet 的60M个参数无法全部放在一张显卡上操作,所以采用了两张显卡分开操作的形式,其中在C3,R1,R2,R3层上出现交互,所谓的交互就是通道的合并,是一种串接操作。

AlexNet的结构图:

Alexnet结构图

AlexNet 网络参数计算

按照公式推算了一下感受野和特征层的大小。

网络层 感受野 卷积核个数 卷积核尺寸 步长 padding feature_map
conv 227*227 48*2 11*11 *3 4 2 227*227
max pooling 55*55 48*2 3*3 *3 2 - 56*56
conv 27*27 48*2 5*5 *48 1 2 27*27
max pooling 25*25 128*2 3*3 *48 2 - 27*27
conv 12*12 192*2 3*3 *128 1 1 13*13
conv 10*10 192*2 3*3 *192 1 1 13*13
conv 8*8 128*2 3*3 *192 1 1 13*13
max pooling 6*6 128*2 3*3 *128 2 - 6*6
fc - 2048*2 6*6 *256 - - -
fc - 2048*2 1*1 *4096 - - -
fc - 1000 1*1 *4096 - - -

技术

技术创新 具体细节 - -
数据增强方法 随机裁剪(256-227) 水平翻转 亮度,色彩变化(猫狗)
激活函数 Relu代替Sigmoid 解决较深网络中sigmoid梯度弥散的问题
网络创新 在全连接层后使用0.5的dropout 缓解过拟合的问题 网络的收敛速度快了很多
- 重叠pooling窗口 使用池化窗口是大小为3×3,步幅为2。在输出尺寸相同的情况下,与使用大小为2×2,步幅为2的非重叠池化窗口相比,重叠池化窗口能够分别将第一名的错误率降低0.4%,第5名的错误率降低0.3%
- 局部响应归一化(LRN) 对局部神经元创建了竞争的机制,使得其中响应较大的值变得更大,并抑制反馈较小的(强者更强,弱者更弱) 评价不高,基本弃用
训练方式 多GPU训练 硬件资源有限,将feature maps分给两个GPU分别处理,最后把两个GPU的结果在某些层融合。

说明

感受野计算公式(不考虑padding,从下往上反推)

rfsize = (output - 1) * stride + ksize

Feature Map的尺寸计算公式

fm(output)=(input_size + 2 * padding_size − ksize)/stride+1

卷积核的厚度=被卷积的图像的通道数 (卷积后三通道合为1)
卷积核的个数=卷积操作后输出的通道数 (即feature map的通道数)
全连接概念

拿第一层全连接层举例,该操作其实就是用2048个13*13 *256(256是池化层的厚度)的卷积核卷积出来的,对于输入的每一张特征图,都使用一个和图像大小一样的核卷积进行点积运算,这样整幅图就变成了一个数了,如果厚度是256就是那256个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。

Dense层就是全连接层,其实现的就是下列计算:
output = activation(dot(input, kernel)+bias)
activation是激活函数,kernel即为卷积核即权重w
由于全连接参数实在太多,现在尽量避免全连接,使用全局平均值也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值,即全局平均池化。
全局平均池化就是用 feature map 直接表示属于某个类的 confidence map,比如最后输出7* 7* 512,每个feature map中的值加起来求平均值,变为1* 1* 512 。然后把得到的这些平均值,再经过全连接输入softmax中分类, 更重要的是实验效果并不比直接用 FC 差。使用全局平均池化的重点主要是减少计算量,图中第二个计算应为16.

损失函数

权值w与偏置b,是网络中需要学习的参数,也就相当于拟合y=w*x+b中的待求参数w和b。其目标函数即为损失函数loss,网络训练的目标就是通过调整每一个权值Wij使得Loss达到最小,loss函数可以看成是由所有待求权值Wij为自变量的复合函数,会有很多局部最小值,梯度下降法可以求解最小化loss函数的问题。
设loss函数 L(W11,W12,⋯,Wij,⋯,Wmn) ,要求loss函数的梯度,我们需求出loss函数L对每一个权值Wij的偏导数。而BP算法正是用来求解这种多层复合函数的所有变量的偏导数的利器。

参考文献:

[1]: 从AlexNet理解卷积神经网络的一般结构
[2]: 卷积神经网络中全连接层工作原理的解释
[3]: 对于全连接层的理解 全连接层的推导
[4]: 前向传播算法(Forward propagation)与反向传播算法(Back propagation)
[5]: AlexNet 学习笔记
[6]: 对全局平均池化(GAP)过程的理解

猜你喜欢

转载自blog.csdn.net/duanmuji/article/details/83118443
今日推荐