2020 经典卷积神经网 AlexNet
2020-09-27 本文已影响0人
zidea
MachineLearninginMarketing
alexnet_001.jpeg
AlexNet
虽然 AlexNet 今天人们不会在采用或借鉴 AlexNet 来设计网络来,不过无疑是 AlexNet 出现,在次掀起神经网络的热度。AlexNet 是 2012年 ImageNet竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计的。
那么 AlexNet 都带来了什么,
alexnet_001.jpeg
- 提出了一种卷积层加全连接层的卷积神经网络结构
- 首次使用 ReLU 函数作为神经网络的激活函数,并验证 ReLU 效果在较深的网络超过了Sigmoid,通过使用 ReLU 解决了 Sigmoid 在网络较深时的梯度弥散问题。
- 首次提出 Dropout 来解决过拟合的问题
- 加入动量的小批量梯度下降算法加速训练过程的收敛
- 局部响应归一化(Norm)
- 对局部神经元的活动创建竞争机制
- 响应比较大的值变得相对大
- 增强模型的泛化能力
- 数据增强策略极大地抑制了训练中的过拟合
-
首先使用 GPU 加速神经网的训练速度,并且因为当时 GPU 显存的限制,采用 GPU
alexnet_003.jpg
<img src="../images/alexnet_003.jpg">
统计层数仅考虑卷积和全连接层 8 层
在搭建卷积神经网或者其他神经网时候,我们通常会将一些重复出现结构定义为块,这里便于说明 AlexNet 神经网的结构,我们将卷积、Relu、池化层以及batch normalization 组成看成一个块结构
根据 AlexNet 网络结构特点我们将其划分为 4 块
- 卷积块
- 卷积块
- 卷积重叠块
- 全连接块
第 1 卷积块
区分 | tensor 形状 |
---|---|
输入 | |
输出 |
然后经过卷积核
卷积核大小 | 卷积核个数 | 步长 |
---|---|---|
96 | 4 |
-
计算经过卷积后输出特征响应图大小 ,所以最终输出 的特征响应图
-
该层卷积核参数量
-
特征图每个元素经过 ReLU 函数操作后输出
-
池化层没有参数
-
经过一个卷积核大小为 步长为 2 的池化层后特征图大小减半 输出 tensor 深度与卷积核个数相同
第 2 卷积块
这里我们在来一起推导卷积块输入和输出 tensor 的形状
区分 | tensor 形状 |
---|---|
输入 | |
输出 |
- 输入 tensor
- 卷积 ,这一层做了填充所以在做完卷积后特征图大小不会改变,这一层卷积相当看到看到 视野
- 经过池化层 ,那么最后经过这一层后输出为 tensor
卷积重叠块
这一部分就是卷积层堆叠,最终输出为 特征图,信息量是 256 维度
全连接
- 输入 输出 ,将卷积进行展平。
flattern.png
- 用于提取特征图的卷积层以及用于分类的全连接层是同时学习的
- 卷积层与全连接层在学习过程中会相互影响、相互促进
- 从数据中学习对于分类有意义的结构特征信息
- 描述输入图片的结构信息
- 描述信息保存在
256 个卷积核组,用这些卷积核提取结果。每一个卷积核都具有一定语义,学习卷卷积核,如果做分类我们不必在
重要技巧
- Dropout 策略防止过拟合
- 使用加入动量的随机梯度下降算法,加速收敛
- 验证集损失下降,手动降低 10 倍学习率
- 集成多个模型,进一步提高精度
- GPU 用到两块 GPU