pytorch与深度学习随记——AlexNet

AlexNet和LeNet的设计理念非常相似,但也存在显著差异:

基本结构对比

  1. 网络深度:AlexNet比LeNet-5要深得多,AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。
  2. 激活函数:AlexNet使用ReLU而不是sigmoid作为其激活函数,这有助于缓解梯度消失问题并加速训练过程。

AlexNet架构的创新点

  1. 局部响应归一化(LRN):AlexNet引入LRN层,可以创建一种"侧抑制"机制,增强模型的泛化能力。
  2. Dropout技术:在全连接层使用Dropout(概率为0.5),有效减轻过拟合问题。

架构细节分析

  1. 大卷积核尺寸:第一层使用11×11的大卷积核,步长为4,有助于捕捉更大范围的图像特征。
  2. 通道数量:AlexNet的通道数远大于LeNet,第一层就有96个过滤器,显著增强了特征提取能力。
  3. 池化层设计:使用重叠最大池化(kernel_size=3, stride=2),提高了特征的鲁棒性。
  4. 连续卷积层:中间使用三个连续的卷积层而无池化层,可以学习更复杂的特征表示。

pytorch代码实现

python 复制代码
net = nn.Sequential(
    # 第一层:大卷积核(11×11)捕捉宏观特征,步幅4减少计算量,96个通道提取丰富特征
    # 另外,输出通道的数目远大于LeNet
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    
    # 第二层:中等卷积核(5×5),使用padding=2保持特征图尺寸,增加到256通道
    nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    
    # 第三至五层:连续的小卷积核(3×3)层,捕捉细节特征
    # 通道数先增加后减少(256→384→384→256),形成"金字塔"结构
    nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 256, kernel_size=3, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    
    # 展平后连接全连接层,大幅减少参数(6400→4096→4096→1000)
    nn.Flatten(),
    nn.Linear(6400, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),  # 防止过拟合
    nn.Linear(4096, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    nn.Linear(4096, 1000)  # 输出层
)

AlexNet历史意义

  1. 深度学习复兴:2012年AlexNet在ImageNet竞赛中以显著优势获胜,标志着深度学习在计算机视觉领域的突破。
  2. CNN领域里程碑:证明了深层CNN在大规模视觉识别任务中的有效性,为后续的VGG、GoogLeNet等网络奠定了基础。

应用领域

  1. 图像分类:在ImageNet上取得了15.3%的top-5错误率,比第二名低了约10个百分点。
  2. 迁移学习:预训练的AlexNet模型可用于其他视觉任务的特征提取器。

尽管AlexNet架构已经相对较久远,但其在AI教育等方面仍有重要意义

相关推荐
小鸡吃米…4 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫5 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)5 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan5 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维5 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS5 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd5 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
水如烟6 小时前
孤能子视角:“意识“的阶段性回顾,“感质“假说
人工智能
Carl_奕然6 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
旅途中的宽~6 小时前
《European Radiology》:2024血管瘤分割—基于MRI T1序列的分割算法
人工智能·计算机视觉·mri·sci一区top·血管瘤·t1