【深度学习进阶】CNN-AlexNet


介绍

AlexNet 是一种深度卷积神经网络(CNN),由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey E. Hinton 在 2012 年提出,并在当年的 ImageNet 大规模视觉识别挑战赛(ILSVRC)中取得了第一名的成绩。这一成就标志着深度学习在计算机视觉领域的重大突破,极大地推动了该领域的发展。

架构特点

  • 输入尺寸:AlexNet 接受 224x224x3(宽 x 高 x RGB 通道数)大小的图像作为输入。
  • 卷积层:
    • AlexNet 包含 5 个卷积层,其中前三个卷积层后面接有最大池化层和局部响应归一化层(LRN)。后两个卷积层则直接连接到全连接层。
    • 第一层使用较大的卷积核(11x11),步长为 4,以捕捉大范围的空间信息;后续几层逐渐减小卷积核大小(5x5 和 3x3),以便提取更细粒度的特征。
    • 每个卷积层都应用了 ReLU 激活函数,这有助于加速训练过程并缓解梯度消失问题。
  • 池化层:
    • 最大池化层用于降低特征图的空间维度,减少参数数量并控制过拟合。
  • 局部响应归一化(LRN):
    • LRN 对局部神经元活动进行归一化处理,增强了模型的泛化能力。
  • 全连接层:
    • AlexNet 有两个大的全连接层,每个包含 4096 个神经元。这些层负责整合前面所有层提取出的特征,并映射到最终的输出类别。
    • 全连接层之后通常会有一个 Dropout 层,用来随机丢弃一部分神经元,防止过拟合。
  • 输出层:
    • 输出层通过 Softmax 函数将预测值转换为概率分布,对应于 ImageNet 数据集中的 1000 类别标签。

创新点与贡献

  • GPU 加速:AlexNet 是最早利用 GPU 来加速训练过程的网络之一,显著缩短了训练时间。
  • ReLU 激活函数:引入 ReLU 代替传统的 Sigmoid 或 Tanh 激活函数,加快了训练速度并提高了性能。
  • Dropout 技术:通过在网络中添加 Dropout 层来减少过拟合现象,提升了模型的泛化能力。
  • 数据增强:为了增加训练样本的多样性,AlexNet 使用了镜像翻转和裁剪等方法对原始图像进行了扩充。

影响与意义

AlexNet 的成功不仅在于它在 ILSVRC 上取得的优异成绩,更重要的是它证明了深度卷积神经网络在大规模图像分类任务上的巨大潜力。自那时以来,许多新的 CNN 架构如 VGGNet、GoogLeNet、ResNet 等相继出现,它们在不同方面改进和发展了 AlexNet 的思想和技术,共同推动了深度学习和计算机视觉领域的快速发展。

总之,AlexNet 作为一个里程碑式的模型,开启了现代深度学习研究的新纪元,其设计理念和技术创新至今仍然影响着众多研究工作。

ISLVRC 2012

  • 训练集:1,281,167张已标注图片
  • 验证集:50,000张已标注图片
  • 测试集:100,000张未标注图片
    在这里插入图片描述

网络亮点

该网络的亮点在于:

  1. 首次利用 GPU 进行网络加速训练。
  2. 使用了 ReLU 激活函数,而不是传统的 Sigmoid 激活函数以及 Tanh 激活函数。
  3. 使用了 LRN 局部响应归一化。
  4. 在全连接层的前两层中使用了 Dropout 随机失活神经元操作,以减少过拟合。

过拟合

根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。

在这里插入图片描述
使用 Dropout 的方式在网络正向传播过程中随机失活一部分神经元。
在这里插入图片描述

详解

经卷积后的矩阵尺寸大小计算公式为:N = (W − F + 2P ) / S + 1

① 输入图片大小 W×W
② Filter大小 F×F
③ 步长 S
④ padding的像素数 P

Conv1

在这里插入图片描述

  • Conv1:
    • kernels:48*2=96
    • kernel_size:11
    • padding:[1, 2]
    • stride:4
  • input_size: [224, 224, 3]
  • output_size: [55, 55, 96]
  • N = (W − F + 2P ) / S + 1=[224-11+(1+2)]/4+1

Maxpool1

在这里插入图片描述

  • Maxpool1:

    • kernel_size:3
    • pading: 0
    • stride:2
  • input_size: [55, 55, 96]

  • output_size: [27, 27, 96]

  • N = (W − F + 2P ) / S + 1=(55-3)/2+1

Conv2

在这里插入图片描述

  • Conv2:
    • kernels:128*2=256
    • kernel_size:5
    • padding: [2, 2]
    • stride:1
  • input_size: [27, 27, 96]
  • output_size: [27, 27, 256]
  • N = (W − F + 2P ) / S + 1=(27-5+4)/1+1

Maxpool2

在这里插入图片描述

  • Maxpool2:

    • kernel_size:3
    • pading: 0
    • stride:2
  • input_size: [27, 27, 256]

  • output_size: [13, 13, 256]

  • N = (W − F + 2P ) / S + 1=(27-3)/2+1

Conv3

在这里插入图片描述

  • Conv3:

    • kernels:192*2=384
    • kernel_size:3
    • padding: [1, 1]
    • stride:1
  • input_size: [13, 13, 256]

  • output_size: [13, 13, 384]

  • N = (W − F + 2P ) / S + 1=(13-3+2)/1+1

Conv4

在这里插入图片描述

  • Conv4:

    • kernels:192*2=384
    • kernel_size:3
    • padding: [1, 1]
    • stride:1
  • input_size: [13, 13, 384]

  • output_size: [13, 13, 384]

  • N = (W − F + 2P ) / S + 1=(13-3+2)/1+1

Conv5

在这里插入图片描述

  • Conv5:

    • kernels:128*2=256
    • kernel_size:3
    • padding: [1, 1]
    • stride:1
  • input_size: [13, 13, 384]

  • output_size: [13, 13, 256]

  • N = (W − F + 2P ) / S + 1=(13-3+2)/1+1

Maxpool3

在这里插入图片描述

  • Maxpool3:

    • kernel_size:3
    • pading: 0
    • stride:2
  • input_size: [13, 13, 256]

  • output_size: [6, 6, 256]

  • N = (W − F + 2P ) / S + 1=(13-3+2)/1+1

在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道友老李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值